mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 11:28:25 +00:00
Updating PluginTask to filter out paths that don't exist, and not offer
them as options for baking plugins into. Fixes #1723
This commit is contained in:
parent
68482be3f1
commit
87bccdafe6
2 changed files with 39 additions and 4 deletions
|
@ -90,7 +90,6 @@ class PluginTask extends Shell {
|
||||||
public function bake($plugin) {
|
public function bake($plugin) {
|
||||||
$pluginPath = Inflector::camelize($plugin);
|
$pluginPath = Inflector::camelize($plugin);
|
||||||
$pathOptions = App::path('plugins');
|
$pathOptions = App::path('plugins');
|
||||||
var_dump($pathOptions);
|
|
||||||
if (count($pathOptions) > 1) {
|
if (count($pathOptions) > 1) {
|
||||||
$this->findPath($pathOptions);
|
$this->findPath($pathOptions);
|
||||||
}
|
}
|
||||||
|
@ -164,6 +163,11 @@ class PluginTask extends Shell {
|
||||||
*/
|
*/
|
||||||
public function findPath($pathOptions) {
|
public function findPath($pathOptions) {
|
||||||
$valid = false;
|
$valid = false;
|
||||||
|
foreach ($pathOptions as $i =>$path) {
|
||||||
|
if(!is_dir($path)) {
|
||||||
|
array_splice($pathOptions, $i, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
$max = count($pathOptions);
|
$max = count($pathOptions);
|
||||||
while (!$valid) {
|
while (!$valid) {
|
||||||
foreach ($pathOptions as $i => $option) {
|
foreach ($pathOptions as $i => $option) {
|
||||||
|
|
|
@ -42,16 +42,21 @@ class PluginTaskTest extends CakeTestCase {
|
||||||
*/
|
*/
|
||||||
public function setUp() {
|
public function setUp() {
|
||||||
parent::setUp();
|
parent::setUp();
|
||||||
$out = $this->getMock('ConsoleOutput', array(), array(), '', false);
|
$this->out = $this->getMock('ConsoleOutput', array(), array(), '', false);
|
||||||
$in = $this->getMock('ConsoleInput', array(), array(), '', false);
|
$this->in = $this->getMock('ConsoleInput', array(), array(), '', false);
|
||||||
|
|
||||||
$this->Task = $this->getMock('PluginTask',
|
$this->Task = $this->getMock('PluginTask',
|
||||||
array('in', 'err', 'createFile', '_stop', 'clear'),
|
array('in', 'err', 'createFile', '_stop', 'clear'),
|
||||||
array($out, $out, $in)
|
array($this->out, $this->out, $this->in)
|
||||||
);
|
);
|
||||||
$this->Task->path = TMP . 'tests' . DS;
|
$this->Task->path = TMP . 'tests' . DS;
|
||||||
|
|
||||||
$this->_paths = $paths = App::path('plugins');
|
$this->_paths = $paths = App::path('plugins');
|
||||||
|
foreach ($paths as $i => $p) {
|
||||||
|
if (!is_dir($p)) {
|
||||||
|
array_splice($paths, $i, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
$this->_testPath = array_push($paths, TMP . 'tests' . DS);
|
$this->_testPath = array_push($paths, TMP . 'tests' . DS);
|
||||||
App::build(array('plugins' => $paths));
|
App::build(array('plugins' => $paths));
|
||||||
}
|
}
|
||||||
|
@ -159,4 +164,30 @@ class PluginTaskTest extends CakeTestCase {
|
||||||
$Folder->delete();
|
$Folder->delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test that findPath ignores paths that don't exist.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testFindPathNonExistant() {
|
||||||
|
$paths = App::path('plugins');
|
||||||
|
$last = count($paths);
|
||||||
|
$paths[] = '/fake/path';
|
||||||
|
|
||||||
|
$this->Task = $this->getMock('PluginTask',
|
||||||
|
array('in', 'out', 'err', 'createFile', '_stop'),
|
||||||
|
array($this->out, $this->out, $this->in)
|
||||||
|
);
|
||||||
|
$this->Task->path = TMP . 'tests' . DS;
|
||||||
|
|
||||||
|
// Make sure the added path is filtered out.
|
||||||
|
$this->Task->expects($this->exactly($last))
|
||||||
|
->method('out');
|
||||||
|
|
||||||
|
$this->Task->expects($this->once())
|
||||||
|
->method('in')
|
||||||
|
->will($this->returnValue($last));
|
||||||
|
|
||||||
|
$this->Task->findPath($paths);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue