diff options
author | Nils Adermann <naderman@naderman.de> | 2011-10-13 21:19:35 +0200 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2011-10-13 21:19:35 +0200 |
commit | 724f40f0f4fdfc47764a069cc91f045f0c67f4fb (patch) | |
tree | 14ae2ccfbe338b8e1088052d5b7f64eb27b031e3 | |
parent | 7b12bba95bb7c59bde65e8ea1ffb1275944fd965 (diff) | |
download | forums-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.php | 8 | ||||
-rw-r--r-- | tests/extension/finder_test.php | 12 | ||||
-rw-r--r-- | tests/mock/cache.php | 9 |
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]); |