Browse Source

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

Jose Lorenzo Rodriguez 14 years ago
parent
commit
8a6d97dfa7
2 changed files with 8 additions and 4 deletions
  1. 5 2
      lib/Cake/Core/CakePlugin.php
  2. 3 2
      lib/Cake/Test/Case/Core/CakePluginTest.php

+ 5 - 2
lib/Cake/Core/CakePlugin.php

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

+ 3 - 2
lib/Cake/Test/Case/Core/CakePluginTest.php

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