createContainer(); $this->controller = new ErrorController($this->container); } /** * Test displaying error with a ShaarliFrontException: display exception message and use its code for HTTTP code */ public function testDisplayFrontExceptionError(): void { $request = $this->createMock(Request::class); $response = new Response(); $message = 'error message'; $errorCode = 418; // Save RainTPL assigned variables $assignedVariables = []; $this->assignTemplateVars($assignedVariables); $result = ($this->controller)( $request, $response, new class($message, $errorCode) extends ShaarliFrontException {} ); static::assertSame($errorCode, $result->getStatusCode()); static::assertSame($message, $assignedVariables['message']); static::assertArrayNotHasKey('stacktrace', $assignedVariables); } /** * Test displaying error with any exception (no debug): only display an error occurred with HTTP 500. */ public function testDisplayAnyExceptionErrorNoDebug(): void { $request = $this->createMock(Request::class); $response = new Response(); // Save RainTPL assigned variables $assignedVariables = []; $this->assignTemplateVars($assignedVariables); $result = ($this->controller)($request, $response, new \Exception('abc')); static::assertSame(500, $result->getStatusCode()); static::assertSame('An unexpected error occurred.', $assignedVariables['message']); static::assertArrayNotHasKey('stacktrace', $assignedVariables); } }