blob: 587b879fe0629cb4fda4f345d350a1531d63a18d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
require 'spec_helper'
describe Zero::Router do
let(:router) { Zero::Router.new(routes) }
subject { router.call(env) }
# let(:app) do
# lambda {|env| [200, {'Content-Type' => 'text/html'}, 'correct'] }
# end
let(:app) { double }
let(:wrong_app) do
lambda {|env| [200, {'Content-Type' => 'text/html'}, 'Wrong'] }
end
before :each do
app.should_receive(:call)
end
context 'it recognizes root' do
let(:routes) { { '/' => app } }
let(:env) { generate_env('/') }
it('handles /') { subject }
end
context 'a working route' do
let(:routes) { { '/app' => app } }
let(:env) { generate_env('/app') }
it('takes a route') { subject }
end
context 'select the right route' do
let(:routes) do
{ '/wrong' => wrong_app,
'/correct' => app }
end
let(:env) { generate_env('/correct') }
it("selects the correct from multiple routes") { subject }
end
context 'uses the deepest path' do
let(:routes) { { '/wrong' => wrong_app,
'/deep' => wrong_app,
'/deep/wrong' => wrong_app,
'/deep/correct' => app }}
let(:env) { generate_env('/deep/correct') }
it("finds uses the deepest path first") { subject }
end
context 'converts parts of the url to parameters' do
let(:routes) { { '/foo/:id' => app } }
let(:env) { generate_env('/foo/42') }
it "should extract variables from the url" do
subject
end
end
end
|