Issue #1006714 by Steven Jones, chx, mr.baileys, xjm, carlos8f: Fixed Test broken: drupal_get_path() doesn't work for profiles.

8.0.x
Nathaniel 2011-11-08 13:24:21 +09:00
parent 578e5ff5c4
commit a77ed6e2ca
3 changed files with 20 additions and 4 deletions

View File

@ -867,6 +867,11 @@ function drupal_get_filename($type, $name, $filename = NULL) {
// drupal_static().
static $files = array(), $dirs = array();
// Profiles are a special case: they have a fixed location and naming.
if ($type == 'profile') {
$profile_filename = "profiles/$name/$name.profile";
$files[$type][$name] = file_exists($profile_filename) ? $profile_filename : FALSE;
}
if (!isset($files[$type])) {
$files[$type] = array();
}

View File

@ -350,11 +350,18 @@ class BootstrapGetFilenameTestCase extends DrupalUnitTestCase {
// Retrieving the location of a theme engine.
$this->assertIdentical(drupal_get_filename('theme_engine', 'phptemplate'), 'core/themes/engines/phptemplate/phptemplate.engine', t('Retrieve theme engine location.'));
// @todo: This test is broken because drupal_get_filename() does not work
// with profiles at all. See this core issue: http://drupal.org/node/1006714
// Retrieving the location of a profile. Profiles are a special case with
// a fixed location and naming.
$this->assertIdentical(drupal_get_filename('profile', 'standard'), 'profiles/standard/standard.profile', t('Retrieve install profile location.'));
// Retrieving a file that is definitely not stored in the database.
//$this->assertIdentical(drupal_get_filename('profile', 'standard'), 'profiles/standard/standard.profile', t('Retrieve install profile location.'));
// When a file is not found in the database cache, drupal_get_filename()
// searches several locations on the filesystem, including the core/
// directory. We use the '.script' extension below because this is a
// non-existent filetype that will definitely not exist in the database.
// Since there is already a core/scripts directory, drupal_get_filename()
// will automatically check there for 'script' files, just as it does
// for (e.g.) 'module' files in core/modules.
$this->assertIdentical(drupal_get_filename('script', 'test'), 'core/scripts/test.script', t('Retrieve test script location.'));
}
}

4
core/scripts/test.script Normal file
View File

@ -0,0 +1,4 @@
This file is for testing purposes only.
It is used to test the functionality of drupal_get_filename(). See
BootstrapGetFilenameTestCase::testDrupalGetFilename() for more information.