]> git.immae.eu Git - github/shaarli/Shaarli.git/blobdiff - tests/front/controller/visitor/ErrorControllerTest.php
Display error details even with dev.debug set to false
[github/shaarli/Shaarli.git] / tests / front / controller / visitor / ErrorControllerTest.php
index 75408cf4040e21297f049729213a63b21f915a3c..e18a6fa2faa278c99eb0071766cabd272ecf6036 100644 (file)
@@ -50,7 +50,31 @@ class ErrorControllerTest extends TestCase
     }
 
     /**
-     * Test displaying error with any exception (no debug): only display an error occurred with HTTP 500.
+     * Test displaying error with any exception (no debug) while logged in:
+     * display full error details
+     */
+    public function testDisplayAnyExceptionErrorNoDebugLoggedIn(): void
+    {
+        $request = $this->createMock(Request::class);
+        $response = new Response();
+
+        // Save RainTPL assigned variables
+        $assignedVariables = [];
+        $this->assignTemplateVars($assignedVariables);
+
+        $this->container->loginManager->method('isLoggedIn')->willReturn(true);
+
+        $result = ($this->controller)($request, $response, new \Exception('abc'));
+
+        static::assertSame(500, $result->getStatusCode());
+        static::assertSame('Error: abc', $assignedVariables['message']);
+        static::assertContainsPolyfill('Please report it on Github', $assignedVariables['text']);
+        static::assertArrayHasKey('stacktrace', $assignedVariables);
+    }
+
+    /**
+     * Test displaying error with any exception (no debug) while logged out:
+     * display standard error without detail
      */
     public function testDisplayAnyExceptionErrorNoDebug(): void
     {
@@ -61,10 +85,13 @@ class ErrorControllerTest extends TestCase
         $assignedVariables = [];
         $this->assignTemplateVars($assignedVariables);
 
+        $this->container->loginManager->method('isLoggedIn')->willReturn(false);
+
         $result = ($this->controller)($request, $response, new \Exception('abc'));
 
         static::assertSame(500, $result->getStatusCode());
         static::assertSame('An unexpected error occurred.', $assignedVariables['message']);
+        static::assertArrayNotHasKey('text', $assignedVariables);
         static::assertArrayNotHasKey('stacktrace', $assignedVariables);
     }
 }