diff options
Diffstat (limited to 'modules/simpletest/drupal_web_test_case.php')
-rw-r--r-- | modules/simpletest/drupal_web_test_case.php | 37 |
1 files changed, 33 insertions, 4 deletions
diff --git a/modules/simpletest/drupal_web_test_case.php b/modules/simpletest/drupal_web_test_case.php index b9cd243be..19fe544c0 100644 --- a/modules/simpletest/drupal_web_test_case.php +++ b/modules/simpletest/drupal_web_test_case.php @@ -691,6 +691,11 @@ class DrupalWebTestCase extends DrupalTestCase { protected $session_id = NULL; /** + * Whether the files were copied to the test files directory. + */ + protected $generatedTestFiles = FALSE; + + /** * Constructor for DrupalWebTestCase. */ function __construct($test_id = NULL) { @@ -839,13 +844,36 @@ class DrupalWebTestCase extends DrupalTestCase { * List of files that match filter. */ protected function drupalGetTestFiles($type, $size = NULL) { - $files = array(); + if (empty($this->generatedTestFiles)) { + // Generate binary test files. + $lines = array(64, 1024); + $count = 0; + foreach ($lines as $line) { + simpletest_generate_file('binary-' . $count++, 64, $line, 'binary'); + } + + // Generate text test files. + $lines = array(16, 256, 1024, 2048, 20480); + $count = 0; + foreach ($lines as $line) { + simpletest_generate_file('text-' . $count++, 64, $line); + } + + // Copy other test files from simpletest. + $original = drupal_get_path('module', 'simpletest') . '/files'; + $files = file_scan_directory($original, '/(html|image|javascript|php|sql)-.*/'); + $destination_path = file_directory_path('public'); + foreach ($files as $file) { + file_unmanaged_copy($file->uri, $destination_path); + } + $this->generatedTestFiles = TRUE; + } + + $files = array(); // Make sure type is valid. if (in_array($type, array('binary', 'html', 'image', 'javascript', 'php', 'sql', 'text'))) { - // Use original file directory instead of one created during setUp(). - $path = $this->originalFileDirectory . '/simpletest'; - $files = file_scan_directory($path, '/' . $type . '\-.*/'); + $files = file_scan_directory(file_directory_path('public'), '/' . $type . '\-.*/'); // If size is set then remove any files that are not of that size. if ($size !== NULL) { @@ -1088,6 +1116,7 @@ class DrupalWebTestCase extends DrupalTestCase { file_prepare_directory($public_files_directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS); file_prepare_directory($private_files_directory, FILE_CREATE_DIRECTORY); file_prepare_directory($temp_files_directory, FILE_CREATE_DIRECTORY); + $this->generatedTestFiles = FALSE; // Log fatal errors. ini_set('log_errors', 1); |