diff --git a/core/modules/node/node.test b/core/modules/node/node.test index 655bc0b..f2ccf5b 100644 --- a/core/modules/node/node.test +++ b/core/modules/node/node.test @@ -2579,3 +2579,52 @@ class NodeAccessFieldTestCase extends NodeWebTestCase { $this->assertRaw($default, 'The updated default value is displayed when creating a new node.'); } } +/** + * Tests Node EFQ has prefixes + */ +class NodeAccessEFQTablePrefixTestCase extends NodeWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'Node EFQ Table Prefixes', + 'description' => 'Tests that a node EntityFieldQuery uses proper table prefixing', + 'group' => 'Node', + ); + } + + public function setUp() { + parent::setUp('node_efq_table_prefix_test'); + + // Create an article. + $this->node = $this->drupalCreateNode(array('type' => 'article')); + } + + /** + * Tests EFQ prefix by a simple EFQ that node_efq_table_prefix_test + * will use hook_query_alter to join back to node. Any non-prefixed + * node columns in the EFQ will cause an exception. + */ + function testNodeAccessEFQTablePrefixes() { + // Run an EFQ with multiple EntityConditions. + // @todo This does not trigger the bug. + $query = new EntityFieldQuery(); + $query + ->entityCondition('entity_type', 'node') + ->entityCondition('bundle', 'article') + ->entityCondition('entity_id', $this->node->nid, '=') + ->addTag('node_efq_table_prefix_test'); + + // Print out the EFQ object. + // @todo This is debug code. + $this->verbose('
' . print_r($query, TRUE) . '
'); + + $pass = TRUE; + try { + $query->execute(); + } + catch (Exception $exception) { + $pass = FALSE; + } + $this->assertTrue($pass, t("Node EFQ has proper table prefixes")); + } +} diff --git a/core/modules/node/tests/modules/node_efq_table_prefix_test/node_efq_table_prefix_test.info b/core/modules/node/tests/modules/node_efq_table_prefix_test/node_efq_table_prefix_test.info new file mode 100644 index 0000000..f68a937 --- /dev/null +++ b/core/modules/node/tests/modules/node_efq_table_prefix_test/node_efq_table_prefix_test.info @@ -0,0 +1,6 @@ +name = "Node EntityFieldQuery prefix test" +description = "Test module for testing EntityFieldQuery prefixes" +package = Testing +version = VERSION +core = 8.x +hidden = TRUE diff --git a/core/modules/node/tests/modules/node_efq_table_prefix_test/node_efq_table_prefix_test.module b/core/modules/node/tests/modules/node_efq_table_prefix_test/node_efq_table_prefix_test.module new file mode 100644 index 0000000..477b285 --- /dev/null +++ b/core/modules/node/tests/modules/node_efq_table_prefix_test/node_efq_table_prefix_test.module @@ -0,0 +1,17 @@ +hasTag('node_efq_table_prefix_test')) { + $query->join('node','n2','%alias.nid = node.nid'); + } +}