18449cc9dSDominik Eckelmann<?php 28449cc9dSDominik Eckelmann 38449cc9dSDominik Eckelmannclass PageUtilsIsHiddenPageTest extends DokuWikiTest { 48449cc9dSDominik Eckelmann 58449cc9dSDominik Eckelmann function prepare($hidePages = '^:test$', $act = 'show') { 68449cc9dSDominik Eckelmann global $conf; 78449cc9dSDominik Eckelmann global $ACT; 88449cc9dSDominik Eckelmann $conf['hidepages'] = $hidePages; 98449cc9dSDominik Eckelmann $ACT = $act; 108449cc9dSDominik Eckelmann } 118449cc9dSDominik Eckelmann 128449cc9dSDominik Eckelmann function testHiddenOff(){ 138449cc9dSDominik Eckelmann $this->prepare(''); 148449cc9dSDominik Eckelmann 158449cc9dSDominik Eckelmann $this->assertFalse(isHiddenPage('test')); 168449cc9dSDominik Eckelmann } 178449cc9dSDominik Eckelmann 188449cc9dSDominik Eckelmann function testHiddenOffAdmin(){ 198449cc9dSDominik Eckelmann $this->prepare('^:test$', 'admin'); 208449cc9dSDominik Eckelmann 218449cc9dSDominik Eckelmann $this->assertFalse(isHiddenPage('test')); 228449cc9dSDominik Eckelmann } 238449cc9dSDominik Eckelmann 248449cc9dSDominik Eckelmann function testHiddenOnMatch(){ 258449cc9dSDominik Eckelmann $this->prepare(); 268449cc9dSDominik Eckelmann 278449cc9dSDominik Eckelmann $this->assertTrue(isHiddenPage('test')); 288449cc9dSDominik Eckelmann } 298449cc9dSDominik Eckelmann 308449cc9dSDominik Eckelmann function testHiddenOnNoMatch(){ 318449cc9dSDominik Eckelmann $this->prepare(); 328449cc9dSDominik Eckelmann 338449cc9dSDominik Eckelmann $this->assertFalse(isHiddenPage('another')); 348449cc9dSDominik Eckelmann } 358449cc9dSDominik Eckelmann 36fb55b51eSDominik Eckelmann function testEventHandlerBefore() { 378449cc9dSDominik Eckelmann global $EVENT_HANDLER; 388449cc9dSDominik Eckelmann $this->prepare(); 398449cc9dSDominik Eckelmann $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'BEFORE', $this, 'alwaysHide'); 408449cc9dSDominik Eckelmann 41fb55b51eSDominik Eckelmann $this->assertTrue(isHiddenPage('another')); 428449cc9dSDominik Eckelmann } 438449cc9dSDominik Eckelmann 44*e1d9dcc8SAndreas Gohr function alwaysHide(Doku_Event $event, $params) { 45fb55b51eSDominik Eckelmann $event->data['hidden'] = true; 46fb55b51eSDominik Eckelmann } 47fb55b51eSDominik Eckelmann 48fb55b51eSDominik Eckelmann function testEventHandlerBeforeAndPrevent() { 49fb55b51eSDominik Eckelmann global $EVENT_HANDLER; 50fb55b51eSDominik Eckelmann $this->prepare(); 51fb55b51eSDominik Eckelmann $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'BEFORE', $this, 'showBefore'); 52fb55b51eSDominik Eckelmann 53fb55b51eSDominik Eckelmann $this->assertFalse(isHiddenPage('test')); 54fb55b51eSDominik Eckelmann } 55fb55b51eSDominik Eckelmann 56*e1d9dcc8SAndreas Gohr function showBefore(Doku_Event $event, $params) { 57fb55b51eSDominik Eckelmann $event->data['hidden'] = false; 58fb55b51eSDominik Eckelmann $event->preventDefault(); 59fb55b51eSDominik Eckelmann $event->stopPropagation(); 60fb55b51eSDominik Eckelmann } 61fb55b51eSDominik Eckelmann 62fb55b51eSDominik Eckelmann function testEventHandlerAfter() { 63fb55b51eSDominik Eckelmann global $EVENT_HANDLER; 64fb55b51eSDominik Eckelmann $this->prepare(); 65fb55b51eSDominik Eckelmann $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'AFTER', $this, 'alwaysHide'); 66fb55b51eSDominik Eckelmann 67fb55b51eSDominik Eckelmann $this->assertTrue(isHiddenPage('another')); 68fb55b51eSDominik Eckelmann } 69fb55b51eSDominik Eckelmann 70fb55b51eSDominik Eckelmann function testEventHandlerAfterHide() { 71fb55b51eSDominik Eckelmann global $EVENT_HANDLER; 72fb55b51eSDominik Eckelmann $this->prepare(); 73fb55b51eSDominik Eckelmann $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'AFTER', $this, 'hideBeforeWithoutPrevent'); 74fb55b51eSDominik Eckelmann 75fb55b51eSDominik Eckelmann $this->assertTrue(isHiddenPage('another')); 76fb55b51eSDominik Eckelmann } 77fb55b51eSDominik Eckelmann 78*e1d9dcc8SAndreas Gohr function hideBeforeWithoutPrevent(Doku_Event $event, $params) { 79fb55b51eSDominik Eckelmann $event->data['hidden'] = true; 80fb55b51eSDominik Eckelmann } 81fb55b51eSDominik Eckelmann 82fb55b51eSDominik Eckelmann function testEventHandlerAfterShow() { 83fb55b51eSDominik Eckelmann global $EVENT_HANDLER; 84fb55b51eSDominik Eckelmann $this->prepare(); 85fb55b51eSDominik Eckelmann $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'AFTER', $this, 'showAfter'); 86fb55b51eSDominik Eckelmann 87fb55b51eSDominik Eckelmann $this->assertFalse(isHiddenPage('test')); 88fb55b51eSDominik Eckelmann } 89fb55b51eSDominik Eckelmann 90*e1d9dcc8SAndreas Gohr function showAfter(Doku_Event $event, $params) { 91fb55b51eSDominik Eckelmann $event->data['hidden'] = false; 928449cc9dSDominik Eckelmann } 938449cc9dSDominik Eckelmann 948449cc9dSDominik Eckelmann} 958449cc9dSDominik Eckelmann//Setup VIM: ex: et ts=4 : 96