Beispiel #1
0
 /**
  * Updates the cookie store from a Request/Response pair.
  *
  * @param Request  $request
  * @param Response $response
  *
  * @return void
  */
 public function update(Request $request, Response $response)
 {
     $origin = CookieOrigin::createFromRequest($request);
     foreach ($response->getCookies() as $cookie) {
         $this->addCookie($cookie, $origin);
     }
 }
Beispiel #2
0
 public function register(\Brick\Event\EventDispatcher $dispatcher)
 {
     $dispatcher->addListener(NonResponseResultEvent::class, function (NonResponseResultEvent $event) {
         $response = new Response();
         $response->setContent(json_encode($event->getControllerResult()));
         $response->setHeader('Content-Type', 'application/json');
         $event->setResponse($response);
     });
 }
Beispiel #3
0
 /**
  * {@inheritdoc}
  */
 public function handle(Request $request)
 {
     $request->setHeader('Connection', 'close');
     $path = $request->getHost();
     if ($request->isSecure()) {
         $path = 'ssl://' . $path;
     }
     $fp = fsockopen($path, $request->getPort());
     fwrite($fp, $request);
     return Response::parse(stream_get_contents($fp));
 }
Beispiel #4
0
 /**
  * Parses the response as an XML / HTML document.
  *
  * If the response is not a valid document, and empty document is returned.
  *
  * @return \DOMDocument
  */
 public function parseDocument()
 {
     $pattern = '/(x|ht)ml(?:.*;charset=(\\S+))?/i';
     $contentType = $this->response->getHeader('Content-Type');
     $isDocument = preg_match($pattern, $contentType, $matches) == 1;
     $charset = isset($matches[2]) ? $matches[2] : 'UTF-8';
     $useInternalErrors = libxml_use_internal_errors(true);
     $disableEntityLoader = libxml_disable_entity_loader(true);
     $document = new \DOMDocument('1.0', $charset);
     $document->validateOnParse = true;
     if ($isDocument) {
         $isXml = strtolower($matches[1]) == 'x';
         if ($isXml) {
             $document->loadXML($this->getText());
         } else {
             $document->loadHTML($this->getText());
         }
     }
     libxml_use_internal_errors($useInternalErrors);
     libxml_disable_entity_loader($disableEntityLoader);
     return $document;
 }
Beispiel #5
0
 public function testIsType()
 {
     $response = new Response();
     for ($statusCode = 100; $statusCode <= 999; $statusCode++) {
         $response->setStatusCode($statusCode);
         $digit = substr($statusCode, 0, 1);
         $this->assertSame($digit == 1, $response->isInformational());
         $this->assertSame($digit == 2, $response->isSuccessful());
         $this->assertSame($digit == 3, $response->isRedirection());
         $this->assertSame($digit == 4, $response->isClientError());
         $this->assertSame($digit == 5, $response->isServerError());
     }
 }
Beispiel #6
0
 /**
  * @param string $body
  *
  * @return ResponseAssertion
  */
 public function hasBody($body)
 {
     $this->testCase->assertSame($body, (string) $this->response->getBody());
     return $this;
 }
Beispiel #7
0
 /**
  * @param int      $statusCode
  * @param Response $response
  */
 private function assertStatusCode($statusCode, Response $response)
 {
     $this->assertSame($statusCode, $response->getStatusCode());
 }
Beispiel #8
0
 /**
  * Converts an HttpException to a Response.
  *
  * @param \Brick\Http\Exception\HttpException $exception
  * @param \Brick\Http\Request                 $request
  *
  * @return \Brick\Http\Response
  */
 private function handleHttpException(HttpException $exception, Request $request)
 {
     $response = new Response();
     $response->setContent($exception);
     $response->setStatusCode($exception->getStatusCode());
     $response->setHeaders($exception->getHeaders());
     $response->setHeader('Content-Type', 'text/plain');
     $event = new ExceptionCaughtEvent($exception, $request, $response);
     $this->eventDispatcher->dispatch(ExceptionCaughtEvent::class, $event);
     return $response;
 }
Beispiel #9
0
 /**
  * Writes the session cookie to the Response.
  *
  * @param \Brick\Http\Response $response
  *
  * @return void
  */
 public function handleResponse(Response $response)
 {
     $lifetime = $this->cookieParams['lifetime'];
     $expires = $lifetime == 0 ? 0 : time() + $lifetime;
     $cookie = new Cookie($this->cookieParams['name'], $this->id);
     $cookie->setExpires($expires)->setPath($this->cookieParams['path'])->setDomain($this->cookieParams['domain'])->setSecure($this->cookieParams['secure'])->setHttpOnly($this->cookieParams['http-only']);
     $response->setCookie($cookie);
 }