class Test
Defines a test controller for page titles.
Hierarchy
- class \Drupal\test_page_test\Controller\Test
Expanded class hierarchy of Test
728 string references to 'Test'
- AccessAwareRouterTest::setUp in core/tests/ Drupal/ Tests/ Core/ Routing/ AccessAwareRouterTest.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.
- AjaxTestController::render in core/modules/ system/ tests/ modules/ ajax_test/ src/ Controller/ AjaxTestController.php 
- Returns a render array that will be rendered by AjaxRenderer.
- ajax_test.libraries.yml in core/modules/ system/ tests/ modules/ ajax_test/ ajax_test.libraries.yml 
- core/modules/system/tests/modules/ajax_test/ajax_test.libraries.yml
File
- 
              core/modules/ system/ tests/ modules/ test_page_test/ src/ Controller/ Test.php, line 14 
Namespace
Drupal\test_page_test\ControllerView 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($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.
    @trigger_error('Test deprecation message', E_USER_DEPRECATED);
    @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 'dynamic' title for the '_title_callback' 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.
