Example #1
0
 public function testRetreivingPageFriendlyURIs()
 {
     $pagination = new Pagination();
     $pagination->setPattern("page/{page}");
     // default page is 1
     $this->assertSame(1, $pagination->getPage());
     // GET doesn't work
     $pagination->setUri("?page=4");
     $this->assertSame(1, $pagination->getPage());
     // URI does!
     $pagination->setUri("/page/4");
     $this->assertSame(4, $pagination->getPage());
     $pagination->setUri("/posts/list/page/6");
     $this->assertSame(6, $pagination->getPage());
     $pagination->setUri("/posts/list/page/7");
     $this->assertSame(7, $pagination->getPage());
     // case insensitive
     $pagination->setUri("/posts/list/PAGE/8?page=9&pages=10");
     $this->assertSame(8, $pagination->getPage());
     $pagination->setUri("/posts/list/page/9/bar/foo");
     $this->assertSame(9, $pagination->getPage());
     // "page=", but not "itemsperpage=", which should give us default page 1
     $pagination->setUri("/post/list/itemsperpage/10");
     $this->assertSame(1, $pagination->getPage());
     // wrong pages
     $pagination->setUri("/posts/list/page/abc?foo=bar");
     $this->assertSame(1, $pagination->getPage());
     $pagination->setUri("/posts/list/page/foo9?foo=bar");
     $this->assertSame(1, $pagination->getPage());
     $pagination->setUri("/posts/list/page/09/bar/foo/?foo=bar");
     $this->assertSame(1, $pagination->getPage());
     $pagination->setUri("/posts/list/page/9foo");
     $this->assertSame(1, $pagination->getPage());
 }