]> git.immae.eu Git - github/shaarli/Shaarli.git/blame - tests/config/ConfigPluginTest.php
Compatibility with PHPUnit 9
[github/shaarli/Shaarli.git] / tests / config / ConfigPluginTest.php
CommitLineData
59404d79 1<?php
3c66e564
V
2namespace Shaarli\Config;
3
e6cd773f 4use Shaarli\Config\Exception\PluginConfigOrderException;
9fbc4229 5use Shaarli\Plugin\PluginManager;
59404d79
A
6
7require_once 'application/config/ConfigPlugin.php';
8
9/**
10 * Unitary tests for Shaarli config related functions
11 */
a5a9cf23 12class ConfigPluginTest extends \Shaarli\TestCase
59404d79
A
13{
14 /**
15 * Test save_plugin_config with valid data.
16 *
17 * @throws PluginConfigOrderException
18 */
19 public function testSavePluginConfigValid()
20 {
9fbc4229 21 $data = [
59404d79
A
22 'order_plugin1' => 2, // no plugin related
23 'plugin2' => 0, // new - at the end
24 'plugin3' => 0, // 2nd
25 'order_plugin3' => 8,
26 'plugin4' => 0, // 1st
27 'order_plugin4' => 5,
9fbc4229 28 ];
59404d79 29
9fbc4229 30 $expected = [
59404d79
A
31 'plugin3',
32 'plugin4',
33 'plugin2',
9fbc4229
A
34 ];
35
36 mkdir($path = __DIR__ . '/folder');
37 PluginManager::$PLUGINS_PATH = $path;
38 array_map(function (string $plugin) use ($path) { touch($path . '/' . $plugin); }, $expected);
59404d79
A
39
40 $out = save_plugin_config($data);
41 $this->assertEquals($expected, $out);
9fbc4229
A
42
43 array_map(function (string $plugin) use ($path) { unlink($path . '/' . $plugin); }, $expected);
44 rmdir($path);
59404d79
A
45 }
46
47 /**
48 * Test save_plugin_config with invalid data.
59404d79
A
49 */
50 public function testSavePluginConfigInvalid()
51 {
b1baca99
A
52 $this->expectException(\Shaarli\Config\Exception\PluginConfigOrderException::class);
53
59404d79
A
54 $data = array(
55 'plugin2' => 0,
56 'plugin3' => 0,
57 'order_plugin3' => 0,
58 'plugin4' => 0,
59 'order_plugin4' => 0,
60 );
61
62 save_plugin_config($data);
63 }
64
65 /**
66 * Test save_plugin_config without data.
67 */
68 public function testSavePluginConfigEmpty()
69 {
70 $this->assertEquals(array(), save_plugin_config(array()));
71 }
72
73 /**
74 * Test validate_plugin_order with valid data.
75 */
76 public function testValidatePluginOrderValid()
77 {
78 $data = array(
79 'order_plugin1' => 2,
80 'plugin2' => 0,
81 'plugin3' => 0,
82 'order_plugin3' => 1,
83 'plugin4' => 0,
84 'order_plugin4' => 5,
85 );
86
87 $this->assertTrue(validate_plugin_order($data));
88 }
89
90 /**
91 * Test validate_plugin_order with invalid data.
92 */
93 public function testValidatePluginOrderInvalid()
94 {
95 $data = array(
96 'order_plugin1' => 2,
97 'order_plugin3' => 1,
98 'order_plugin4' => 1,
99 );
100
101 $this->assertFalse(validate_plugin_order($data));
102 }
103
104 /**
105 * Test load_plugin_parameter_values.
106 */
107 public function testLoadPluginParameterValues()
108 {
109 $plugins = array(
110 'plugin_name' => array(
111 'parameters' => array(
15170b51
A
112 'param1' => array('value' => true),
113 'param2' => array('value' => false),
114 'param3' => array('value' => ''),
59404d79
A
115 )
116 )
117 );
118
119 $parameters = array(
120 'param1' => 'value1',
121 'param2' => 'value2',
122 );
123
124 $result = load_plugin_parameter_values($plugins, $parameters);
15170b51
A
125 $this->assertEquals('value1', $result['plugin_name']['parameters']['param1']['value']);
126 $this->assertEquals('value2', $result['plugin_name']['parameters']['param2']['value']);
127 $this->assertEquals('', $result['plugin_name']['parameters']['param3']['value']);
59404d79
A
128 }
129}