ConfigPluginTest.php 3.1 KB

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