Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
9.91% covered (danger)
9.91%
11 / 111
66.67% covered (warning)
66.67%
2 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
phpbb_functions_insert_config_array_test
9.91% covered (danger)
9.91%
11 / 111
66.67% covered (warning)
66.67%
2 / 3
9.58
0.00% covered (danger)
0.00%
0 / 1
 config_display_vars
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
1
 insert_config_array_data
0.00% covered (danger)
0.00%
0 / 100
0.00% covered (danger)
0.00%
0 / 1
2
 test_insert_config_array
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2/**
3*
4* This file is part of the phpBB Forum Software package.
5*
6* @copyright (c) phpBB Limited <https://www.phpbb.com>
7* @license GNU General Public License, version 2 (GPL-2.0)
8*
9* For full copyright and license information, please see
10* the docs/CREDITS.txt file.
11*
12*/
13
14require_once __DIR__ . '/../../phpBB/includes/functions_acp.php';
15
16class phpbb_functions_insert_config_array_test extends phpbb_test_case
17{
18    public function config_display_vars()
19    {
20        return array(
21            'legend1'        => '',
22            'acp_config_1'    => array(),
23            'acp_config_2'    => array(),
24            'acp_config_3'    => array(),
25            'acp_config_4'    => array(),
26            'acp_config_5'    => array(),
27        );
28    }
29
30    public static function insert_config_array_data()
31    {
32        return array(
33            array( // Add a new config after 1st array item
34                array('new_config_1' => array()),
35                array('after' => 'legend1'),
36                array(
37                    'legend1'        => '',
38                    'new_config_1'    => array(),
39                    'acp_config_1'    => array(),
40                    'acp_config_2'    => array(),
41                    'acp_config_3'    => array(),
42                    'acp_config_4'    => array(),
43                    'acp_config_5'    => array(),
44                ),
45            ),
46            array( // Add a new config after last array item
47                array('new_config_1' => array()),
48                array('after' => 'acp_config_5'),
49                array(
50                    'legend1'        => '',
51                    'acp_config_1'    => array(),
52                    'acp_config_2'    => array(),
53                    'acp_config_3'    => array(),
54                    'acp_config_4'    => array(),
55                    'acp_config_5'    => array(),
56                    'new_config_1'    => array(),
57                ),
58            ),
59            array( // Add a new config before 2nd array item
60                array('new_config_1' => array()),
61                array('before' => 'acp_config_1'),
62                array(
63                    'legend1'        => '',
64                    'new_config_1'    => array(),
65                    'acp_config_1'    => array(),
66                    'acp_config_2'    => array(),
67                    'acp_config_3'    => array(),
68                    'acp_config_4'    => array(),
69                    'acp_config_5'    => array(),
70                ),
71            ),
72            array( // Add a new config before last config item
73                array('new_config_1' => array()),
74                array('before' => 'acp_config_5'),
75                array(
76                    'legend1'        => '',
77                    'acp_config_1'    => array(),
78                    'acp_config_2'    => array(),
79                    'acp_config_3'    => array(),
80                    'acp_config_4'    => array(),
81                    'new_config_1'    => array(),
82                    'acp_config_5'    => array(),
83                ),
84            ),
85            array( // When an array key does not exist
86                array('new_config_1' => array()),
87                array('after' => 'foobar'),
88                array(
89                    'legend1'        => '',
90                    'acp_config_1'    => array(),
91                    'acp_config_2'    => array(),
92                    'acp_config_3'    => array(),
93                    'acp_config_4'    => array(),
94                    'acp_config_5'    => array(),
95                ),
96            ),
97            array( // When after|before is not used correctly (defaults to after)
98                array('new_config_1' => array()),
99                array('foobar' => 'acp_config_1'),
100                array(
101                    'legend1'        => '',
102                    'acp_config_1'    => array(),
103                    'new_config_1'    => array(),
104                    'acp_config_2'    => array(),
105                    'acp_config_3'    => array(),
106                    'acp_config_4'    => array(),
107                    'acp_config_5'    => array(),
108                ),
109            ),
110            array( // Add a new config set after the last array item
111                array(
112                    'legend2' => array(),
113                    'new_config_1' => array(),
114                    'new_config_2' => array(),
115                    'new_config_3' => array(),
116                ),
117                array('after' => 'acp_config_5'),
118                array(
119                    'legend1'        => '',
120                    'acp_config_1'    => array(),
121                    'acp_config_2'    => array(),
122                    'acp_config_3'    => array(),
123                    'acp_config_4'    => array(),
124                    'acp_config_5'    => array(),
125                    'legend2' => array(),
126                    'new_config_1' => array(),
127                    'new_config_2' => array(),
128                    'new_config_3' => array(),
129                ),
130            ),
131        );
132    }
133
134    /**
135    * @dataProvider insert_config_array_data
136    */
137    public function test_insert_config_array($new_config, $position, $expected)
138    {
139        $config_array = $this->config_display_vars();
140        $new_config_array = phpbb_insert_config_array($config_array, $new_config, $position);
141
142        $this->assertSame($expected, $new_config_array);
143    }
144}