Fixing loading of default options in CakePlugin::loadAll(), fixes

This commit is contained in:
Jose Lorenzo Rodriguez 2011-07-15 01:05:53 -04:30
parent a025cb2e01
commit 8a6d97dfa7
2 changed files with 8 additions and 4 deletions
lib/Cake

View file

@ -97,8 +97,11 @@ class CakePlugin {
public function loadAll($options = array()) { public function loadAll($options = array()) {
$plugins = App::objects('plugins'); $plugins = App::objects('plugins');
foreach ($plugins as $p) { foreach ($plugins as $p) {
$opts = isset($options[$p]) ? $options[$p] : $options; $opts = isset($options[$p]) ? $options[$p] : null;
self::load($p, $opts); if ($opts === null && isset($options[0])) {
$opts = $options[0];
}
self::load($p, (array) $opts);
} }
} }

View file

@ -216,7 +216,8 @@ class CakePluginTest extends CakeTestCase {
* @return void * @return void
*/ */
public function testLoadAllWithDefaults() { public function testLoadAllWithDefaults() {
CakePlugin::loadAll(array('bootstrap' => true)); $defaults = array('bootstrap' => true);
CakePlugin::loadAll(array($defaults));
$expected = array('PluginJs', 'TestPlugin', 'TestPluginTwo'); $expected = array('PluginJs', 'TestPlugin', 'TestPluginTwo');
$this->assertEquals($expected, CakePlugin::loaded()); $this->assertEquals($expected, CakePlugin::loaded());
$this->assertEquals('loaded js plugin bootstrap', Configure::read('CakePluginTest.js_plugin.bootstrap')); $this->assertEquals('loaded js plugin bootstrap', Configure::read('CakePluginTest.js_plugin.bootstrap'));
@ -231,7 +232,7 @@ class CakePluginTest extends CakeTestCase {
* @return void * @return void
*/ */
public function testLoadAllWithDefaultsAndOverride() { public function testLoadAllWithDefaultsAndOverride() {
CakePlugin::loadAll(array('bootstrap' => true, 'TestPlugin' => array('routes' => true))); CakePlugin::loadAll(array(array('bootstrap' => true), 'TestPlugin' => array('routes' => true)));
CakePlugin::routes(); CakePlugin::routes();
$expected = array('PluginJs', 'TestPlugin', 'TestPluginTwo'); $expected = array('PluginJs', 'TestPlugin', 'TestPluginTwo');