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