Skip to content

Commit

Permalink
Issue #1006714 by Steven Jones, chx, mr.baileys, xjm, carlos8f: Fixed…
Browse files Browse the repository at this point in the history
… drupal_get_path() doesn't work for profiles.
  • Loading branch information
webchick committed Nov 12, 2011
1 parent 4c45ee1 commit 625cf95
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 1 deletion.
5 changes: 5 additions & 0 deletions includes/bootstrap.inc
Original file line number Diff line number Diff line change
Expand Up @@ -828,6 +828,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();
}
Expand Down
12 changes: 11 additions & 1 deletion modules/simpletest/tests/bootstrap.test
Original file line number Diff line number Diff line change
Expand Up @@ -350,8 +350,18 @@ class BootstrapGetFilenameTestCase extends DrupalUnitTestCase {
// Retrieving the location of a theme engine.
$this->assertIdentical(drupal_get_filename('theme_engine', 'phptemplate'), 'themes/engines/phptemplate/phptemplate.engine', t('Retrieve theme engine location.'));

// Retrieving a file that is definitely not stored in the database.
// 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.'));

// When a file is not found in the database cache, drupal_get_filename()
// searches several locations on the filesystem, including the DRUPAL_ROOT
// 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 scripts directory, drupal_get_filename() will
// automatically check there for 'script' files, just as it does for (e.g.)
// 'module' files in modules.
$this->assertIdentical(drupal_get_filename('script', 'test'), 'scripts/test.script', t('Retrieve test script location.'));
}
}

Expand Down
4 changes: 4 additions & 0 deletions scripts/test.script
Original file line number Diff line number Diff line change
@@ -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.

0 comments on commit 625cf95

Please sign in to comment.