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