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