public function testRedirectDoctrine() { $root = self::$dm->find(null, self::ROUTE_ROOT); $route = new Route(); $route->setRouteContent($root); // this happens to be a referenceable node $route->setPosition($root, 'testroute'); self::$dm->persist($route); $redirect = new RedirectRoute(); $redirect->setPosition($root, 'redirect'); $redirect->setRouteTarget($route); $redirect->setDefault('test', 'toast'); self::$dm->persist($redirect); self::$dm->flush(); self::$dm->clear(); $route = self::$dm->find(null, self::ROUTE_ROOT . '/testroute'); $redirect = self::$dm->find(null, self::ROUTE_ROOT . '/redirect'); $this->assertInstanceOf('Symfony\\Cmf\\Component\\Routing\\RedirectRouteInterface', $redirect); $this->assertSame($redirect, $redirect->getRouteContent()); $params = $redirect->getParameters(); $this->assertSame($route, $redirect->getRouteTarget()); $defaults = $redirect->getDefaults(); $this->assertEquals(array('test' => 'toast'), $defaults); }
public function testEnhanceControllerByAlias() { // put a redirect route $root = self::$dm->find(null, self::ROUTE_ROOT); $route = new RedirectRoute(); $route->setDefault('type', 'demo_alias'); $route->setPosition($root, 'controlleralias'); self::$dm->persist($route); self::$dm->flush(); $expected = array('_controller' => 'test.controller:aliasAction', RouteObjectInterface::ROUTE_NAME => '/test/routing/controlleralias', 'type' => 'demo_alias'); $request = Request::create('/controlleralias'); $matches = self::$router->matchRequest($request); ksort($matches); $this->assertTrue($request->attributes->has(DynamicRouter::ROUTE_KEY)); $this->assertEquals($expected, $matches); }