3 use dokuwiki\test\mock\AuthPlugin
;
5 class pageutils_findnearest_test
extends DokuWikiTest
{
9 function setUp() : void
{
14 $conf['superuser'] = 'john';
17 $this->oldAuthAcl
= $AUTH_ACL;
18 $auth = new AuthPlugin();
28 function tearDown() : void
{
30 $AUTH_ACL = $this->oldAuthAcl
;
33 function testNoSidebar() {
36 $ID = 'foo:bar:baz:test';
37 $sidebar = page_findnearest('sidebar');
38 $this->assertEquals(false, $sidebar);
41 function testZeroID() {
44 saveWikiText('sidebar', 'topsidebar-test', '');
45 saveWikiText('0', 'zero-test', '');
46 saveWikiText('0:0:0', 'zero-test', '');
49 $sidebar = page_findnearest('sidebar');
50 $this->assertEquals('sidebar', $sidebar);
52 $sidebar = page_findnearest('0');
53 $this->assertEquals('0:0:0', $sidebar);
56 $sidebar = page_findnearest('0');
57 $this->assertEquals('0', $sidebar);
60 function testExistingSidebars() {
63 saveWikiText('sidebar', 'topsidebar-test', '');
65 $ID = 'foo:bar:baz:test';
66 $sidebar = page_findnearest('sidebar');
67 $this->assertEquals('sidebar', $sidebar);
70 $sidebar = page_findnearest('sidebar');
71 $this->assertEquals('sidebar', $sidebar);
73 saveWikiText('foo:bar:sidebar', 'bottomsidebar-test', '');
75 $ID = 'foo:bar:baz:test';
76 $sidebar = page_findnearest('sidebar');
77 $this->assertEquals('foo:bar:sidebar', $sidebar);
80 $sidebar = page_findnearest('sidebar');
81 $this->assertEquals('foo:bar:sidebar', $sidebar);
84 $sidebar = page_findnearest('sidebar');
85 $this->assertEquals('sidebar', $sidebar);
88 function testACLWithSidebar() {
92 $INPUT->server
->set('REMOTE_USER', 'foo');
94 saveWikiText('sidebar', 'top sidebar', '');
95 saveWikiText('internal:sidebar', 'internal sidebar', '');
97 $ID = 'internal:foo:bar';
99 $sidebar = page_findnearest('sidebar');
100 $this->assertEquals('sidebar', $sidebar);
102 $sidebar = page_findnearest('sidebar', false);
103 $this->assertEquals('internal:sidebar', $sidebar);
105 $INPUT->server
->set('REMOTE_USER', 'max');
107 $sidebar = page_findnearest('sidebar');
108 $this->assertEquals('internal:sidebar', $sidebar);