joshbuddy-usher 0.5.4 → 0.5.6
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +6 -6
- data/VERSION.yml +2 -2
- data/lib/usher.rb +45 -37
- data/lib/usher/interface.rb +3 -0
- data/lib/usher/interface/rack_interface.rb +61 -30
- data/lib/usher/interface/rails3_interface.rb +2 -1
- data/lib/usher/interface/text_interface.rb +44 -0
- data/lib/usher/node.rb +17 -13
- data/lib/usher/route.rb +16 -14
- data/lib/usher/util/generate.rb +120 -79
- data/lib/usher/util/rack-mixins.rb +24 -0
- data/spec/private/generate_spec.rb +78 -25
- data/spec/private/rack/dispatch_spec.rb +61 -29
- data/spec/private/rack/generate_spec.rb +41 -0
- data/spec/private/recognize_spec.rb +20 -5
- metadata +6 -2
@@ -2,37 +2,37 @@ require 'lib/usher'
|
|
2
2
|
require 'rack'
|
3
3
|
|
4
4
|
describe "Usher URL generation" do
|
5
|
-
|
5
|
+
|
6
6
|
before(:each) do
|
7
7
|
@route_set = Usher.new(:generator => Usher::Util::Generators::URL.new)
|
8
8
|
@route_set.reset!
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
it "should generate a simple URL" do
|
12
12
|
@route_set.add_named_route(:sample, '/sample', :controller => 'sample', :action => 'action')
|
13
13
|
@route_set.generator.generate(:sample, {}).should == '/sample'
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
it "should generate a simple URL with a single variable" do
|
17
17
|
@route_set.add_named_route(:sample, '/sample/:action', :controller => 'sample')
|
18
18
|
@route_set.generator.generate(:sample, {:action => 'action'}).should == '/sample/action'
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
it "should generate a simple URL with a single variable (and escape)" do
|
22
22
|
@route_set.add_named_route(:sample, '/sample/:action', :controller => 'sample')
|
23
23
|
@route_set.generator.generate(:sample, {:action => 'action time'}).should == '/sample/action%20time'
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
it "should generate a simple URL with a single variable (thats not a string)" do
|
27
27
|
@route_set.add_named_route(:sample, '/sample/:action/:id', :controller => 'sample')
|
28
28
|
@route_set.generator.generate(:sample, {:action => 'action', :id => 123}).should == '/sample/action/123'
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
it "should generate a simple URL with a glob variable" do
|
32
32
|
@route_set.add_named_route(:sample, '/sample/*action', :controller => 'sample')
|
33
33
|
@route_set.generator.generate(:sample, {:action => ['foo', 'baz']}).should == '/sample/foo/baz'
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
it "should generate a mutliple vairable URL from a hash" do
|
37
37
|
@route_set.add_named_route(:sample, '/sample/:first/:second', :controller => 'sample')
|
38
38
|
@route_set.generator.generate(:sample, {:first => 'zoo', :second => 'maz'}).should == '/sample/zoo/maz'
|
@@ -125,7 +125,7 @@ describe "Usher URL generation" do
|
|
125
125
|
@route_set.add_named_route(:name, '/:one/:two/:three', {:default_values => {:one => 'one', :two => 'two', :three => 'three'}})
|
126
126
|
@route_set.generator.generate(:name).should == '/one/two/three'
|
127
127
|
end
|
128
|
-
|
128
|
+
|
129
129
|
it "should generate a route using defaults and optionals using the last parameter" do
|
130
130
|
@route_set.add_named_route(:opts_with_defaults, '/:one(/:two(/:three))', {:default_values => {:one => '1', :two => '2', :three => '3'}})
|
131
131
|
@route_set.generator.generate(:opts_with_defaults, {:three => 'three'}).should == '/1/2/three'
|
@@ -135,61 +135,114 @@ describe "Usher URL generation" do
|
|
135
135
|
@route_set.add_named_route(:optionals, '/:controller(/:action(/:id))(.:format)')
|
136
136
|
@route_set.generator.generate(:optionals, {:controller => "foo", :action => "bar"}).should == '/foo/bar'
|
137
137
|
end
|
138
|
-
|
138
|
+
|
139
139
|
describe "nested generation" do
|
140
140
|
before do
|
141
141
|
@route_set2 = Usher.new(:generator => Usher::Util::Generators::URL.new)
|
142
142
|
@route_set3 = Usher.new(:generator => Usher::Util::Generators::URL.new)
|
143
143
|
@route_set4 = Usher.new(:generator => Usher::Util::Generators::URL.new)
|
144
|
-
|
144
|
+
|
145
145
|
@route_set.add_named_route(:simple, "/mount_point").match_partially!.to(@route_set2)
|
146
146
|
@route_set.add_route("/third/:foo", :default_values => {:foo => "foo"}).match_partially!.to(@route_set3)
|
147
147
|
@route_set.add_route("/fourth/:bar").match_partially!.to(@route_set4)
|
148
|
-
|
148
|
+
|
149
149
|
@route_set2.add_named_route(:nested_simple, "/nested/simple", :controller => "nested", :action => "simple")
|
150
150
|
@route_set2.add_named_route(:nested_complex, "/another_nested(/:complex)", :controller => "nested", :action => "complex")
|
151
|
-
|
151
|
+
|
152
152
|
@route_set3.add_named_route(:nested_simple, "/nested/simple", :controller => "nested", :action => "simple")
|
153
153
|
@route_set3.add_named_route(:nested_complex, "/another_nested(/:complex)", :controller => "nested", :action => "complex")
|
154
|
-
|
154
|
+
|
155
155
|
@route_set4.add_named_route(:nested_simple, "/nested/simple", :controller => "nested", :action => "simple")
|
156
156
|
end
|
157
|
-
|
157
|
+
|
158
158
|
it "should generate a route for the simple nested route" do
|
159
159
|
@route_set2.generator.generate(:nested_simple).should == "/mount_point/nested/simple"
|
160
160
|
end
|
161
|
-
|
161
|
+
|
162
162
|
it "should generate a simple route without optional segments" do
|
163
163
|
@route_set2.generator.generate(:nested_complex).should == "/mount_point/another_nested"
|
164
164
|
end
|
165
|
-
|
165
|
+
|
166
166
|
it "should generate a route with optional segements" do
|
167
167
|
@route_set2.generator.generate(:nested_complex, :complex => "foo").should == "/mount_point/another_nested/foo"
|
168
168
|
end
|
169
|
-
|
169
|
+
|
170
170
|
it "should genearte a route with the specified value for the parent route" do
|
171
171
|
@route_set3.generator.generate(:nested_simple, :foo => "bar").should == "/third/bar/nested/simple"
|
172
172
|
end
|
173
|
-
|
173
|
+
|
174
174
|
it "should generate a route with the default value from the parent route" do
|
175
175
|
@route_set3.generator.generate(:nested_simple).should == "/third/foo/nested/simple"
|
176
176
|
end
|
177
|
-
|
177
|
+
|
178
178
|
it "should generate a route with an optional segement in the parent and child" do
|
179
179
|
@route_set3.generator.generate(:nested_complex, :complex => "complex").should == "/third/foo/another_nested/complex"
|
180
180
|
end
|
181
|
-
|
181
|
+
|
182
182
|
it "should generate a route without the optional value from the child" do
|
183
183
|
@route_set3.generator.generate(:nested_complex).should == "/third/foo/another_nested"
|
184
184
|
end
|
185
|
-
|
185
|
+
|
186
186
|
it "should raise an exception when trying to generate a route where the parent variable is not defined and does not have a default value" do
|
187
187
|
lambda do
|
188
188
|
@route_set4.generator.generate(:nested_simple)
|
189
189
|
end.should raise_error(Usher::MissingParameterException)
|
190
190
|
end
|
191
|
-
|
192
|
-
|
193
|
-
|
194
191
|
end
|
195
|
-
|
192
|
+
|
193
|
+
describe "dupped generation" do
|
194
|
+
before(:each) do
|
195
|
+
@r1 = Usher.new(:generator => Usher::Util::Generators::URL.new)
|
196
|
+
@r2 = Usher.new(:generator => Usher::Util::Generators::URL.new)
|
197
|
+
@r3 = Usher.new(:generator => Usher::Util::Generators::URL.new)
|
198
|
+
|
199
|
+
@r1.add_route("/r1", :router => "r1").name(:route)
|
200
|
+
@r2.add_route("/r2", :router => "r2").name(:route)
|
201
|
+
@r3.add_route("/r3", :router => "r3").name(:route)
|
202
|
+
end
|
203
|
+
|
204
|
+
it "should generate dupped routes" do
|
205
|
+
@r1.generator.generate(:route).should == "/r1"
|
206
|
+
r1 = @r1.dup
|
207
|
+
r1.generator.generate(:route).should == "/r1"
|
208
|
+
end
|
209
|
+
|
210
|
+
it "should not generate new routes added to a dup on the original" do
|
211
|
+
r1 = @r1.dup
|
212
|
+
r1.add_route("/new_r1", :router => "r4").name(:new_route)
|
213
|
+
lambda do
|
214
|
+
@r1.generator.generate(:new_route).should be_nil
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
218
|
+
it "should generate new routes added to a dup" do
|
219
|
+
r1 = @r1.dup
|
220
|
+
r1.add_route("/new_r1", :router => "r4").name(:new_route)
|
221
|
+
r1.generator.generate(:new_route).should == "/new_r1"
|
222
|
+
end
|
223
|
+
|
224
|
+
it "should generate a route for a nested usher" do
|
225
|
+
@r1.add_route("/mounted").match_partially!.to(@r2)
|
226
|
+
@r2.generator.generate(:route).should == "/mounted/r2"
|
227
|
+
end
|
228
|
+
|
229
|
+
it "should generate a route for a dupped nested usher" do
|
230
|
+
r3 = @r3.dup
|
231
|
+
@r1.add_route("/mounted").match_partially!.to(r3)
|
232
|
+
r3.generator.generate(:route).should == "/mounted/r3"
|
233
|
+
end
|
234
|
+
|
235
|
+
it "should generate a route for 2 differently mounted dupped ushers" do
|
236
|
+
r21 = @r2.dup
|
237
|
+
r22 = @r2.dup
|
238
|
+
|
239
|
+
@r1.add_route("/mounted").match_partially!.to(r21)
|
240
|
+
@r1.add_route("/other_mount").match_partially!.to(r22)
|
241
|
+
|
242
|
+
r21.generator.generate(:route).should == "/mounted/r2"
|
243
|
+
r22.generator.generate(:route).should == "/other_mount/r2"
|
244
|
+
@r2.generator.generate(:route).should == "/r2"
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
end
|
@@ -55,90 +55,96 @@ describe "Usher (for rack) route dispatching" do
|
|
55
55
|
response = route_set.call_with_mock_request("/not-existing-url")
|
56
56
|
response.status.should eql(404)
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
describe "mounted rack instances" do
|
60
60
|
before do
|
61
61
|
@bad_app = mock("bad_app")
|
62
|
-
|
62
|
+
|
63
63
|
@usher2 = Usher::Interface.for(:rack)
|
64
64
|
@usher2.add("/good" ).to(@app)
|
65
65
|
@usher2.add("/bad" ).match_partially!.to(@bad_app)
|
66
66
|
@usher2.add("/some(/:foo)").to(@app)
|
67
|
-
|
67
|
+
|
68
68
|
route_set.add("/foo/:bar", :default_values => {:foo => "foo"}).match_partially!.to(@usher2)
|
69
69
|
route_set.add("/foo", :default_values => {:controller => :foo}).to(@app)
|
70
70
|
end
|
71
|
-
|
71
|
+
|
72
72
|
it "should match the route without nesting" do
|
73
73
|
@app.should_receive(:call).once.with{ |e| e['usher.params'].should == {:controller => :foo}}
|
74
74
|
route_set.call(Rack::MockRequest.env_for("/foo"))
|
75
75
|
end
|
76
|
-
|
76
|
+
|
77
77
|
it "should route through the first route, and the second to the app" do
|
78
78
|
@app.should_receive(:call).once.with{|e| e['usher.params'].should == {:bar => "bar", :foo => "foo"}}
|
79
79
|
result = route_set.call(Rack::MockRequest.env_for("/foo/bar/good"))
|
80
80
|
end
|
81
|
-
|
81
|
+
|
82
82
|
it "should go through to the bad app" do
|
83
83
|
@bad_app.should_receive(:call).once.with{|e| e['usher.params'].should == {:bar => "some_bar", :foo => "foo"}}
|
84
84
|
result = route_set.call(Rack::MockRequest.env_for("/foo/some_bar/bad"))
|
85
85
|
end
|
86
|
-
|
86
|
+
|
87
87
|
it "should match optional routes paramters" do
|
88
88
|
@app.should_receive(:call).once.with{|e| e['usher.params'].should == {:bar => "bar", :foo => "a_different_foo"}}
|
89
89
|
route_set.call(Rack::MockRequest.env_for("/foo/bar/some/a_different_foo"))
|
90
90
|
end
|
91
|
-
|
91
|
+
|
92
92
|
describe "SCRIPT_NAME & PATH_INFO" do
|
93
|
-
it "
|
93
|
+
it "shouldn't update the script name for a fully consumed route" do
|
94
94
|
@app.should_receive(:call).once.with do |e|
|
95
|
-
e['SCRIPT_NAME'].should == "
|
96
|
-
e['PATH_INFO'].should == ""
|
95
|
+
e['SCRIPT_NAME'].should == ""
|
96
|
+
e['PATH_INFO'].should == "/foo"
|
97
97
|
end
|
98
98
|
route_set.call(Rack::MockRequest.env_for("/foo"))
|
99
99
|
end
|
100
|
-
|
100
|
+
|
101
101
|
it "should update the script name and path info for a partially consumed route" do
|
102
102
|
@app.should_receive(:call).once.with do |e|
|
103
103
|
e['SCRIPT_NAME'].should == "/partial"
|
104
104
|
e['PATH_INFO'].should == "/bar/baz"
|
105
105
|
end
|
106
|
-
|
106
|
+
|
107
107
|
route_set.add("/partial").match_partially!.to(@app)
|
108
108
|
route_set.call(Rack::MockRequest.env_for("/partial/bar/baz"))
|
109
109
|
end
|
110
|
-
|
110
|
+
|
111
111
|
it "should consume the path through a mounted usher" do
|
112
112
|
@bad_app.should_receive(:call).once.with do |e|
|
113
113
|
e['SCRIPT_NAME'].should == "/foo/bar/bad"
|
114
114
|
e['PATH_INFO'].should == "/leftovers"
|
115
115
|
end
|
116
|
-
|
116
|
+
|
117
117
|
route_set.call(Rack::MockRequest.env_for("/foo/bar/bad/leftovers"))
|
118
118
|
end
|
119
|
-
|
119
|
+
|
120
|
+
it "should not modify SCRIPT_NAME in place since thin freezes it" do
|
121
|
+
@app.should_receive(:call).once
|
122
|
+
env = Rack::MockRequest.env_for("/foo/bar/good")
|
123
|
+
env["SCRIPT_NAME"] = "".freeze
|
124
|
+
route_set.call(env)
|
125
|
+
end
|
120
126
|
end
|
121
|
-
|
127
|
+
|
122
128
|
describe "dupping" do
|
123
|
-
before do
|
129
|
+
before do
|
124
130
|
@app = mock("app")
|
125
131
|
@u1 = Usher::Interface.for(:rack)
|
126
132
|
@u2 = Usher::Interface.for(:rack)
|
127
|
-
|
133
|
+
|
128
134
|
@u1.add("/one", :default_values => {:one => :one}).to(@app)
|
129
135
|
@u1.add("/mount").match_partially!.to(@u2)
|
130
|
-
|
136
|
+
|
131
137
|
@u2.add("/app", :default_values => {:foo => :bar}).to(@app)
|
132
|
-
|
138
|
+
|
133
139
|
end
|
134
|
-
|
140
|
+
|
135
141
|
it "should allow me to dup the router" do
|
136
142
|
@app.should_receive(:call).twice.with{|e| e['usher.params'].should == {:one => :one}}
|
137
143
|
@u1.call(Rack::MockRequest.env_for("/one"))
|
138
144
|
u1_dash = @u1.dup
|
139
145
|
u1_dash.call(Rack::MockRequest.env_for("/one"))
|
140
146
|
end
|
141
|
-
|
147
|
+
|
142
148
|
it "should allow me to dup the router and add a new route without polluting the original" do
|
143
149
|
@app.should_receive(:call).with{|e| e['usher.params'].should == {:foo => :bar}}
|
144
150
|
u1_dash = @u1.dup
|
@@ -147,27 +153,53 @@ describe "Usher (for rack) route dispatching" do
|
|
147
153
|
@app.should_not_receive(:call)
|
148
154
|
@u1.call(Rack::MockRequest.env_for("/foo"))
|
149
155
|
end
|
150
|
-
|
156
|
+
|
151
157
|
it "should allow me to dup the router and nested routers should remain intact" do
|
152
158
|
@app.should_receive(:call).with{|e| e['usher.params'].should == {:foo => :bar}}
|
153
159
|
u1_dash = @u1.dup
|
154
160
|
u1_dash.call(Rack::MockRequest.env_for("/mount/app"))
|
155
161
|
end
|
156
|
-
|
162
|
+
|
157
163
|
it "should allow me to dup the router and add more routes" do
|
158
164
|
@app.should_receive(:call).with{|e| e['usher.params'].should == {:another => :bar}}
|
159
|
-
|
165
|
+
|
160
166
|
u3 = Usher::Interface.for(:rack)
|
161
167
|
u1_dash = @u1.dup
|
162
|
-
|
168
|
+
|
163
169
|
u3.add("/another_bar", :default_values => {:another => :bar}).to(@app)
|
164
170
|
u1_dash.add("/some/mount").match_partially!.to(u3)
|
165
|
-
|
171
|
+
|
166
172
|
u1_dash.call(Rack::MockRequest.env_for("/some/mount/another_bar"))
|
167
|
-
|
173
|
+
|
168
174
|
@app.should_not_receive(:call)
|
169
175
|
@u1.call(Rack::MockRequest.env_for("/some/mount/another_bar"))
|
170
176
|
end
|
171
177
|
end
|
172
178
|
end
|
179
|
+
|
180
|
+
describe "use as middlware" do
|
181
|
+
it "should allow me to set a default application to use" do
|
182
|
+
@app.should_receive(:call).with{|e| e['usher.params'].should == {:middle => :ware}}
|
183
|
+
|
184
|
+
u = Usher::Interface::RackInterface.new(@app)
|
185
|
+
u.add("/foo", :default_values => {:middle => :ware}).name(:foo)
|
186
|
+
|
187
|
+
u.call(Rack::MockRequest.env_for("/foo"))
|
188
|
+
end
|
189
|
+
|
190
|
+
it "should use the default application when no routes match" do
|
191
|
+
env = Rack::MockRequest.env_for("/not_a_route")
|
192
|
+
@app.should_receive(:call).with(env)
|
193
|
+
u = Usher::Interface::RackInterface.new(@app)
|
194
|
+
u.call(env)
|
195
|
+
end
|
196
|
+
|
197
|
+
it "should allow me to set the application after initialization" do
|
198
|
+
@app.should_receive(:call).with{|e| e['usher.params'].should == {:after => :stuff}}
|
199
|
+
u = Usher::Interface.for(:rack)
|
200
|
+
u.app = @app
|
201
|
+
u.add("/foo", :default_values => {:after => :stuff})
|
202
|
+
u.call(Rack::MockRequest.env_for("/foo"))
|
203
|
+
end
|
204
|
+
end
|
173
205
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'lib/usher'
|
2
|
+
require 'rack'
|
3
|
+
|
4
|
+
require File.join(File.dirname(__FILE__), "..", "..", "spec_helper")
|
5
|
+
route_set = Usher::Interface.for(:rack)
|
6
|
+
route_set.extend(CallWithMockRequestMixin)
|
7
|
+
|
8
|
+
describe "Usher (for rack) route generation" do
|
9
|
+
before(:each) do
|
10
|
+
route_set.reset!
|
11
|
+
@app = MockApp.new("Hello World!")
|
12
|
+
route_set.add("/fixed").name(:fixed)
|
13
|
+
route_set.add("/simple/:simple_var")
|
14
|
+
route_set.add("/named/simple/:named_simple_var").name(:simple)
|
15
|
+
route_set.add("/optional(/:optional_var)")
|
16
|
+
route_set.add("/named/optional(/:named_optional_var)").name(:optional)
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "named routes" do
|
20
|
+
it "should generate a fixed path" do
|
21
|
+
route_set.generate(:fixed).should == "/fixed"
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should generate a basic path route" do
|
25
|
+
route_set.generate(nil, :simple_var => "simple_var").should == "/simple/simple_var"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should generate a named path route" do
|
29
|
+
route_set.generate(:simple, :named_simple_var => "the_var").should == "/named/simple/the_var"
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should generate a route with options" do
|
33
|
+
route_set.generate(nil, :optional_var => "var").should == "/optional/var"
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should generate a named route with options" do
|
37
|
+
route_set.generate(:optional).should == "/named/optional"
|
38
|
+
route_set.generate(:optional, :named_optional_var => "the_var").should == "/named/optional/the_var"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -195,6 +195,14 @@ describe "Usher route recognition" do
|
|
195
195
|
route_set.recognize(build_request({:method => 'get', :path => '/testing/asd.qwe/testing2/poi.zxc/oiu.asd'})).params.should == [[:id, 'asd.qwe'], [:id2, 'poi.zxc'], [:id3, 'oiu.asd']]
|
196
196
|
end
|
197
197
|
|
198
|
+
it "should recognize a path with an optional compontnet" do
|
199
|
+
route_set.add_route("/:name(/:surname)", :conditions => {:method => 'get'})
|
200
|
+
result = route_set.recognize(build_request({:method => 'get', :path => '/homer'}))
|
201
|
+
result.params.should == [[:name, "homer"]]
|
202
|
+
result = route_set.recognize(build_request({:method => 'get', :path => "/homer/simpson"}))
|
203
|
+
result.params.should == [[:name, "homer"],[:surname, "simpson"]]
|
204
|
+
end
|
205
|
+
|
198
206
|
it "should should raise if malformed variables are used" do
|
199
207
|
route_set.add_route('/products/show/:id', :id => /\d+/, :conditions => {:method => 'get'})
|
200
208
|
proc {route_set.recognize(build_request({:method => 'get', :path => '/products/show/qweasd', :domain => 'admin.host.com'}))}.should raise_error
|
@@ -215,6 +223,13 @@ describe "Usher route recognition" do
|
|
215
223
|
route_set.recognize(build_request({:method => 'post', :path => '/foo/bar'})).should.nil?
|
216
224
|
end
|
217
225
|
|
226
|
+
it "should not match partially when a route is not set as partially matched" do
|
227
|
+
route = route_set.add_route("/foo", :foo => :bar)
|
228
|
+
route_set.recognize(build_request(:path => "/foo")).path.route.should == route
|
229
|
+
route_set.recognize(build_request(:path => "/foo/bar")).should be_nil
|
230
|
+
end
|
231
|
+
|
232
|
+
|
218
233
|
end
|
219
234
|
|
220
235
|
describe "dup safety" do
|
@@ -228,8 +243,8 @@ describe "Usher route recognition" do
|
|
228
243
|
end
|
229
244
|
|
230
245
|
it "should recognize the originals routes in the dup" do
|
231
|
-
route_set.recognize(build_request(:path => "/foo")).path.route.destination.should == {:foo =>"foo"}
|
232
|
-
@r2.recognize(
|
246
|
+
route_set.recognize( build_request(:path => "/foo")).path.route.destination.should == {:foo =>"foo"}
|
247
|
+
@r2.recognize( build_request(:path => "/foo")).path.route.destination.should == {:foo =>"foo"}
|
233
248
|
end
|
234
249
|
|
235
250
|
it "should not add routes added to the dup to the original" do
|
@@ -240,8 +255,8 @@ describe "Usher route recognition" do
|
|
240
255
|
|
241
256
|
it "should not delete routes added to the dup to the original" do
|
242
257
|
@r2.delete_route("/foo")
|
243
|
-
route_set.recognize(
|
244
|
-
@r2.recognize(
|
258
|
+
route_set.recognize( build_request(:path => "/foo")).path.route.destination.should == {:foo => "foo"}
|
259
|
+
@r2.recognize( build_request(:path => "/foo")).should == nil
|
245
260
|
end
|
246
261
|
|
247
262
|
|
@@ -263,4 +278,4 @@ describe "Usher route recognition" do
|
|
263
278
|
end
|
264
279
|
|
265
280
|
end
|
266
|
-
end
|
281
|
+
end
|