xref: /dokuwiki/_test/tests/inc/pageutils_findnearest.test.php (revision cc5294682913a4fdb87184d3b5bfdd8e28678ed2)
1e66d3e6dSAndreas Gohr<?php
2e66d3e6dSAndreas Gohr
3e66d3e6dSAndreas Gohrclass pageutils_findnearest_test extends DokuWikiTest {
4*cc529468SMichael Hamann
5*cc529468SMichael Hamann    var $oldAuthAcl;
6*cc529468SMichael Hamann
7*cc529468SMichael Hamann    function setUp() {
8*cc529468SMichael Hamann        parent::setUp();
9*cc529468SMichael Hamann        global $AUTH_ACL;
10*cc529468SMichael Hamann        global $auth;
11*cc529468SMichael Hamann        global $conf;
12*cc529468SMichael Hamann        $conf['superuser'] = 'john';
13*cc529468SMichael Hamann        $conf['useacl']    = 1;
14*cc529468SMichael Hamann
15*cc529468SMichael Hamann        $this->oldAuthAcl = $AUTH_ACL;
16*cc529468SMichael Hamann        $auth = new DokuWiki_Auth_Plugin();
17*cc529468SMichael Hamann
18*cc529468SMichael Hamann        $AUTH_ACL = array(
19*cc529468SMichael Hamann            '*           @ALL           1',
20*cc529468SMichael Hamann            'internal:*    @ALL           0',
21*cc529468SMichael Hamann            'internal:*    max            1',
22*cc529468SMichael Hamann            '*           @user          8',
23*cc529468SMichael Hamann        );
24*cc529468SMichael Hamann    }
25*cc529468SMichael Hamann
26*cc529468SMichael Hamann    function tearDown() {
27*cc529468SMichael Hamann        global $AUTH_ACL;
28*cc529468SMichael Hamann        $AUTH_ACL = $this->oldAuthAcl;
29*cc529468SMichael Hamann    }
30*cc529468SMichael 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
67*cc529468SMichael Hamann    function testACLWithSidebar() {
68*cc529468SMichael Hamann        global $ID;
69*cc529468SMichael Hamann        global $INPUT;
70*cc529468SMichael Hamann
71*cc529468SMichael Hamann        $INPUT->server->set('REMOTE_USER', 'foo');
72*cc529468SMichael Hamann
73*cc529468SMichael Hamann        saveWikiText('sidebar', 'top sidebar', '');
74*cc529468SMichael Hamann        saveWikiText('internal:sidebar', 'internal sidebar', '');
75*cc529468SMichael Hamann
76*cc529468SMichael Hamann        $ID = 'internal:foo:bar';
77*cc529468SMichael Hamann
78*cc529468SMichael Hamann        $sidebar = page_findnearest('sidebar');
79*cc529468SMichael Hamann        $this->assertEquals('sidebar', $sidebar);
80*cc529468SMichael Hamann
81*cc529468SMichael Hamann        $sidebar = page_findnearest('sidebar', true);
82*cc529468SMichael Hamann        $this->assertEquals('internal:sidebar', $sidebar);
83*cc529468SMichael Hamann
84*cc529468SMichael Hamann        $INPUT->server->set('REMOTE_USER', 'max');
85*cc529468SMichael Hamann
86*cc529468SMichael Hamann        $sidebar = page_findnearest('sidebar');
87*cc529468SMichael Hamann        $this->assertEquals('internal:sidebar', $sidebar);
88*cc529468SMichael Hamann    }
89e66d3e6dSAndreas Gohr}
90