[feature/extension-manager] Prepend the phpbb_root_path if necessary.

PHPBB3-10323
This commit is contained in:
Nils Adermann 2011-08-29 22:51:15 -04:00
parent fd42599191
commit 7d16007d6a
2 changed files with 27 additions and 8 deletions

View file

@ -205,7 +205,7 @@ class phpbb_extension_finder
$this->query['suffix'] .= $this->phpEx;
$this->query['default_suffix'] .= $this->phpEx;
$files = $this->get_files($cache);
$files = $this->find($cache, false);
$classes = array();
foreach ($files as $file)
@ -225,7 +225,7 @@ class phpbb_extension_finder
*/
public function get_directories($cache = true)
{
return $this->find($cache, true);
return $this->find_with_root_path($cache, true);
}
/**
@ -236,7 +236,27 @@ class phpbb_extension_finder
*/
public function get_files($cache = true)
{
return $this->find($cache, false);
return $this->find_with_root_path($cache, false);
}
/**
* A wrapper around the general find which prepends a root path to results
*
* @param bool $cache Whether the result should be cached
* @param bool $is_dir Whether the found items should be directories
* @return array An array of paths to found items
*/
protected function find_with_root_path($cache = true, $is_dir = false)
{
$items = $this->find($cache, $is_dir);
$result = array();
foreach ($items as $item)
{
$result[] = $this->phpbb_root_path . $item;
}
return $result;
}
/**

View file

@ -63,7 +63,7 @@ class phpbb_extension_finder_test extends phpbb_test_case
sort($dirs);
$this->assertEquals(array(
'ext/foo/type/',
dirname(__FILE__) . '/ext/foo/type/',
), $dirs);
}
@ -137,7 +137,7 @@ class phpbb_extension_finder_test extends phpbb_test_case
public function test_get_classes_create_cache()
{
$cache = new phpbb_mock_cache;
$finder = new phpbb_extension_finder($this->extension_manager, dirname(__FILE__) . '/includes/', $cache, '.php', '_custom_cache_name');
$finder = new phpbb_extension_finder($this->extension_manager, dirname(__FILE__) . '/', $cache, '.php', '_custom_cache_name');
$files = $finder->suffix('_class.php')->get_files();
sort($files);
@ -159,7 +159,6 @@ class phpbb_extension_finder_test extends phpbb_test_case
'is_dir' => false,
);
$this->assertEquals($expected_files, $files);
$cache->checkAssociativeVar($this, '_custom_cache_name', array(
md5(serialize($query)) => $expected_files,
));
@ -178,7 +177,7 @@ class phpbb_extension_finder_test extends phpbb_test_case
'is_dir' => false,
);
$finder = new phpbb_extension_finder($this->extension_manager, dirname(__FILE__) . '/includes/', new phpbb_mock_cache(array(
$finder = new phpbb_extension_finder($this->extension_manager, dirname(__FILE__) . '/', new phpbb_mock_cache(array(
'_ext_finder' => array(
md5(serialize($query)) => array('file_name'),
),
@ -191,7 +190,7 @@ class phpbb_extension_finder_test extends phpbb_test_case
sort($classes);
$this->assertEquals(
array('file_name'),
array(dirname(__FILE__) . '/file_name'),
$classes
);
}