Merge pull request #1994 from prototech/ticket/12158

[ticket/12158] The pagination start value should be 0 when there are no items.
This commit is contained in:
Nathan Guse 2014-02-18 14:25:46 -06:00
commit eaf9a41ed8
2 changed files with 18 additions and 3 deletions

View file

@ -251,7 +251,7 @@ class pagination
{
if ($start < 0 || $start >= $num_items)
{
return ($start < 0) ? 0 : floor(($num_items - 1) / $per_page) * $per_page;
return ($start < 0 || $num_items <= 0) ? 0 : floor(($num_items - 1) / $per_page) * $per_page;
}
return $start;

View file

@ -158,24 +158,39 @@ class phpbb_pagination_pagination_test extends phpbb_template_template_test_case
public function validate_start_data()
{
return array(
array(
0,
0,
0,
),
array(
-1,
20,
0,
),
array(
20,
-30,
0,
),
array(
0,
20,
0,
),
array(
10,
20,
10,
),
array(
20,
20,
10,
),
array(
30,
20,
10,
),
);
@ -184,9 +199,9 @@ class phpbb_pagination_pagination_test extends phpbb_template_template_test_case
/**
* @dataProvider validate_start_data
*/
public function test_validate_start($start, $expect)
public function test_validate_start($start, $num_items, $expect)
{
$this->assertEquals($expect, $this->pagination->validate_start($start, 10, 20));
$this->assertEquals($expect, $this->pagination->validate_start($start, 10, $num_items));
}
public function reverse_start_data()