public function testRequest() { $request = Request::create('https://localhost:8000/index.php/view/page?username=iqbal&firstName=Iqbal', Request::HTTP_METHOD_GET, array('lastName' => 'Maulana'), array('username' => 'test'), array('HTTP_USER_AGENT' => 'Php-Unit', 'SCRIPT_FILENAME' => '/index.php', 'SCRIPT_NAME' => '/index.php')); $this->assertEquals('Php-Unit', $request->getServerBag()->get('HTTP_USER_AGENT')); $this->assertEquals('https', $request->getSchemaHost()->getSchema()); $this->assertTrue($request->getHeaderBag()->has('host')); $this->assertTrue($request->getSchemaHost()->isSecure()); $this->assertSame(8000, $request->getSchemaHost()->getPort()); $this->assertEquals('localhost', $request->getSchemaHost()->getHost()); $this->assertEquals('localhost:8000', $request->getSchemaHost()->getHttpHost()); $this->assertTrue($request->isMethod('GET')); $request->setMethod('POST'); $this->assertTrue($request->isMethod('POST')); $this->assertEquals('/view/page', $request->getUri()->getPathInfo()); $this->assertCount(3, $request->getQueryBag()); $this->assertEquals('iqbal', $request->get('username')); $this->assertEquals('Maulana', $request->get('lastName')); $this->assertEquals('https://localhost:8000/index.php', $request->getUrl()->getBaseUrl()); $this->assertEquals('https://localhost:8000/index.php/home/landing', $request->getUrl()->getUrlForPath('home/landing')); $this->assertEquals('/index.php/demo/uri', $request->getUri()->getUriForPath('demo/uri')); $this->assertEquals('https://localhost:8000/index.php/view/page?firstName=Iqbal&lastName=Maulana&username=iqbal', $request->getUrl()->getFullUrl()); $this->assertSame(2, count($request->getLanguages())); $this->assertEquals('en-US', $request->getLanguages()[0]); $this->assertSame(3, count($request->getCharsets())); $this->assertEquals('utf-8', $request->getCharsets()[1]); $this->assertNull($request->getParameterBag()->get('lastName')); $this->assertInstanceOf('\\Borobudur\\Http\\Session', $request->getSession()); $this->assertInstanceOf('\\Borobudur\\Http\\UploadFileBag', $request->getFileBag()); $this->assertContains('test', $request->getCookieBag()->values()); $this->assertFalse($request->isXmlHttpRequest()); $this->assertFalse($request->isReadOnly()); $this->assertEmpty($request->getContent()); $request->setContent('test content'); $this->assertSame('test content', $request->getContent()); }
public function testLogoutOnLoginController() { $request = Request::create('/logout', Request::HTTP_METHOD_GET); $request->getCookieBag()->set('username', 'iqbal'); $kernel = $this->buildKernel($this->getRouteCollection(), $request); $kernel->boot(); $this->assertEquals('Logout', $this->responseEvent->getResponse()->getContent()); }
public function testErrorHandling() { $kernel = $this->buildKernel(Request::create('/'), new RouteCollection()); $kernel->addListenerOnce(KernelEvents::EXCEPTION, array($this, 'onRequestException')); $kernel->boot(); $event = $this->responseEvent; $this->assertEquals('No route found for "GET /".', $event->getException()->getMessage()); $this->assertSame(404, $event->getException()->getCode()); }
public function testControllerWithArguments() { $collection = new RouteCollection(); $collection->add('detail', (new Route('/detail/{id}/{slug}'))->setRequirement('id', '\\d+')->setRequirement('slug', '[a-z\\-]+')->handleWith('app.controller.default:detail')); $request = Request::create('/detail/5/hello-world', Request::HTTP_METHOD_POST); $kernel = $this->buildKernel($request, $collection); $kernel->boot(); $this->assertSame('POST: hello-world-5', $this->responseEvent->getResponse()->getContent()); }