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()); }
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])); }
/** * 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); }