public function testCreateItemWithAbsoluteRoute()
 {
     $generator = $this->getMock('Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface');
     $generator->expects($this->once())->method('generate')->with('homepage', array(), true)->will($this->returnValue('http://php.net'));
     $factory = new RouterAwareFactory($generator);
     $item = $factory->createItem('test_item', array('route' => 'homepage', 'routeAbsolute' => true));
     $this->assertEquals('http://php.net', $item->getUri());
 }
 public function createItem($name, array $options = array())
 {
     if (!empty($options['content'])) {
         $options['uri'] = $this->content_router->generate($options['content']);
         unset($options['route']);
     }
     return parent::createItem($name, $options);
 }
 public function testCreateItemWithRoute()
 {
     $generator = $this->getMock('Symfony\\Component\\Routing\\Generator\\UrlGeneratorInterface');
     $generator->expects($this->once())->method('generate')->with('homepage', array(), false)->will($this->returnValue('/foobar'));
     $deprecatedErrorCatched = false;
     set_error_handler(function ($errorNumber, $message, $file, $line) use(&$deprecatedErrorCatched) {
         if ($errorNumber & E_USER_DEPRECATED) {
             $deprecatedErrorCatched = true;
             return true;
         }
         return \PHPUnit_Util_ErrorHandler::handleError($errorNumber, $message, $file, $line);
     });
     try {
         $factory = new RouterAwareFactory($generator);
     } catch (\Exception $e) {
         restore_error_handler();
         throw $e;
     }
     restore_error_handler();
     $this->assertTrue($deprecatedErrorCatched, 'The RouterAwareFactory throws a E_USER_DEPRECATED when instantiating it.');
     $item = $factory->createItem('test_item', array('uri' => '/hello', 'route' => 'homepage'));
     $this->assertEquals('/foobar', $item->getUri());
 }
 public function createItem($name, array $options = array())
 {
     $current = false;
     if (!empty($options['content'])) {
         try {
             $request = $this->container->get('request');
             if ($request->attributes->get($this->contentKey) == $options['content']) {
                 $current = true;
             }
         } catch (\Exception $e) {
         }
         $routeParameters = $options['routeParameters'];
         $routeParameters['content'] = $options['content'];
         $options['uri'] = $this->contentRouter->generate($this->routeName, $routeParameters, $options['routeAbsolute']);
         unset($options['route']);
     }
     $item = parent::createItem($name, $options);
     if ($current) {
         $item->setCurrent(true);
     }
     return $item;
 }