diff --git a/core/modules/entity/entity.module b/core/modules/entity/entity.module index b4e5b9b620879690f077d5d4ecdf974dfe48e7b2..a6599ebf73d506c38215712fcfa1783bfc606c06 100644 --- a/core/modules/entity/entity.module +++ b/core/modules/entity/entity.module @@ -177,17 +177,16 @@ function entity_extract_ids($entity_type, $entity) { * An entity object, initialized with the IDs provided. */ function entity_create_stub_entity($entity_type, $ids) { - $values = array(); + $entity = new stdClass(); $info = entity_get_info($entity_type); - $values[$info['entity keys']['id']] = $ids[0]; + $entity->{$info['entity keys']['id']} = $ids[0]; if (!empty($info['entity keys']['revision']) && isset($ids[1])) { - $values[$info['entity keys']['revision']] = $ids[1]; + $entity->{$info['entity keys']['revision']} = $ids[1]; } if (!empty($info['entity keys']['bundle']) && isset($ids[2])) { - $values[$info['entity keys']['bundle']] = $ids[2]; + $entity->{$info['entity keys']['bundle']} = $ids[2]; } - // @todo Once all entities are converted, just rely on entity_create(). - return isset($info['entity class']) ? entity_create($entity_type, $values) : (object) $values; + return $entity; } /** diff --git a/core/modules/taxonomy/taxonomy.test b/core/modules/taxonomy/taxonomy.test index f352c7510ca1d7449698c2cae73b0dcde4fd484c..a26d15f3e2a780a937976f80be92f93fe7bfc90d 100644 --- a/core/modules/taxonomy/taxonomy.test +++ b/core/modules/taxonomy/taxonomy.test @@ -1913,3 +1913,40 @@ class TaxonomyThemeTestCase extends TaxonomyWebTestCase { } } + +/** + * Tests the functionality of EntityFieldQuery for taxonomy entities. + */ +class TaxonomyEFQTestCase extends TaxonomyWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Taxonomy EntityFieldQuery', + 'description' => 'Verifies operation of a taxonomy-based EntityFieldQuery.', + 'group' => 'Taxonomy', + ); + } + + function setUp() { + parent::setUp(); + $this->admin_user = $this->drupalCreateUser(array('administer taxonomy')); + $this->drupalLogin($this->admin_user); + $this->vocabulary = $this->createVocabulary(); + } + + /** + * Tests that a basic taxonomy EntityFieldQuery works. + */ + function testTaxonomyEFQ() { + $terms = array(); + for ($i = 0; $i < 5; $i++) { + $term = $this->createTerm($this->vocabulary); + $terms[$term->tid] = $term; + } + $query = new EntityFieldQuery(); + $query->entityCondition('entity_type', 'taxonomy_term'); + $result = $query->execute(); + $result = $result['taxonomy_term']; + asort($result); + $this->assertEqual(array_keys($terms), array_keys($result), 'Taxonomy terms were retrieved by EntityFieldQuery.'); + } +}