summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/entity.inc7
-rw-r--r--modules/simpletest/tests/entity_query.test21
2 files changed, 24 insertions, 4 deletions
diff --git a/includes/entity.inc b/includes/entity.inc
index 5f721f1d9..ae7807794 100644
--- a/includes/entity.inc
+++ b/includes/entity.inc
@@ -1263,12 +1263,11 @@ class EntityFieldQuery {
/**
* Get 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();
diff --git a/modules/simpletest/tests/entity_query.test b/modules/simpletest/tests/entity_query.test
index d5e5524f2..ddfd35433 100644
--- a/modules/simpletest/tests/entity_query.test
+++ b/modules/simpletest/tests/entity_query.test
@@ -1409,6 +1409,27 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
}
/**
+ * Tests 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),
+ ), 'All test entities are listed when the pager is enabled and then disabled.', TRUE);
+ }
+
+ /**
* Tests the TableSort integration of EntityFieldQuery.
*/
function testEntityFieldQueryTableSort() {