@@ -203,6 +203,22 @@ public function testSerialize()
203203 $ this ->assertNotSame ($ route , $ unserialized );
204204 }
205205
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+
206222 /**
207223 * Tests that the compiled version is also serialized to prevent the overhead
208224 * of compiling it again after unserialize.
0 commit comments