@@ -271,4 +271,65 @@ public function testSerializedRepresentationKeepsWorking()
271
271
$ this ->assertEquals ($ route , $ unserialized );
272
272
$ this ->assertNotSame ($ route , $ unserialized );
273
273
}
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
+ }
274
335
}
0 commit comments