Browse Source

Improving CakePlugin::loaded() to accept a plugin name as first parameter

Jose Lorenzo Rodriguez 15 years ago
parent
commit
2fab0b0e1c
2 changed files with 12 additions and 11 deletions
  1. 8 3
      lib/Cake/Core/CakePlugin.php
  2. 4 8
      lib/Cake/tests/Case/Core/CakePluginTest.php

+ 8 - 3
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);
 	}
 

+ 4 - 8
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'));
 	}