diff --git a/core/modules/system/lib/Drupal/system/Tests/Routing/ControllerResolverTest.php b/core/modules/system/lib/Drupal/system/Tests/Routing/ControllerResolverTest.php deleted file mode 100644 index e9c6299..0000000 --- a/core/modules/system/lib/Drupal/system/Tests/Routing/ControllerResolverTest.php +++ /dev/null @@ -1,43 +0,0 @@ - 'Controller Resolver tests', - 'description' => 'Tests that the Drupal-extended ControllerResolver is functioning properly.', - 'group' => 'Routing', - ); - } - - /** - * Confirms that a container aware controller gets returned. - */ - function testContainerAware() { - $container = new Container(); - $resolver = new ControllerResolver($container); - - $request = Request::create('/some/path'); - $request->attributes->set('_controller', '\Drupal\system\Tests\Routing\MockController::run'); - - $controller = $resolver->getController($request); - - $this->assertTrue($controller[0] instanceof MockController, 'The correct controller object was returned.'); - } -} diff --git a/core/tests/Drupal/Tests/Core/Routing/ControllerResolverTest.php b/core/tests/Drupal/Tests/Core/Routing/ControllerResolverTest.php new file mode 100644 index 0000000..566604f --- /dev/null +++ b/core/tests/Drupal/Tests/Core/Routing/ControllerResolverTest.php @@ -0,0 +1,109 @@ + 'Controller Resolver tests', + 'description' => 'Tests that the Drupal-extended ControllerResolver is functioning properly.', + 'group' => 'Routing', + ); + } + + /** + * Confirms that a container aware controller gets returned. + */ + public function testContainerAware() { + $container = new Container(); + $resolver = new ControllerResolver($container); + + $request = Request::create('/some/path'); + $request->attributes->set('_controller', '\Drupal\Tests\Core\Routing\MockController::run'); + + $controller = $resolver->getController($request); + + $this->assertTrue($controller[0] instanceof MockController, 'The wrong controller object was returned.'); + } + + /** + * Tests that the proper exception is thrown with a bad class. + * + * @expectedException InvalidArgumentException + */ + public function testInvalidArgumentException() { + $container = new Container(); + $resolver = new ControllerResolver($container); + + $request = Request::create('/some/path'); + $request->attributes->set('_controller', '\Drupal\Tests\Core\Routing\MockControllerBadClass::run'); + + // This should throw an exception. + $controller = $resolver->getController($request); + } + + /** + * Tests that the proper exception is thrown with a bad name. + * + * @expectedException LogicException + */ + public function testLogicException() { + $container = new Container(); + $resolver = new ControllerResolver($container); + + $request = Request::create('/some/path'); + $request->attributes->set('_controller', '\Drupal\Tests\Core\Routing\MockControllerBadFormatting'); + + // This should throw an exception. + $controller = $resolver->getController($request); + } + + /** + * Test the service:method notation. + */ + public function testServiceMethodNotation() { + $container = new Container(); + $resolver = new ControllerResolver($container); + + $request = Request::create('/some/path'); + + $container->set('mock.controller', new \Drupal\Tests\Core\Routing\MockController); + $request->attributes->set('_controller', 'mock.controller:run'); + + $controller = $resolver->getController($request); + + $this->assertTrue($controller[0] instanceof MockController, 'The wrong controller object was returned.'); + } + + /** + * Test using the ControllerInterface for the controller. + */ + public function testControllerInterface() { + $container = new Container(); + $resolver = new ControllerResolver($container); + + $request = Request::create('/some/path'); + $request->attributes->set('_controller', '\Drupal\Tests\Core\Routing\MockControllerAsInterface::run'); + + $controller = $resolver->getController($request); + + $this->assertTrue($controller[0] instanceof MockControllerAsInterface, 'The wrong controller object was returned.'); + } +} diff --git a/core/modules/system/lib/Drupal/system/Tests/Routing/MockController.php b/core/tests/Drupal/Tests/Core/Routing/MockController.php similarity index 74% rename from core/modules/system/lib/Drupal/system/Tests/Routing/MockController.php rename to core/tests/Drupal/Tests/Core/Routing/MockController.php index bc9d093..ab73514 100644 --- a/core/modules/system/lib/Drupal/system/Tests/Routing/MockController.php +++ b/core/tests/Drupal/Tests/Core/Routing/MockController.php @@ -2,10 +2,10 @@ /** * @file - * Contains Drupal\system\Tests\Routing\MockController. + * Contains Drupal\Tests\Core\Routing\MockController. */ -namespace Drupal\system\Tests\Routing; +namespace Drupal\Tests\Core\Routing; use Symfony\Component\DependencyInjection\ContainerAware; diff --git a/core/tests/Drupal/Tests/Core/Routing/MockControllerAsInterface.php b/core/tests/Drupal/Tests/Core/Routing/MockControllerAsInterface.php new file mode 100644 index 0000000..9bc15ce --- /dev/null +++ b/core/tests/Drupal/Tests/Core/Routing/MockControllerAsInterface.php @@ -0,0 +1,43 @@ +called = TRUE; + + return $controller; + } + +}