Index: tests/Zend/PaginatorTest.php =================================================================== --- tests/Zend/PaginatorTest.php (revision 20443) +++ tests/Zend/PaginatorTest.php (revision ) @@ -632,6 +632,34 @@ $this->assertEquals(10, $this->_paginator->normalizeItemNumber(11)); } + /** + * @group ZF-8656 + */ + public function testNormalizesPageNumberWhenGivenAFloat() + { + $this->assertEquals(1, $this->_paginator->normalizePageNumber(0.5)); + $this->assertEquals(1, $this->_paginator->normalizePageNumber(1.99)); + $this->assertEquals(2, $this->_paginator->normalizePageNumber(2.3)); + $this->assertEquals(5, $this->_paginator->normalizePageNumber(5.1)); + $this->assertEquals(10, $this->_paginator->normalizePageNumber(10.06)); + $this->assertEquals(11, $this->_paginator->normalizePageNumber(11.5)); + $this->assertEquals(11, $this->_paginator->normalizePageNumber(12.7889)); + } + + /** + * @group ZF-8656 + */ + public function testNormalizesItemNumberWhenGivenAFloat() + { + $this->assertEquals(1, $this->_paginator->normalizeItemNumber(0.5)); + $this->assertEquals(1, $this->_paginator->normalizeItemNumber(1.99)); + $this->assertEquals(2, $this->_paginator->normalizeItemNumber(2.3)); + $this->assertEquals(5, $this->_paginator->normalizeItemNumber(5.1)); + $this->assertEquals(9, $this->_paginator->normalizeItemNumber(9.06)); + $this->assertEquals(10, $this->_paginator->normalizeItemNumber(10.5)); + $this->assertEquals(10, $this->_paginator->normalizeItemNumber(11.7889)); + } + public function testGetsPagesInSubsetRange() { $actual = $this->_paginator->getPagesInRange(3, 8); Index: library/Zend/Paginator.php =================================================================== --- library/Zend/Paginator.php (revision 20096) +++ library/Zend/Paginator.php (revision ) @@ -904,6 +904,8 @@ */ public function normalizeItemNumber($itemNumber) { + $itemNumber = (integer) $itemNumber; + if ($itemNumber < 1) { $itemNumber = 1; } @@ -923,6 +925,8 @@ */ public function normalizePageNumber($pageNumber) { + $pageNumber = (integer) $pageNumber; + if ($pageNumber < 1) { $pageNumber = 1; }