@@ -271,4 +271,65 @@ public function testSerializedRepresentationKeepsWorking()
271271 $ this ->assertEquals ($ route , $ unserialized );
272272 $ this ->assertNotSame ($ route , $ unserialized );
273273 }
274+
275+ /**
276+ * @dataProvider provideNonLocalizedRoutes
277+ */
278+ public function testLocaleDefaultWithNonLocalizedRoutes (Route $ route )
279+ {
280+ $ this ->assertNotSame ('fr ' , $ route ->getDefault ('_locale ' ));
281+ $ route ->setDefault ('_locale ' , 'fr ' );
282+ $ this ->assertSame ('fr ' , $ route ->getDefault ('_locale ' ));
283+ }
284+
285+ /**
286+ * @dataProvider provideLocalizedRoutes
287+ */
288+ public function testLocaleDefaultWithLocalizedRoutes (Route $ route )
289+ {
290+ $ expected = $ route ->getDefault ('_locale ' );
291+ $ this ->assertIsString ($ expected );
292+ $ this ->assertNotSame ('fr ' , $ expected );
293+ $ route ->setDefault ('_locale ' , 'fr ' );
294+ $ this ->assertSame ($ expected , $ route ->getDefault ('_locale ' ));
295+ }
296+
297+ /**
298+ * @dataProvider provideNonLocalizedRoutes
299+ */
300+ public function testLocaleRequirementWithNonLocalizedRoutes (Route $ route )
301+ {
302+ $ this ->assertNotSame ('fr ' , $ route ->getRequirement ('_locale ' ));
303+ $ route ->setRequirement ('_locale ' , 'fr ' );
304+ $ this ->assertSame ('fr ' , $ route ->getRequirement ('_locale ' ));
305+ }
306+
307+ /**
308+ * @dataProvider provideLocalizedRoutes
309+ */
310+ public function testLocaleRequirementWithLocalizedRoutes (Route $ route )
311+ {
312+ $ expected = $ route ->getRequirement ('_locale ' );
313+ $ this ->assertIsString ($ expected );
314+ $ this ->assertNotSame ('fr ' , $ expected );
315+ $ route ->setRequirement ('_locale ' , 'fr ' );
316+ $ this ->assertSame ($ expected , $ route ->getRequirement ('_locale ' ));
317+ }
318+
319+ public function provideNonLocalizedRoutes ()
320+ {
321+ return [
322+ [(new Route ('/foo ' ))],
323+ [(new Route ('/foo ' ))->setDefault ('_locale ' , 'en ' )],
324+ [(new Route ('/foo ' ))->setDefault ('_locale ' , 'en ' )->setDefault ('_canonical_route ' , 'foo ' )],
325+ [(new Route ('/foo ' ))->setDefault ('_locale ' , 'en ' )->setDefault ('_canonical_route ' , 'foo ' )->setRequirement ('_locale ' , 'foobar ' )],
326+ ];
327+ }
328+
329+ public function provideLocalizedRoutes ()
330+ {
331+ return [
332+ [(new Route ('/foo ' ))->setDefault ('_locale ' , 'en ' )->setDefault ('_canonical_route ' , 'foo ' )->setRequirement ('_locale ' , 'en ' )],
333+ ];
334+ }
274335}
0 commit comments