function DrupalTestCase::tearDown in SimpleTest 5
Same name and namespace in other branches
- 6 drupal_test_case.php \DrupalTestCase::tearDown()
tearDown implementation, setting back switched modules etc
1 call to DrupalTestCase::tearDown()
- UserAccessTest::tearDown in tests/
user_access.test - tearDown implementation, setting back switched modules etc
1 method overrides DrupalTestCase::tearDown()
- UserAccessTest::tearDown in tests/
user_access.test - tearDown implementation, setting back switched modules etc
File
- ./
drupal_test_case.php, line 337
Class
- DrupalTestCase
- Test case for typical Drupal tests. Extends WebTestCase for comfortable browser usage but also implements all UnitTestCase methods, I wish WebTestCase would do this.
Code
function tearDown() {
foreach ($this->_cleanupModules as $name => $status) {
db_query("UPDATE {system} SET status = %d WHERE name = '%s' AND type = 'module'", $status, $name);
}
$this->_cleanupModules = array();
// Refresh the modules list
module_list(TRUE, FALSE);
menu_rebuild();
foreach ($this->_cleanupVariables as $name => $value) {
if (is_null($value)) {
variable_del($name);
}
else {
variable_set($name, $value);
}
}
$this->_cleanupVariables = array();
while (sizeof($this->_cleanupRoles) > 0) {
$rid = array_pop($this->_cleanupRoles);
db_query("DELETE FROM {role} WHERE rid = %d", $rid);
db_query("DELETE FROM {permission} WHERE rid = %d", $rid);
}
while (sizeof($this->_cleanupUsers) > 0) {
$uid = array_pop($this->_cleanupUsers);
// cleanup nodes this user created
$result = db_query("SELECT nid FROM {node} WHERE uid = %d", $uid);
while ($node = db_fetch_array($result)) {
node_delete($node['nid']);
}
user_delete(array(), $uid);
}
//Output drupal warnings and messages into assert messages
$drupal_msgs = drupal_get_messages();
foreach ($drupal_msgs as $type => $msgs) {
foreach ($msgs as $msg) {
$this
->assertTrue(TRUE, "{$type}: {$msg}");
}
}
parent::tearDown();
}