예제 #1
0
    /**
     * Evaluates the URI against this route and protocol.
     *
     * @param ezcMvcRequest $request
     * @return ezcMvcRoutingInformation|null
     */
    public function matches( ezcMvcRequest $request )
    {
        if ( $this->protocol === null || $request->protocol === $this->protocol )
            return parent::matches( $request );

        return null;
    }
예제 #2
0
 public function testMatchSameAsInternalRoute()
 {
     $request = new ezcMvcRequest();
     $request->uri = '/foo';
     $internalRoute = new ezcMvcRailsRoute('/foo', 'testDummyController', 'testDummyAction');
     $versionRoute = new ezpRestVersionedRoute($internalRoute, 1);
     $internalRouteInfo = $internalRoute->matches($request);
     $versionRouteInfo = $versionRoute->matches($request);
     self::assertSame('/foo', $internalRouteInfo->matchedRoute);
     self::assertSame('/foo', $versionRouteInfo->matchedRoute);
     self::assertSame('testDummyController', $internalRouteInfo->controllerClass);
     self::assertSame('testDummyController', $versionRouteInfo->controllerClass);
     self::assertSame('testDummyAction', $internalRouteInfo->action);
     self::assertSame('testDummyAction', $versionRouteInfo->action);
 }
예제 #3
0
파일: rails.php 프로젝트: bmdevel/ezc
 public function testMatchWithDotInUrl3a()
 {
     $request = new ezcMvcRequest();
     $request->uri = '/topic/list/foo.bar.ezc.is.cool';
     $route = new ezcMvcRailsRoute('/topic/list/:newsgroup_name', 'testController');
     $routeInfo = $route->matches($request);
     self::assertSame('/topic/list/:newsgroup_name', $routeInfo->matchedRoute);
     self::assertSame('testController', $routeInfo->controllerClass);
     self::assertSame(array('newsgroup_name' => 'foo.bar.ezc.is.cool'), $request->variables);
 }
예제 #4
0
 public function testsMatchComplex()
 {
     $route = new ezcMvcRailsRoute('people/:slug', 'testController', 'action', array('nr' => '', 'name' => ''));
     $request = new ezcMvcRequest();
     $request->uri = 'people/hawking';
     $routeInfo = $route->matches($request);
     self::assertSame('testController', $routeInfo->controllerClass);
     self::assertEquals(array('nr' => '', 'name' => '', 'slug' => 'hawking'), $request->variables);
     $request->uri = 'people/42';
     $routeInfo = $route->matches($request);
     self::assertSame('testController', $routeInfo->controllerClass);
     self::assertEquals(array('nr' => '', 'name' => '', 'slug' => 42), $request->variables);
     $request->uri = 'people';
     $routeInfo = $route->matches($request);
     self::assertEquals(null, $routeInfo);
     $request->uri = 'people/';
     $routeInfo = $route->matches($request);
     self::assertEquals(null, $routeInfo);
 }