SpecialAttributesRouteSubscriberTest.php in Drupal 9
File
core/tests/Drupal/Tests/Core/EventSubscriber/SpecialAttributesRouteSubscriberTest.php
View source
<?php
namespace Drupal\Tests\Core\EventSubscriber;
use Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber;
use Drupal\Core\Routing\RouteBuildEvent;
use Drupal\Tests\UnitTestCase;
use Drupal\Core\Routing\RouteObjectInterface;
use Symfony\Component\Routing\Route;
use Symfony\Component\Routing\RouteCollection;
class SpecialAttributesRouteSubscriberTest extends UnitTestCase {
public function providerTestOnRouteBuildingInvalidVariables() {
$routes = [];
$paths = [
'/test/{system_path}',
'/test/{_legacy}',
'/test/{' . RouteObjectInterface::ROUTE_OBJECT . '}',
'/test/{' . RouteObjectInterface::ROUTE_NAME . '}',
'/test/{_content}',
'/test/{_form}',
'/test/{_raw_variables}',
];
foreach ($paths as $path) {
$routes[] = [
new Route($path),
];
}
return $routes;
}
public function providerTestOnRouteBuildingValidVariables() {
$routes = [];
$paths = [
'/test/{account}',
'/test/{node}',
'/test/{user}',
'/test/{entity_test}',
];
foreach ($paths as $path) {
$routes[] = [
new Route($path),
];
}
return $routes;
}
public function testOnRouteBuildingValidVariables(Route $route) {
$route_collection = new RouteCollection();
$route_collection
->add('test', $route);
$event = new RouteBuildEvent($route_collection, 'test');
$subscriber = new SpecialAttributesRouteSubscriber();
$this
->assertNull($subscriber
->onAlterRoutes($event));
}
public function testOnRouteBuildingInvalidVariables(Route $route) {
$route_collection = new RouteCollection();
$route_collection
->add('test', $route);
$event = new RouteBuildEvent($route_collection, 'test');
$subscriber = new SpecialAttributesRouteSubscriber();
$this
->expectWarning();
$this
->expectWarningMessage('uses reserved variable names');
$subscriber
->onAlterRoutes($event);
}
}