xref: /dokuwiki/_test/tests/inc/pageutils_findnearest.test.php (revision 935d40e901f8e34a100d64426355e459419860f4)
1<?php
2
3class pageutils_findnearest_test extends DokuWikiTest {
4
5    var $oldAuthAcl;
6
7    function setUp() {
8        parent::setUp();
9        global $AUTH_ACL;
10        global $auth;
11        global $conf;
12        $conf['superuser'] = 'john';
13        $conf['useacl']    = 1;
14
15        $this->oldAuthAcl = $AUTH_ACL;
16        $auth = new DokuWiki_Auth_Plugin();
17
18        $AUTH_ACL = array(
19            '*           @ALL           1',
20            'internal:*    @ALL           0',
21            'internal:*    max            1',
22            '*           @user          8',
23        );
24    }
25
26    function tearDown() {
27        global $AUTH_ACL;
28        $AUTH_ACL = $this->oldAuthAcl;
29    }
30
31    function testNoSidebar() {
32        global $ID;
33
34        $ID = 'foo:bar:baz:test';
35        $sidebar = page_findnearest('sidebar');
36        $this->assertEquals(false, $sidebar);
37    }
38
39    function testExistingSidebars() {
40        global $ID;
41
42        saveWikiText('sidebar', 'topsidebar-test', '');
43
44        $ID = 'foo:bar:baz:test';
45        $sidebar = page_findnearest('sidebar');
46        $this->assertEquals('sidebar', $sidebar);
47
48        $ID = 'foo';
49        $sidebar = page_findnearest('sidebar');
50        $this->assertEquals('sidebar', $sidebar);
51
52        saveWikiText('foo:bar:sidebar', 'bottomsidebar-test', '');
53
54        $ID = 'foo:bar:baz:test';
55        $sidebar = page_findnearest('sidebar');
56        $this->assertEquals('foo:bar:sidebar', $sidebar);
57
58        $ID = 'foo:bar:test';
59        $sidebar = page_findnearest('sidebar');
60        $this->assertEquals('foo:bar:sidebar', $sidebar);
61
62        $ID = 'foo';
63        $sidebar = page_findnearest('sidebar');
64        $this->assertEquals('sidebar', $sidebar);
65    }
66
67    function testACLWithSidebar() {
68        global $ID;
69        global $INPUT;
70
71        $INPUT->server->set('REMOTE_USER', 'foo');
72
73        saveWikiText('sidebar', 'top sidebar', '');
74        saveWikiText('internal:sidebar', 'internal sidebar', '');
75
76        $ID = 'internal:foo:bar';
77
78        $sidebar = page_findnearest('sidebar');
79        $this->assertEquals('sidebar', $sidebar);
80
81        $sidebar = page_findnearest('sidebar', false);
82        $this->assertEquals('internal:sidebar', $sidebar);
83
84        $INPUT->server->set('REMOTE_USER', 'max');
85
86        $sidebar = page_findnearest('sidebar');
87        $this->assertEquals('internal:sidebar', $sidebar);
88    }
89}
90