summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2009-12-15 05:25:47 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2009-12-15 05:25:47 +0000
commite14a263914c5c78aac0f8f723be5b66328991f0e (patch)
tree4ab394377fe02f4541bf9e7941ca151795ac22f5
parent8e38d459e5946d51c16bce3355ec5393143c8824 (diff)
downloadbrdo-e14a263914c5c78aac0f8f723be5b66328991f0e.tar.gz
brdo-e14a263914c5c78aac0f8f723be5b66328991f0e.tar.bz2
#577398 by boombatower: Fix SimpleTest temporary file handling, post-stream wrappers.
-rw-r--r--modules/simpletest/drupal_web_test_case.php26
-rw-r--r--modules/simpletest/simpletest.module6
2 files changed, 14 insertions, 18 deletions
diff --git a/modules/simpletest/drupal_web_test_case.php b/modules/simpletest/drupal_web_test_case.php
index 1946e5dc3..2f5c5b083 100644
--- a/modules/simpletest/drupal_web_test_case.php
+++ b/modules/simpletest/drupal_web_test_case.php
@@ -1079,12 +1079,17 @@ class DrupalWebTestCase extends DrupalTestCase {
// Create test directory ahead of installation so fatal errors and debug
// information can be logged during installation process.
- $directory = $this->originalFileDirectory . '/simpletest/' . substr($db_prefix, 10);
- file_prepare_directory($directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
+ // Use temporary files directory with the same prefix as the database.
+ $public_files_directory = $this->originalFileDirectory . '/simpletest/' . substr($db_prefix, 10);
+ $private_files_directory = $public_files_directory . '/private';
+
+ // Create the directories
+ file_prepare_directory($public_files_directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
+ file_prepare_directory($private_files_directory, FILE_CREATE_DIRECTORY);
// Log fatal errors.
ini_set('log_errors', 1);
- ini_set('error_log', $directory . '/error.log');
+ ini_set('error_log', $public_files_directory . '/error.log');
// Reset all statics so that test is performed with a clean environment.
drupal_static_reset();
@@ -1142,21 +1147,12 @@ class DrupalWebTestCase extends DrupalTestCase {
unset($GLOBALS['conf']['language_default']);
$language = language_default();
- // Use the test mail class instead of the default mail handler class.
- variable_set('mail_system', array('default-system' => 'TestingMailSystem'));
-
- // Use temporary files directory with the same prefix as the database.
- $public_files_directory = $this->originalFileDirectory . '/' . $db_prefix;
- $private_files_directory = $public_files_directory . '/private';
-
// Set path variables
variable_set('file_public_path', $public_files_directory);
variable_set('file_private_path', $private_files_directory);
- // Create the directories
- $directory = file_directory_path('public');
- file_prepare_directory($directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
- file_prepare_directory($private_files_directory, FILE_CREATE_DIRECTORY);
+ // Use the test mail class instead of the default mail handler class.
+ variable_set('mail_system', array('default-system' => 'TestingMailSystem'));
drupal_set_time_limit($this->timeLimit);
}
@@ -1211,7 +1207,7 @@ class DrupalWebTestCase extends DrupalTestCase {
if (preg_match('/simpletest\d+/', $db_prefix)) {
// Delete temporary files directory.
- file_unmanaged_delete_recursive($this->originalFileDirectory . '/' . $db_prefix);
+ file_unmanaged_delete_recursive($this->originalFileDirectory . '/simpletest/' . substr($db_prefix, 10));
// Remove all prefixed tables (all the tables in the schema).
$schema = drupal_get_schema(NULL, TRUE);
diff --git a/modules/simpletest/simpletest.module b/modules/simpletest/simpletest.module
index ae480269c..4dd8fe6a4 100644
--- a/modules/simpletest/simpletest.module
+++ b/modules/simpletest/simpletest.module
@@ -444,11 +444,11 @@ function simpletest_clean_database() {
* Find all leftover temporary directories and remove them.
*/
function simpletest_clean_temporary_directories() {
- $files = scandir('public://');
+ $files = scandir('public://simpletest');
$count = 0;
foreach ($files as $file) {
- $path = 'public://' . $file;
- if (is_dir($path) && preg_match('/^simpletest\d+/', $file)) {
+ $path = 'public://simpletest/' . $file;
+ if (is_dir($path) && is_numeric($file)) {
file_unmanaged_delete_recursive($path);
$count++;
}