Example #1
0
 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());
 }
Example #2
0
 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));
 }
Example #3
0
 /**
  * {@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);
 }