class Test

Same name in this branch
  1. 10 core/modules/media/tests/modules/media_test_source/src/Plugin/media/Source/Test.php \Drupal\media_test_source\Plugin\media\Source\Test
Same name in other branches
  1. 9 core/modules/media/tests/modules/media_test_source/src/Plugin/media/Source/Test.php \Drupal\media_test_source\Plugin\media\Source\Test
  2. 9 core/modules/system/tests/modules/test_page_test/src/Controller/Test.php \Drupal\test_page_test\Controller\Test
  3. 8.9.x core/modules/media/tests/modules/media_test_source/src/Plugin/media/Source/Test.php \Drupal\media_test_source\Plugin\media\Source\Test
  4. 8.9.x core/modules/system/tests/modules/test_page_test/src/Controller/Test.php \Drupal\test_page_test\Controller\Test
  5. 11.x core/modules/media/tests/modules/media_test_source/src/Plugin/media/Source/Test.php \Drupal\media_test_source\Plugin\media\Source\Test
  6. 11.x core/modules/system/tests/modules/test_page_test/src/Controller/Test.php \Drupal\test_page_test\Controller\Test

Defines a test controller for page titles.

Hierarchy

  • class \Drupal\test_page_test\Controller\Test

Expanded class hierarchy of Test

841 string references to 'Test'
AccessAwareRouterTest::setUp in core/tests/Drupal/Tests/Core/Routing/AccessAwareRouterTest.php
ActionValidationTest::setUp in core/modules/system/tests/src/Kernel/Entity/ActionValidationTest.php
ActionValidationTest::setUp in core/modules/system/tests/src/Kernel/Entity/ActionValidationTest.php
ActiveLinkResponseFilterTest::providerTestSetLinkActiveClass in core/tests/Drupal/Tests/Core/EventSubscriber/ActiveLinkResponseFilterTest.php
Provides test data for testSetLinkActiveClass().
ActiveWorkspaceUpdateTest::testActiveWorkspaceDuringUpdate in core/modules/workspaces/tests/src/Functional/UpdateSystem/ActiveWorkspaceUpdateTest.php
Tests that there is no active workspace during database updates.

... See full list

File

core/modules/system/tests/modules/test_page_test/src/Controller/Test.php, line 14

Namespace

Drupal\test_page_test\Controller
View source
class Test {
    
    /**
     * Renders a page with a title.
     *
     * @return array
     *   A render array as expected by
     *   \Drupal\Core\Render\RendererInterface::render().
     */
    public function renderTitle() {
        $build = [];
        $build['#markup'] = 'Hello Drupal';
        $build['#title'] = 'Foo';
        return $build;
    }
    
    /**
     * Renders a page.
     *
     * @return array
     *   A render array as expected by
     *   \Drupal\Core\Render\RendererInterface::render().
     */
    public function staticTitle() {
        $build = [];
        $build['#markup'] = 'Hello Drupal';
        return $build;
    }
    
    /**
     * Returns a 'dynamic' title for the '_title_callback' route option.
     *
     * @return string
     *   The page title.
     */
    public function dynamicTitle() {
        return 'Dynamic title';
    }
    
    /**
     * Defines a controller with a cached render array.
     *
     * @return array
     *   A render array
     */
    public function controllerWithCache() {
        $build = [];
        $build['#title'] = '<span>Cached title</span>';
        $build['#cache']['keys'] = [
            'test_controller',
            'with_title',
        ];
        return $build;
    }
    
    /**
     * Returns a generic page render array for title tests.
     *
     * @return array
     *   A render array as expected by
     *   \Drupal\Core\Render\RendererInterface::render().
     */
    public function renderPage() {
        return [
            '#markup' => 'Content',
        ];
    }
    
    /**
     * Throws a HTTP exception.
     *
     * @param int $code
     *   The status code.
     */
    public function httpResponseException(int $code) {
        throw new HttpException($code);
    }
    public function error() {
        trigger_error('foo', E_USER_NOTICE);
        return [
            '#markup' => 'Content',
        ];
    }
    
    /**
     * Sets an HTTP header.
     *
     * @param string $name
     *   The header name.
     * @param string $value
     *   (optional) The header value ot set.
     */
    public function setHeader($name, $value = NULL) {
        $response = new Response();
        $response->headers
            ->set($name, $value);
        return $response;
    }
    
    /**
     * Renders a page with encoded markup.
     *
     * @return array
     *   A render array as expected by
     *   \Drupal\Core\Render\RendererInterface::render().
     */
    public function renderEncodedMarkup() {
        return [
            '#plain_text' => 'Bad html <script>alert(123);</script>',
        ];
    }
    
    /**
     * Renders a page with pipe character in link test.
     *
     * @return array
     *   A render array as expected by
     *   \Drupal\Core\Render\RendererInterface::render().
     */
    public function renderPipeInLink() {
        return [
            '#markup' => '<a href="http://example.com">foo|bar|baz</a>',
        ];
    }
    public function escapedCharacters() {
        return [
            '#prefix' => '<div class="escaped">',
            '#plain_text' => 'Escaped: <"\'&>',
            '#suffix' => '</div>',
        ];
    }
    public function escapedScript() {
        return [
            '#prefix' => '<div class="escaped">',
            // We use #plain_text because #markup would be filtered and that is not
            // being tested here.
'#plain_text' => "<script>alert('XSS');alert(\"XSS\");</script>",
            '#suffix' => '</div>',
        ];
    }
    public function unEscapedScript() {
        return [
            '#prefix' => '<div class="unescaped">',
            '#markup' => Markup::create("<script>alert('Marked safe');alert(\"Marked safe\");</script>"),
            '#suffix' => '</div>',
        ];
    }
    
    /**
     * Loads a page that does a redirect.
     *
     * Drupal uses Symfony's RedirectResponse for generating redirects. That class
     * uses a lower-case 'http-equiv="refresh"'.
     *
     * @see \Symfony\Component\HttpFoundation\RedirectResponse
     */
    public function metaRefresh() {
        return new RedirectResponse(Url::fromRoute('test_page_test.test_page', [], [
            'absolute' => TRUE,
        ])->toString(), 302);
    }
    
    /**
     * Returns a page render array with 2 elements with the same HTML IDs.
     *
     * @return array
     *   A render array as expected by
     *   \Drupal\Core\Render\RendererInterface::render().
     */
    public function renderPageWithDuplicateIds() {
        return [
            '#type' => 'container',
            'title' => [
                '#type' => 'html_tag',
                '#tag' => 'h1',
                '#value' => 'Hello',
                '#attributes' => [
                    'id' => 'page-element',
                ],
            ],
            'description' => [
                '#type' => 'html_tag',
                '#tag' => 'h2',
                '#value' => 'World',
                '#attributes' => [
                    'id' => 'page-element',
                ],
            ],
        ];
    }
    
    /**
     * Returns a page render array with 2 elements with the unique HTML IDs.
     *
     * @return array
     *   A render array as expected by
     *   \Drupal\Core\Render\RendererInterface::render().
     */
    public function renderPageWithoutDuplicateIds() {
        return [
            '#type' => 'container',
            'title' => [
                '#type' => 'html_tag',
                '#tag' => 'h1',
                '#value' => 'Hello',
                '#attributes' => [
                    'id' => 'page-element-title',
                ],
            ],
            'description' => [
                '#type' => 'html_tag',
                '#tag' => 'h2',
                '#value' => 'World',
                '#attributes' => [
                    'id' => 'page-element-description',
                ],
            ],
        ];
    }
    
    /**
     * Returns a page while triggering deprecation notices.
     */
    public function deprecations() {
        // Create 2 identical deprecation messages. This should only trigger a
        // single response header.
        // phpcs:ignore Drupal.Semantics.FunctionTriggerError
        @trigger_error('Test deprecation message', E_USER_DEPRECATED);
        // phpcs:ignore Drupal.Semantics.FunctionTriggerError
        @trigger_error('Test deprecation message', E_USER_DEPRECATED);
        return [
            '#markup' => 'Content that triggers deprecation messages',
        ];
    }

}

Members

Title Sort descending Modifiers Object type Summary
Test::controllerWithCache public function Defines a controller with a cached render array.
Test::deprecations public function Returns a page while triggering deprecation notices.
Test::dynamicTitle public function Returns a &#039;dynamic&#039; title for the &#039;_title_callback&#039; route option.
Test::error public function
Test::escapedCharacters public function
Test::escapedScript public function
Test::httpResponseException public function Throws a HTTP exception.
Test::metaRefresh public function Loads a page that does a redirect.
Test::renderEncodedMarkup public function Renders a page with encoded markup.
Test::renderPage public function Returns a generic page render array for title tests.
Test::renderPageWithDuplicateIds public function Returns a page render array with 2 elements with the same HTML IDs.
Test::renderPageWithoutDuplicateIds public function Returns a page render array with 2 elements with the unique HTML IDs.
Test::renderPipeInLink public function Renders a page with pipe character in link test.
Test::renderTitle public function Renders a page with a title.
Test::setHeader public function Sets an HTTP header.
Test::staticTitle public function Renders a page.
Test::unEscapedScript public function

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.