aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2011-10-13 21:19:35 +0200
committerNils Adermann <naderman@naderman.de>2011-10-13 21:19:35 +0200
commit724f40f0f4fdfc47764a069cc91f045f0c67f4fb (patch)
tree14ae2ccfbe338b8e1088052d5b7f64eb27b031e3
parent7b12bba95bb7c59bde65e8ea1ffb1275944fd965 (diff)
downloadforums-724f40f0f4fdfc47764a069cc91f045f0c67f4fb.tar
forums-724f40f0f4fdfc47764a069cc91f045f0c67f4fb.tar.gz
forums-724f40f0f4fdfc47764a069cc91f045f0c67f4fb.tar.bz2
forums-724f40f0f4fdfc47764a069cc91f045f0c67f4fb.tar.xz
forums-724f40f0f4fdfc47764a069cc91f045f0c67f4fb.zip
[feature/extension-manager] extension finder now saves ext it found a file in
PHPBB3-10323
-rw-r--r--phpBB/includes/extension/finder.php8
-rw-r--r--tests/extension/finder_test.php12
-rw-r--r--tests/mock/cache.php9
3 files changed, 16 insertions, 13 deletions
diff --git a/phpBB/includes/extension/finder.php b/phpBB/includes/extension/finder.php
index d599dfb86d..0c8c5d337c 100644
--- a/phpBB/includes/extension/finder.php
+++ b/phpBB/includes/extension/finder.php
@@ -210,7 +210,7 @@ class phpbb_extension_finder
$files = $this->find($cache, false);
$classes = array();
- foreach ($files as $file)
+ foreach ($files as $file => $ext_name)
{
$file = preg_replace('#^includes/#', '', $file);
@@ -253,7 +253,7 @@ class phpbb_extension_finder
$items = $this->find($cache, $is_dir);
$result = array();
- foreach ($items as $item)
+ foreach ($items as $item => $ext_name)
{
$result[] = $this->phpbb_root_path . $item;
}
@@ -289,6 +289,8 @@ class phpbb_extension_finder
foreach ($extensions as $name => $path)
{
+ $ext_name = $name;
+
if (!file_exists($path))
{
continue;
@@ -349,7 +351,7 @@ class phpbb_extension_finder
(!$prefix || substr($item_name, 0, strlen($prefix)) === $prefix) &&
(!$directory || preg_match($directory_pattern, $relative_path)))
{
- $files[] = str_replace(DIRECTORY_SEPARATOR, '/', $location . $name . substr($relative_path, 1));
+ $files[str_replace(DIRECTORY_SEPARATOR, '/', $location . $name . substr($relative_path, 1))] = $ext_name;
}
}
}
diff --git a/tests/extension/finder_test.php b/tests/extension/finder_test.php
index 2b025433b7..26dd50ed12 100644
--- a/tests/extension/finder_test.php
+++ b/tests/extension/finder_test.php
@@ -154,12 +154,10 @@ class phpbb_extension_finder_test extends phpbb_test_case
$finder = new phpbb_extension_finder($this->extension_manager, dirname(__FILE__) . '/', $cache, '.php', '_custom_cache_name');
$files = $finder->suffix('_class.php')->get_files();
- sort($files);
-
$expected_files = array(
- 'ext/bar/my/hidden_class.php',
- 'ext/foo/a_class.php',
- 'ext/foo/b_class.php',
+ 'ext/bar/my/hidden_class.php' => 'bar',
+ 'ext/foo/a_class.php' => 'foo',
+ 'ext/foo/b_class.php' => 'foo',
);
$query = array(
@@ -175,7 +173,7 @@ class phpbb_extension_finder_test extends phpbb_test_case
$cache->checkAssociativeVar($this, '_custom_cache_name', array(
md5(serialize($query)) => $expected_files,
- ));
+ ), false);
}
public function test_cached_get_files()
@@ -193,7 +191,7 @@ class phpbb_extension_finder_test extends phpbb_test_case
$finder = new phpbb_extension_finder($this->extension_manager, dirname(__FILE__) . '/', new phpbb_mock_cache(array(
'_ext_finder' => array(
- md5(serialize($query)) => array('file_name'),
+ md5(serialize($query)) => array('file_name' => 'extension'),
),
)));
diff --git a/tests/mock/cache.php b/tests/mock/cache.php
index b745123801..0f174ea449 100644
--- a/tests/mock/cache.php
+++ b/tests/mock/cache.php
@@ -59,13 +59,16 @@ class phpbb_mock_cache implements phpbb_cache_driver_interface
$test->assertEquals($data, $this->data[$var_name]);
}
- public function checkAssociativeVar(PHPUnit_Framework_Assert $test, $var_name, $data)
+ public function checkAssociativeVar(PHPUnit_Framework_Assert $test, $var_name, $data, $sort = true)
{
$test->assertTrue(isset($this->data[$var_name]));
- foreach ($this->data[$var_name] as &$content)
+ if ($sort)
{
- sort($content);
+ foreach ($this->data[$var_name] as &$content)
+ {
+ sort($content);
+ }
}
$test->assertEquals($data, $this->data[$var_name]);