Example #1
0
 public function testHas()
 {
     $trail = new Trail();
     $crumb0 = new Crumb('homepage', '/');
     $trail->add($crumb0);
     $this->assertTrue($trail->has(0));
     $crumb1 = new Crumb('foo', '/foo');
     $trail[] = $crumb1;
     $this->assertTrue(isset($trail[1]));
 }
Example #2
0
 public function testIsLast()
 {
     $crumb = new Crumb('foo');
     $trail = new Trail();
     $this->assertFalse($crumb->isLast());
     $trail->add($crumb);
     $this->assertTrue($crumb->isLast());
     $crumb2 = new Crumb('bar');
     $trail->add($crumb2);
     $this->assertFalse($crumb->isLast());
     $this->assertTrue($crumb2->isLast());
 }
Example #3
0
 /**
  * Parses a trail and adds it to the TrailCollection.
  *
  * @param TrailCollection $collection A TrailCollection instance
  * @param string          $name       Trail name
  * @param array           $config     Trail definition
  * @param string          $file       A Yaml file path
  *
  * @throws \InvalidArgumentException When config pattern is not defined for the given route
  */
 protected function parseTrail(TrailCollection $collection, $name, $config, $file)
 {
     if (!isset($config['crumbs']) && !is_array($config['crumbs'])) {
         throw new \InvalidArgumentException(sprintf('You must define an array of crumbs for the "%s" route.', $name));
     }
     $trail = new Trail();
     foreach ($config['crumbs'] as $c) {
         if (!isset($c['title'])) {
             throw new \InvalidArgumentException(sprintf('You must define a "title" for the "%s" route.', $name));
         }
         $uri = isset($c['uri']) ? $c['uri'] : null;
         $attributes = isset($c['attributes']) ? $c['attributes'] : array();
         $trail->add(new Crumb($c['title'], $uri, $attributes));
     }
     $collection->add($name, $trail);
 }