/** * {@inheritdoc} */ public function handle(Request $request, $type = self::MASTER_REQUEST, $catch = true) { $response = parent::handle($request, $type, $catch); if ($this->ignoreNotFound && $response->getStatusCode() == Response::HTTP_NOT_FOUND) { $this->logger->debug('passing request to the next app, due to 404 response', ['uri' => $request->getRequestUri()]); return $this->app->handle($request, $type, $catch); } return $response; }
/** * @dataProvider handleDataProvider */ public function testHandle($uri, $canHandle, $status, $content, $contentType) { $mockRequest = $this->getMockBuilder('Symfony\\Component\\HttpFoundation\\Request')->setMethods(['getRequestUri'])->getMockForAbstractClass(); $mockRequest->expects($this->any())->method('getRequestUri')->will($this->returnValue($uri)); $app = new HttpServer(static::getFixturesDirectory(), 'default', ['someext']); $response = $app->handle($mockRequest); if ($canHandle) { $this->assertEquals($status, $response->getStatusCode()); $this->assertEquals($content, $response->getContent()); if (null !== $contentType) { $this->assertEquals($contentType, $response->headers->get('Content-type')); } } else { $this->assertEquals(Response::HTTP_NOT_FOUND, $response->getStatusCode()); } }