You are here

TestControllers.php in Drupal 8

Namespace

Drupal\menu_test

File

core/modules/system/tests/modules/menu_test/src/TestControllers.php
View source
<?php

namespace Drupal\menu_test;

use Drupal\Component\Render\FormattableMarkup;

/**
 * Controllers for testing the menu integration routing system.
 */
class TestControllers {

  /**
   * Returns page to be used as a login path.
   */
  public function testLogin() {
    return [
      '#markup' => 'This is TestControllers::testLogin.',
    ];
  }

  /**
   * Prints out test data.
   */
  public function test1() {
    return [
      '#markup' => 'test1',
    ];
  }

  /**
   * Prints out test data.
   */
  public function test2() {
    return [
      '#markup' => 'test2',
    ];
  }

  /**
   * Prints out test data.
   */
  public function testSession() {
    if (!isset($_SESSION['menu_test'])) {
      $_SESSION['menu_test'] = 0;
    }
    $_SESSION['menu_test']++;
    return [
      '#markup' => new FormattableMarkup('Session menu_test is @count', [
        '@count' => $_SESSION['menu_test'],
      ]),
    ];
  }

  /**
   * Prints out test data.
   */
  public function testDerived() {
    return [
      '#markup' => 'testDerived',
    ];
  }

  /**
   * Prints out test data.
   *
   * @param string|null $placeholder
   *   A placeholder for the return string.
   *
   * @return string
   *   The string for this route.
   */
  public function testDefaults($placeholder = NULL) {
    if ($placeholder) {
      return [
        '#markup' => new FormattableMarkup("Sometimes there is a placeholder: '@placeholder'.", [
          '@placeholder' => $placeholder,
        ]),
      ];
    }
    else {
      return [
        '#markup' => 'Sometimes there is no placeholder.',
      ];
    }
  }

  /**
   * Prints out test data with contextual links.
   */
  public function testContextual() {
    return [
      '#markup' => 'testContextual',
      'stuff' => [
        '#type' => 'contextual_links',
        '#contextual_links' => [
          'menu_test_menu' => [
            'route_parameters' => [
              'bar' => 1,
            ],
          ],
        ],
      ],
    ];
  }

}

Classes

Namesort descending Description
TestControllers Controllers for testing the menu integration routing system.