/**
  * Create a breadcrumb through current request path
  *
  * @return Breadcrumbs
  */
 public function createFromRequest()
 {
     if (empty($this->matcher)) {
         $this->matcher = new TraceableUrlMatcher($this->router->getRouteCollection(), $this->router->getContext());
     }
     $breadcrumbs = new Breadcrumbs();
     $parent = null;
     $paths = $this->getBreadcrumbsPaths();
     foreach ($paths as $path) {
         if ($node = $this->createBreadcrumbsNode($path, $parent)) {
             $breadcrumbs->addNode($node);
             $parent = $path;
         }
     }
     return $breadcrumbs;
 }
 public function testRenderCustomBreadcrumbsAndTemplate()
 {
     $breadcrumbsBuilder = $this->getMockBuilder('Yceruto\\Bundle\\BreadcrumbsBundle\\BreadcrumbsBuilder')->disableOriginalConstructor()->getMock();
     $container = new ContainerBuilder();
     $container->setParameter('kernel.debug', false);
     $container->set('breadcrumbs_builder', $breadcrumbsBuilder);
     $extension = new BreadcrumbsExtension();
     $extension->load(array(), $container);
     $breadcrumbs = new Breadcrumbs();
     $breadcrumbs->add('/', 'home');
     /* @var BreadcrumbsBuilder $breadcrumbsBuilder */
     $twigExtension = new TwigBreadcrumbsExtension($breadcrumbsBuilder);
     $loader = new \Twig_Loader_Filesystem();
     $loader->addPath(__DIR__ . '/Fixtures/Resources/BreadcrumbsBundle/views', 'Breadcrumbs');
     $environment = new \Twig_Environment($loader);
     $content = $twigExtension->renderBreadcrumbs($environment, $breadcrumbs);
     $this->assertContains('<ol class="custom-breadcrumb"><li class="active">HOME</li></ol>', $content);
 }
 public function testPositionMethods()
 {
     $node1 = $this->breadcrumbs->add('/', 'index');
     $node2 = $this->breadcrumbs->add('/foo', 'foo');
     $this->assertEquals($node1, $this->breadcrumbs->current());
     $this->assertEquals($node2, $this->breadcrumbs->next());
     $this->assertEquals($node1, $this->breadcrumbs->first());
     $this->assertEquals($node2, $this->breadcrumbs->last());
 }