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