From 952311959d12326a8366b98109a5b3e03064fc1d Mon Sep 17 00:00:00 2001 From: Alex Pott <alex.a.pott@googlemail.com> Date: Tue, 29 Jul 2014 12:38:19 +0100 Subject: [PATCH] Issue #2051877 by dawehner, sun, tstoeckler: Log error when people use invalid route parameters. --- .../SpecialAttributesRouteSubscriber.php | 10 +++------ .../SpecialAttributesRouteSubscriberTest.php | 21 +++++-------------- 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/core/lib/Drupal/Core/EventSubscriber/SpecialAttributesRouteSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/SpecialAttributesRouteSubscriber.php index 8556561d33c9..8c11bad34e11 100644 --- a/core/lib/Drupal/Core/EventSubscriber/SpecialAttributesRouteSubscriber.php +++ b/core/lib/Drupal/Core/EventSubscriber/SpecialAttributesRouteSubscriber.php @@ -33,16 +33,12 @@ protected function alterRoutes(RouteCollection $collection) { '_content', '_form', ); - - foreach ($collection->all() as $route) { + foreach ($collection->all() as $name => $route) { if ($not_allowed_variables = array_intersect($route->compile()->getVariables(), $special_variables)) { - $placeholders = array('@variables' => implode(', ', $not_allowed_variables)); - drupal_set_message(String::format('The following variables are reserved names by drupal: @variables', $placeholders)); - watchdog('error', 'The following variables are reserved names by drupal: @variables', $placeholders); - return FALSE; + $reserved = implode(', ', $not_allowed_variables); + trigger_error(sprintf('Route %s uses reserved variable names: %s', $name, $reserved), E_USER_WARNING); } } - return TRUE; } /** diff --git a/core/tests/Drupal/Tests/Core/EventSubscriber/SpecialAttributesRouteSubscriberTest.php b/core/tests/Drupal/Tests/Core/EventSubscriber/SpecialAttributesRouteSubscriberTest.php index cdab44f16a87..3ce881f26ebd 100644 --- a/core/tests/Drupal/Tests/Core/EventSubscriber/SpecialAttributesRouteSubscriberTest.php +++ b/core/tests/Drupal/Tests/Core/EventSubscriber/SpecialAttributesRouteSubscriberTest.php @@ -5,7 +5,7 @@ * Contains \Drupal\Tests\Core\EventSubscriber\SpecialAttributesRouteSubscriberTest. */ -namespace Drupal\Tests\Core\EventSubscriber { +namespace Drupal\Tests\Core\EventSubscriber; use Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber; use Drupal\Core\Routing\RouteBuildEvent; @@ -85,7 +85,7 @@ public function testOnRouteBuildingValidVariables(Route $route) { $route_collection = new RouteCollection(); $route_collection->add('test', $route); $event = new RouteBuildEvent($route_collection, 'test'); - $this->assertTrue($this->specialAttributesRouteSubscriber->onAlterRoutes($event)); + $this->specialAttributesRouteSubscriber->onAlterRoutes($event); } /** @@ -95,25 +95,14 @@ public function testOnRouteBuildingValidVariables(Route $route) { * The route to check. * * @dataProvider providerTestOnRouteBuildingInvalidVariables + * @expectedException \PHPUnit_Framework_Error_Warning + * @expectedExceptionMessage uses reserved variable names */ public function testOnRouteBuildingInvalidVariables(Route $route) { $route_collection = new RouteCollection(); $route_collection->add('test', $route); $event = new RouteBuildEvent($route_collection, 'test'); - $this->assertFalse($this->specialAttributesRouteSubscriber->onAlterRoutes($event)); + $this->specialAttributesRouteSubscriber->onAlterRoutes($event); } } - -} - -namespace { - if (!function_exists('watchdog')) { - function watchdog($type, $message, array $args = array()) { - } - } - if (!function_exists('drupal_set_message')) { - function drupal_set_message($type = NULL, $message = '') { - } - } -} -- GitLab