PluginManagerTest.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * Plugin Manager tests
  4. */
  5. require_once 'application/PluginManager.php';
  6. /**
  7. * Unit tests for Plugins
  8. */
  9. class PluginManagerTest extends PHPUnit_Framework_TestCase
  10. {
  11. /**
  12. * Path to tests plugin.
  13. * @var string $pluginPath
  14. */
  15. private static $pluginPath = 'tests/plugins';
  16. /**
  17. * Test plugin.
  18. * @var string $pluginName
  19. */
  20. private static $pluginName = 'test';
  21. /**
  22. * Test plugin loading and hook execution.
  23. *
  24. * @return void
  25. */
  26. public function testPlugin()
  27. {
  28. $pluginManager = PluginManager::getInstance();
  29. PluginManager::$PLUGINS_PATH = self::$pluginPath;
  30. $pluginManager->load(array(self::$pluginName));
  31. $this->assertTrue(function_exists('hook_test_random'));
  32. $data = array(0 => 'woot');
  33. $pluginManager->executeHooks('random', $data);
  34. $this->assertEquals('woot', $data[1]);
  35. $data = array(0 => 'woot');
  36. $pluginManager->executeHooks('random', $data, array('target' => 'test'));
  37. $this->assertEquals('page test', $data[1]);
  38. $data = array(0 => 'woot');
  39. $pluginManager->executeHooks('random', $data, array('loggedin' => true));
  40. $this->assertEquals('loggedin', $data[1]);
  41. }
  42. /**
  43. * Test missing plugin loading.
  44. *
  45. * @return void
  46. */
  47. public function testPluginNotFound()
  48. {
  49. $pluginManager = PluginManager::getInstance();
  50. $pluginManager->load(array());
  51. $pluginManager->load(array('nope', 'renope'));
  52. }
  53. /**
  54. * Test plugin metadata loading.
  55. */
  56. public function testGetPluginsMeta()
  57. {
  58. $pluginManager = PluginManager::getInstance();
  59. PluginManager::$PLUGINS_PATH = self::$pluginPath;
  60. $pluginManager->load(array(self::$pluginName));
  61. $expectedParameters = array(
  62. 'pop' => '',
  63. 'hip' => '',
  64. );
  65. $meta = $pluginManager->getPluginsMeta();
  66. $this->assertEquals('test plugin', $meta[self::$pluginName]['description']);
  67. $this->assertEquals($expectedParameters, $meta[self::$pluginName]['parameters']);
  68. }
  69. }