xref: /plugin/tagging/_test/SyntaxTest.php (revision 55d5df8c4e40f0eede3f71e725efe9b563b29dbd)
1*55d5df8cSAnna Dabrowska<?php
2*55d5df8cSAnna Dabrowska
3*55d5df8cSAnna Dabrowskanamespace dokuwiki\plugin\tagging\test;
4*55d5df8cSAnna Dabrowska
5*55d5df8cSAnna Dabrowskause \DokuWikiTest;
6*55d5df8cSAnna Dabrowska
7*55d5df8cSAnna Dabrowska/**
8*55d5df8cSAnna Dabrowska * Syntax tests for the tagging plugin
9*55d5df8cSAnna Dabrowska *
10*55d5df8cSAnna Dabrowska * @group plugin_tagging
11*55d5df8cSAnna Dabrowska * @group plugins
12*55d5df8cSAnna Dabrowska */
13*55d5df8cSAnna Dabrowskaclass SyntaxTest extends DokuWikiTest
14*55d5df8cSAnna Dabrowska{
15*55d5df8cSAnna Dabrowska    protected $pluginsEnabled = ['tagging', 'sqlite'];
16*55d5df8cSAnna Dabrowska
17*55d5df8cSAnna Dabrowska    /**
18*55d5df8cSAnna Dabrowska     * Provide the test data
19*55d5df8cSAnna Dabrowska     *
20*55d5df8cSAnna Dabrowska     * @return array
21*55d5df8cSAnna Dabrowska     */
22*55d5df8cSAnna Dabrowska    public function nsFilters()
23*55d5df8cSAnna Dabrowska    {
24*55d5df8cSAnna Dabrowska        return [
25*55d5df8cSAnna Dabrowska            [
26*55d5df8cSAnna Dabrowska                [],
27*55d5df8cSAnna Dabrowska                'test:plugins:tagging'
28*55d5df8cSAnna Dabrowska            ],
29*55d5df8cSAnna Dabrowska            [
30*55d5df8cSAnna Dabrowska                ['ns' => '*'],
31*55d5df8cSAnna Dabrowska                ':'
32*55d5df8cSAnna Dabrowska            ],
33*55d5df8cSAnna Dabrowska            [
34*55d5df8cSAnna Dabrowska                ['ns' => 'foo'],
35*55d5df8cSAnna Dabrowska                'foo'
36*55d5df8cSAnna Dabrowska            ],
37*55d5df8cSAnna Dabrowska            [
38*55d5df8cSAnna Dabrowska                ['ns' => ':foo'],
39*55d5df8cSAnna Dabrowska                'foo'
40*55d5df8cSAnna Dabrowska            ],
41*55d5df8cSAnna Dabrowska            [
42*55d5df8cSAnna Dabrowska                ['ns' => 'foo:bar'],
43*55d5df8cSAnna Dabrowska                'foo:bar'
44*55d5df8cSAnna Dabrowska            ],
45*55d5df8cSAnna Dabrowska            [
46*55d5df8cSAnna Dabrowska                ['ns' => '.'],
47*55d5df8cSAnna Dabrowska                'test:plugins:tagging'
48*55d5df8cSAnna Dabrowska            ],
49*55d5df8cSAnna Dabrowska            [
50*55d5df8cSAnna Dabrowska                ['ns' => '..'],
51*55d5df8cSAnna Dabrowska                'test:plugins'
52*55d5df8cSAnna Dabrowska            ],
53*55d5df8cSAnna Dabrowska            [
54*55d5df8cSAnna Dabrowska                ['ns' => '.:sub'],
55*55d5df8cSAnna Dabrowska                'test:plugins:tagging:sub'
56*55d5df8cSAnna Dabrowska            ],
57*55d5df8cSAnna Dabrowska        ];
58*55d5df8cSAnna Dabrowska    }
59*55d5df8cSAnna Dabrowska
60*55d5df8cSAnna Dabrowska    /**
61*55d5df8cSAnna Dabrowska     * Search results
62*55d5df8cSAnna Dabrowska     *
63*55d5df8cSAnna Dabrowska     * @dataProvider nsFilters
64*55d5df8cSAnna Dabrowska     * @param array $data
65*55d5df8cSAnna Dabrowska     * @param string $expected
66*55d5df8cSAnna Dabrowska     */
67*55d5df8cSAnna Dabrowska    public function testNs($data, $expected)
68*55d5df8cSAnna Dabrowska    {
69*55d5df8cSAnna Dabrowska        global $ID;
70*55d5df8cSAnna Dabrowska        $ID = 'test:plugins:tagging:start';
71*55d5df8cSAnna Dabrowska
72*55d5df8cSAnna Dabrowska        $hlp = plugin_load('helper', 'tagging');
73*55d5df8cSAnna Dabrowska
74*55d5df8cSAnna Dabrowska        $actual = $hlp->resolveNs($data);
75*55d5df8cSAnna Dabrowska        $this->assertEquals($expected, $actual);
76*55d5df8cSAnna Dabrowska    }
77*55d5df8cSAnna Dabrowska}
78