public function testRedirectResponseWithHeaders()
 {
     Router::redirect('/testpath', '/pages');
     $request = ServerRequestFactory::fromGlobals(['REQUEST_URI' => '/testpath']);
     $response = new Response('php://memory', 200, ['X-testing' => 'Yes']);
     $next = function ($req, $res) {
     };
     $middleware = new RoutingMiddleware();
     $response = $middleware($request, $response, $next);
     $this->assertEquals(301, $response->getStatusCode());
     $this->assertEquals('http://localhost/pages', $response->getHeaderLine('Location'));
     $this->assertEquals('Yes', $response->getHeaderLine('X-testing'));
 }
 /**
  * test setting parameters in beforeDispatch method
  *
  * @return void
  * @triggers __CLASS__ $this, compact(request)
  */
 public function testBeforeDispatchRedirectRoute()
 {
     Router::redirect('/home', ['controller' => 'articles']);
     Router::connect('/:controller/:action/*');
     $filter = new RoutingFilter();
     $request = new Request("/home");
     $response = new Response();
     $event = new Event(__CLASS__, $this, compact('request', 'response'));
     $response = $filter->beforeDispatch($event);
     $this->assertInstanceOf('Cake\\Network\\Response', $response);
     $this->assertSame('http://localhost/articles/index', $response->header()['Location']);
     $this->assertSame(301, $response->statusCode());
 }
Пример #3
0
 /**
  * test setting redirect routes
  *
  * @return void
  */
 public function testRouteRedirection()
 {
     $routes = new RouteCollection();
     Router::setRouteCollection($routes);
     Router::redirect('/blog', array('controller' => 'posts'), array('status' => 302));
     Router::connect('/:controller', array('action' => 'index'));
     $this->assertEquals(2, count($routes));
     $routes->get(0)->response = $this->getMock('Cake\\Network\\Response', array('_sendHeader', 'stop'));
     $this->assertEquals(302, $routes->get(0)->options['status']);
     Router::parse('/blog');
     $header = $routes->get(0)->response->header();
     $this->assertEquals(Router::url('/posts', true), $header['Location']);
     $this->assertEquals(302, $routes->get(0)->response->statusCode());
     $routes->get(0)->response = $this->getMock('Cake\\Network\\Response', array('_sendHeader'));
     Router::parse('/not-a-match');
     $this->assertSame([], $routes->get(0)->response->header());
 }
Пример #4
0
 /**
  * Test that redirect() works with another route class.
  *
  * @return void
  */
 public function testRedirectWithAnotherRouteClass()
 {
     $route1 = $this->getMockBuilder('Cake\\Routing\\Route\\RedirectRoute')->setConstructorArgs(['/mobile\''])->getMock();
     $class = '\\' . get_class($route1);
     Router::redirect('/mobile', '/', ['status' => 301, 'routeClass' => $class]);
     $routes = Router::routes();
     $route = $routes[0];
     $this->assertInstanceOf($class, $route);
 }
 /**
  * Test that redirect() works.
  *
  * @return void
  */
 public function testRedirect()
 {
     Router::redirect('/mobile', '/', ['status' => 301]);
     $routes = Router::routes();
     $route = $routes[0];
     $this->assertInstanceOf('Cake\\Routing\\Route\\RedirectRoute', $route);
 }
Пример #6
0
 */
Router::defaultRouteClass('Route');
Router::addUrlFilter(function ($params, $request) {
    if (isset($request->params['lang']) && !isset($params['lang'])) {
        $params['lang'] = $request->params['lang'];
    } elseif (!isset($params['lang'])) {
        $params['lang'] = Router::getRequest()->session()->read('lang');
        // set your default language here
    }
    return $params;
});
$lang = 'en';
if (Router::getRequest()->session()->check('Config.language')) {
    $lang = Router::getRequest()->session()->read('Config.language');
}
Router::redirect('/', "/{$lang}/");
Router::connect('/:lang/', ['controller' => 'Home', 'action' => 'index']);
Router::connect('/:lang/:controller', ['action' => 'index']);
Router::connect('/:lang/:controller/about', ['action' => 'about']);
Router::connect('/:lang/:controller/search', ['action' => 'search']);
Router::connect('/:lang/:controller/profile', ['action' => 'profile']);
Router::connect('/:lang/:controller/settings', ['action' => 'settings']);
Router::connect('/:lang/:controller/add', ['action' => 'add']);
Router::connect('/:lang/:controller/view/:id', ['action' => 'view'], ['id' => '\\d+', 'pass' => ['id']]);
Router::connect('/:lang/:controller/edit/:id', ['action' => 'edit'], ['id' => '\\d+', 'pass' => ['id']]);
Router::connect('/:lang/:controller/delete/:id', ['action' => 'delete'], ['id' => '\\d+', 'pass' => ['id']]);
Router::connect('/:lang/:controller/roledata_list/:id', ['action' => 'roledata_list'], ['id' => '\\d+', 'pass' => ['id']]);
Router::connect('/:lang/:controller/login', ['action' => 'login']);
Router::connect('/:lang/:controller/logout', ['action' => 'logout']);
Router::connect('/:lang/:controller/accountLog', ['action' => 'accountLog']);
Router::connect('/:lang/:controller/equipment_item/:id/:slug', ['action' => 'equipment_item'], ['pass' => ['id', 'slug'], 'id' => '\\d+']);