summaryrefslogtreecommitdiff
path: root/modules/simpletest/tests/database_test.test
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2010-04-27 10:42:58 +0000
committerDries Buytaert <dries@buytaert.net>2010-04-27 10:42:58 +0000
commitca0323d2dec404d68ff920f0e71f186b90ead565 (patch)
tree53e0889a0144bf026a4fcf90a15cbbd614d2b010 /modules/simpletest/tests/database_test.test
parent3d84cef194ea08ef65edac975975158d9eb922fa (diff)
downloadbrdo-ca0323d2dec404d68ff920f0e71f186b90ead565.tar.gz
brdo-ca0323d2dec404d68ff920f0e71f186b90ead565.tar.bz2
- Patch #701888 by jhodgdon: subqueries are not altered and test clean-up.
Diffstat (limited to 'modules/simpletest/tests/database_test.test')
-rw-r--r--modules/simpletest/tests/database_test.test42
1 files changed, 25 insertions, 17 deletions
diff --git a/modules/simpletest/tests/database_test.test b/modules/simpletest/tests/database_test.test
index 59080c713..1005553d4 100644
--- a/modules/simpletest/tests/database_test.test
+++ b/modules/simpletest/tests/database_test.test
@@ -2326,22 +2326,6 @@ class DatabaseAlterTestCase extends DatabaseTestCase {
$this->assertEqual($records[0]->$pid_field, 1, t('Correct data retrieved.'));
$this->assertEqual($records[0]->$task_field, 'sleep', t('Correct data retrieved.'));
}
-}
-
-/**
- * Select alter tests, part 2.
- *
- * @see database_test_query_alter()
- */
-class DatabaseAlter2TestCase extends DatabaseTestCase {
-
- public static function getInfo() {
- return array(
- 'name' => 'Query altering tests, part 2',
- 'description' => 'Test the hook_query_alter capabilities of the Select builder.',
- 'group' => 'Database',
- );
- }
/**
* Test that we can alter the fields of a query.
@@ -2390,6 +2374,31 @@ class DatabaseAlter2TestCase extends DatabaseTestCase {
$this->assertEqual($num_records, 4, t('Returned the correct number of rows.'));
}
+
+ /**
+ * Test that we can do basic alters on subqueries.
+ */
+ function testSimpleAlterSubquery() {
+ // Create a sub-query with an alter tag.
+ $subquery = db_select('test', 'p');
+ $subquery->addField('p', 'name');
+ $subquery->addField('p', 'id');
+ // Pick out George.
+ $subquery->condition('age', 27);
+ $subquery->addExpression("age*2", 'double_age');
+ // This query alter should change it to age * 3.
+ $subquery->addTag('database_test_alter_change_expressions');
+
+ // Create a main query and join to sub-query.
+ $query = db_select('test_task', 'tt');
+ $query->join($subquery, 'pq', 'pq.id = tt.pid');
+ $age_field = $query->addField('pq', 'double_age');
+ $name_field = $query->addField('pq', 'name');
+
+ $record = $query->execute()->fetch();
+ $this->assertEqual($record->$name_field, 'George', t('Fetched name is correct.'));
+ $this->assertEqual($record->$age_field, 27*3, t('Fetched age expression is correct.'));
+ }
}
/**
@@ -3227,5 +3236,4 @@ class DatabaseEmptyStatementTestCase extends DrupalWebTestCase {
$this->assertEqual($result->fetchAll(), array(), t('Empty array returned from empty result set.'));
}
-
}