lithium\tests\cases\net\http\RouterTest::testRouteContinuations PHP Метод

testRouteContinuations() публичный Метод

Tests that continuation routes properly fall through and aggregate multiple route parameters.
    public function testRouteContinuations()
    {
        Router::connect('/{:locale:en|de|it|jp}/{:args}', array(), array('continue' => true));
        Router::connect('/{:controller}/{:action}/{:id:[0-9]+}');
        $request = new Request(array('url' => '/en/posts/view/1138'));
        $result = Router::process($request)->params;
        $expected = array('controller' => 'Posts', 'action' => 'view', 'id' => '1138', 'locale' => 'en');
        $this->assertEqual($expected, $result);
        $request = new Request(array('url' => '/en/foo/bar/baz'));
        $this->assertNull(Router::parse($request));
        Router::reset();
        Router::connect('/{:args}/{:locale:en|de|it|jp}', array(), array('continue' => true));
        Router::connect('/{:controller}/{:action}/{:id:[0-9]+}');
        $request = new Request(array('url' => '/posts/view/1138/en'));
        $result = Router::process($request)->params;
        $this->assertEqual($expected, $result);
        Router::reset();
        Router::connect('/{:locale:en|de|it|jp}/{:args}', array(), array('continue' => true));
        Router::connect('/', 'Pages::view');
        $request = new Request(array('url' => '/en'));
        $result = Router::process($request)->params;
        $expected = array('locale' => 'en', 'controller' => 'Pages', 'action' => 'view');
        $this->assertEqual($expected, $result);
    }
RouterTest