summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/field/modules/field_sql_storage/field_sql_storage.module2
-rw-r--r--modules/simpletest/tests/entity_query.test127
2 files changed, 128 insertions, 1 deletions
diff --git a/modules/field/modules/field_sql_storage/field_sql_storage.module b/modules/field/modules/field_sql_storage/field_sql_storage.module
index 407e9186f..f916968d1 100644
--- a/modules/field/modules/field_sql_storage/field_sql_storage.module
+++ b/modules/field/modules/field_sql_storage/field_sql_storage.module
@@ -565,7 +565,7 @@ function field_sql_storage_field_storage_query(EntityFieldQuery $query) {
}
foreach ($query->entityOrder as $key => $direction) {
$sql_field = $key == 'entity_type' ? 'fcet.type' : "$field_base_table.$key";
- $query->orderBy($sql_field, $direction);
+ $select_query->orderBy($sql_field, $direction);
}
return $query->finishQuery($select_query, $id_key);
}
diff --git a/modules/simpletest/tests/entity_query.test b/modules/simpletest/tests/entity_query.test
index 0b3db8b59..408d13e5b 100644
--- a/modules/simpletest/tests/entity_query.test
+++ b/modules/simpletest/tests/entity_query.test
@@ -291,6 +291,31 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
array('test_entity_bundle_key', 2),
array('test_entity_bundle_key', 1),
), t('Test sort entity entity_id in descending order.'), TRUE);
+
+ // Test entity sort by entity_id, with a field condition.
+ $query = new EntityFieldQuery();
+ $query
+ ->entityCondition('entity_type', 'test_entity_bundle_key')
+ ->fieldCondition($this->fields[0], 'value', 0, '>')
+ ->entityOrderBy('entity_id', 'ASC');
+ $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),
+ ), t('Test sort entity entity_id in ascending order, with a field condition.'), TRUE);
+
+ $query = new EntityFieldQuery();
+ $query
+ ->entityCondition('entity_type', 'test_entity_bundle_key')
+ ->fieldCondition($this->fields[0], 'value', 0, '>')
+ ->propertyOrderBy('ftid', 'DESC');
+ $this->assertEntityFieldQuery($query, array(
+ array('test_entity_bundle_key', 4),
+ array('test_entity_bundle_key', 3),
+ array('test_entity_bundle_key', 2),
+ array('test_entity_bundle_key', 1),
+ ), t('Test sort entity entity_id property in descending order, with a field condition.'), TRUE);
// Test property sort by entity id.
$query = new EntityFieldQuery();
@@ -318,6 +343,31 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
array('test_entity_bundle_key', 2),
array('test_entity_bundle_key', 1),
), t('Test sort entity entity_id property in descending order.'), TRUE);
+
+ // Test property sort by entity id, with a field condition.
+ $query = new EntityFieldQuery();
+ $query
+ ->entityCondition('entity_type', 'test_entity_bundle_key')
+ ->fieldCondition($this->fields[0], 'value', 0, '>')
+ ->propertyOrderBy('ftid', 'ASC');
+ $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),
+ ), t('Test sort entity entity_id property in ascending order, with a field condition.'), TRUE);
+
+ $query = new EntityFieldQuery();
+ $query
+ ->entityCondition('entity_type', 'test_entity_bundle_key')
+ ->fieldCondition($this->fields[0], 'value', 0, '>')
+ ->propertyOrderBy('ftid', 'DESC');
+ $this->assertEntityFieldQuery($query, array(
+ array('test_entity_bundle_key', 4),
+ array('test_entity_bundle_key', 3),
+ array('test_entity_bundle_key', 2),
+ array('test_entity_bundle_key', 1),
+ ), t('Test sort entity entity_id property in descending order, with a field condition.'), TRUE);
// Test entity sort by bundle.
$query = new EntityFieldQuery();
@@ -347,6 +397,33 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
array('test_entity_bundle_key', 2),
array('test_entity_bundle_key', 1),
), t('Test sort entity bundle in descending order.'), TRUE);
+
+ // Test entity sort by bundle, with a field condition.
+ $query = new EntityFieldQuery();
+ $query
+ ->entityCondition('entity_type', 'test_entity_bundle_key')
+ ->fieldCondition($this->fields[0], 'value', 0, '>')
+ ->entityOrderBy('bundle', 'ASC')
+ ->propertyOrderBy('ftid', 'ASC');
+ $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),
+ ), t('Test sort entity bundle in ascending order, with a field condition.'), TRUE);
+
+ $query = new EntityFieldQuery();
+ $query
+ ->entityCondition('entity_type', 'test_entity_bundle_key')
+ ->fieldCondition($this->fields[0], 'value', 0, '>')
+ ->entityOrderBy('bundle', 'DESC')
+ ->propertyOrderBy('ftid', 'DESC');
+ $this->assertEntityFieldQuery($query, array(
+ array('test_entity_bundle_key', 4),
+ array('test_entity_bundle_key', 3),
+ array('test_entity_bundle_key', 2),
+ array('test_entity_bundle_key', 1),
+ ), t('Test sort entity bundle in descending order, with a field condition.'), TRUE);
// Test entity sort by revision_id.
$query = new EntityFieldQuery();
@@ -370,6 +447,31 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
array('test_entity', 2),
array('test_entity', 1),
), t('Test sort entity revision_id in descending order.'), TRUE);
+
+ // Test entity sort by revision_id, with a field condition.
+ $query = new EntityFieldQuery();
+ $query
+ ->entityCondition('entity_type', 'test_entity')
+ ->fieldCondition($this->fields[0], 'value', 0, '>')
+ ->entityOrderBy('revision_id', 'ASC');
+ $this->assertEntityFieldQuery($query, array(
+ array('test_entity', 1),
+ array('test_entity', 2),
+ array('test_entity', 3),
+ array('test_entity', 4),
+ ), t('Test sort entity revision_id in ascending order, with a field condition.'), TRUE);
+
+ $query = new EntityFieldQuery();
+ $query
+ ->entityCondition('entity_type', 'test_entity')
+ ->fieldCondition($this->fields[0], 'value', 0, '>')
+ ->entityOrderBy('revision_id', 'DESC');
+ $this->assertEntityFieldQuery($query, array(
+ array('test_entity', 4),
+ array('test_entity', 3),
+ array('test_entity', 2),
+ array('test_entity', 1),
+ ), t('Test sort entity revision_id in descending order, with a field condition.'), TRUE);
// Test property sort by revision_id.
$query = new EntityFieldQuery();
@@ -394,6 +496,31 @@ class EntityFieldQueryTestCase extends DrupalWebTestCase {
array('test_entity', 1),
), t('Test sort entity revision_id property in descending order.'), TRUE);
+ // Test property sort by revision_id, with a field condition.
+ $query = new EntityFieldQuery();
+ $query
+ ->entityCondition('entity_type', 'test_entity')
+ ->fieldCondition($this->fields[0], 'value', 0, '>')
+ ->propertyOrderBy('ftvid', 'ASC');
+ $this->assertEntityFieldQuery($query, array(
+ array('test_entity', 1),
+ array('test_entity', 2),
+ array('test_entity', 3),
+ array('test_entity', 4),
+ ), t('Test sort entity revision_id property in ascending order, with a field condition.'), TRUE);
+
+ $query = new EntityFieldQuery();
+ $query
+ ->entityCondition('entity_type', 'test_entity')
+ ->fieldCondition($this->fields[0], 'value', 0, '>')
+ ->propertyOrderBy('ftvid', 'DESC');
+ $this->assertEntityFieldQuery($query, array(
+ array('test_entity', 4),
+ array('test_entity', 3),
+ array('test_entity', 2),
+ array('test_entity', 1),
+ ), t('Test sort entity revision_id property in descending order, with a field condition.'), TRUE);
+
$query = new EntityFieldQuery();
$query
->entityCondition('entity_type', 'test_entity_bundle_key')