Version 1
[yaffs-website] / web / core / modules / system / tests / modules / router_test_directory / src / TestControllers.php
diff --git a/web/core/modules/system/tests/modules/router_test_directory/src/TestControllers.php b/web/core/modules/system/tests/modules/router_test_directory/src/TestControllers.php
new file mode 100644 (file)
index 0000000..151c140
--- /dev/null
@@ -0,0 +1,143 @@
+<?php
+
+namespace Drupal\router_test;
+
+use Drupal\Core\Cache\CacheableResponse;
+use Drupal\Core\ParamConverter\ParamNotConvertedException;
+use Drupal\user\UserInterface;
+use Symfony\Cmf\Component\Routing\RouteObjectInterface;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+use Zend\Diactoros\Response\HtmlResponse;
+
+
+/**
+ * Controller routines for testing the routing system.
+ */
+class TestControllers {
+
+  public function test() {
+    return new Response('test');
+  }
+
+  public function test1() {
+    return new Response('test1');
+  }
+
+  public function test2() {
+    return ['#markup' => "test2"];
+  }
+
+  public function test3($value) {
+    return ['#markup' => $value];
+  }
+
+  public function test4($value) {
+    return ['#markup' => $value];
+  }
+
+  public function test5() {
+    return ['#markup' => "test5"];
+  }
+
+  public function test6() {
+    return new Response('test6');
+  }
+
+  public function test7() {
+    return new Response('test7text');
+  }
+
+  public function test8() {
+    return new Response('test8');
+  }
+
+  public function test9($uid) {
+    $text = 'Route not matched.';
+    try {
+      $match = \Drupal::service('router.no_access_checks')->match('/user/' . $uid);
+      if (isset($match['user']) && $match['user'] instanceof UserInterface) {
+        $text = sprintf('User route "%s" was matched.', $match[RouteObjectInterface::ROUTE_NAME]);
+      }
+    }
+    catch (ParamNotConvertedException $e) {
+    }
+    return new Response($text);
+  }
+
+  /**
+   * Test controller for ExceptionHandlingTest::testBacktraceEscaping().
+   *
+   * Passes unsafe HTML as an argument to a method which throws an exception.
+   * This can be used to test if the generated backtrace is properly escaped.
+   */
+  public function test10() {
+    $this->removeExceptionLogger();
+    $this->throwException('<script>alert(\'xss\')</script>');
+  }
+
+  public function test18() {
+    return [
+      '#cache' => [
+        'contexts' => ['url'],
+        'tags' => ['foo'],
+        'max-age' => 60,
+      ],
+      'content' => [
+        '#markup' => 'test18',
+      ],
+    ];
+  }
+
+  public function test21() {
+    return new CacheableResponse('test21');
+  }
+
+  public function test23() {
+    return new HtmlResponse('test23');
+  }
+
+  public function test24() {
+    $this->removeExceptionLogger();
+    throw new \Exception('Escaped content: <p> <br> <h3>');
+  }
+
+  public function test25() {
+    return [
+      '#cache' => [
+        'url',
+      ],
+      '#markup' => \Drupal::requestStack()->getCurrentRequest()->getUri(),
+    ];
+  }
+
+  public function testRouteName(Request $request) {
+    return [
+      '#markup' => $request->attributes->get(RouteObjectInterface::ROUTE_NAME),
+    ];
+  }
+
+  /**
+   * Throws an exception.
+   *
+   * @param string $message
+   *   The message to use in the exception.
+   *
+   * @throws \Exception
+   *   Always thrown.
+   */
+  protected function throwException($message) {
+    throw new \Exception($message);
+  }
+
+  protected function removeExceptionLogger() {
+    // Remove the exception logger from the event dispatcher. We are going to
+    // throw an exception to check if it is properly escaped when rendered as a
+    // backtrace. The exception logger does a call to error_log() which is not
+    // handled by the Simpletest error handler and would cause a test failure.
+    $event_dispatcher = \Drupal::service('event_dispatcher');
+    $exception_logger = \Drupal::service('exception.logger');
+    $event_dispatcher->removeSubscriber($exception_logger);
+  }
+
+}