1e66d3e6dSAndreas Gohr<?php 2e66d3e6dSAndreas Gohr 3*e1d9dcc8SAndreas Gohruse dokuwiki\test\mock\AuthPlugin; 4a087da71SAndreas 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; 18*e1d9dcc8SAndreas Gohr $auth = new AuthPlugin(); 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 4168baa033SPhy function testZeroID() { 4268baa033SPhy global $ID; 4368baa033SPhy 4468baa033SPhy saveWikiText('sidebar', 'topsidebar-test', ''); 4568baa033SPhy saveWikiText('0', 'zero-test', ''); 4668baa033SPhy saveWikiText('0:0:0', 'zero-test', ''); 4768baa033SPhy 4868baa033SPhy $ID = '0:0:0'; 4968baa033SPhy $sidebar = page_findnearest('sidebar'); 5068baa033SPhy $this->assertEquals('sidebar', $sidebar); 5168baa033SPhy 5268baa033SPhy $sidebar = page_findnearest('0'); 5368baa033SPhy $this->assertEquals('0:0:0', $sidebar); 5468baa033SPhy 5568baa033SPhy $ID = '0'; 5668baa033SPhy $sidebar = page_findnearest('0'); 5768baa033SPhy $this->assertEquals('0', $sidebar); 5868baa033SPhy } 5968baa033SPhy 60e66d3e6dSAndreas Gohr function testExistingSidebars() { 61e66d3e6dSAndreas Gohr global $ID; 62e66d3e6dSAndreas Gohr 63e66d3e6dSAndreas Gohr saveWikiText('sidebar', 'topsidebar-test', ''); 64e66d3e6dSAndreas Gohr 65e66d3e6dSAndreas Gohr $ID = 'foo:bar:baz:test'; 66e66d3e6dSAndreas Gohr $sidebar = page_findnearest('sidebar'); 67e66d3e6dSAndreas Gohr $this->assertEquals('sidebar', $sidebar); 68e66d3e6dSAndreas Gohr 69e66d3e6dSAndreas Gohr $ID = 'foo'; 70e66d3e6dSAndreas Gohr $sidebar = page_findnearest('sidebar'); 71e66d3e6dSAndreas Gohr $this->assertEquals('sidebar', $sidebar); 72e66d3e6dSAndreas Gohr 73e66d3e6dSAndreas Gohr saveWikiText('foo:bar:sidebar', 'bottomsidebar-test', ''); 74e66d3e6dSAndreas Gohr 75e66d3e6dSAndreas Gohr $ID = 'foo:bar:baz:test'; 76e66d3e6dSAndreas Gohr $sidebar = page_findnearest('sidebar'); 77e66d3e6dSAndreas Gohr $this->assertEquals('foo:bar:sidebar', $sidebar); 78e66d3e6dSAndreas Gohr 79e66d3e6dSAndreas Gohr $ID = 'foo:bar:test'; 80e66d3e6dSAndreas Gohr $sidebar = page_findnearest('sidebar'); 81e66d3e6dSAndreas Gohr $this->assertEquals('foo:bar:sidebar', $sidebar); 82e66d3e6dSAndreas Gohr 83e66d3e6dSAndreas Gohr $ID = 'foo'; 84e66d3e6dSAndreas Gohr $sidebar = page_findnearest('sidebar'); 85e66d3e6dSAndreas Gohr $this->assertEquals('sidebar', $sidebar); 86e66d3e6dSAndreas Gohr } 87e66d3e6dSAndreas Gohr 88cc529468SMichael Hamann function testACLWithSidebar() { 89cc529468SMichael Hamann global $ID; 90cc529468SMichael Hamann global $INPUT; 91cc529468SMichael Hamann 92cc529468SMichael Hamann $INPUT->server->set('REMOTE_USER', 'foo'); 93cc529468SMichael Hamann 94cc529468SMichael Hamann saveWikiText('sidebar', 'top sidebar', ''); 95cc529468SMichael Hamann saveWikiText('internal:sidebar', 'internal sidebar', ''); 96cc529468SMichael Hamann 97cc529468SMichael Hamann $ID = 'internal:foo:bar'; 98cc529468SMichael Hamann 99cc529468SMichael Hamann $sidebar = page_findnearest('sidebar'); 100cc529468SMichael Hamann $this->assertEquals('sidebar', $sidebar); 101cc529468SMichael Hamann 1027c3e4a67SAndreas Gohr $sidebar = page_findnearest('sidebar', false); 103cc529468SMichael Hamann $this->assertEquals('internal:sidebar', $sidebar); 104cc529468SMichael Hamann 105cc529468SMichael Hamann $INPUT->server->set('REMOTE_USER', 'max'); 106cc529468SMichael Hamann 107cc529468SMichael Hamann $sidebar = page_findnearest('sidebar'); 108cc529468SMichael Hamann $this->assertEquals('internal:sidebar', $sidebar); 109cc529468SMichael Hamann } 110e66d3e6dSAndreas Gohr} 111