namespace Wallabag\CoreBundle\Controller;
use Pagerfanta\Adapter\DoctrineORMAdapter;
+use Pagerfanta\Exception\OutOfRangeCurrentPageException;
use Pagerfanta\Pagerfanta;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
$entries = new Pagerfanta($pagerAdapter);
$entries->setMaxPerPage($this->getUser()->getConfig()->getItemsPerPage());
- $entries->setCurrentPage($page);
+ try {
+ $entries->setCurrentPage($page);
+ } catch (OutOfRangeCurrentPageException $e) {
+ if ($page > 1) {
+ return $this->redirect($this->generateUrl($type, array('page' => $entries->getNbPages())), 302);
+ }
+ }
return $this->render(
'WallabagCoreBundle:Entry:entries.html.twig',
$this->assertEquals(200, $client->getResponse()->getStatusCode());
}
+ public function testRangeException()
+ {
+ $this->logInAs('admin');
+ $client = $this->getClient();
+
+ $client->request('GET', '/all/list/900');
+
+ $this->assertEquals(302, $client->getResponse()->getStatusCode());
+ $this->assertEquals('/all/list', $client->getResponse()->getTargetUrl());
+ }
+
/**
* @depends testPostNewOk
*/