public function testCanInstantiateFromEnvUsingGlobalServerVariable() { $requestTimeFloat = microtime(true); $_SERVER['REQUEST_URI'] = '/unit/test'; $_SERVER['REQUEST_METHOD'] = 'POST'; $_SERVER['QUERY_STRING'] = 'unit=test'; $_SERVER['HTTP_USER_AGENT'] = 'phpunit cli'; $_SERVER['HTTP_HOST'] = 'www.icehawk.de'; $_SERVER['HTTP_REFERER'] = 'http://www.example.com'; $_SERVER['HTTP_ACCEPT'] = 'text/html; charset=utf-8'; $_SERVER['SERVER_ADDR'] = '127.0.0.1'; $_SERVER['REMOTE_ADDR'] = '192.168.0.10'; $_SERVER['HTTP_REFERER'] = 'http://www.example.com'; $_SERVER['REQUEST_TIME_FLOAT'] = $requestTimeFloat; $_SERVER['HTTPS'] = 'on'; $_SERVER['PHP_AUTH_USER'] = '******'; $_SERVER['PHP_AUTH_PW'] = 'Test'; $requestInfo = RequestInfo::fromEnv(); $this->assertInstanceOf(RequestInfo::class, $requestInfo); $this->assertEquals('/unit/test', $requestInfo->getUri()); $this->assertEquals('POST', $requestInfo->getMethod()); $this->assertEquals('unit=test', $requestInfo->getQueryString()); $this->assertEquals('phpunit cli', $requestInfo->getUserAgent()); $this->assertEquals('www.icehawk.de', $requestInfo->getHost()); $this->assertEquals('http://www.example.com', $requestInfo->getReferer()); $this->assertEquals('text/html; charset=utf-8', $requestInfo->getAcceptedContentTypes()); $this->assertEquals('127.0.0.1', $requestInfo->getServerAddress()); $this->assertEquals('192.168.0.10', $requestInfo->getClientAddress()); $this->assertEquals('http://www.example.com', $requestInfo->getReferer()); $this->assertEquals($requestTimeFloat, $requestInfo->getRequestTimeFloat()); $this->assertEquals('Unit', $requestInfo->getAuthUser()); $this->assertEquals('Test', $requestInfo->getAuthPassword()); $this->assertEquals($requestTimeFloat, $requestInfo->getRequestTimeFloat()); $this->assertTrue($requestInfo->isSecure()); }
public function testCanAccessRequestInfoFromRequest() { $requestInfo = RequestInfo::fromEnv(); $postRequest = new PostRequest($requestInfo, [], []); $command = new TestDomainCommand($postRequest); $this->assertSame($requestInfo, $command->getRequestInfo()); }
public function testCanAccessRequestInfoFromRequest() { $requestInfo = RequestInfo::fromEnv(); $getRequest = new GetRequest($requestInfo, []); $query = new TestDomainQuery($getRequest); $this->assertSame($requestInfo, $query->getRequestInfo()); }
public function testCanHandleValidRequest() { $postRequest = new PostRequest(RequestInfo::fromEnv(), [], []); $handler = new TestPostRequestHandler($postRequest); $handler->handleRequest(); $this->expectOutputString('Request handled.'); }
public function testCanRetrieveInjectedObjects() { $requestInfo = RequestInfo::fromEnv(); $getRequest = new GetRequest([]); $event = new RequestWasHandledEvent($requestInfo, $getRequest); $this->assertSame($requestInfo, $event->getRequestInfo()); $this->assertSame($getRequest, $event->getRequest()); }
public function testBuildingSucceedsIfWriteSideHandlerExistsAndImplementsInterface() { $uriComponents = $this->getUriComponentsMock('domain', 'valid-write-test', []); $domainRequestHandlerBuilder = new DomainRequestHandlerBuilder('Fortuneglobe\\IceHawk\\Tests\\Unit\\Fixtures', Http::METHOD_POST, $uriComponents); $request = new PostRequest(RequestInfo::fromEnv(), [], []); $handler = $domainRequestHandlerBuilder->buildDomainRequestHandler($request); $this->assertInstanceOf(ValidWriteTestRequestHandler::class, $handler); }
public function testCanHandleEventInListenerMethod() { $requestInfo = RequestInfo::fromEnv(); $initEvent = new IceHawkWasInitializedEvent($requestInfo); $mock = $this->getMockBuilder(EventListener::class)->setMethods(['getAcceptedEvents', 'whenIceHawkWasInitialized'])->getMockForAbstractClass(); $mock->expects($this->once())->method('whenIceHawkWasInitialized')->with($initEvent); /** @var EventListener $mock */ $mock->notify($initEvent); }
public function testDefaults() { $config = new IceHawkConfig(); $this->assertEquals([], $config->getEventListeners()); $this->assertEquals('Fortuneglobe\\IceHawk', $config->getDomainNamespace()); $this->assertEquals(new UriResolver(), $config->getUriResolver()); $this->assertEquals(new UriRewriter(), $config->getUriRewriter()); $this->assertEquals(RequestInfo::fromEnv(), $config->getRequestInfo()); }
public function testCanCheckForExceptedEvents() { $initEvent = new IceHawkWasInitializedEvent(); $handlingEvent = new HandlingRequestEvent(RequestInfo::fromEnv(), new GetRequest([])); $mock = $this->getMockBuilder(EventListener::class)->setMethods(['getAcceptedEvents'])->getMockForAbstractClass(); $mock->expects($this->exactly(2))->method('getAcceptedEvents')->willReturn([IceHawkWasInitializedEvent::class]); /** @var EventListener $mock */ $this->assertTrue($mock->acceptsEvent($initEvent)); $this->assertFalse($mock->acceptsEvent($handlingEvent)); }
/** * @param \Exception $exception * * @throws \Exception */ public function handleUncaughtException(\Exception $exception) { echo '<pre>', htmlspecialchars(print_r($exception, 1)), '</pre>'; exit; try { throw $exception; } catch (MalformedRequestUri $e) { $requestInfo = RequestInfo::fromEnv(); $page = new ThemePage('Blog/Read/Pages/Error404.twig', ['requestUri' => $requestInfo->getUri()], Http::NOT_FOUND); $page->respond(); } catch (\Exception $e) { $requestInfo = RequestInfo::fromEnv(); $page = new ThemePage('Blog/Read/Pages/Error500.twig', ['requestUri' => $requestInfo->getUri()], Http::NOT_FOUND); $page->respond(); } }
/** * @param mixed $eventListeners * * @dataProvider invalidEventListenersProvider * @expectedException \Fortuneglobe\IceHawk\Exceptions\InvalidEventListenerCollection */ public function testInvalidEventListenersFromConfigThrowsException($eventListeners) { $config = $this->getMockBuilder(ServesIceHawkConfig::class)->getMockForAbstractClass(); $config->expects($this->once())->method('getUriRewriter')->willReturn(new UriRewriter()); $config->expects($this->once())->method('getUriResolver')->willReturn(new UriResolver()); $config->expects($this->once())->method('getRequestInfo')->willReturn(RequestInfo::fromEnv()); $config->expects($this->once())->method('getDomainNamespace')->willReturn(__NAMESPACE__); $config->expects($this->once())->method('getEventListeners')->willReturn($eventListeners); $iceHawk = new IceHawk($config, new IceHawkDelegate()); $iceHawk->init(); }
/** * @return ServesRequestInfo */ public function getRequestInfo() { return RequestInfo::fromEnv(); }
public function testCanRetrieveInjectedObjects() { $requestInfo = RequestInfo::fromEnv(); $event = new IceHawkWasInitializedEvent($requestInfo); $this->assertSame($requestInfo, $event->getRequestInfo()); }
public function testGetRawDataReturnNullIfEmpty() { $postRequest = new PostRequest(RequestInfo::fromEnv(), [], []); $this->assertNull($postRequest->getRawData()); }
/** * @param array $getData * @param string $key * * @dataProvider nullKeyDataProvider */ public function testGetterReturnsNullIfKeyIsNotSet(array $getData, $key) { $getRequest = new GetRequest(RequestInfo::fromEnv(), $getData); $this->assertNull($getRequest->get($key)); }