/** * @covers Page::getAccessLogic * @covers Page::setAccessLogic * @covers Page::checkAccess */ public function testGetAccessLogic() { $page = new Page('Page 1'); $page->setAccessLogic(function (PageInterface $page) { return strpos($page->getTitle(), 'Page') !== false; }); $page2 = $page->addPage('Page 2'); $page3 = $page2->addPage('Page 3'); $page3->setAccessLogic(function (PageInterface $page) { return 'Page 2' == $page->getTitle(); }); $this->assertTrue(is_callable($page->getAccessLogic())); $this->assertTrue(is_callable($page3->getAccessLogic())); $this->assertTrue(is_callable($page2->getAccessLogic())); $this->assertTrue($page->checkAccess()); $this->assertTrue($page2->checkAccess()); $this->assertFalse($page3->checkAccess()); }