diff options
author | Dries Buytaert <dries@buytaert.net> | 2008-09-28 00:03:33 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2008-09-28 00:03:33 +0000 |
commit | 5b86f43a7588daa7e3c37911020ce3ac85d8ddb1 (patch) | |
tree | bc565f3b597c8226cb08cfb23431fb3b684b2cd6 /modules/simpletest/tests/database_test.test | |
parent | be5e42221e3d027940e704f1e97bf0aa0b37e06f (diff) | |
download | brdo-5b86f43a7588daa7e3c37911020ce3ac85d8ddb1.tar.gz brdo-5b86f43a7588daa7e3c37911020ce3ac85d8ddb1.tar.bz2 |
- Patch #298669 by Crell, moshe weitzman: added query logging per connection.
Diffstat (limited to 'modules/simpletest/tests/database_test.test')
-rw-r--r-- | modules/simpletest/tests/database_test.test | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/modules/simpletest/tests/database_test.test b/modules/simpletest/tests/database_test.test index ec6e6a9e3..80c8ee301 100644 --- a/modules/simpletest/tests/database_test.test +++ b/modules/simpletest/tests/database_test.test @@ -1655,3 +1655,71 @@ class DatabaseRegressionTestCase extends DatabaseTestCase { $this->assertIdentical($name, $from_database, t("The database handles UTF-8 characters cleanly.")); } } + +/** + * Query logging tests. + */ +class DatabaseLoggingTestCase extends DatabaseTestCase { + + function getInfo() { + return array( + 'name' => t('Query logging'), + 'description' => t('Test the query logging facility.'), + 'group' => t('Database'), + ); + } + + /** + * Test that we can log the existence of a query. + */ + function testEnableLogging() { + try { + 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(); + + $queries = Database::getLog('testing', 'default'); + + // For debugging, since SimpleTest offers no good debugging mechanism (irony!). + // $this->pass(print_r($queries, 1)); + + $this->assertEqual(count($queries), 2, 'Correct number of queries recorded.'); + + foreach ($queries as $query) { + $this->assertEqual($query['caller']['function'], __FUNCTION__, "Correct function in query log."); + } + + // For debugging, since SimpleTest offers no good debugging meachnism (irony!) + $this->pass(print_r($_SESSION['lg_debug'], 1)); + $_SESSION['lg_debug'] = array(); + } + catch(Exception $e) { + $this->assertTrue(FALSE, $e->getMessage()); + } + } + + /** + * Test that we can run two logs in parallel. + */ + function testEnableMultiLogging() { + try { + Database::startLog('testing1'); + + 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(); + + $queries1 = Database::getLog('testing1'); + $queries2 = Database::getLog('testing2'); + + $this->assertEqual(count($queries1), 2, 'Correct number of queries recorded for log 1.'); + $this->assertEqual(count($queries2), 1, 'Correct number of queries recorded for log 2.'); + } + catch(Exception $e) { + $this->assertTrue(FALSE, $e->getMessage()); + } + } +} |