diff --git a/lib/Cake/Core/CakePlugin.php b/lib/Cake/Core/CakePlugin.php index 9812959d7..3215e5781 100644 --- a/lib/Cake/Core/CakePlugin.php +++ b/lib/Cake/Core/CakePlugin.php @@ -163,11 +163,16 @@ class CakePlugin { } /** - * Returns a list of all loaded plugins + * Retruns true if the plugin $plugin is already loaded + * If plugin is null, it will return a list of all loaded plugins * - * @return array list of plugins that have been loaded + * @return mixed boolean true if $plugin is already loaded. + * If $plugin is null, returns a list of plugins that have been loaded */ - public static function loaded() { + public static function loaded($plugin = null) { + if ($plugin) { + return isset(self::$_plugins[$plugin]); + } return array_keys(self::$_plugins); } diff --git a/lib/Cake/tests/Case/Core/CakePluginTest.php b/lib/Cake/tests/Case/Core/CakePluginTest.php index a974e9bc3..26c88fb9a 100644 --- a/lib/Cake/tests/Case/Core/CakePluginTest.php +++ b/lib/Cake/tests/Case/Core/CakePluginTest.php @@ -69,8 +69,7 @@ class CakePluginTest extends CakeTestCase { */ public function testLoadSingleWithBootstrap() { CakePlugin::load('TestPlugin', array('bootstrap' => true)); - $expected = array('TestPlugin'); - $this->assertEquals($expected, CakePlugin::loaded()); + $this->assertTrue(CakePlugin::loaded('TestPlugin')); $this->assertEquals('loaded plugin bootstrap', Configure::read('CakePluginTest.test_plugin.bootstrap')); } @@ -81,8 +80,7 @@ class CakePluginTest extends CakeTestCase { */ public function testLoadSingleWithBootstrapAndRoutes() { CakePlugin::load('TestPlugin', array('bootstrap' => true, 'routes' => true)); - $expected = array('TestPlugin'); - $this->assertEquals($expected, CakePlugin::loaded()); + $this->assertTrue(CakePlugin::loaded('TestPlugin')); $this->assertEquals('loaded plugin bootstrap', Configure::read('CakePluginTest.test_plugin.bootstrap')); $this->assertEquals('loaded plugin routes', Configure::read('CakePluginTest.test_plugin.routes')); } @@ -134,8 +132,7 @@ class CakePluginTest extends CakeTestCase { */ public function testMultipleBootstrapFiles() { CakePlugin::load('TestPlugin', array('bootstrap' => array('bootstrap', 'custom_config'))); - $expected = array('TestPlugin'); - $this->assertEquals($expected, CakePlugin::loaded()); + $this->assertTrue(CakePlugin::loaded('TestPlugin')); $this->assertEquals('loaded plugin bootstrap', Configure::read('CakePluginTest.test_plugin.bootstrap')); } @@ -147,8 +144,7 @@ class CakePluginTest extends CakeTestCase { */ public function testCallbackBootstrap() { CakePlugin::load('TestPlugin', array('bootstrap' => array($this, 'pluginBootstrap'))); - $expected = array('TestPlugin'); - $this->assertEquals($expected, CakePlugin::loaded()); + $this->assertTrue(CakePlugin::loaded('TestPlugin')); $this->assertEquals('called plugin bootstrap callback', Configure::read('CakePluginTest.test_plugin.bootstrap')); }