ConfigPluginTest.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. namespace Shaarli\Config;
  3. use Shaarli\Config\Exception\PluginConfigOrderException;
  4. require_once 'application/config/ConfigPlugin.php';
  5. /**
  6. * Unitary tests for Shaarli config related functions
  7. */
  8. class ConfigPluginTest extends \PHPUnit_Framework_TestCase
  9. {
  10. /**
  11. * Test save_plugin_config with valid data.
  12. *
  13. * @throws PluginConfigOrderException
  14. */
  15. public function testSavePluginConfigValid()
  16. {
  17. $data = array(
  18. 'order_plugin1' => 2, // no plugin related
  19. 'plugin2' => 0, // new - at the end
  20. 'plugin3' => 0, // 2nd
  21. 'order_plugin3' => 8,
  22. 'plugin4' => 0, // 1st
  23. 'order_plugin4' => 5,
  24. );
  25. $expected = array(
  26. 'plugin3',
  27. 'plugin4',
  28. 'plugin2',
  29. );
  30. $out = save_plugin_config($data);
  31. $this->assertEquals($expected, $out);
  32. }
  33. /**
  34. * Test save_plugin_config with invalid data.
  35. *
  36. * @expectedException Shaarli\Config\Exception\PluginConfigOrderException
  37. */
  38. public function testSavePluginConfigInvalid()
  39. {
  40. $data = array(
  41. 'plugin2' => 0,
  42. 'plugin3' => 0,
  43. 'order_plugin3' => 0,
  44. 'plugin4' => 0,
  45. 'order_plugin4' => 0,
  46. );
  47. save_plugin_config($data);
  48. }
  49. /**
  50. * Test save_plugin_config without data.
  51. */
  52. public function testSavePluginConfigEmpty()
  53. {
  54. $this->assertEquals(array(), save_plugin_config(array()));
  55. }
  56. /**
  57. * Test validate_plugin_order with valid data.
  58. */
  59. public function testValidatePluginOrderValid()
  60. {
  61. $data = array(
  62. 'order_plugin1' => 2,
  63. 'plugin2' => 0,
  64. 'plugin3' => 0,
  65. 'order_plugin3' => 1,
  66. 'plugin4' => 0,
  67. 'order_plugin4' => 5,
  68. );
  69. $this->assertTrue(validate_plugin_order($data));
  70. }
  71. /**
  72. * Test validate_plugin_order with invalid data.
  73. */
  74. public function testValidatePluginOrderInvalid()
  75. {
  76. $data = array(
  77. 'order_plugin1' => 2,
  78. 'order_plugin3' => 1,
  79. 'order_plugin4' => 1,
  80. );
  81. $this->assertFalse(validate_plugin_order($data));
  82. }
  83. /**
  84. * Test load_plugin_parameter_values.
  85. */
  86. public function testLoadPluginParameterValues()
  87. {
  88. $plugins = array(
  89. 'plugin_name' => array(
  90. 'parameters' => array(
  91. 'param1' => array('value' => true),
  92. 'param2' => array('value' => false),
  93. 'param3' => array('value' => ''),
  94. )
  95. )
  96. );
  97. $parameters = array(
  98. 'param1' => 'value1',
  99. 'param2' => 'value2',
  100. );
  101. $result = load_plugin_parameter_values($plugins, $parameters);
  102. $this->assertEquals('value1', $result['plugin_name']['parameters']['param1']['value']);
  103. $this->assertEquals('value2', $result['plugin_name']['parameters']['param2']['value']);
  104. $this->assertEquals('', $result['plugin_name']['parameters']['param3']['value']);
  105. }
  106. }