Fix plugin path filtering when directories do not exist.

When paths do not exist we should correctly remove them from the output
paths.

Fixes #2748
This commit is contained in:
mark_story 2014-01-30 21:40:08 -05:00
parent 605351d0c9
commit 4d57d3ce5b
2 changed files with 6 additions and 2 deletions

View file

@ -191,9 +191,11 @@ class PluginTask extends AppShell {
$valid = false; $valid = false;
foreach ($pathOptions as $i => $path) { foreach ($pathOptions as $i => $path) {
if (!is_dir($path)) { if (!is_dir($path)) {
array_splice($pathOptions, $i, 1); unset($pathOptions[$i]);
} }
} }
$pathOptions = array_values($pathOptions);
$max = count($pathOptions); $max = count($pathOptions);
while (!$valid) { while (!$valid) {
foreach ($pathOptions as $i => $option) { foreach ($pathOptions as $i => $option) {

View file

@ -185,7 +185,9 @@ class PluginTaskTest extends CakeTestCase {
public function testFindPathNonExistant() { public function testFindPathNonExistant() {
$paths = App::path('plugins'); $paths = App::path('plugins');
$last = count($paths); $last = count($paths);
$paths[] = '/fake/path';
array_unshift($paths, '/fake/path');
$paths[] = '/fake/path2';
$this->Task = $this->getMock('PluginTask', $this->Task = $this->getMock('PluginTask',
array('in', 'out', 'err', 'createFile', '_stop'), array('in', 'out', 'err', 'createFile', '_stop'),