UnsupportedRouteAttributePropertiesTest.php
Same filename and directory in other branches
Namespace
Drupal\Tests\Core\RoutingFile
-
core/
tests/ Drupal/ Tests/ Core/ Routing/ UnsupportedRouteAttributePropertiesTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\Tests\Core\Routing;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Routing\AttributeRouteDiscovery;
use Drupal\Core\Routing\UnsupportedRouteAttributePropertyException;
use Drupal\Tests\UnitTestCase;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\Group;
use Symfony\Component\Routing\Attribute\Route;
/**
* Tests \Drupal\Core\Routing\AttributeRouteDiscovery.
*/
class UnsupportedRouteAttributePropertiesTest extends UnitTestCase {
/**
* @legacy-covers ::createRouteCollection
*/
public function testException(string $class, string $message, bool $isForm = FALSE) : void {
$discovery = new AttributeRouteDiscovery(new \ArrayIterator());
$reflection = new \ReflectionClass($discovery);
$method = $reflection->getMethod($isForm ? 'createFormRouteCollection' : 'createControllerRouteCollection');
$this->expectException(UnsupportedRouteAttributePropertyException::class);
$this->expectExceptionMessage($message);
$method->invoke($discovery, new \ReflectionClass($class));
}
public static function providerTestException() : array {
return [
'method: missing_name' => [
MethodRouteMissingName::class,
'The Route attribute on "Drupal\\Tests\\Core\\Routing\\MethodRouteMissingName::attributeMethod()" is missing a required "name" property.',
],
'method: locale' => [
MethodRouteLocale::class,
'The "locale" route attribute is not supported on route "MethodRouteLocale" in "Drupal\\Tests\\Core\\Routing\\MethodRouteLocale::attributeMethod()"',
],
'method: localized_paths' => [
MethodRouteLocalizedPaths::class,
'The "path" route attribute does not support arrays on route "MethodRouteLocalizedPaths" in "Drupal\\Tests\\Core\\Routing\\MethodRouteLocalizedPaths::attributeMethod()"',
],
'method: condition' => [
MethodRouteCondition::class,
'The "condition" route attribute is not supported on route "MethodRouteCondition" in "Drupal\\Tests\\Core\\Routing\\MethodRouteCondition::attributeMethod()"',
],
'class: locale' => [
ClassRouteLocale::class,
'The "locale" route attribute is not supported in class "Drupal\\Tests\\Core\\Routing\\ClassRouteLocale"',
],
'class: localized_paths' => [
ClassRouteLocalizedPaths::class,
'The "path" route attribute does not support arrays in class "Drupal\\Tests\\Core\\Routing\\ClassRouteLocalizedPaths"',
],
'class: condition' => [
ClassRouteCondition::class,
'The "condition" route attribute is not supported in class "Drupal\\Tests\\Core\\Routing\\ClassRouteCondition"',
],
'form_class: name' => [
FormClassMissingName::class,
'The Route attribute on "Drupal\\Tests\\Core\\Routing\\FormClassMissingName" is missing a required "name" property.',
TRUE,
],
'form_class: locale' => [
FormClassRouteLocale::class,
'The "locale" route attribute is not supported on route "form_class_route_locale" in "Drupal\\Tests\\Core\\Routing\\FormClassRouteLocale"',
TRUE,
],
'form_class: localized_paths' => [
FormClassRouteLocalizedPaths::class,
'The "path" route attribute does not support arrays on route "form_class_route_localized_paths" in "Drupal\\Tests\\Core\\Routing\\FormClassRouteLocalizedPaths"',
TRUE,
],
'form_class: condition' => [
FormClassRouteCondition::class,
'The "condition" route attribute is not supported on route "form_class_route_condition" in "Drupal\\Tests\\Core\\Routing\\FormClassRouteCondition"',
TRUE,
],
];
}
}
/**
* Test class.
*/
class MethodRouteLocale {
public function attributeMethod() : array {
return [
'#markup' => 'Testing method with a Route attribute',
];
}
}
/**
* Test class.
*/
class MethodRouteLocalizedPaths {
public function attributeMethod() : array {
return [
'#markup' => 'Testing method with a Route attribute',
];
}
}
/**
* Test class.
*/
class MethodRouteCondition {
public function attributeMethod() : array {
return [
'#markup' => 'Testing method with a Route attribute',
];
}
}
/**
* Test class.
*/
class ClassRouteLocale {
public function attributeMethod() : array {
return [
'#markup' => 'Testing method with a Route attribute',
];
}
}
/**
* Test class.
*/
class ClassRouteLocalizedPaths {
public function attributeMethod() : array {
return [
'#markup' => 'Testing method with a Route attribute',
];
}
}
/**
* Test class.
*/
class ClassRouteCondition {
public function attributeMethod() : array {
return [
'#markup' => 'Testing method with a Route attribute',
];
}
}
/**
* Test class.
*/
class MethodRouteMissingName {
public function attributeMethod() : array {
return [
'#markup' => 'Testing method with a Route attribute',
];
}
}
/**
* Test class.
*/
class FormClassMissingName extends FormBase {
/**
* {@inheritdoc}
*/
public function getFormId() : string {
return '';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) : array {
return [];
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) : void {
}
}
/**
* Test class.
*/
class FormClassRouteLocale extends FormBase {
/**
* {@inheritdoc}
*/
public function getFormId() : string {
return '';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) : array {
return [];
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) : void {
}
}
/**
* Test class.
*/
class FormClassRouteLocalizedPaths extends FormBase {
/**
* {@inheritdoc}
*/
public function getFormId() : string {
return '';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) : array {
return [];
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) : void {
}
}
/**
* Test class.
*/
class FormClassRouteCondition extends FormBase {
/**
* {@inheritdoc}
*/
public function getFormId() : string {
return '';
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) : array {
return [];
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) : void {
}
}
Classes
| Title | Deprecated | Summary |
|---|---|---|
| ClassRouteCondition | Test class. | |
| ClassRouteLocale | Test class. | |
| ClassRouteLocalizedPaths | Test class. | |
| FormClassMissingName | Test class. | |
| FormClassRouteCondition | Test class. | |
| FormClassRouteLocale | Test class. | |
| FormClassRouteLocalizedPaths | Test class. | |
| MethodRouteCondition | Test class. | |
| MethodRouteLocale | Test class. | |
| MethodRouteLocalizedPaths | Test class. | |
| MethodRouteMissingName | Test class. | |
| UnsupportedRouteAttributePropertiesTest | Tests \Drupal\Core\Routing\AttributeRouteDiscovery. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.