- Patch #394524 by Berdir, Damien Tournoud: converted to the new database abstraction layer.

merge-requests/26/head
Dries Buytaert 2009-05-30 11:17:32 +00:00
parent 83631203f8
commit 0f77f652fa
12 changed files with 274 additions and 173 deletions

View File

@ -121,7 +121,9 @@ abstract class DrupalTestCase {
);
// Store assertion for display after the test has completed.
db_insert('simpletest')->fields($assertion)->execute();
db_insert('simpletest')
->fields($assertion)
->execute();
// Return to testing prefix.
$db_prefix = $current_db_prefix;
@ -679,7 +681,10 @@ class DrupalWebTestCase extends DrupalTestCase {
node_save($node);
// small hack to link revisions to our test user
db_query('UPDATE {node_revision} SET uid = %d WHERE vid = %d', $node->uid, $node->vid);
db_update('node_revision')
->fields(array('uid' => $node->uid))
->condition('vid', $node->vid)
->execute();
return $node;
}
@ -832,15 +837,22 @@ class DrupalWebTestCase extends DrupalTestCase {
// Create new role.
$role_name = $this->randomName();
db_query("INSERT INTO {role} (name) VALUES ('%s')", $role_name);
$role = db_fetch_object(db_query("SELECT * FROM {role} WHERE name = '%s'", $role_name));
db_insert('role')
->fields(array('name' => $role_name))
->execute();
$role = db_query('SELECT * FROM {role} WHERE name = :name', array(':name' => $role_name))->fetchObject();
$this->assertTrue($role, t('Created role of name: @role_name, id: @rid', array('@role_name' => $role_name, '@rid' => (isset($role->rid) ? $role->rid : t('-n/a-')))), t('Role'));
if ($role && !empty($role->rid)) {
// Assign permissions to role and mark it for clean-up.
$query = db_insert('role_permission')->fields(array('rid', 'permission'));
foreach ($permissions as $permission_string) {
db_query("INSERT INTO {role_permission} (rid, permission) VALUES (%d, '%s')", $role->rid, $permission_string);
$query->values(array(
'rid' => $role->rid,
'permission' => $permission_string,
));
}
$count = db_result(db_query("SELECT COUNT(*) FROM {role_permission} WHERE rid = %d", $role->rid));
$query->execute();
$count = db_query('SELECT COUNT(*) FROM {role_permission} WHERE rid = :rid', array(':rid' => $role->rid))->fetchField();
$this->assertTrue($count == count($permissions), t('Created permissions: @perms', array('@perms' => implode(', ', $permissions))), t('Role'));
return $role->rid;
}

View File

@ -102,7 +102,9 @@ function _simpletest_format_summary_line($summary) {
*/
function simpletest_run_tests($test_list, $reporter = 'drupal') {
cache_clear_all();
$test_id = db_insert('simpletest_test_id')->useDefaults(array('test_id'))->execute();
$test_id = db_insert('simpletest_test_id')
->useDefaults(array('test_id'))
->execute();
// Get the info for the first test being run.
$first_test = array_shift($test_list);
@ -325,7 +327,7 @@ function simpletest_clean_temporary_directories() {
function simpletest_clean_results_table($test_id = NULL) {
if (variable_get('simpletest_clear_results', TRUE)) {
if ($test_id) {
$count = db_result(db_query('SELECT COUNT(test_id) FROM {simpletest_test_id} WHERE test_id = :test_id', array(':test_id' => $test_id)));
$count = db_query('SELECT COUNT(test_id) FROM {simpletest_test_id} WHERE test_id = :test_id', array(':test_id' => $test_id))->fetchField();
db_delete("simpletest")
->condition('test_id', $test_id)
@ -335,7 +337,7 @@ function simpletest_clean_results_table($test_id = NULL) {
->execute();
}
else {
$count = db_result(db_query('SELECT COUNT(test_id) FROM {simpletest_test_id}'));
$count = db_query('SELECT COUNT(test_id) FROM {simpletest_test_id}')->fetchField();
// Clear test results.
db_delete("simpletest")->execute();

View File

@ -57,7 +57,7 @@ class ActionsConfigurationTestCase extends DrupalWebTestCase {
$this->assertRaw(t('Action %action was deleted', array('%action' => $new_action_description)), t('Make sure that we get a delete confirmation message.'));
$this->drupalGet('admin/settings/actions/manage');
$this->assertNoText($new_action_description, t("Make sure the action description does not appear on the overview page after we've deleted the action."));
$exists = db_result(db_query("SELECT aid FROM {actions} WHERE callback = 'drupal_goto_action'"));
$exists = db_query('SELECT aid FROM {actions} WHERE callback = :callback', array(':callback' => 'drupal_goto_action'))->fetchField();
$this->assertFalse($exists, t('Make sure the action is gone from the database after being deleted.'));
}
}

View File

@ -251,31 +251,31 @@ class HookBootExitTestCase extends DrupalWebTestCase {
variable_set('cache', CACHE_DISABLED);
$this->drupalGet('');
$calls = 1;
$this->assertEqual(db_query("SELECT COUNT(*) FROM {watchdog} WHERE type = 'system_test' AND message = 'hook_boot'")->fetchField(), $calls, t('hook_boot called with disabled cache.'));
$this->assertEqual(db_query("SELECT COUNT(*) FROM {watchdog} WHERE type = 'system_test' AND message = 'hook_exit'")->fetchField(), $calls, t('hook_exit called with disabled cache.'));
$this->assertEqual(db_query('SELECT COUNT(*) FROM {watchdog} WHERE type = :type AND message = :message', array(':type' => 'system_test', ':message' => 'hook_boot'))->fetchField(), $calls, t('hook_boot called with disabled cache.'));
$this->assertEqual(db_query('SELECT COUNT(*) FROM {watchdog} WHERE type = :type AND message = :message', array(':type' => 'system_test', ':message' => 'hook_exit'))->fetchField(), $calls, t('hook_exit called with disabled cache.'));
// Test with normal cache. Boot and exit should be called.
variable_set('cache', CACHE_NORMAL);
$this->drupalGet('');
$calls++;
$this->assertEqual(db_query("SELECT COUNT(*) FROM {watchdog} WHERE type = 'system_test' AND message = 'hook_boot'")->fetchField(), $calls, t('hook_boot called with normal cache.'));
$this->assertEqual(db_query("SELECT COUNT(*) FROM {watchdog} WHERE type = 'system_test' AND message = 'hook_exit'")->fetchField(), $calls, t('hook_exit called with normal cache.'));
$this->assertEqual(db_query('SELECT COUNT(*) FROM {watchdog} WHERE type = :type AND message = :message', array(':type' => 'system_test', ':message' => 'hook_boot'))->fetchField(), $calls, t('hook_boot called with normal cache.'));
$this->assertEqual(db_query('SELECT COUNT(*) FROM {watchdog} WHERE type = :type AND message = :message', array(':type' => 'system_test', ':message' => 'hook_exit'))->fetchField(), $calls, t('hook_exit called with normal cache.'));
// Test with aggressive cache. Boot and exit should not fire since the
// page is cached.
variable_set('cache', CACHE_AGGRESSIVE);
$this->assertTrue(cache_get(url('', array('absolute' => TRUE)), 'cache_page'), t('Page has been cached.'));
$this->drupalGet('');
$this->assertEqual(db_query("SELECT COUNT(*) FROM {watchdog} WHERE type = 'system_test' AND message = 'hook_boot'")->fetchField(), $calls, t('hook_boot not called with agressive cache and a cached page.'));
$this->assertEqual(db_query("SELECT COUNT(*) FROM {watchdog} WHERE type = 'system_test' AND message = 'hook_exit'")->fetchField(), $calls, t('hook_exit not called with agressive cache and a cached page.'));
$this->assertEqual(db_query('SELECT COUNT(*) FROM {watchdog} WHERE type = :type AND message = :message', array(':type' => 'system_test', ':message' => 'hook_boot'))->fetchField(), $calls, t('hook_boot not called with agressive cache and a cached page.'));
$this->assertEqual(db_query('SELECT COUNT(*) FROM {watchdog} WHERE type = :type AND message = :message', array(':type' => 'system_test', ':message' => 'hook_exit'))->fetchField(), $calls, t('hook_exit not called with agressive cache and a cached page.'));
// Test with aggressive cache and page cache cleared. Boot and exit should
// be called.
$this->assertTrue(db_delete('cache_page')->execute(), t('Page cache cleared.'));
$this->drupalGet('');
$calls++;
$this->assertEqual(db_query("SELECT COUNT(*) FROM {watchdog} WHERE type = 'system_test' AND message = 'hook_boot'")->fetchField(), $calls, t('hook_boot called with agressive cache and no cached page.'));
$this->assertEqual(db_query("SELECT COUNT(*) FROM {watchdog} WHERE type = 'system_test' AND message = 'hook_exit'")->fetchField(), $calls, t('hook_exit called with agressive cache and no cached page.'));
$this->assertEqual(db_query('SELECT COUNT(*) FROM {watchdog} WHERE type = :type AND message = :message', array(':type' => 'system_test', ':message' => 'hook_boot'))->fetchField(), $calls, t('hook_boot called with agressive cache and no cached page.'));
$this->assertEqual(db_query('SELECT COUNT(*) FROM {watchdog} WHERE type = :type AND message = :message', array(':type' => 'system_test', ':message' => 'hook_exit'))->fetchField(), $calls, t('hook_exit called with agressive cache and no cached page.'));
}
}

View File

@ -252,7 +252,7 @@ class DatabaseFetchTestCase extends DatabaseTestCase {
*/
function testQueryFetchDefault() {
$records = array();
$result = db_query("SELECT name FROM {test} WHERE age = :age", array(':age' => 25));
$result = db_query('SELECT name FROM {test} WHERE age = :age', array(':age' => 25));
$this->assertTrue($result instanceof DatabaseStatementInterface, t('Result set is a Drupal statement object.'));
foreach ($result as $record) {
$records[] = $record;
@ -268,7 +268,7 @@ class DatabaseFetchTestCase extends DatabaseTestCase {
*/
function testQueryFetchObject() {
$records = array();
$result = db_query("SELECT name FROM {test} WHERE age = :age", array(':age' => 25), array('fetch' => PDO::FETCH_OBJ));
$result = db_query('SELECT name FROM {test} WHERE age = :age', array(':age' => 25), array('fetch' => PDO::FETCH_OBJ));
foreach ($result as $record) {
$records[] = $record;
$this->assertTrue(is_object($record), t('Record is an object.'));
@ -283,7 +283,7 @@ class DatabaseFetchTestCase extends DatabaseTestCase {
*/
function testQueryFetchArray() {
$records = array();
$result = db_query("SELECT name FROM {test} WHERE age = :age", array(':age' => 25), array('fetch' => PDO::FETCH_ASSOC));
$result = db_query('SELECT name FROM {test} WHERE age = :age', array(':age' => 25), array('fetch' => PDO::FETCH_ASSOC));
foreach ($result as $record) {
$records[] = $record;
if ($this->assertTrue(is_array($record), t('Record is an array.'))) {
@ -301,7 +301,7 @@ class DatabaseFetchTestCase extends DatabaseTestCase {
*/
function testQueryFetchClass() {
$records = array();
$result = db_query("SELECT name FROM {test} WHERE age = :age", array(':age' => 25), array('fetch' => 'FakeRecord'));
$result = db_query('SELECT name FROM {test} WHERE age = :age', array(':age' => 25), array('fetch' => 'FakeRecord'));
foreach ($result as $record) {
$records[] = $record;
if ($this->assertTrue($record instanceof FakeRecord, t('Record is an object of class FakeRecord.'))) {
@ -335,7 +335,7 @@ class DatabaseFetch2TestCase extends DatabaseTestCase {
// Confirm that we can fetch a record into an indexed array explicitly.
function testQueryFetchNum() {
$records = array();
$result = db_query("SELECT name FROM {test} WHERE age = :age", array(':age' => 25), array('fetch' => PDO::FETCH_NUM));
$result = db_query('SELECT name FROM {test} WHERE age = :age', array(':age' => 25), array('fetch' => PDO::FETCH_NUM));
foreach ($result as $record) {
$records[] = $record;
if ($this->assertTrue(is_array($record), t('Record is an array.'))) {
@ -351,7 +351,7 @@ class DatabaseFetch2TestCase extends DatabaseTestCase {
*/
function testQueryFetchBoth() {
$records = array();
$result = db_query("SELECT name FROM {test} WHERE age = :age", array(':age' => 25), array('fetch' => PDO::FETCH_BOTH));
$result = db_query('SELECT name FROM {test} WHERE age = :age', array(':age' => 25), array('fetch' => PDO::FETCH_BOTH));
foreach ($result as $record) {
$records[] = $record;
if ($this->assertTrue(is_array($record), t('Record is an array.'))) {
@ -368,11 +368,11 @@ class DatabaseFetch2TestCase extends DatabaseTestCase {
*/
function testQueryFetchCol() {
$records = array();
$result = db_query("SELECT name FROM {test} WHERE age > :age", array(':age' => 25));
$result = db_query('SELECT name FROM {test} WHERE age > :age', array(':age' => 25));
$column = $result->fetchCol();
$this->assertIdentical(count($column), 3, t('fetchCol() returns the right number of records.'));
$result = db_query("SELECT name FROM {test} WHERE age > :age", array(':age' => 25));
$result = db_query('SELECT name FROM {test} WHERE age > :age', array(':age' => 25));
$i = 0;
foreach ($result as $record) {
$this->assertIdentical($record->name, $column[$i++], t('Column matches direct accesss.'));
@ -397,7 +397,7 @@ class DatabaseInsertTestCase extends DatabaseTestCase {
* Test the very basic insert functionality.
*/
function testSimpleInsert() {
$num_records_before = db_query("SELECT COUNT(*) FROM {test}")->fetchField();
$num_records_before = db_query('SELECT COUNT(*) FROM {test}')->fetchField();
$query = db_insert('test');
$query->fields(array(
@ -406,9 +406,9 @@ class DatabaseInsertTestCase extends DatabaseTestCase {
));
$query->execute();
$num_records_after = db_query("SELECT COUNT(*) FROM {test}")->fetchField();
$num_records_after = db_query('SELECT COUNT(*) FROM {test}')->fetchField();
$this->assertIdentical($num_records_before + 1, (int)$num_records_after, t('Record inserts correctly.'));
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Yoko'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Yoko'))->fetchField();
$this->assertIdentical($saved_age, '29', t('Can retrieve after inserting.'));
}
@ -416,7 +416,7 @@ class DatabaseInsertTestCase extends DatabaseTestCase {
* Test that we can insert multiple records in one query object.
*/
function testMultiInsert() {
$num_records_before = (int) db_query("SELECT COUNT(*) FROM {test}")->fetchField();
$num_records_before = (int) db_query('SELECT COUNT(*) FROM {test}')->fetchField();
$query = db_insert('test');
$query->fields(array(
@ -435,13 +435,13 @@ class DatabaseInsertTestCase extends DatabaseTestCase {
$query->values(array('Moe', '32'));
$query->execute();
$num_records_after = (int) db_query("SELECT COUNT(*) FROM {test}")->fetchField();
$num_records_after = (int) db_query('SELECT COUNT(*) FROM {test}')->fetchField();
$this->assertIdentical($num_records_before + 3, $num_records_after, t('Record inserts correctly.'));
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Larry'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Larry'))->fetchField();
$this->assertIdentical($saved_age, '30', t('Can retrieve after inserting.'));
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Curly'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Curly'))->fetchField();
$this->assertIdentical($saved_age, '31', t('Can retrieve after inserting.'));
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Moe'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Moe'))->fetchField();
$this->assertIdentical($saved_age, '32', t('Can retrieve after inserting.'));
}
@ -449,7 +449,7 @@ class DatabaseInsertTestCase extends DatabaseTestCase {
* Test that an insert object can be reused with new data after it executes.
*/
function testRepeatedInsert() {
$num_records_before = db_query("SELECT COUNT(*) FROM {test}")->fetchField();
$num_records_before = db_query('SELECT COUNT(*) FROM {test}')->fetchField();
$query = db_insert('test');
@ -470,13 +470,13 @@ class DatabaseInsertTestCase extends DatabaseTestCase {
$query->values(array('Moe', '32'));
$query->execute();
$num_records_after = db_query("SELECT COUNT(*) FROM {test}")->fetchField();
$num_records_after = db_query('SELECT COUNT(*) FROM {test}')->fetchField();
$this->assertIdentical((int) $num_records_before + 3, (int) $num_records_after, t('Record inserts correctly.'));
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Larry'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Larry'))->fetchField();
$this->assertIdentical($saved_age, '30', t('Can retrieve after inserting.'));
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Curly'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Curly'))->fetchField();
$this->assertIdentical($saved_age, '31', t('Can retrieve after inserting.'));
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Moe'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Moe'))->fetchField();
$this->assertIdentical($saved_age, '32', t('Can retrieve after inserting.'));
}
@ -492,11 +492,11 @@ class DatabaseInsertTestCase extends DatabaseTestCase {
->values(array('Curly', '31'))
->values(array('Moe', '32'))
->execute();
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Larry'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Larry'))->fetchField();
$this->assertIdentical($saved_age, '30', t('Can retrieve after inserting.'));
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Curly'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Curly'))->fetchField();
$this->assertIdentical($saved_age, '31', t('Can retrieve after inserting.'));
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Moe'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Moe'))->fetchField();
$this->assertIdentical($saved_age, '32', t('Can retrieve after inserting.'));
}
@ -504,7 +504,8 @@ class DatabaseInsertTestCase extends DatabaseTestCase {
* Test that inserts return the proper auto-increment ID.
*/
function testInsertLastInsertID() {
$id = db_insert('test')->fields(array(
$id = db_insert('test')
->fields(array(
'name' => 'Larry',
'age' => '30',
))
@ -533,9 +534,10 @@ class DatabaseInsertLOBTestCase extends DatabaseTestCase {
function testInsertOneBlob() {
$data = "This is\000a test.";
$this->assertTrue(strlen($data) === 15, t('Test data contains a NULL.'));
$id = db_insert('test_one_blob')->fields(array('blob1' => $data))->execute();
$res = db_query('SELECT * FROM {test_one_blob} WHERE id = :id', array(':id' => $id));
$r = db_fetch_array($res);
$id = db_insert('test_one_blob')
->fields(array('blob1' => $data))
->execute();
$r = db_query('SELECT * FROM {test_one_blob} WHERE id = :id', array(':id' => $id))->fetchAssoc();
$this->assertTrue($r['blob1'] === $data, t('Can insert a blob: id @id, @data.', array('@id' => $id, '@data' => serialize($r))));
}
@ -543,13 +545,13 @@ class DatabaseInsertLOBTestCase extends DatabaseTestCase {
* Test that we can insert multiple blob fields in the same query.
*/
function testInsertMultipleBlob() {
$id = db_insert('test_two_blobs')->fields(array(
'blob1' => 'This is',
'blob2' => 'a test',
$id = db_insert('test_two_blobs')
->fields(array(
'blob1' => 'This is',
'blob2' => 'a test',
))
->execute();
$res = db_query('SELECT * FROM {test_two_blobs} WHERE id = %d', $id);
$r = db_fetch_array($res);
->execute();
$r = db_query('SELECT * FROM {test_two_blobs} WHERE id = :id', array(':id' => $id))->fetchAssoc();
$this->assertTrue($r['blob1'] === 'This is' && $r['blob2'] === 'a test', t('Can insert multiple blobs per row.'));
}
}
@ -576,7 +578,7 @@ class DatabaseInsertDefaultsTestCase extends DatabaseTestCase {
$schema = drupal_get_schema('test');
$job = db_query("SELECT job FROM {test} WHERE id = :id", array(':id' => $id))->fetchField();
$job = db_query('SELECT job FROM {test} WHERE id = :id', array(':id' => $id))->fetchField();
$this->assertEqual($job, $schema['fields']['job']['default'], t('Default field value is set.'));
}
@ -584,12 +586,12 @@ class DatabaseInsertDefaultsTestCase extends DatabaseTestCase {
* Test that no action will be preformed if no fields are specified.
*/
function testDefaultEmptyInsert() {
$num_records_before = (int) db_query("SELECT COUNT(*) FROM {test}")->fetchField();
$num_records_before = (int) db_query('SELECT COUNT(*) FROM {test}')->fetchField();
$result = db_insert('test')->execute();
$this->assertNull($result, t('Return NULL as no fields are specified.'));
$num_records_after = (int) db_query("SELECT COUNT(*) FROM {test}")->fetchField();
$num_records_after = (int) db_query('SELECT COUNT(*) FROM {test}')->fetchField();
$this->assertIdentical($num_records_before, $num_records_after, t('Do nothing as no fields are specified.'));
}
@ -597,12 +599,14 @@ class DatabaseInsertDefaultsTestCase extends DatabaseTestCase {
* Test that we can insert fields with values and defaults in the same query.
*/
function testDefaultInsertWithFields() {
$query = db_insert('test')->fields(array('name' => 'Bob'))->useDefaults(array('job'));
$query = db_insert('test')
->fields(array('name' => 'Bob'))
->useDefaults(array('job'));
$id = $query->execute();
$schema = drupal_get_schema('test');
$job = db_query("SELECT job FROM {test} WHERE id = :id", array(':id' => $id))->fetchField();
$job = db_query('SELECT job FROM {test} WHERE id = :id', array(':id' => $id))->fetchField();
$this->assertEqual($job, $schema['fields']['job']['default'], t('Default field value is set.'));
}
}
@ -624,10 +628,13 @@ class DatabaseUpdateTestCase extends DatabaseTestCase {
* Confirm that we can update a single record successfully.
*/
function testSimpleUpdate() {
$num_updated = db_update('test')->fields(array('name' => 'Tiffany'))->condition('id', 1)->execute();
$num_updated = db_update('test')
->fields(array('name' => 'Tiffany'))
->condition('id', 1)
->execute();
$this->assertIdentical($num_updated, 1, t('Updated 1 record.'));
$saved_name = db_query("SELECT name FROM {test} WHERE id = :id", array(':id' => 1))->fetchField();
$saved_name = db_query('SELECT name FROM {test} WHERE id = :id', array(':id' => 1))->fetchField();
$this->assertIdentical($saved_name, 'Tiffany', t('Updated name successfully.'));
}
@ -635,10 +642,13 @@ class DatabaseUpdateTestCase extends DatabaseTestCase {
* Confirm that we can update a multiple records successfully.
*/
function testMultiUpdate() {
$num_updated = db_update('test')->fields(array('job' => 'Musician'))->condition('job', 'Singer')->execute();
$num_updated = db_update('test')
->fields(array('job' => 'Musician'))
->condition('job', 'Singer')
->execute();
$this->assertIdentical($num_updated, 2, t('Updated 2 records.'));
$num_matches = db_query("SELECT COUNT(*) FROM {test} WHERE job = :job", array(':job' => 'Musician'))->fetchField();
$num_matches = db_query('SELECT COUNT(*) FROM {test} WHERE job = :job', array(':job' => 'Musician'))->fetchField();
$this->assertIdentical($num_matches, '2', t('Updated fields successfully.'));
}
@ -646,10 +656,13 @@ class DatabaseUpdateTestCase extends DatabaseTestCase {
* Confirm that we can update a multiple records with a non-equality condition.
*/
function testMultiGTUpdate() {
$num_updated = db_update('test')->fields(array('job' => 'Musician'))->condition('age', 26, '>')->execute();
$num_updated = db_update('test')
->fields(array('job' => 'Musician'))
->condition('age', 26, '>')
->execute();
$this->assertIdentical($num_updated, 2, t('Updated 2 records.'));
$num_matches = db_query("SELECT COUNT(*) FROM {test} WHERE job = :job", array(':job' => 'Musician'))->fetchField();
$num_matches = db_query('SELECT COUNT(*) FROM {test} WHERE job = :job', array(':job' => 'Musician'))->fetchField();
$this->assertIdentical($num_matches, '2', t('Updated fields successfully.'));
}
@ -657,10 +670,13 @@ class DatabaseUpdateTestCase extends DatabaseTestCase {
* Confirm that we can update a multiple records with a where call.
*/
function testWhereUpdate() {
$num_updated = db_update('test')->fields(array('job' => 'Musician'))->where('age > :age', array(':age' => 26))->execute();
$num_updated = db_update('test')
->fields(array('job' => 'Musician'))
->where('age > :age', array(':age' => 26))
->execute();
$this->assertIdentical($num_updated, 2, t('Updated 2 records.'));
$num_matches = db_query("SELECT COUNT(*) FROM {test} WHERE job = :job", array(':job' => 'Musician'))->fetchField();
$num_matches = db_query('SELECT COUNT(*) FROM {test} WHERE job = :job', array(':job' => 'Musician'))->fetchField();
$this->assertIdentical($num_matches, '2', t('Updated fields successfully.'));
}
@ -668,11 +684,14 @@ class DatabaseUpdateTestCase extends DatabaseTestCase {
* Confirm that we can stack condition and where calls.
*/
function testWhereAndConditionUpdate() {
$update = db_update('test')->fields(array('job' => 'Musician'))->where('age > :age', array(':age' => 26))->condition('name', 'Ringo');
$update = db_update('test')
->fields(array('job' => 'Musician'))
->where('age > :age', array(':age' => 26))
->condition('name', 'Ringo');
$num_updated = $update->execute();
$this->assertIdentical($num_updated, 1, t('Updated 1 record.'));
$num_matches = db_query("SELECT COUNT(*) FROM {test} WHERE job = :job", array(':job' => 'Musician'))->fetchField();
$num_matches = db_query('SELECT COUNT(*) FROM {test} WHERE job = :job', array(':job' => 'Musician'))->fetchField();
$this->assertIdentical($num_matches, '1', t('Updated fields successfully.'));
}
@ -704,7 +723,7 @@ class DatabaseUpdateComplexTestCase extends DatabaseTestCase {
$num_updated = $update->execute();
$this->assertIdentical($num_updated, 2, t('Updated 2 records.'));
$num_matches = db_query("SELECT COUNT(*) FROM {test} WHERE job = :job", array(':job' => 'Musician'))->fetchField();
$num_matches = db_query('SELECT COUNT(*) FROM {test} WHERE job = :job', array(':job' => 'Musician'))->fetchField();
$this->assertIdentical($num_matches, '2', t('Updated fields successfully.'));
}
@ -712,12 +731,13 @@ class DatabaseUpdateComplexTestCase extends DatabaseTestCase {
* Test WHERE IN clauses.
*/
function testInConditionUpdate() {
$num_updated = db_update('test')->fields(array('job' => 'Musician'))
$num_updated = db_update('test')
->fields(array('job' => 'Musician'))
->condition('name', array('John', 'Paul'), 'IN')
->execute();
$this->assertIdentical($num_updated, 2, t('Updated 2 records.'));
$num_matches = db_query("SELECT COUNT(*) FROM {test} WHERE job = :job", array(':job' => 'Musician'))->fetchField();
$num_matches = db_query('SELECT COUNT(*) FROM {test} WHERE job = :job', array(':job' => 'Musician'))->fetchField();
$this->assertIdentical($num_matches, '2', t('Updated fields successfully.'));
}
@ -725,12 +745,13 @@ class DatabaseUpdateComplexTestCase extends DatabaseTestCase {
* Test WHERE NOT IN clauses.
*/
function testNotInConditionUpdate() {
$num_updated = db_update('test')->fields(array('job' => 'Musician'))
$num_updated = db_update('test')
->fields(array('job' => 'Musician'))
->condition('name', array('John', 'Paul', 'George'), 'NOT IN')
->execute();
$this->assertIdentical($num_updated, 1, t('Updated 1 record.'));
$num_matches = db_query("SELECT COUNT(*) FROM {test} WHERE job = :job", array(':job' => 'Musician'))->fetchField();
$num_matches = db_query('SELECT COUNT(*) FROM {test} WHERE job = :job', array(':job' => 'Musician'))->fetchField();
$this->assertIdentical($num_matches, '1', t('Updated fields successfully.'));
}
@ -738,12 +759,13 @@ class DatabaseUpdateComplexTestCase extends DatabaseTestCase {
* Test BETWEEN conditional clauses.
*/
function testBetweenConditionUpdate() {
$num_updated = db_update('test')->fields(array('job' => 'Musician'))
$num_updated = db_update('test')
->fields(array('job' => 'Musician'))
->condition('age', array(25, 26), 'BETWEEN')
->execute();
$this->assertIdentical($num_updated, 2, t('Updated 2 records.'));
$num_matches = db_query("SELECT COUNT(*) FROM {test} WHERE job = :job", array(':job' => 'Musician'))->fetchField();
$num_matches = db_query('SELECT COUNT(*) FROM {test} WHERE job = :job', array(':job' => 'Musician'))->fetchField();
$this->assertIdentical($num_matches, '2', t('Updated fields successfully.'));
}
@ -751,12 +773,13 @@ class DatabaseUpdateComplexTestCase extends DatabaseTestCase {
* Test LIKE conditionals.
*/
function testLikeConditionUpdate() {
$num_updated = db_update('test')->fields(array('job' => 'Musician'))
$num_updated = db_update('test')
->fields(array('job' => 'Musician'))
->condition('name', '%ge%', 'LIKE')
->execute();
$this->assertIdentical($num_updated, 1, t('Updated 1 record.'));
$num_matches = db_query("SELECT COUNT(*) FROM {test} WHERE job = :job", array(':job' => 'Musician'))->fetchField();
$num_matches = db_query('SELECT COUNT(*) FROM {test} WHERE job = :job', array(':job' => 'Musician'))->fetchField();
$this->assertIdentical($num_matches, '1', t('Updated fields successfully.'));
}
@ -764,7 +787,7 @@ class DatabaseUpdateComplexTestCase extends DatabaseTestCase {
* Test update with expression values.
*/
function testUpdateExpression() {
$before_age = db_query("SELECT age FROM {test} WHERE name = 'Ringo'")->fetchField();
$before_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Ringo'))->fetchField();
$GLOBALS['larry_test'] = 1;
$num_updated = db_update('test')
->condition('name', 'Ringo')
@ -773,10 +796,10 @@ class DatabaseUpdateComplexTestCase extends DatabaseTestCase {
->execute();
$this->assertIdentical($num_updated, 1, t('Updated 1 record.'));
$num_matches = db_query("SELECT COUNT(*) FROM {test} WHERE job = :job", array(':job' => 'Musician'))->fetchField();
$num_matches = db_query('SELECT COUNT(*) FROM {test} WHERE job = :job', array(':job' => 'Musician'))->fetchField();
$this->assertIdentical($num_matches, '1', t('Updated fields successfully.'));
$person = db_query("SELECT * FROM {test} WHERE name = :name", array(':name' => 'Ringo'))->fetch();
$person = db_query('SELECT * FROM {test} WHERE name = :name', array(':name' => 'Ringo'))->fetch();
$this->assertEqual($person->name, 'Ringo', t('Name set correctly.'));
$this->assertEqual($person->age, $before_age + 4, t('Age set correctly.'));
$this->assertEqual($person->job, 'Musician', t('Job set correctly.'));
@ -787,14 +810,14 @@ class DatabaseUpdateComplexTestCase extends DatabaseTestCase {
* Test update with only expression values.
*/
function testUpdateOnlyExpression() {
$before_age = db_query("SELECT age FROM {test} WHERE name = 'Ringo'")->fetchField();
$before_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Ringo'))->fetchField();
$num_updated = db_update('test')
->condition('name', 'Ringo')
->expression('age', 'age + :age', array(':age' => 4))
->execute();
$this->assertIdentical($num_updated, 1, t('Updated 1 record.'));
$after_age = db_query("SELECT age FROM {test} WHERE name = 'Ringo'")->fetchField();
$after_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Ringo'))->fetchField();
$this->assertEqual($before_age + 4, $after_age, t('Age updated correctly'));
}
}
@ -818,13 +841,17 @@ class DatabaseUpdateLOBTestCase extends DatabaseTestCase {
function testUpdateOneBlob() {
$data = "This is\000a test.";
$this->assertTrue(strlen($data) === 15, t('Test data contains a NULL.'));
$id = db_insert('test_one_blob')->fields(array('blob1' => $data))->execute();
$id = db_insert('test_one_blob')
->fields(array('blob1' => $data))
->execute();
$data .= $data;
db_update('test_one_blob')->condition('id', $id)->fields(array('blob1' => $data))->execute();
db_update('test_one_blob')
->condition('id', $id)
->fields(array('blob1' => $data))
->execute();
$res = db_query('SELECT * FROM {test_one_blob} WHERE id = %d', $id);
$r = db_fetch_array($res);
$r = db_query('SELECT * FROM {test_one_blob} WHERE id = :id', array(':id' => $id))->fetchAssoc();
$this->assertTrue($r['blob1'] === $data, t('Can update a blob: id @id, @data.', array('@id' => $id, '@data' => serialize($r))));
}
@ -832,16 +859,19 @@ class DatabaseUpdateLOBTestCase extends DatabaseTestCase {
* Confirm that we can update two blob columns in the same table.
*/
function testUpdateMultipleBlob() {
$id = db_insert('test_two_blobs')->fields(array(
$id = db_insert('test_two_blobs')
->fields(array(
'blob1' => 'This is',
'blob2' => 'a test')
)
'blob2' => 'a test',
))
->execute();
db_update('test_two_blobs')->condition('id', $id)->fields(array('blob1' => 'and so', 'blob2' => 'is this'))->execute();
db_update('test_two_blobs')
->condition('id', $id)
->fields(array('blob1' => 'and so', 'blob2' => 'is this'))
->execute();
$res = db_query('SELECT * FROM {test_two_blobs} WHERE id = %d', $id);
$r = db_fetch_array($res);
$r = db_query('SELECT * FROM {test_two_blobs} WHERE id = :id', array(':id' => $id))->fetchAssoc();
$this->assertTrue($r['blob1'] === 'and so' && $r['blob2'] === 'is this', t('Can update multiple blobs per row.'));
}
}
@ -871,12 +901,14 @@ class DatabaseDeleteTruncateTestCase extends DatabaseTestCase {
* Confirm that we can delete a single record successfully.
*/
function testSimpleDelete() {
$num_records_before = db_query("SELECT COUNT(*) FROM {test}")->fetchField();
$num_records_before = db_query('SELECT COUNT(*) FROM {test}')->fetchField();
$num_deleted = db_delete('test')->condition('id', 1)->execute();
$num_deleted = db_delete('test')
->condition('id', 1)
->execute();
$this->assertIdentical($num_deleted, 1, t('Deleted 1 record.'));
$num_records_after = db_query("SELECT COUNT(*) FROM {test}")->fetchField();
$num_records_after = db_query('SELECT COUNT(*) FROM {test}')->fetchField();
$this->assertEqual($num_records_before, $num_records_after + $num_deleted, t('Deletion adds up.'));
}
@ -911,7 +943,7 @@ class DatabaseMergeTestCase extends DatabaseTestCase {
* Confirm that we can merge-insert a record successfully.
*/
function testMergeInsert() {
$num_records_before = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_before = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
db_merge('test_people')
->key(array('job' => 'Presenter'))
@ -921,10 +953,10 @@ class DatabaseMergeTestCase extends DatabaseTestCase {
))
->execute();
$num_records_after = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_after = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
$this->assertEqual($num_records_before + 1, $num_records_after, t('Merge inserted properly.'));
$person = db_query("SELECT * FROM {test_people} WHERE job = :job", array(':job' => 'Presenter'))->fetch();
$person = db_query('SELECT * FROM {test_people} WHERE job = :job', array(':job' => 'Presenter'))->fetch();
$this->assertEqual($person->name, 'Tiffany', t('Name set correctly.'));
$this->assertEqual($person->age, 31, t('Age set correctly.'));
$this->assertEqual($person->job, 'Presenter', t('Job set correctly.'));
@ -934,14 +966,20 @@ class DatabaseMergeTestCase extends DatabaseTestCase {
* Confirm that we can merge-update a record successfully.
*/
function testMergeUpdate() {
$num_records_before = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_before = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
db_merge('test_people')->key(array('job' => 'Speaker'))->fields(array('age' => 31, 'name' => 'Tiffany'))->execute();
db_merge('test_people')
->key(array('job' => 'Speaker'))
->fields(array(
'age' => 31,
'name' => 'Tiffany',
))
->execute();
$num_records_after = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_after = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
$this->assertEqual($num_records_before, $num_records_after, t('Merge updated properly.'));
$person = db_query("SELECT * FROM {test_people} WHERE job = :job", array(':job' => 'Speaker'))->fetch();
$person = db_query('SELECT * FROM {test_people} WHERE job = :job', array(':job' => 'Speaker'))->fetch();
$this->assertEqual($person->name, 'Tiffany', t('Name set correctly.'));
$this->assertEqual($person->age, 31, t('Age set correctly.'));
$this->assertEqual($person->job, 'Speaker', t('Job set correctly.'));
@ -951,14 +989,21 @@ class DatabaseMergeTestCase extends DatabaseTestCase {
* Confirm that we can merge-update a record successfully, with exclusion.
*/
function testMergeUpdateExcept() {
$num_records_before = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_before = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
db_merge('test_people')->key(array('job' => 'Speaker'))->fields(array('age' => 31, 'name' => 'Tiffany'))->updateExcept('age')->execute();
db_merge('test_people')
->key(array('job' => 'Speaker'))
->fields(array(
'age' => 31,
'name' => 'Tiffany',
))
->updateExcept('age')
->execute();
$num_records_after = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_after = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
$this->assertEqual($num_records_before, $num_records_after, t('Merge updated properly.'));
$person = db_query("SELECT * FROM {test_people} WHERE job = :job", array(':job' => 'Speaker'))->fetch();
$person = db_query('SELECT * FROM {test_people} WHERE job = :job', array(':job' => 'Speaker'))->fetch();
$this->assertEqual($person->name, 'Tiffany', t('Name set correctly.'));
$this->assertEqual($person->age, 30, t('Age skipped correctly.'));
$this->assertEqual($person->job, 'Speaker', t('Job set correctly.'));
@ -968,14 +1013,21 @@ class DatabaseMergeTestCase extends DatabaseTestCase {
* Confirm that we can merge-update a record successfully, with alternate replacement.
*/
function testMergeUpdateExplicit() {
$num_records_before = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_before = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
db_merge('test_people')->key(array('job' => 'Speaker'))->fields(array('age' => 31, 'name' => 'Tiffany'))->update(array('name' => 'Joe'))->execute();
db_merge('test_people')
->key(array('job' => 'Speaker'))
->fields(array(
'age' => 31,
'name' => 'Tiffany',
))
->update(array('name' => 'Joe'))
->execute();
$num_records_after = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_after = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
$this->assertEqual($num_records_before, $num_records_after, t('Merge updated properly.'));
$person = db_query("SELECT * FROM {test_people} WHERE job = :job", array(':job' => 'Speaker'))->fetch();
$person = db_query('SELECT * FROM {test_people} WHERE job = :job', array(':job' => 'Speaker'))->fetch();
$this->assertEqual($person->name, 'Joe', t('Name set correctly.'));
$this->assertEqual($person->age, 30, t('Age skipped correctly.'));
$this->assertEqual($person->job, 'Speaker', t('Job set correctly.'));
@ -985,9 +1037,9 @@ class DatabaseMergeTestCase extends DatabaseTestCase {
* Confirm that we can merge-update a record successfully, with expressions.
*/
function testMergeUpdateExpression() {
$num_records_before = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_before = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
$age_before = db_query("SELECT age FROM {test_people} WHERE job = 'Speaker'")->fetchField();
$age_before = db_query('SELECT age FROM {test_people} WHERE job = :job', array(':job' => 'Speaker'))->fetchField();
// This is a very contrived example, as I have no idea why you'd want to
// change age this way, but that's beside the point.
@ -996,14 +1048,17 @@ class DatabaseMergeTestCase extends DatabaseTestCase {
// which is what is supposed to happen.
db_merge('test_people')
->key(array('job' => 'Speaker'))
->fields(array('age' => 31, 'name' => 'Tiffany'))
->fields(array(
'age' => 31,
'name' => 'Tiffany',
))
->expression('age', 'age + :age', array(':age' => 4))
->execute();
$num_records_after = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_after = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
$this->assertEqual($num_records_before, $num_records_after, t('Merge updated properly.'));
$person = db_query("SELECT * FROM {test_people} WHERE job = :job", array(':job' => 'Speaker'))->fetch();
$person = db_query('SELECT * FROM {test_people} WHERE job = :job', array(':job' => 'Speaker'))->fetch();
$this->assertEqual($person->name, 'Tiffany', t('Name set correctly.'));
$this->assertEqual($person->age, $age_before + 4, t('Age updated correctly.'));
$this->assertEqual($person->job, 'Speaker', t('Job set correctly.'));
@ -1013,16 +1068,16 @@ class DatabaseMergeTestCase extends DatabaseTestCase {
* Test that we can merge-insert without any update fields.
*/
function testMergeInsertWithoutUpdate() {
$num_records_before = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_before = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
db_merge('test_people')
->key(array('job' => 'Presenter'))
->execute();
$num_records_after = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_after = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
$this->assertEqual($num_records_before + 1, $num_records_after, t('Merge inserted properly.'));
$person = db_query("SELECT * FROM {test_people} WHERE job = :job", array(':job' => 'Presenter'))->fetch();
$person = db_query('SELECT * FROM {test_people} WHERE job = :job', array(':job' => 'Presenter'))->fetch();
$this->assertEqual($person->name, '', t('Name set correctly.'));
$this->assertEqual($person->age, 0, t('Age set correctly.'));
$this->assertEqual($person->job, 'Presenter', t('Job set correctly.'));
@ -1032,16 +1087,16 @@ class DatabaseMergeTestCase extends DatabaseTestCase {
* Confirm that we can merge-update without any update fields.
*/
function testMergeUpdateWithoutUpdate() {
$num_records_before = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_before = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
db_merge('test_people')
->key(array('job' => 'Speaker'))
->execute();
$num_records_after = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_after = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
$this->assertEqual($num_records_before, $num_records_after, t('Merge skipped properly.'));
$person = db_query("SELECT * FROM {test_people} WHERE job = :job", array(':job' => 'Speaker'))->fetch();
$person = db_query('SELECT * FROM {test_people} WHERE job = :job', array(':job' => 'Speaker'))->fetch();
$this->assertEqual($person->name, 'Meredith', t('Name skipped correctly.'));
$this->assertEqual($person->age, 30, t('Age skipped correctly.'));
$this->assertEqual($person->job, 'Speaker', t('Job skipped correctly.'));
@ -1052,10 +1107,10 @@ class DatabaseMergeTestCase extends DatabaseTestCase {
->updateExcept(array('age'))
->execute();
$num_records_after = db_query("SELECT COUNT(*) FROM {test_people}")->fetchField();
$num_records_after = db_query('SELECT COUNT(*) FROM {test_people}')->fetchField();
$this->assertEqual($num_records_before, $num_records_after, t('Merge skipped properly.'));
$person = db_query("SELECT * FROM {test_people} WHERE job = :job", array(':job' => 'Speaker'))->fetch();
$person = db_query('SELECT * FROM {test_people} WHERE job = :job', array(':job' => 'Speaker'))->fetch();
$this->assertEqual($person->name, 'Meredith', t('Name skipped correctly.'));
$this->assertEqual($person->age, 30, t('Age skipped correctly.'));
$this->assertEqual($person->job, 'Speaker', t('Job skipped correctly.'));
@ -1634,7 +1689,7 @@ class DatabaseSelectPagerDefaultTestCase extends DatabaseTestCase {
// information forward to the actual query on the other side of the
// HTTP request.
$limit = 2;
$count = db_query("SELECT COUNT(*) FROM {test}")->fetchField();
$count = db_query('SELECT COUNT(*) FROM {test}')->fetchField();
$correct_number = $limit;
$num_pages = floor($count / $limit);
@ -1668,7 +1723,7 @@ class DatabaseSelectPagerDefaultTestCase extends DatabaseTestCase {
// information forward to the actual query on the other side of the
// HTTP request.
$limit = 2;
$count = db_query("SELECT COUNT(*) FROM {test_task}")->fetchField();
$count = db_query('SELECT COUNT(*) FROM {test_task}')->fetchField();
$correct_number = $limit;
$num_pages = floor($count / $limit);
@ -2058,7 +2113,7 @@ class DatabaseRegressionTestCase extends DatabaseTestCase {
'job' => 'Dancer',
))->execute();
$from_database = db_query("SELECT name FROM {test} WHERE name = :name", array(':name' => $name))->fetchField();
$from_database = db_query('SELECT name FROM {test} WHERE name = :name', array(':name' => $name))->fetchField();
$this->assertIdentical($name, $from_database, t("The database handles UTF-8 characters cleanly."));
}
@ -2098,8 +2153,8 @@ class DatabaseLoggingTestCase extends DatabaseTestCase {
function testEnableLogging() {
Database::startLog('testing');
db_query("SELECT name FROM {test} WHERE age > :age", array(':age' => 25))->fetchCol();
db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Ringo'))->fetchCol();
db_query('SELECT name FROM {test} WHERE age > :age', array(':age' => 25))->fetchCol();
db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Ringo'))->fetchCol();
$queries = Database::getLog('testing', 'default');
@ -2116,11 +2171,11 @@ class DatabaseLoggingTestCase extends DatabaseTestCase {
function testEnableMultiLogging() {
Database::startLog('testing1');
db_query("SELECT name FROM {test} WHERE age > :age", array(':age' => 25))->fetchCol();
db_query('SELECT name FROM {test} WHERE age > :age', array(':age' => 25))->fetchCol();
Database::startLog('testing2');
db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Ringo'))->fetchCol();
db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Ringo'))->fetchCol();
$queries1 = Database::getLog('testing1');
$queries2 = Database::getLog('testing2');
@ -2140,9 +2195,9 @@ class DatabaseLoggingTestCase extends DatabaseTestCase {
Database::startLog('testing1');
db_query("SELECT name FROM {test} WHERE age > :age", array(':age' => 25))->fetchCol();
db_query('SELECT name FROM {test} WHERE age > :age', array(':age' => 25))->fetchCol();
db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Ringo'), array('target' => 'slave'));//->fetchCol();
db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Ringo'), array('target' => 'slave'));//->fetchCol();
$queries1 = Database::getLog('testing1');
@ -2161,14 +2216,14 @@ class DatabaseLoggingTestCase extends DatabaseTestCase {
function testEnableTargetLoggingNoTarget() {
Database::startLog('testing1');
db_query("SELECT name FROM {test} WHERE age > :age", array(':age' => 25))->fetchCol();
db_query('SELECT name FROM {test} WHERE age > :age', array(':age' => 25))->fetchCol();
// We use "fake" here as a target because any non-existent target will do.
// However, because all of the tests in this class share a single page
// request there is likely to be a target of "slave" from one of the other
// unit tests, so we use a target here that we know with absolute certainty
// does not exist.
db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Ringo'), array('target' => 'fake'))->fetchCol();
db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Ringo'), array('target' => 'fake'))->fetchCol();
$queries1 = Database::getLog('testing1');
@ -2189,11 +2244,11 @@ class DatabaseLoggingTestCase extends DatabaseTestCase {
Database::startLog('testing1');
Database::startLog('testing1', 'test2');
db_query("SELECT name FROM {test} WHERE age > :age", array(':age' => 25))->fetchCol();
db_query('SELECT name FROM {test} WHERE age > :age', array(':age' => 25))->fetchCol();
$old_key = db_set_active('test2');
db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'Ringo'), array('target' => 'slave'))->fetchCol();
db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'Ringo'), array('target' => 'slave'))->fetchCol();
db_set_active($old_key);
@ -2230,7 +2285,7 @@ class DatabaseRangeQueryTestCase extends DrupalWebTestCase {
$this->assertEqual(count($range_rows), 3, t('Range query work and return correct number of rows.'));
// Test if return target data.
$raw_rows = db_query("SELECT name FROM {system} ORDER BY name")->fetchAll();
$raw_rows = db_query('SELECT name FROM {system} ORDER BY name')->fetchAll();
$raw_rows = array_slice($raw_rows, 2, 3);
$this->assertEqual($range_rows, $raw_rows, t('Range query work and return target data.'));
}
@ -2306,7 +2361,13 @@ class DatabaseAnsiSyntaxTestCase extends DatabaseTestCase {
* Test for ANSI string concatenation.
*/
function testBasicConcat() {
$result = db_query("SELECT 'This' || ' ' || 'is' || ' a ' || 'test.'");
$result = db_query('SELECT :a1 || :a2 || :a3 || :a4 || :a5', array(
':a1' => 'This',
':a2' => ' ',
':a3' => 'is',
':a4' => ' a ',
':a5' => 'test.',
));
$this->assertIdentical($result->fetchField(), 'This is a test.', t('Basic ANSI Concat works.'));
}
@ -2314,17 +2375,14 @@ class DatabaseAnsiSyntaxTestCase extends DatabaseTestCase {
* Test for ANSI string concatenation with field values.
*/
function testFieldConcat() {
$result = db_query("SELECT 'The age of ' || name || ' is ' || age || '.' FROM {test} WHERE age = :age", array(':age' => 25));
$result = db_query('SELECT :a1 || name || :a2 || age || :a3 FROM {test} WHERE age = :age', array(
':a1' => 'The age of ',
':a2' => ' is ',
':a3' => '.',
':age' => 25,
));
$this->assertIdentical($result->fetchField(), 'The age of John is 25.', t('Field ANSI Concat works.'));
}
/**
* ANSI standard allows for double quotes to escape field names.
*/
function testQuotes() {
$result = db_query('SELECT "name" FROM {test} WHERE age = :age', array(':age' => 25));
$this->assertIdentical($result->fetchField(), 'John', t('ANSI field quoting works.'));
}
}
/**
@ -2420,7 +2478,7 @@ class DatabaseQueryTestCase extends DatabaseTestCase {
* Test that we can specify an array of values in the query by simply passing in an array.
*/
function testArraySubstitution() {
$names = db_query("SELECT name FROM {test} WHERE age IN (:ages) ORDER BY age", array(':ages' => array(25, 26, 27)))->fetchAll();
$names = db_query('SELECT name FROM {test} WHERE age IN (:ages) ORDER BY age', array(':ages' => array(25, 26, 27)))->fetchAll();
$this->assertEqual(count($names), 3, t('Correct number of names returned'));
}
@ -2591,9 +2649,9 @@ class DatabaseTransactionTestCase extends DatabaseTestCase {
// Neither of the rows we inserted in the two transaction layers
// should be present in the tables post-rollback.
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'DavidB'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'DavidB'))->fetchField();
$this->assertNotIdentical($saved_age, '24', t('Cannot retrieve DavidB row after commit.'));
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'DanielB'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'DanielB'))->fetchField();
$this->assertNotIdentical($saved_age, '19', t('Cannot retrieve DanielB row after commit.'));
}
catch (Exception $e) {
@ -2617,9 +2675,9 @@ class DatabaseTransactionTestCase extends DatabaseTestCase {
// Because our current database claims to not support transactions,
// the inserted rows should be present despite the attempt to roll back.
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'DavidB'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'DavidB'))->fetchField();
$this->assertIdentical($saved_age, '24', t('DavidB not rolled back, since transactions are not supported.'));
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'DanielB'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'DanielB'))->fetchField();
$this->assertIdentical($saved_age, '19', t('DanielB not rolled back, since transactions are not supported.'));
}
catch (Exception $e) {
@ -2639,9 +2697,9 @@ class DatabaseTransactionTestCase extends DatabaseTestCase {
$this->transactionOuterLayer('A');
// Because we committed, both of the inserted rows should be present.
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'DavidA'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'DavidA'))->fetchField();
$this->assertIdentical($saved_age, '24', t('Can retrieve DavidA row after commit.'));
$saved_age = db_query("SELECT age FROM {test} WHERE name = :name", array(':name' => 'DanielA'))->fetchField();
$saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'DanielA'))->fetchField();
$this->assertIdentical($saved_age, '19', t('Can retrieve DanielA row after commit.'));
}
catch (Exception $e) {

View File

@ -62,5 +62,5 @@ function error_test_trigger_exception() {
*/
function error_test_trigger_pdo_exception() {
define('SIMPLETEST_COLLECT_ERRORS', FALSE);
db_query("SELECT * FROM bananas_are_awesome");
db_query('SELECT * FROM bananas_are_awesome');
}

View File

@ -568,7 +568,7 @@ class FileSaveUploadTest extends FileHookTestCase {
* Test the file_save_upload() function.
*/
function testNormal() {
$max_fid_after = db_result(db_query('SELECT MAX(fid) AS fid FROM {files}'));
$max_fid_after = db_query('SELECT MAX(fid) AS fid FROM {files}')->fetchField();
$this->assertTrue($max_fid_after > $this->maxFidBefore, t('A new file was created.'));
$file1 = file_load($max_fid_after);
$this->assertTrue($file1, t('Loaded the file.'));

View File

@ -83,14 +83,14 @@ class MenuIncTestCase extends DrupalWebTestCase {
$this->drupalLogin($admin_user);
$sql = "SELECT menu_name FROM {menu_links} WHERE router_path = 'menu_name_test'";
$name = db_result(db_query($sql));
$name = db_query($sql)->fetchField();
$this->assertEqual($name, 'original', t('Menu name is "original".'));
// Force a menu rebuild by going to the modules page.
$this->drupalGet('admin/build/modules', array('query' => array("hook_menu_name" => 'changed')));
$sql = "SELECT menu_name FROM {menu_links} WHERE router_path = 'menu_name_test'";
$name = db_result(db_query($sql));
$name = db_query($sql)->fetchField();
$this->assertEqual($name, 'changed', t('Menu name was successfully changed after rebuild.'));
}
@ -98,9 +98,9 @@ class MenuIncTestCase extends DrupalWebTestCase {
* Tests for menu hiearchy.
*/
function testMenuHiearchy() {
$parent_link = db_query("SELECT * FROM {menu_links} WHERE link_path = :link_path", array(':link_path' => 'menu-test/hierarchy/parent'))->fetchAssoc();
$child_link = db_query("SELECT * FROM {menu_links} WHERE link_path = :link_path", array(':link_path' => 'menu-test/hierarchy/parent/child'))->fetchAssoc();
$unattached_child_link = db_query("SELECT * FROM {menu_links} WHERE link_path = :link_path", array(':link_path' => 'menu-test/hierarchy/parent/child2/child'))->fetchAssoc();
$parent_link = db_query('SELECT * FROM {menu_links} WHERE link_path = :link_path', array(':link_path' => 'menu-test/hierarchy/parent'))->fetchAssoc();
$child_link = db_query('SELECT * FROM {menu_links} WHERE link_path = :link_path', array(':link_path' => 'menu-test/hierarchy/parent/child'))->fetchAssoc();
$unattached_child_link = db_query('SELECT * FROM {menu_links} WHERE link_path = :link_path', array(':link_path' => 'menu-test/hierarchy/parent/child2/child'))->fetchAssoc();
$this->assertEqual($child_link['plid'], $parent_link['mlid'], t('The parent of a directly attached child is correct.'));
$this->assertEqual($unattached_child_link['plid'], $parent_link['mlid'], t('The parent of a non-directly attached child is correct.'));
@ -142,14 +142,14 @@ class MenuRebuildTestCase extends DrupalWebTestCase {
*/
function testMenuRebuildByVariable() {
// Check if 'admin' path exists.
$admin_exists = db_result(db_query("SELECT path from {menu_router} WHERE path = 'admin'"));
$admin_exists = db_query('SELECT path from {menu_router} WHERE path = :path', array(':path' => 'admin'))->fetchField();
$this->assertEqual($admin_exists, 'admin', t("The path 'admin/' exists prior to deleting."));
// Delete the path item 'admin', and test that the path doesn't exist in the database.
$delete = db_delete('menu_router')
->condition('path', 'admin')
->execute();
$admin_exists = db_result(db_query("SELECT path from {menu_router} WHERE path = 'admin'"));
$admin_exists = db_query('SELECT path from {menu_router} WHERE path = :path', array(':path' => 'admin'))->fetchField();
$this->assertFalse($admin_exists, t("The path 'admin/' has been deleted and doesn't exist in the database."));
// Now we enable the rebuild variable and trigger menu_execute_active_handler()
@ -157,7 +157,7 @@ class MenuRebuildTestCase extends DrupalWebTestCase {
variable_set('menu_rebuild_needed', TRUE);
// menu_execute_active_handler() should trigger the rebuild.
$this->drupalGet('<front>');
$admin_exists = db_result(db_query("SELECT path from {menu_router} WHERE path = 'admin'"));
$admin_exists = db_query('SELECT path from {menu_router} WHERE path = :path', array(':path' => 'admin'))->fetchField();
$this->assertEqual($admin_exists, 'admin', t("The menu has been rebuilt, the path 'admin' now exists again."));
}

View File

@ -37,7 +37,11 @@ class ModuleUnitTest extends DrupalWebTestCase {
$this->assertModuleList($base_module_list, t('After adding a module'));
// Try to mess with the module weights.
db_query("UPDATE {system} SET weight = 20 WHERE name = 'path' AND type = 'module'");
db_update('system')
->fields(array('weight' => 20))
->condition('name', 'path')
->condition('type', 'module')
->execute();
// Reset the module list.
module_list(TRUE);
// Move path at the end of the array.

View File

@ -24,7 +24,7 @@ class RegistryParseFileTestCase extends DrupalWebTestCase {
function testRegistryParseFile() {
_registry_parse_file($this->fileName, $this->getFileContents());
foreach (array('functionName', 'className', 'interfaceName') as $resource) {
$foundName = db_result(db_query("SELECT name FROM {registry} WHERE name = '%s'", $this->$resource));
$foundName = db_query('SELECT name FROM {registry} WHERE name = :name', array(':name' => $this->$resource))->fetchField();
$this->assertTrue($this->$resource == $foundName, t('Resource "@resource" found.', array('@resource' => $this->$resource)));
}
}
@ -75,11 +75,22 @@ class RegistryParseFilesTestCase extends DrupalWebTestCase {
if ($fileType == 'existing_changed') {
// Insert a record with a dodgy md5.
$this->$fileType->fakeMD5 = md5($this->$fileType->contents . rand());
db_query("INSERT INTO {registry_file} (md5, filename) VALUES ('%s', '%s')", $this->$fileType->fakeMD5, $this->$fileType->fileName);
db_insert('registry_file')
->fields(array(
'md5' => $this->$fileType->fakeMD5,
'filename' => $this->$fileType->fileName,
))
->execute();
// Insert some fake resource records.
foreach (array('function', 'class', 'interface') as $type) {
db_query("INSERT INTO {registry} (name, type, filename) VALUES ('%s', '%s', '%s')", $type . md5(rand()), $type, $this->$fileType->fileName);
db_insert('registry')
->fields(array(
'name' => $type . md5(rand()),
'type' => $type,
'filename' => $this->$fileType->fileName,
))
->execute();
}
}
}
@ -93,11 +104,11 @@ class RegistryParseFilesTestCase extends DrupalWebTestCase {
foreach ($this->fileTypes as $fileType) {
// Test that we have all the right resources.
foreach (array('functionName', 'className', 'interfaceName') as $resource) {
$foundName = db_result(db_query("SELECT name FROM {registry} WHERE name = '%s'", $this->$fileType->$resource));
$foundName = db_query('SELECT name FROM {registry} WHERE name = :name', array(':name' => $this->$fileType->$resource))->fetchField();
$this->assertTrue($this->$fileType->$resource == $foundName, t('Resource "@resource" found.', array('@resource' => $this->$fileType->$resource)));
}
// Test that we have the right md5.
$md5 = db_result(db_query("SELECT md5 FROM {registry_file} WHERE filename = '%s'", $this->$fileType->fileName));
$md5 = db_query('SELECT md5 FROM {registry_file} WHERE filename = :filename', array(':filename' => $this->$fileType->fileName))->fetchField();
$this->assertTrue(md5($this->$fileType->contents) == $md5, t('MD5 for "@filename" matched.' . $fileType . $md5, array('@filename' => $this->$fileType->fileName)));
}
}

View File

@ -103,7 +103,9 @@ class SchemaTestCase extends DrupalWebTestCase {
function tryInsert($table = 'test_table') {
try {
db_query("INSERT INTO {" . $table . "} (id) VALUES (:id)", array(':id' => mt_rand(10, 20)));
db_insert($table)
->fields(array('id' => mt_rand(10, 20)))
->execute();
return TRUE;
}
catch (Exception $e) {

View File

@ -22,7 +22,12 @@ function taxonomy_test_taxonomy_term_insert($term) {
if (!empty($term->antonyms)) {
foreach (explode ("\n", str_replace("\r", '', $term->antonyms)) as $antonym) {
if ($antonym) {
db_insert('term_antonym')->fields(array('tid' => $term->tid, 'name' => rtrim($antonym)))->execute();
db_insert('term_antonym')
->fields(array(
'tid' => $term->tid,
'name' => rtrim($antonym),
))
->execute();
}
}
}
@ -36,7 +41,12 @@ function taxonomy_test_taxonomy_term_update($term) {
if (!empty($term->antonyms)) {
foreach (explode ("\n", str_replace("\r", '', $term->antonyms)) as $antonym) {
if ($antonym) {
db_insert('term_antonym')->fields(array('tid' => $term->tid, 'name' => rtrim($antonym)))->execute();
db_insert('term_antonym')
->fields(array(
'tid' => $term->tid,
'name' => rtrim($antonym),
))
->execute();
}
}
}
@ -46,7 +56,9 @@ function taxonomy_test_taxonomy_term_update($term) {
* Implement hook_taxonomy_term_delete().
*/
function taxonomy_test_taxonomy_term_delete($term) {
db_delete('term_antonym')->condition('tid', $term->tid)->execute();
db_delete('term_antonym')
->condition('tid', $term->tid)
->execute();
}
/**