From ad9df97626f0cba772a1f6066feb059f08f13938 Mon Sep 17 00:00:00 2001 From: Sabina Talipova Date: Thu, 22 Jun 2023 08:42:49 +1200 Subject: [PATCH] FIX LastPage method returns true if TotalPages equals 0 --- src/ORM/PaginatedList.php | 2 +- tests/php/ORM/PaginatedListTest.php | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/ORM/PaginatedList.php b/src/ORM/PaginatedList.php index f7289e9a8..ac9d95ab2 100644 --- a/src/ORM/PaginatedList.php +++ b/src/ORM/PaginatedList.php @@ -416,7 +416,7 @@ class PaginatedList extends ListDecorator */ public function LastPage() { - return $this->CurrentPage() == $this->TotalPages(); + return $this->CurrentPage() >= $this->TotalPages(); } /** diff --git a/tests/php/ORM/PaginatedListTest.php b/tests/php/ORM/PaginatedListTest.php index fb63403d6..e00603d53 100644 --- a/tests/php/ORM/PaginatedListTest.php +++ b/tests/php/ORM/PaginatedListTest.php @@ -303,9 +303,20 @@ class PaginatedListTest extends SapphireTest $list = new PaginatedList(new ArrayList()); $list->setTotalItems(50); + $this->assertFalse($list->LastPage()); + $list->setCurrentPage(4); $this->assertFalse($list->LastPage()); $list->setCurrentPage(5); $this->assertTrue($list->LastPage()); + $list->setCurrentPage(6); + $this->assertTrue($list->LastPage()); + + $emptyList = new PaginatedList(new ArrayList()); + $emptyList->setTotalItems(0); + + $this->assertTrue($emptyList->LastPage()); + $emptyList->setCurrentPage(1); + $this->assertTrue($emptyList->LastPage()); } public function testNotLastPage()