diff --git a/core/modules/layout/tests/layout_test.module b/core/modules/layout/tests/layout_test.module index 0e84a95..b7a7073 100644 --- a/core/modules/layout/tests/layout_test.module +++ b/core/modules/layout/tests/layout_test.module @@ -6,43 +6,6 @@ */ /** - * Implementation of hook_menu(). - */ -function layout_test_menu() { - $items = array(); - $items['layout-test'] = array( - 'title' => 'Layout test', - 'page callback' => 'layout_test_page', - 'access callback' => TRUE, - ); - return $items; -} - -/** - * Page callback for layout testing. - */ -function layout_test_page() { - // Hack to enable and apply the theme to this page and manually invoke its - // layout plugin and render it. - global $theme; - $theme = 'layout_test_theme'; - theme_enable(array($theme)); - - $display = entity_load('display', 'test_twocol'); - $layout = $display->getLayoutInstance(); - - // @todo This tests that the layout can render its regions, but does not test - // block rendering: http://drupal.org/node/1812720. - // Add sample content in the regions that is looked for in the tests. - $regions = $layout->getRegions(); - foreach ($regions as $region => $info) { - $regions[$region] = '

' . $info['label'] . '

'; - } - - return $layout->renderLayout(FALSE, $regions); -} - -/** * Implements hook_system_theme_info(). */ function layout_test_system_theme_info() { diff --git a/core/modules/layout/tests/layout_test.routing.yml b/core/modules/layout/tests/layout_test.routing.yml new file mode 100644 index 0000000..636e13f --- /dev/null +++ b/core/modules/layout/tests/layout_test.routing.yml @@ -0,0 +1,6 @@ +layout_test_page: + pattern: '/layout-test' + defaults: + _content: '\Drupal\layout_test\Controller\LayoutTestController::layoutTestPage' + requirements: + _access: 'TRUE' diff --git a/core/modules/layout/tests/lib/Drupal/layout_test/Controller/LayoutTestController.php b/core/modules/layout/tests/lib/Drupal/layout_test/Controller/LayoutTestController.php new file mode 100644 index 0000000..bd6ee5f --- /dev/null +++ b/core/modules/layout/tests/lib/Drupal/layout_test/Controller/LayoutTestController.php @@ -0,0 +1,70 @@ +entityStorageController = $entity_storage_controller; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container) { + return new static($container->get('plugin.manager.entity')->getStorageController('display')); + } + + /** + * Displays basic page for layout testing purposes. + * + * @return string + * An HTML string representing the contents of layout_test page. + */ + public function layoutTestPage() { + // Hack to enable and apply the theme to this page and manually invoke its + // layout plugin and render it. + global $theme; + $theme = 'layout_test_theme'; + theme_enable(array($theme)); + + $displays = $this->entityStorageController->load(array('test_twocol')); + $display = reset($displays); + $layout = $display->getLayoutInstance(); + + // @todo This tests that the layout can render its regions, but does not test + // block rendering: http://drupal.org/node/1812720. + // Add sample content in the regions that is looked for in the tests. + $regions = $layout->getRegions(); + foreach ($regions as $region => $info) { + $regions[$region] = '

' . $info['label'] . '

'; + } + + return $layout->renderLayout(FALSE, $regions); + } + +}