- Patch #481498 by JamesAn: convert simpletest to drupal_static().

merge-requests/26/head
Dries Buytaert 2009-07-11 06:14:48 +00:00
parent c4a7843852
commit e8b82e0ba4
3 changed files with 22 additions and 16 deletions

View File

@ -913,7 +913,7 @@ class DrupalWebTestCase extends DrupalTestCase {
* TRUE or FALSE depending on whether the permissions are valid. * TRUE or FALSE depending on whether the permissions are valid.
*/ */
protected function checkPermissions(array $permissions, $reset = FALSE) { protected function checkPermissions(array $permissions, $reset = FALSE) {
static $available; $available = &drupal_static(__FUNCTION__);
if (!isset($available) || $reset) { if (!isset($available) || $reset) {
$available = array_keys(module_invoke_all('permission')); $available = array_keys(module_invoke_all('permission'));

View File

@ -390,6 +390,7 @@ function simpletest_result_get($test_id) {
* @return HTML image or false. * @return HTML image or false.
*/ */
function simpletest_result_status_image($status) { function simpletest_result_status_image($status) {
// $map does not use drupal_static() as its value never changes.
static $map; static $map;
if (!isset($map)) { if (!isset($map)) {

View File

@ -18,26 +18,29 @@ function file_test_validator($file, $errors) {
* Helper function for testing file_scan_directory(). * Helper function for testing file_scan_directory().
* *
* Each time the function is called the file is stored in a static variable. * Each time the function is called the file is stored in a static variable.
* When the function is called with $reset parameter TRUE the cache is cleared * When the function is called with no $filepath parameter, the results are
* and the results returned. * returned.
* *
* @param $filepath * @param $filepath
* File path * File path
* @param $reset
* Boolean indicating that the stored files should be removed and returned.
* @return * @return
* An array of all previous $file parameters since $reset was last called. * If $filepath is NULL, an array of all previous $filepath parameters
*/ */
function file_test_file_scan_callback($filepath, $reset = FALSE) { function file_test_file_scan_callback($filepath = NULL) {
static $files = array(); $files = &drupal_static(__FUNCTION__, array());
if (isset($filepath)) {
if ($reset) { $files[] = $filepath;
$ret = $files;
$files = array();
return $ret;
} }
else {
return $files;
}
}
$files[] = $filepath; /**
* Reset static variables used by file_test_file_scan_callback().
*/
function file_test_file_scan_callback_reset() {
drupal_static_reset('file_test_file_scan_callback');
} }
/** /**
@ -869,14 +872,16 @@ class FileScanDirectoryTest extends FileTestCase {
// When nothing is matched nothing should be passed to the callback. // When nothing is matched nothing should be passed to the callback.
$all_files = file_scan_directory($this->path, '/^NONEXISTINGFILENAME/', array('callback' => 'file_test_file_scan_callback')); $all_files = file_scan_directory($this->path, '/^NONEXISTINGFILENAME/', array('callback' => 'file_test_file_scan_callback'));
$this->assertEqual(0, count($all_files), t('No files were found.')); $this->assertEqual(0, count($all_files), t('No files were found.'));
$results = file_test_file_scan_callback(NULL, TRUE); $results = file_test_file_scan_callback();
file_test_file_scan_callback_reset();
$this->assertEqual(0, count($results), t('No files were passed to the callback.')); $this->assertEqual(0, count($results), t('No files were passed to the callback.'));
// Grab a listing of all the JavaSscript files and check that they're // Grab a listing of all the JavaSscript files and check that they're
// passed to the callback. // passed to the callback.
$all_files = file_scan_directory($this->path, '/^javascript-/', array('callback' => 'file_test_file_scan_callback')); $all_files = file_scan_directory($this->path, '/^javascript-/', array('callback' => 'file_test_file_scan_callback'));
$this->assertEqual(2, count($all_files), t('Found two, expected javascript files.')); $this->assertEqual(2, count($all_files), t('Found two, expected javascript files.'));
$results = file_test_file_scan_callback(NULL, TRUE); $results = file_test_file_scan_callback();
file_test_file_scan_callback_reset();
$this->assertEqual(2, count($results), t('Files were passed to the callback.')); $this->assertEqual(2, count($results), t('Files were passed to the callback.'));
} }