Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
30.36% covered (danger)
30.36%
17 / 56
66.67% covered (warning)
66.67%
2 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
context_test
30.36% covered (danger)
30.36%
17 / 56
66.67% covered (warning)
66.67%
2 / 3
18.16
0.00% covered (danger)
0.00%
0 / 1
 setUp
100.00% covered (success)
100.00%
16 / 16
100.00% covered (success)
100.00%
1 / 1
4
 retrieve_block_vars_data
0.00% covered (danger)
0.00%
0 / 39
0.00% covered (danger)
0.00%
0 / 1
2
 test_retrieve_block_vars
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
14class context_test extends phpbb_test_case
15{
16    protected $context;
17    protected function setUp(): void
18    {
19        $this->context = new \phpbb\template\context();
20
21        for ($i = 0; $i < 10; $i++)
22        {
23            $this->context->assign_block_vars('block' . $i, array(
24                'FOO' . $i    => 'foo' . $i,
25                'BAR' . $i    => 'bar' . $i,
26            ));
27
28            for ($j = 0; $j < 10; $j++)
29            {
30                $this->context->assign_block_vars('block' . $i . '.subblock', array(
31                    'SUBFOO'    => 'subfoo' . $j,
32                    'SUBBAR'    => 'subbar' . $j,
33                ));
34
35                for ($k = 0; $k < 10; $k++)
36                {
37                    $this->context->assign_block_vars('block' . $i . '.subblock.subsubblock', array(
38                        'SUBSUBFOO'    => 'subsubfoo' . $k,
39                        'SUBSUBBAR'    => 'subsubbar' . $k,
40                    ));
41                }
42            }
43        }
44    }
45
46    public static function retrieve_block_vars_data()
47    {
48        return array(
49            array('foo', array(), array()), // non-existent top-level block
50            array('block1.foo', array(), array()), // non-existent sub-level block
51            array('block1', array(), array( // top-level block, all vars
52                'FOO1'    => 'foo1',
53                'BAR1'    => 'bar1',
54            )),
55            array('block1', array('FOO1'), array( // top-level block, one var
56                'FOO1'    => 'foo1',
57            )),
58            array('block2.subblock', array(), array( // sub-level block, all vars
59                'SUBFOO'    => 'subfoo9',
60                'SUBBAR'    => 'subbar9',
61            )),
62            array('block2.subblock', array('SUBBAR'), array( // sub-level block, one var
63                'SUBBAR'    => 'subbar9',
64            )),
65            array('block2.subblock.subsubblock', array(), array( // sub-sub-level block, all vars
66                'SUBSUBFOO'    => 'subsubfoo9',
67                'SUBSUBBAR'    => 'subsubbar9',
68            )),
69            array('block2.subblock.subsubblock', array('SUBSUBBAR'), array( // sub-sub-level block, one var
70                'SUBSUBBAR'    => 'subsubbar9',
71            )),
72            array('block3.subblock[2]', array(), array( // sub-level, exact index, all vars
73                'SUBFOO'    => 'subfoo2',
74                'SUBBAR'    => 'subbar2',
75            )),
76            array('block3.subblock[2]', array('SUBBAR'), array( // sub-level, exact index, one var
77                'SUBBAR'    => 'subbar2',
78            )),
79            array('block3.subblock[3].subsubblock[5]', array(), array( // sub-sub-level, exact index, all vars
80                'SUBSUBFOO'    => 'subsubfoo5',
81                'SUBSUBBAR'    => 'subsubbar5',
82            )),
83            array('block3.subblock[4].subsubblock[6]', array('SUBSUBFOO'), array( // sub-sub-level, exact index, one var
84                'SUBSUBFOO'    => 'subsubfoo6',
85            )),
86        );
87    }
88
89    /**
90    * @dataProvider retrieve_block_vars_data
91    */
92    public function test_retrieve_block_vars($blockname, $vararray, $result)
93    {
94        $this->assertEquals($result, $this->context->retrieve_block_vars($blockname, $vararray));
95    }
96}