diff options
author | Dries Buytaert <dries@buytaert.net> | 2010-09-05 20:00:45 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2010-09-05 20:00:45 +0000 |
commit | 7bf0fbf4b6b8b0a185f307de8bf5f19669ab01f0 (patch) | |
tree | 67c2e44c1097c184da0b21140a5c891799e56119 /modules | |
parent | d95f8cfdd450e772317e691a858a8d0604267d25 (diff) | |
download | brdo-7bf0fbf4b6b8b0a185f307de8bf5f19669ab01f0.tar.gz brdo-7bf0fbf4b6b8b0a185f307de8bf5f19669ab01f0.tar.bz2 |
- Patch #902830 by bojanz: field_sql_storage() can't handle entityOrderBy (fatal error).
Diffstat (limited to 'modules')
-rw-r--r-- | modules/field/modules/field_sql_storage/field_sql_storage.module | 2 | ||||
-rw-r--r-- | modules/simpletest/tests/entity_query.test | 127 |
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') |