public function testIsNotExcluded() { $request = ServerRequestFactory::fromGlobals(); $request = $request->withHeader('X-Forwarded', '80.80.80.80'); $excluder = new IP($this->excludedIPs, ['10.10.10.10']); self::assertFalse($excluder->isExcluded($request)); }
/** * Handles the request and returns a response. * * @param \Psr\Http\Message\ServerRequestInterface|null $request * @param \Psr\Http\Message\ResponseInterface|null $response * * @return \Psr\Http\Message\ResponseInterface */ public function handle(ServerRequestInterface $request = null, ResponseInterface $response = null) { $request = $request ?: ServerRequestFactory::fromGlobals(); $response = $response ?: new Response(); $this->emit(Event::REQUEST_RECEIVED, $request, $response); return $this->dispatchThroughMiddleware($request, $response); }
/** * @test */ public function tagsListIsReturnedIfCorrectShortCodeIsProvided() { $shortCode = 'abc123'; $this->shortUrlService->setTagsByShortCode($shortCode, [])->willReturn(new ShortUrl())->shouldBeCalledTimes(1); $response = $this->action->__invoke(ServerRequestFactory::fromGlobals()->withAttribute('shortCode', 'abc123')->withParsedBody(['tags' => []]), new Response()); $this->assertEquals(200, $response->getStatusCode()); }
/** * @test */ public function invalidApiKeyReturnsErrorResponse() { $this->apiKeyService->getByKey('foo')->willReturn((new ApiKey())->setEnabled(false))->shouldBeCalledTimes(1); $request = ServerRequestFactory::fromGlobals()->withParsedBody(['apiKey' => 'foo']); $response = $this->action->__invoke($request, new Response()); $this->assertEquals(401, $response->getStatusCode()); }
/** * @test */ public function datesAreReadFromQuery() { $shortCode = 'abc123'; $this->visitsTracker->info($shortCode, new DateRange(null, new \DateTime('2016-01-01 00:00:00')))->willReturn([])->shouldBeCalledTimes(1); $response = $this->action->__invoke(ServerRequestFactory::fromGlobals()->withAttribute('shortCode', $shortCode)->withQueryParams(['endDate' => '2016-01-01 00:00:00']), new Response()); $this->assertEquals(200, $response->getStatusCode()); }
/** * Get the request from server. * * @return RequestInterface Server request */ public function getRequest() { if (!isset($this->request)) { $this->request = ServerRequestFactory::fromGlobals(); } return $this->request; }
/** * @test */ public function anExceptionsReturnsErrorResponse() { $page = 3; $this->service->listShortUrls($page, null, [], null)->willThrow(\Exception::class)->shouldBeCalledTimes(1); $response = $this->action->__invoke(ServerRequestFactory::fromGlobals()->withQueryParams(['page' => $page]), new Response()); $this->assertEquals(500, $response->getStatusCode()); }
/** * Get Request * * @param array $routeVariables Route Variables * * @return HttpMessages_CraftRequest Request */ public function getRequest(array $routeVariables = []) { $route = craft()->httpMessages_routes->getRoute($routeVariables); $serverRequest = \Zend\Diactoros\ServerRequestFactory::fromGlobals(); $request = HttpMessages_RequestFactory::fromRequest($serverRequest); return $request->withRoute($route); }
public function testOversizedResponse() { $expectedClass = 'NetworkJs\\Response\\OversizedResponse'; $moduleName = 'download'; $this->assertInstanceOf($expectedClass, ResponseFactory::fromValues($moduleName, 10, 5)); $this->assertInstanceOf($expectedClass, ResponseFactory::fromRequest(ServerRequestFactory::fromGlobals(null, ['module' => $moduleName, 'size' => 10]), 5)); }
public static function fromGlobals(array $server = null, array $query = null, array $body = null, array $cookies = null, array $files = null) { $server = parent::normalizeServer($server); $files = parent::normalizeFiles($files); $headers = parent::marshalHeaders($server); return new ServerRequest($server, $files, parent::marshalUriFromServer($server, $headers), parent::get('REQUEST_METHOD', $server, 'GET'), 'php://input', $headers, $cookies, $query, $body, self::marshalProtocolVersion($server)); }
/** * @test */ public function nonRestPathsAreNotProcessed() { $request = ServerRequestFactory::fromGlobals()->withUri(new Uri('/non-rest')); $test = $this; $this->middleware->__invoke($request, new Response(), function ($req) use($request, $test) { $test->assertSame($request, $req); }); }
/** * {@inheritdoc} */ public function setUp() { $this->request = ServerRequestFactory::fromGlobals(); $this->response = new Response(); $this->callback = function ($request, $response) { return $response; }; }
public static function createRequest(RequestInterface $request) { $psrRequest = ServerRequestFactory::fromGlobals()->withUri($request->getUri())->withMethod($request->getMethod())->withBody($request->getBody()); foreach ($request->getHeaders() as $name => $values) { $psrRequest = $psrRequest->withHeader($name, $values); } return $psrRequest; }
/** * @test */ public function to_applies_filters() { $applied = false; $this->proxy->forward(ServerRequestFactory::fromGlobals())->filter(function ($request, $response) use(&$applied) { $applied = true; })->to('http://www.example.com'); $this->assertTrue($applied); }
/** * @test */ public function aGenericExceptionWillReturnError() { $this->urlShortener->urlToShortCode(Argument::type(Uri::class), Argument::type('array'))->willThrow(\Exception::class)->shouldBeCalledTimes(1); $request = ServerRequestFactory::fromGlobals()->withParsedBody(['longUrl' => 'http://www.domain.com/foo/bar']); $response = $this->action->__invoke($request, new Response()); $this->assertEquals(500, $response->getStatusCode()); $this->assertTrue(strpos($response->getBody()->getContents(), RestUtils::UNKNOWN_ERROR) > 0); }
public function testNamedRoutes() { $routes = new RouteCollection(new HttpMessageStrategy()); $routes->addRoute('GET', '/user/{id}', function () { })->setName('UserProfile'); $builder = new UrlBuilder(ServerRequestFactory::fromGlobals($this->fakeServerParams()), $routes); $this->assertEquals('/site/user/23', $builder->createByName('UserProfile', ['id' => 23])); }
/** * */ public function __construct() { parent::__construct(); $this->_middleware = new \ArrayObject(); $this->_routeMap = new RouteMap(); $this->_request = ServerRequestFactory::fromGlobals(); $this->_response = new Response(); }
/** * Test missing routes not being caught. * * @expectedException \Cake\Routing\Exception\MissingRouteException */ public function testMissingRouteNotCaught() { $request = ServerRequestFactory::fromGlobals(['REQUEST_URI' => '/missing']); $response = new Response(); $next = function ($req, $res) { }; $middleware = new RoutingMiddleware(); $middleware($request, $response, $next); }
public function register() { $this->forge->singleton(['routing', Routing::class], function () { $routing = new Routing(new HttpRequest(ServerRequestFactory::fromGlobals()), new HttpResponse(new Response())); $routing->makeDispatcher(HTTP . "routes.php"); return $routing; }); $this->provides += [Routing::class]; }
/** * Initial setup of DI\ContainerBuilder. * * @param bool $annotation annotation usage. * * @return DI\ContainerBuilder */ protected static function initialSetupContainerBuilder($annotation) { $builder = new DI\ContainerBuilder(); $builder->useAnnotations($annotation); $builder->addDefinitions(['request' => ServerRequestFactory::fromGlobals(), 'response' => DI\object(Response::class), 'http_flow_event' => DI\object(ZendHttpFlowEvent::class)->constructor('bootstrap', DI\get('request'), DI\get('response')), 'event_manager' => DI\object(ZendEvmProxy::class), 'dispatcher' => DI\factory(function ($container) { return new Dispatcher($container->get('router'), $container); })]); return $builder; }
/** * @test */ public function unexpectedExceptionWillReturnError() { $shortCode = 'abc123'; $this->urlShortener->shortCodeToUrl($shortCode)->willThrow(\Exception::class)->shouldBeCalledTimes(1); $request = ServerRequestFactory::fromGlobals()->withAttribute('shortCode', $shortCode); $response = $this->action->__invoke($request, new Response()); $this->assertEquals(500, $response->getStatusCode()); $this->assertTrue(strpos($response->getBody()->getContents(), RestUtils::UNKNOWN_ERROR) > 0); }
public function testWithoutSuffix() { $request = ServerRequestFactory::fromGlobals(); $response = new Response(); $rtime = new ResponseTime(['suffix' => false]); $response = $rtime($request, $response); $this->assertInstanceOf(Response::class, $response); $this->assertNotContains('ms', $response->getHeaders()['X-Response-Time'][0]); }
public function testPostRequestSavesPostDataInSessionAndReturnsRedirect() { $request = ServerRequestFactory::fromGlobals(null, null, $this->fullData)->withMethod('POST')->withUri(new Uri('/foo/bar')); $this->assertFalse($this->session->offsetExists(Contact::PRG_DATA)); $resp = $this->contact->dispatch($request, new Response()); $this->assertInstanceOf(RedirectResponse::class, $resp); $this->assertEquals(['/foo/bar'], $resp->getHeader('Location')); $this->assertTrue($this->session->offsetExists(Contact::PRG_DATA)); }
/** * Use the register method to register items with the container via the * protected $this->container property or the `getContainer` method * from the ContainerAwareTrait. */ public function register() { $this->container->share(ServerRequestInterface::class, function () { return ServerRequestFactory::fromGlobals($_SERVER, $_GET, $_POST, $_COOKIE, $_FILES); }); $this->container->share(ResponseInterface::class, function () { return new Response(); }); }
/** * @test */ public function previewExceptionReturnsNotFound() { $shortCode = 'abc123'; $this->urlShortener->shortCodeToUrl($shortCode)->willThrow(PreviewGenerationException::class)->shouldBeCalledTimes(1); $resp = $this->action->__invoke(ServerRequestFactory::fromGlobals()->withAttribute('shortCode', $shortCode), new Response(), function ($req, $resp) { return $resp; }); $this->assertEquals(500, $resp->getStatusCode()); }
public function testRedirectScheduled() { $watcher = $this->getMockBuilder(ScheduledWatcherInterface::class)->disableOriginalConstructor()->getMock(); $watcher->expects(self::once())->method('getEnd')->will(self::returnValue(new \DateTime())); $handler = new Redirect('http://example.com'); /* @var \Psr\Http\Message\ResponseInterface $response */ $response = $handler(ServerRequestFactory::fromGlobals(), new Response('php://temp'), $watcher); self::assertEquals(302, $response->getStatusCode()); self::assertTrue($response->hasHeader('Expires')); }
public function __construct($request = null, $responseHeaderSender = null, $responseBody = 'php://output') { $this->request = $request ? $request : ServerRequestFactory::fromGlobals(); $this->responseBody = $responseBody; $this->responseHeaderSender = $responseHeaderSender ? $responseHeaderSender : [new ResponseSender(), 'emitStatusLineAndHeaders']; $this->client = new Client($this->request); $parsedbody = $this->request->getParsedBody() ? $this->request->getParsedBody() : []; $this->params = $this->request->getCookieParams() + $parsedbody + $this->request->getQueryParams(); $this->reply = new Reply(); }
public function testUpladedFiles() { $rawFiles = array('file1' => array('name' => 'space-05.jpg', 'type' => 'image/jpeg', 'tmp_name' => '/tmp/2f588692b23b25fdd88f9ad4848dbd17', 'error' => 0, 'size' => 14620), 'myFiles' => array(array('name' => 'space-04.jpg', 'type' => 'image/png', 'tmp_name' => '/tmp/2794797237924797237d88f9ad4848dbd17', 'error' => 0, 'size' => 1620), array('name' => 'space-03.jpg', 'type' => 'image/png', 'tmp_name' => '/tmp/2794797237924797237d88f9ad4848d1237', 'error' => 0, 'size' => 620))); $swooleRequest = $this->createSwooleRequest(array(), array(), $rawFiles); $request = $this->createTransformer()->transform($swooleRequest); $this->assertInstanceOf(ServerRequest::class, $request); $files = ServerRequestFactory::normalizeFiles($rawFiles); /* @var ServerRequest $request */ $this->assertEquals($files, $request->getUploadedFiles()); }
/** * @test */ public function aCorrectRequestReturnsTheQrCodeResponse() { $shortCode = 'abc123'; $this->urlShortener->shortCodeToUrl($shortCode)->willReturn(new ShortUrl())->shouldBeCalledTimes(1); $resp = $this->action->__invoke(ServerRequestFactory::fromGlobals()->withAttribute('shortCode', $shortCode), new Response(), function ($req, $resp) { return $resp; }); $this->assertInstanceOf(QrCodeResponse::class, $resp); $this->assertEquals(200, $resp->getStatusCode()); }
/** * @return array|Definition[] */ public function getDefinitions() : array { return [RequestContract::class => function () { return new Request(ServerRequestFactory::fromGlobals()); }, ResponseContract::class => function () { return new Response(new DiactorosResponse()); }, ResponseFactoryContract::class => function () { return new ResponseFactory(); }]; }