@@ -203,6 +203,22 @@ public function testSerialize()
203
203
$ this ->assertNotSame ($ route , $ unserialized );
204
204
}
205
205
206
+ public function testInlineDefaultAndRequirement ()
207
+ {
208
+ $ this ->assertEquals ((new Route ('/foo/{bar} ' ))->setDefault ('bar ' , null ), new Route ('/foo/{bar?} ' ));
209
+ $ this ->assertEquals ((new Route ('/foo/{bar} ' ))->setDefault ('bar ' , 'baz ' ), new Route ('/foo/{bar?baz} ' ));
210
+ $ this ->assertEquals ((new Route ('/foo/{bar} ' ))->setDefault ('bar ' , 'baz<buz> ' ), new Route ('/foo/{bar?baz<buz>} ' ));
211
+ $ this ->assertEquals ((new Route ('/foo/{bar} ' ))->setDefault ('bar ' , 'baz ' ), new Route ('/foo/{bar?} ' , array ('bar ' => 'baz ' )));
212
+
213
+ $ this ->assertEquals ((new Route ('/foo/{bar} ' ))->setRequirement ('bar ' , '.* ' ), new Route ('/foo/{bar<.*>} ' ));
214
+ $ this ->assertEquals ((new Route ('/foo/{bar} ' ))->setRequirement ('bar ' , '> ' ), new Route ('/foo/{bar<>>} ' ));
215
+ $ this ->assertEquals ((new Route ('/foo/{bar} ' ))->setRequirement ('bar ' , '\d+ ' ), new Route ('/foo/{bar<.*>} ' , array (), array ('bar ' => '\d+ ' )));
216
+ $ this ->assertEquals ((new Route ('/foo/{bar} ' ))->setRequirement ('bar ' , '[a-z]{2} ' ), new Route ('/foo/{bar<[a-z]{2}>} ' ));
217
+
218
+ $ this ->assertEquals ((new Route ('/foo/{bar} ' ))->setDefault ('bar ' , null )->setRequirement ('bar ' , '.* ' ), new Route ('/foo/{bar<.*>?} ' ));
219
+ $ this ->assertEquals ((new Route ('/foo/{bar} ' ))->setDefault ('bar ' , '<> ' )->setRequirement ('bar ' , '> ' ), new Route ('/foo/{bar<>>?<>} ' ));
220
+ }
221
+
206
222
/**
207
223
* Tests that the compiled version is also serialized to prevent the overhead
208
224
* of compiling it again after unserialize.
0 commit comments