You are here

protected function DrupalWebTestCase::tearDown in SimpleTest 7

Same name and namespace in other branches
  1. 6.2 drupal_web_test_case.php \DrupalWebTestCase::tearDown()
  2. 7.2 drupal_web_test_case.php \DrupalWebTestCase::tearDown()

Delete created files and temporary files directory, delete the tables created by setUp(), and reset the database prefix.

3 calls to DrupalWebTestCase::tearDown()
BootstrapIPAddressTestCase::tearDown in tests/bootstrap.test
Delete created files and temporary files directory, delete the tables created by setUp(), and reset the database prefix.
JavaScriptTestCase::tearDown in tests/common.test
Delete created files and temporary files directory, delete the tables created by setUp(), and reset the database prefix.
StreamWrapperTest::tearDown in tests/file.test
Delete created files and temporary files directory, delete the tables created by setUp(), and reset the database prefix.
3 methods override DrupalWebTestCase::tearDown()
BootstrapIPAddressTestCase::tearDown in tests/bootstrap.test
Delete created files and temporary files directory, delete the tables created by setUp(), and reset the database prefix.
JavaScriptTestCase::tearDown in tests/common.test
Delete created files and temporary files directory, delete the tables created by setUp(), and reset the database prefix.
StreamWrapperTest::tearDown in tests/file.test
Delete created files and temporary files directory, delete the tables created by setUp(), and reset the database prefix.

File

./drupal_web_test_case.php, line 1158

Class

DrupalWebTestCase
Test case for typical Drupal tests.

Code

protected function tearDown() {
  global $db_prefix, $user, $language;

  // In case a fatal error occured that was not in the test process read the
  // log to pick up any fatal errors.
  $db_prefix_temp = $db_prefix;
  $db_prefix = $this->originalPrefix;
  simpletest_log_read($this->testId, $db_prefix, get_class($this), TRUE);
  $db_prefix = $db_prefix_temp;
  $emailCount = count(variable_get('drupal_test_email_collector', array()));
  if ($emailCount) {
    $message = format_plural($emailCount, t('!count e-mail was sent during this test.'), t('!count e-mails were sent during this test.'), array(
      '!count' => $emailCount,
    ));
    $this
      ->pass($message, t('E-mail'));
  }
  if (preg_match('/simpletest\\d+/', $db_prefix)) {

    // Delete temporary files directory.
    file_unmanaged_delete_recursive($this->originalFileDirectory . '/' . $db_prefix);

    // Remove all prefixed tables (all the tables in the schema).
    $schema = drupal_get_schema(NULL, TRUE);
    $ret = array();
    foreach ($schema as $name => $table) {
      db_drop_table($name);
    }

    // Return the database prefix to the original.
    $db_prefix = $this->originalPrefix;

    // Return the user to the original one.
    $user = $this->originalUser;
    drupal_save_session(TRUE);

    // Ensure that internal logged in variable and cURL options are reset.
    $this->loggedInUser = FALSE;
    $this->additionalCurlOptions = array();

    // Reload module list and implementations to ensure that test module hooks
    // aren't called after tests.
    module_list(TRUE);
    module_implements('', FALSE, TRUE);

    // Reset the Field API.
    field_cache_clear();

    // Rebuild caches.
    $this
      ->refreshVariables();

    // Reset language.
    $language = $this->originalLanguage;
    if ($this->originalLanguageDefault) {
      $GLOBALS['conf']['language_default'] = $this->originalLanguageDefault;
    }

    // Close the CURL handler.
    $this
      ->curlClose();
  }
}