xref: /dokuwiki/_test/tests/inc/parser/handler_parse_highlight_options.test.php (revision 54f741e8823b91c5872313ab46f59c7a1ef0be2c)
1*54f741e8SAndreas Gohr<?php
2*54f741e8SAndreas Gohr
3*54f741e8SAndreas Gohrclass TestOfDoku_Handler_ParseHighlightOptions extends DokuWikiTest {
4*54f741e8SAndreas Gohr
5*54f741e8SAndreas Gohr    public function dataProvider() {
6*54f741e8SAndreas Gohr        return [
7*54f741e8SAndreas Gohr            ['', null],
8*54f741e8SAndreas Gohr            ['something weird', null],
9*54f741e8SAndreas Gohr            ['enable_line_numbers', ['enable_line_numbers' => true]],
10*54f741e8SAndreas Gohr            ['enable_line_numbers=1', ['enable_line_numbers' => true]],
11*54f741e8SAndreas Gohr            ['enable_line_numbers="1"', ['enable_line_numbers' => true]],
12*54f741e8SAndreas Gohr            ['enable_line_numbers=0', ['enable_line_numbers' => false]],
13*54f741e8SAndreas Gohr            ['enable_line_numbers="0"', ['enable_line_numbers' => false]],
14*54f741e8SAndreas Gohr            ['enable_line_numbers=false', ['enable_line_numbers' => false]],
15*54f741e8SAndreas Gohr            ['enable_line_numbers="false"', ['enable_line_numbers' => false]],
16*54f741e8SAndreas Gohr            ['highlight_lines_extra', ['highlight_lines_extra' => [1]]],
17*54f741e8SAndreas Gohr            ['highlight_lines_extra=17', ['highlight_lines_extra' => [17]]],
18*54f741e8SAndreas Gohr            ['highlight_lines_extra=17,19', ['highlight_lines_extra' => [17, 19]]],
19*54f741e8SAndreas Gohr            ['highlight_lines_extra="17,19"', ['highlight_lines_extra' => [17, 19]]],
20*54f741e8SAndreas Gohr            ['highlight_lines_extra="17,19,17"', ['highlight_lines_extra' => [17, 19]]],
21*54f741e8SAndreas Gohr            ['start_line_numbers_at', ['start_line_numbers_at' => 1]],
22*54f741e8SAndreas Gohr            ['start_line_numbers_at=12', ['start_line_numbers_at' => 12]],
23*54f741e8SAndreas Gohr            ['start_line_numbers_at="12"', ['start_line_numbers_at' => 12]],
24*54f741e8SAndreas Gohr            ['enable_keyword_links', ['enable_keyword_links' => true]],
25*54f741e8SAndreas Gohr            ['enable_keyword_links=1', ['enable_keyword_links' => true]],
26*54f741e8SAndreas Gohr            ['enable_keyword_links="1"', ['enable_keyword_links' => true]],
27*54f741e8SAndreas Gohr            ['enable_keyword_links=0', ['enable_keyword_links' => false]],
28*54f741e8SAndreas Gohr            ['enable_keyword_links="0"', ['enable_keyword_links' => false]],
29*54f741e8SAndreas Gohr            ['enable_keyword_links=false', ['enable_keyword_links' => false]],
30*54f741e8SAndreas Gohr            ['enable_keyword_links="false"', ['enable_keyword_links' => false]],
31*54f741e8SAndreas Gohr            [
32*54f741e8SAndreas Gohr                'enable_line_numbers weird nothing highlight_lines_extra=17,19 start_line_numbers_at="12" enable_keyword_links=false',
33*54f741e8SAndreas Gohr                [
34*54f741e8SAndreas Gohr                    'enable_line_numbers' => true,
35*54f741e8SAndreas Gohr                    'highlight_lines_extra' => [17, 19],
36*54f741e8SAndreas Gohr                    'start_line_numbers_at' => 12,
37*54f741e8SAndreas Gohr                    'enable_keyword_links' => false
38*54f741e8SAndreas Gohr                ]
39*54f741e8SAndreas Gohr            ],
40*54f741e8SAndreas Gohr        ];
41*54f741e8SAndreas Gohr    }
42*54f741e8SAndreas Gohr
43*54f741e8SAndreas Gohr    /**
44*54f741e8SAndreas Gohr     * @dataProvider dataProvider
45*54f741e8SAndreas Gohr     * @param string $input options to parse
46*54f741e8SAndreas Gohr     * @param array|null $expect expected outcome
47*54f741e8SAndreas Gohr     * @throws ReflectionException
48*54f741e8SAndreas Gohr     */
49*54f741e8SAndreas Gohr    public function testOptionParser($input, $expect) {
50*54f741e8SAndreas Gohr        $h = new Doku_Handler();
51*54f741e8SAndreas Gohr
52*54f741e8SAndreas Gohr        $output = $this->callInaccessibleMethod($h, 'parse_highlight_options', [$input]);
53*54f741e8SAndreas Gohr
54*54f741e8SAndreas Gohr        $this->assertEquals($expect, $output);
55*54f741e8SAndreas Gohr    }
56*54f741e8SAndreas Gohr}
57