/** * Create a 404 status in the response * * @param Http\Request $request Request instance. * @param Http\Response $response Response instance. * @return Http\Response */ private function create404(Http\Request $request, Http\Response $response) { $response = $response->withStatus(404); $originalRequest = $request->getOriginalRequest(); $uri = $originalRequest->getUri(); $escaper = new Escaper(); $message = sprintf("Cannot %s %s\n", $escaper->escapeHtml($request->getMethod()), $escaper->escapeHtml((string) $uri)); return $response->end($message); }
public function testDecoratorProxiesToAllMethods() { $stream = $this->getMock('Psr\\Http\\Message\\StreamInterface'); $psrRequest = new PsrRequest([], [], 'http://example.com', 'POST', $stream, ['Accept' => 'application/xml', 'X-URL' => 'http://example.com/foo']); $request = new Request($psrRequest); $this->assertEquals('1.1', $request->getProtocolVersion()); $this->assertSame($stream, $request->getBody()); $this->assertSame($psrRequest->getHeaders(), $request->getHeaders()); $this->assertEquals($psrRequest->getRequestTarget(), $request->getRequestTarget()); }
/** * Strip the route from the request path * * @param Http\Request $request * @param string $route * @return Http\Request */ private function stripRouteFromPath(Http\Request $request, $route) { $this->removed = $route; $uri = $request->getUri(); $path = $this->getTruncatedPath($route, $uri->getPath()); $new = $uri->withPath($path); // Root path of route is treated differently if ($path === '/' && '/' === substr($uri->getPath(), -1)) { $this->removed .= '/'; } return $request->withUri($new); }