summaryrefslogtreecommitdiff
path: root/modules/simpletest/tests/database_test.test
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2008-09-28 00:03:33 +0000
committerDries Buytaert <dries@buytaert.net>2008-09-28 00:03:33 +0000
commit5b86f43a7588daa7e3c37911020ce3ac85d8ddb1 (patch)
treebc565f3b597c8226cb08cfb23431fb3b684b2cd6 /modules/simpletest/tests/database_test.test
parentbe5e42221e3d027940e704f1e97bf0aa0b37e06f (diff)
downloadbrdo-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.test68
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());
+ }
+ }
+}