public function testIsActiveReturnsFalseOnNonMatchingRequestUri() { $page = new Page\Uri(array('label' => 'foo', 'uri' => '/bar')); $request = new Request(); $request->setUri('/baz'); $request->setMethod('GET'); $page->setRequest($request); $this->assertFalse($page->isActive()); }
public function testIsActiveWithRecursiveTrueShouldReturnTrueIfChildActive() { $page = new Page\Uri(array('label' => 'Page 1', 'active' => false, 'pages' => array(new Page\Uri(array('label' => 'Page 1.1', 'active' => false, 'pages' => array(new Page\Uri(array('label' => 'Page 1.1', 'active' => true)))))))); $this->assertFalse($page->isActive(false)); $this->assertTrue($page->isActive(true)); }
/** * {@inheritDoc} */ public function isActive($recursive = false) { /**#@+ * Modified by Taiwen Jiang */ if (null === $this->active) { if ($this->getRequest() instanceof Request) { if ($this->getRequest()->getUri()->getPath() == $this->getUri()) { $this->active = true; return true; } else { $this->active = false; } } } if (!$this->active && $recursive) { foreach ($this->pages as $page) { if ($page->isActive(true)) { return true; } } } return $this->active; /**#@-*/ if (!$this->active) { if ($this->getRequest() instanceof Request) { if ($this->getRequest()->getUri()->getPath() == $this->getUri()) { $this->active = true; return true; } } } return parent::isActive($recursive); }