Commit c7c6b79d authored by catch's avatar catch

Issue #1490150 by duellj, catch: Fixed EntityFieldQuery::pager(0) generates...

Issue #1490150 by duellj, catch: Fixed EntityFieldQuery::pager(0) generates PHP error 'divide by zero'.
parent 3d4d9505
......@@ -873,12 +873,11 @@ protected function propertyQuery() {
/**
* Gets the total number of results and initialize a pager for the query.
*
* This query can be detected by checking for ($this->pager && $this->count),
* which allows a driver to return 0 from the count query and disable
* the pager.
* The pager can be disabled by either setting the pager limit to 0, or by
* setting this query to be a count query.
*/
function initializePager() {
if ($this->pager && !$this->count) {
if ($this->pager && !empty($this->pager['limit']) && !$this->count) {
$page = pager_find_page($this->pager['element']);
$count_query = clone $this;
$this->pager['total'] = $count_query->count()->execute();
......
......@@ -10,6 +10,7 @@
*/
class EntityFieldQueryTestCase extends DrupalWebTestCase {
public static function getInfo() {
return array(
'name' => 'Entity query',
......@@ -1322,6 +1323,27 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
unset($_GET['page']);
}
/**
* Tests the disabling the pager in EntityFieldQuery.
*/
function testEntityFieldQueryDisablePager() {
// Test enabling a pager and then disabling it.
$query = new EntityFieldQuery();
$query
->entityCondition('entity_type', 'test_entity_bundle_key')
->propertyOrderBy('ftid', 'ASC')
->pager(1)
->pager(0);
$this->assertEntityFieldQuery($query, array(
array('test_entity_bundle_key', 1),
array('test_entity_bundle_key', 2),
array('test_entity_bundle_key', 3),
array('test_entity_bundle_key', 4),
array('test_entity_bundle_key', 5),
array('test_entity_bundle_key', 6),
), t('Test disabling pager in propertyQuery.'), TRUE);
}
/**
* Tests the TableSort integration of EntityFieldQuery.
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment