Sha256: e3b421dbbb7495d3ae9c6b2f6c850f1e3a98a57bd2e9baca8cec625ff8bbdbec

Contents?: true

Size: 1.82 KB

Versions: 1

Compression:

Stored size: 1.82 KB

Contents

require 'lib/usher'

describe "Usher route tokenizing" do
  
  
  it "should split / delimited routes" do
    Usher::Splitter.delimiter('/').split('/test/this/split').should == [['test', 'this', 'split']]
  end
  
  it "should split on ' ' delimited routes as well" do
    Usher::Splitter.delimiter(' ').split('test this split').should == [['test', 'this', 'split']]
  end
  
  it "should split on ' ' delimited routes for more complex routes as well" do
    Usher::Splitter.delimiter(' ').split('(test|this) split').should == [['test', 'split'], ['this', 'split']]
  end
  
  it "should group optional parts with brackets" do
    Usher::Splitter.delimiter('/').split('/test/this(/split)').should == [
      ['test', 'this'],
      ['test', 'this', 'split']
    ]
  end

  it "should group exclusive optional parts with brackets and pipes" do
    Usher::Splitter.delimiter('/').split('/test/this(/split|/split2)').should == [
      ['test', 'this', 'split'],
      ['test', 'this', 'split2']
    ]
  end

  it "should group exclusive optional-optional parts with brackets and pipes" do
    Usher::Splitter.delimiter('/').split('/test/this((/split|/split2))').should == [
      ['test', 'this'],
      ['test', 'this', 'split'],
      ['test', 'this', 'split2']
    ]
  end

  it "should group optional parts with brackets (for non overlapping groups)" do
    Usher::Splitter.delimiter('/').split('/test/this(/split)(/split2)') == [
      ["test", "this"],
      ["test", "this", "split"],
      ["test", "this", "split2"],
      ["test", "this", "split", "split2"]
    ]
  end

  it "should group nested-optional parts with brackets" do
    Usher::Splitter.delimiter('/').split('/test/this(/split(.:format))') == [
      ["test", "this"],
      ["test", "this", "split"],
      ["test", "this", "split", Usher::Route::Variable.new(:'.:', :format)]
    ]
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
joshbuddy-usher-0.3.0 spec/split_spec.rb