Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
11.48% covered (danger)
11.48%
7 / 61
50.00% covered (danger)
50.00%
5 / 10
CRAP
0.00% covered (danger)
0.00%
0 / 1
phpbb_tests_tree_nestedset_forum_get_data_test
11.48% covered (danger)
11.48%
7 / 61
50.00% covered (danger)
50.00%
5 / 10
79.37
0.00% covered (danger)
0.00%
0 / 1
 get_path_and_subtree_data_data
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
2
 test_get_path_and_subtree_data
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 get_path_data_data
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
2
 test_get_path_data
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 get_subtree_data_data
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
2
 test_get_subtree_data
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 get_path_basic_data_data
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 1
2
 test_get_path_basic_data
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
 get_all_tree_data_data
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 test_get_all_tree_data
100.00% covered (success)
100.00%
1 / 1
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__ . '/nestedset_forum_base.php';
15
16class phpbb_tests_tree_nestedset_forum_get_data_test extends phpbb_tests_tree_nestedset_forum_base
17{
18    public static function get_path_and_subtree_data_data()
19    {
20        return array(
21            array(1, true, true, array(1, 2, 3)),
22            array(1, true, false, array(2, 3)),
23            array(1, false, true, array(3, 2, 1)),
24            array(1, false, false, array(3, 2)),
25
26            array(2, true, true, array(1, 2)),
27            array(2, true, false, array(1)),
28            array(2, false, true, array(2, 1)),
29            array(2, false, false, array(1)),
30
31            array(5, true, true, array(4, 5, 6)),
32            array(5, true, false, array(4, 6)),
33            array(5, false, true, array(6, 5, 4)),
34            array(5, false, false, array(6, 4)),
35        );
36    }
37
38    /**
39    * @dataProvider get_path_and_subtree_data_data
40    */
41    public function test_get_path_and_subtree_data($forum_id, $order_asc, $include_item, $expected)
42    {
43        $this->assertEquals($expected, array_keys($this->set->get_path_and_subtree_data($forum_id, $order_asc, $include_item)));
44    }
45
46    public static function get_path_data_data()
47    {
48        return array(
49            array(1, true, true, array(1)),
50            array(1, true, false, array()),
51            array(1, false, true, array(1)),
52            array(1, false, false, array()),
53
54            array(2, true, true, array(1, 2)),
55            array(2, true, false, array(1)),
56            array(2, false, true, array(2, 1)),
57            array(2, false, false, array(1)),
58
59            array(5, true, true, array(4, 5)),
60            array(5, true, false, array(4)),
61            array(5, false, true, array(5, 4)),
62            array(5, false, false, array(4)),
63        );
64    }
65
66    /**
67    * @dataProvider get_path_data_data
68    */
69    public function test_get_path_data($forum_id, $order_asc, $include_item, $expected)
70    {
71        $this->assertEquals($expected, array_keys($this->set->get_path_data($forum_id, $order_asc, $include_item)));
72    }
73
74    public static function get_subtree_data_data()
75    {
76        return array(
77            array(1, true, true, array(1, 2, 3)),
78            array(1, true, false, array(2, 3)),
79            array(1, false, true, array(3, 2, 1)),
80            array(1, false, false, array(3, 2)),
81
82            array(2, true, true, array(2)),
83            array(2, true, false, array()),
84            array(2, false, true, array(2)),
85            array(2, false, false, array()),
86
87            array(5, true, true, array(5, 6)),
88            array(5, true, false, array(6)),
89            array(5, false, true, array(6, 5)),
90            array(5, false, false, array(6)),
91        );
92    }
93
94    /**
95    * @dataProvider get_subtree_data_data
96    */
97    public function test_get_subtree_data($forum_id, $order_asc, $include_item, $expected)
98    {
99        $this->assertEquals($expected, array_keys($this->set->get_subtree_data($forum_id, $order_asc, $include_item)));
100    }
101
102    public static function get_path_basic_data_data()
103    {
104        return array(
105            array(1, '', array()),
106            array(1, serialize(array()), array()),
107            array(2, '', array(1)),
108            array(2, serialize(array(1 => array())), array(1)),
109            array(10, '', array(7, 9)),
110            array(10, serialize(array(7 => array(), 9 => array())), array(7, 9)),
111        );
112    }
113
114    /**
115    * @dataProvider get_path_basic_data_data
116    */
117    public function test_get_path_basic_data($forum_id, $forum_parents, $expected)
118    {
119        $forum_data = $this->forum_data[$forum_id];
120        $forum_data['forum_parents'] = $forum_parents;
121        $this->assertEquals($expected, array_keys($this->set->get_path_basic_data($forum_data)));
122    }
123
124    public static function get_all_tree_data_data()
125    {
126        return array(
127            array(true, array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)),
128            array(false, array(11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1)),
129        );
130    }
131
132    /**
133    * @dataProvider get_all_tree_data_data
134    */
135    public function test_get_all_tree_data($order_asc, $expected)
136    {
137        $this->assertEquals($expected, array_keys($this->set->get_all_tree_data($order_asc)));
138    }
139}