|
21 | 21 | use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\AliasRouteController;
|
22 | 22 | use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\BazClass;
|
23 | 23 | use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\DefaultValueController;
|
| 24 | +use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\DeprecatedAliasCustomMessageRouteController; |
| 25 | +use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\DeprecatedAliasRouteController; |
24 | 26 | use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\EncodingClass;
|
25 | 27 | use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\ExplicitLocalizedActionPathController;
|
26 | 28 | use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\ExtendedRouteOnClassController;
|
|
38 | 40 | use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\MethodActionControllers;
|
39 | 41 | use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\MethodsAndSchemes;
|
40 | 42 | use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\MissingRouteNameController;
|
| 43 | +use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\MultipleDeprecatedAliasRouteController; |
41 | 44 | use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\NothingButNameController;
|
42 | 45 | use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\PrefixedActionLocalizedRouteController;
|
43 | 46 | use Symfony\Component\Routing\Tests\Fixtures\AttributeFixtures\PrefixedActionPathController;
|
@@ -395,4 +398,70 @@ public function testAliasesOnInvokableClass()
|
395 | 398 | $this->assertEquals(new Alias('invokable_path'), $routes->getAlias('alias'));
|
396 | 399 | $this->assertEquals(new Alias('invokable_path'), $routes->getAlias('completely_different_name'));
|
397 | 400 | }
|
| 401 | + |
| 402 | + public function testDeprecatedAlias() |
| 403 | + { |
| 404 | + $routes = $this->loader->load(DeprecatedAliasRouteController::class); |
| 405 | + $route = $routes->get('action_with_deprecated_alias'); |
| 406 | + $expected = (new Alias('action_with_deprecated_alias')) |
| 407 | + ->setDeprecated( |
| 408 | + 'MyBundleFixture', |
| 409 | + '1.0', |
| 410 | + 'The "%alias_id%" route alias is deprecated. You should stop using it, as it will be removed in the future.' |
| 411 | + ); |
| 412 | + $actual = $routes->getAlias('my_other_alias_deprecated'); |
| 413 | + $this->assertCount(1, $routes); |
| 414 | + $this->assertSame('/path', $route->getPath()); |
| 415 | + $this->assertEquals($expected, $actual); |
| 416 | + } |
| 417 | + |
| 418 | + public function testDeprecatedAliasWithCustomMessage() |
| 419 | + { |
| 420 | + $routes = $this->loader->load(DeprecatedAliasCustomMessageRouteController::class); |
| 421 | + $route = $routes->get('action_with_deprecated_alias'); |
| 422 | + $expected = (new Alias('action_with_deprecated_alias')) |
| 423 | + ->setDeprecated( |
| 424 | + 'MyBundleFixture', |
| 425 | + '1.0', |
| 426 | + '%alias_id% alias is deprecated.' |
| 427 | + ); |
| 428 | + $actual = $routes->getAlias('my_other_alias_deprecated'); |
| 429 | + $this->assertCount(1, $routes); |
| 430 | + $this->assertSame('/path', $route->getPath()); |
| 431 | + $this->assertEquals($expected, $actual); |
| 432 | + } |
| 433 | + |
| 434 | + public function testMultipleDeprecatedAlias() |
| 435 | + { |
| 436 | + $routes = $this->loader->load(MultipleDeprecatedAliasRouteController::class); |
| 437 | + $route = $routes->get('action_with_multiple_deprecated_alias'); |
| 438 | + $this->assertCount(1, $routes); |
| 439 | + $this->assertSame('/path', $route->getPath()); |
| 440 | + |
| 441 | + $dataset = [ |
| 442 | + 'my_first_alias_deprecated' => [ |
| 443 | + 'package' => 'MyFirstBundleFixture', |
| 444 | + 'version' => '1.0' |
| 445 | + ], |
| 446 | + 'my_second_alias_deprecated' => [ |
| 447 | + 'package' => 'MySecondBundleFixture', |
| 448 | + 'version' => '2.0' |
| 449 | + ], |
| 450 | + 'my_third_alias_deprecated' => [ |
| 451 | + 'package' => 'SurprisedThirdBundleFixture', |
| 452 | + 'version' => '3.0' |
| 453 | + ], |
| 454 | + ]; |
| 455 | + |
| 456 | + foreach ($dataset as $aliasName => $aliasData) { |
| 457 | + $expected = (new Alias('action_with_multiple_deprecated_alias')) |
| 458 | + ->setDeprecated( |
| 459 | + $aliasData['package'], |
| 460 | + $aliasData['version'], |
| 461 | + 'The "%alias_id%" route alias is deprecated. You should stop using it, as it will be removed in the future.' |
| 462 | + ); |
| 463 | + $actual = $routes->getAlias($aliasName); |
| 464 | + $this->assertEquals($expected, $actual); |
| 465 | + } |
| 466 | + } |
398 | 467 | }
|
0 commit comments