public function loadPages()
 {
     $pages = array();
     $i = 1;
     $pageAll = new Page();
     $pageAll->setId($i);
     $pageAll->setRequestMethod('');
     $pageAll->setRouteName('all');
     $pageAll->setUrl('/all');
     $pages[$i++] = $pageAll;
     $pagePost = new Page();
     $pagePost->setId($i);
     $pagePost->setRequestMethod('POST');
     $pagePost->setRouteName('post');
     $pagePost->setUrl('/post');
     $pagePost->setParent($pageAll);
     $pages[$i++] = $pagePost;
     $pageGet = new Page();
     $pageGet->setId($i);
     $pageGet->setRequestMethod('GET');
     $pageGet->setRouteName('get');
     $pageGet->setUrl('/get');
     $pageGet->setParent($pageAll);
     $pages[$i++] = $pageGet;
     $page = new Page();
     $page->setId($i);
     $page->setRequestMethod('GET|POST');
     $page->setRouteName('get-post');
     $page->setUrl('/get-post');
     $page->setParent($pageAll);
     $pages[$i++] = $page;
     return $pages;
 }
 /**
  * Returns Sonata route page generator service
  *
  * @return RoutePageGenerator
  */
 protected function getRoutePageGenerator()
 {
     $router = $this->getRouterMock();
     $pageManager = $this->getMockBuilder('Sonata\\PageBundle\\Entity\\PageManager')->disableOriginalConstructor()->getMock();
     $pageManager->expects($this->any())->method('create')->will($this->returnValue(new Page()));
     $hybridPage = new Page();
     $hybridPage->setRouteName('test_hybrid_page_not_exists');
     $pageManager->expects($this->any())->method('getHybridPages')->will($this->returnValue(array($hybridPage)));
     $decoratorStrategy = new DecoratorStrategy(array(), array(), array());
     $exceptionListener = $this->getMockBuilder('Sonata\\PageBundle\\Listener\\ExceptionListener')->disableOriginalConstructor()->getMock();
     $exceptionListener->expects($this->any())->method('getHttpErrorCodes')->will($this->returnValue(array(404, 500)));
     return new RoutePageGenerator($router, $pageManager, $decoratorStrategy, $exceptionListener);
 }
 public function setUp()
 {
     $pages = array();
     $i = 1;
     $this->site = new Site();
     $pageAll = new Page();
     $pageAll->setId($i);
     $pageAll->setRequestMethod('');
     $pageAll->setRouteName('all');
     $pageAll->setUrl('/all');
     $pageAll->setSite($this->site);
     $pages[$i++] = $pageAll;
     $pagePost = new Page();
     $pagePost->setId($i);
     $pagePost->setRequestMethod('POST');
     $pagePost->setRouteName('post');
     $pagePost->setUrl('/post');
     $pagePost->setParent($pageAll);
     $pagePost->setSite($this->site);
     $pages[$i++] = $pagePost;
     $pageGet = new Page();
     $pageGet->setId($i);
     $pageGet->setRequestMethod('GET');
     $pageGet->setRouteName('get');
     $pageGet->setUrl('/get');
     $pageGet->setParent($pageAll);
     $pageGet->setSite($this->site);
     $pages[$i++] = $pageGet;
     $page = new Page();
     $page->setId($i);
     $page->setRequestMethod('GET|POST');
     $page->setRouteName('get-post');
     $page->setUrl('/get-post');
     $page->setParent($pageAll);
     $page->setSite($this->site);
     $pages[$i++] = $page;
     $this->pages = $pages;
 }
 public function testFixUrl()
 {
     $manager = new PageManager($this->getMock('Doctrine\\ORM\\EntityManager', array(), array(), '', false));
     $page1 = new Page();
     $page1->setName('Salut comment ca va ?');
     $page2 = new Page();
     $page2->setName('Super! et toi ?');
     $page1->addChildren($page2);
     $manager->fixUrl($page1);
     $this->assertEquals($page1->getSlug(), 'salut-comment-ca-va');
     $this->assertEquals($page1->getUrl(), '/salut-comment-ca-va');
     $parent = new Page();
     $parent->setRouteName('homepage');
     $parent->addChildren($page1);
     $manager->fixUrl($parent);
     $this->assertEquals($parent->getSlug(), null);
     // homepage is a specific route name
     $this->assertEquals($parent->getUrl(), '/');
     $this->assertEquals($page1->getSlug(), 'salut-comment-ca-va');
     $this->assertEquals($page1->getUrl(), '/salut-comment-ca-va');
     $this->assertEquals($page2->getSlug(), 'super-et-toi');
     $this->assertEquals($page2->getUrl(), '/salut-comment-ca-va/super-et-toi');
 }
 /**
  * Returns Sonata route page generator service
  *
  * @return RoutePageGenerator
  */
 protected function getRoutePageGenerator()
 {
     $router = $this->getRouterMock();
     $pageManager = $this->getMockBuilder('Sonata\\PageBundle\\Entity\\PageManager')->disableOriginalConstructor()->getMock();
     $pageManager->expects($this->any())->method('create')->will($this->returnValue(new Page()));
     $hybridPageNotExists = new Page();
     $hybridPageNotExists->setRouteName('test_hybrid_page_not_exists');
     $hybridPageWithGoodHost = new Page();
     $hybridPageWithGoodHost->setRouteName('test_hybrid_page_with_good_host');
     $hybridPageWithBadHost = new Page();
     $hybridPageWithBadHost->setRouteName('test_hybrid_page_with_bad_host');
     $pageManager->expects($this->at(12))->method('findOneBy')->with($this->equalTo(array('routeName' => 'test_hybrid_page_with_bad_host', 'site' => 1)))->will($this->returnValue($hybridPageWithBadHost));
     $pageManager->expects($this->any())->method('getHybridPages')->will($this->returnValue(array($hybridPageNotExists, $hybridPageWithGoodHost, $hybridPageWithBadHost)));
     $decoratorStrategy = new DecoratorStrategy(array(), array(), array());
     $exceptionListener = $this->getMockBuilder('Sonata\\PageBundle\\Listener\\ExceptionListener')->disableOriginalConstructor()->getMock();
     $exceptionListener->expects($this->any())->method('getHttpErrorCodes')->will($this->returnValue(array(404, 500)));
     return new RoutePageGenerator($router, $pageManager, $decoratorStrategy, $exceptionListener);
 }
Example #6
0
 public function testPageTypeDynamic()
 {
     $page = new Page();
     $page->setRouteName('foo_bar');
     $page->setUrl('/hello/{name}');
     $this->assertFalse($page->isCms(), 'isCms');
     $this->assertTrue($page->isDynamic(), 'isDynamic');
     $this->assertTrue($page->isHybrid(), 'isHybrid');
     $this->assertFalse($page->isInternal(), 'isInternal');
 }