Version 1
[yaffs-website] / web / core / tests / Drupal / KernelTests / RequestProcessing / RedirectOnExceptionTest.php
diff --git a/web/core/tests/Drupal/KernelTests/RequestProcessing/RedirectOnExceptionTest.php b/web/core/tests/Drupal/KernelTests/RequestProcessing/RedirectOnExceptionTest.php
new file mode 100644 (file)
index 0000000..c7eb3b2
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+
+namespace Drupal\KernelTests\RequestProcessing;
+
+use Drupal\KernelTests\KernelTestBase;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+
+/**
+ * Tests redirects on exception pages.
+ *
+ * @group request_processing
+ */
+class RedirectOnExceptionTest extends KernelTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = ['system', 'test_page_test'];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+
+    \Drupal::service('router.builder')->rebuild();
+  }
+
+  public function testRedirectOn404() {
+    \Drupal::configFactory()->getEditable('system.site')
+      ->set('page.404', '/test-http-response-exception/' . Response::HTTP_PERMANENTLY_REDIRECT)
+      ->save();
+
+    /** @var \Symfony\Component\HttpKernel\HttpKernelInterface $http_kernel */
+    $http_kernel = \Drupal::service('http_kernel');
+
+    // Foo doesn't exist, so this triggers the 404 page.
+    $request = Request::create('/foo');
+    $response = $http_kernel->handle($request);
+    $this->assertEquals(Response::HTTP_PERMANENTLY_REDIRECT, $response->getStatusCode());
+  }
+
+}