7 require_once 'application/PluginManager.php';
10 * Unit tests for Plugins
12 class PluginManagerTest
extends PHPUnit_Framework_TestCase
15 * Path to tests plugin.
16 * @var string $pluginPath
18 private static $pluginPath = 'tests/plugins';
22 * @var string $pluginName
24 private static $pluginName = 'test';
27 * Test plugin loading and hook execution.
31 public function testPlugin()
33 $pluginManager = PluginManager
::getInstance();
35 PluginManager
::$PLUGINS_PATH = self
::$pluginPath;
36 $pluginManager->load(array(self
::$pluginName));
38 $this->assertTrue(function_exists('hook_test_random'));
40 $data = array(0 => 'woot');
41 $pluginManager->executeHooks('random', $data);
42 $this->assertEquals('woot', $data[1]);
44 $data = array(0 => 'woot');
45 $pluginManager->executeHooks('random', $data, array('target' => 'test'));
46 $this->assertEquals('page test', $data[1]);
48 $data = array(0 => 'woot');
49 $pluginManager->executeHooks('random', $data, array('loggedin' => true));
50 $this->assertEquals('loggedin', $data[1]);
54 * Test missing plugin loading.
58 public function testPluginNotFound()
60 $pluginManager = PluginManager
::getInstance();
62 $pluginManager->load(array());
64 $pluginManager->load(array('nope', 'renope'));
68 * Test plugin metadata loading.
70 public function testGetPluginsMeta()
72 $pluginManager = PluginManager
::getInstance();
74 PluginManager
::$PLUGINS_PATH = self
::$pluginPath;
75 $pluginManager->load(array(self
::$pluginName));
77 $expectedParameters = array(
81 $meta = $pluginManager->getPluginsMeta();
82 $this->assertEquals('test plugin', $meta[self
::$pluginName]['description']);
83 $this->assertEquals($expectedParameters, $meta[self
::$pluginName]['parameters']);