Example #1
0
 public function testRedirect()
 {
     $url = 'http://google.com/';
     $code = 302;
     $response = new Response();
     $response->redirect($url, $code);
     $this->assertSame($code, $response->code());
     $this->assertSame($url, $response->headers()->get('location'));
     $this->assertTrue($response->isLocked());
 }
Example #2
0
 /**
  * Handles an HTTP error exception through our HTTP error callbacks
  *
  * @param HttpExceptionInterface $http_exception The exception that occurred
  * @param RouteCollection $matched The collection of routes that were matched in dispatch
  * @param array $methods_matched The HTTP methods that were matched in dispatch
  * @return void
  */
 protected function httpError(HttpExceptionInterface $http_exception, RouteCollection $matched, $methods_matched)
 {
     if (!$this->response->isLocked()) {
         $this->response->code($http_exception->getCode());
     }
     if (count($this->httpErrorCallbacks) > 0) {
         foreach (array_reverse($this->httpErrorCallbacks) as $callback) {
             if ($callback instanceof Route) {
                 $this->handleRouteCallback($callback, $matched, $methods_matched);
             } elseif (is_callable($callback)) {
                 if (is_string($callback)) {
                     $callback($http_exception->getCode(), $this, $matched, $methods_matched, $http_exception);
                 } else {
                     call_user_func($callback, $http_exception->getCode(), $this, $matched, $methods_matched, $http_exception);
                 }
             }
         }
     }
     // Lock our response, since we probably don't want
     // anything else messing with our error code/body
     $this->response->lock();
 }