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 36*fb55b51eSDominik 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 41*fb55b51eSDominik Eckelmann $this->assertTrue(isHiddenPage('another')); 428449cc9dSDominik Eckelmann } 438449cc9dSDominik Eckelmann 448449cc9dSDominik Eckelmann function alwaysHide(Doku_Event &$event, $params) { 45*fb55b51eSDominik Eckelmann $event->data['hidden'] = true; 46*fb55b51eSDominik Eckelmann } 47*fb55b51eSDominik Eckelmann 48*fb55b51eSDominik Eckelmann function testEventHandlerBeforeAndPrevent() { 49*fb55b51eSDominik Eckelmann global $EVENT_HANDLER; 50*fb55b51eSDominik Eckelmann $this->prepare(); 51*fb55b51eSDominik Eckelmann $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'BEFORE', $this, 'showBefore'); 52*fb55b51eSDominik Eckelmann 53*fb55b51eSDominik Eckelmann $this->assertFalse(isHiddenPage('test')); 54*fb55b51eSDominik Eckelmann } 55*fb55b51eSDominik Eckelmann 56*fb55b51eSDominik Eckelmann function showBefore(Doku_Event &$event, $params) { 57*fb55b51eSDominik Eckelmann $event->data['hidden'] = false; 58*fb55b51eSDominik Eckelmann $event->preventDefault(); 59*fb55b51eSDominik Eckelmann $event->stopPropagation(); 60*fb55b51eSDominik Eckelmann } 61*fb55b51eSDominik Eckelmann 62*fb55b51eSDominik Eckelmann function testEventHandlerAfter() { 63*fb55b51eSDominik Eckelmann global $EVENT_HANDLER; 64*fb55b51eSDominik Eckelmann $this->prepare(); 65*fb55b51eSDominik Eckelmann $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'AFTER', $this, 'alwaysHide'); 66*fb55b51eSDominik Eckelmann 67*fb55b51eSDominik Eckelmann $this->assertTrue(isHiddenPage('another')); 68*fb55b51eSDominik Eckelmann } 69*fb55b51eSDominik Eckelmann 70*fb55b51eSDominik Eckelmann function testEventHandlerAfterHide() { 71*fb55b51eSDominik Eckelmann global $EVENT_HANDLER; 72*fb55b51eSDominik Eckelmann $this->prepare(); 73*fb55b51eSDominik Eckelmann $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'AFTER', $this, 'hideBeforeWithoutPrevent'); 74*fb55b51eSDominik Eckelmann 75*fb55b51eSDominik Eckelmann $this->assertTrue(isHiddenPage('another')); 76*fb55b51eSDominik Eckelmann } 77*fb55b51eSDominik Eckelmann 78*fb55b51eSDominik Eckelmann function hideBeforeWithoutPrevent(Doku_Event &$event, $params) { 79*fb55b51eSDominik Eckelmann $event->data['hidden'] = true; 80*fb55b51eSDominik Eckelmann } 81*fb55b51eSDominik Eckelmann 82*fb55b51eSDominik Eckelmann function testEventHandlerAfterShow() { 83*fb55b51eSDominik Eckelmann global $EVENT_HANDLER; 84*fb55b51eSDominik Eckelmann $this->prepare(); 85*fb55b51eSDominik Eckelmann $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'AFTER', $this, 'showAfter'); 86*fb55b51eSDominik Eckelmann 87*fb55b51eSDominik Eckelmann $this->assertFalse(isHiddenPage('test')); 88*fb55b51eSDominik Eckelmann } 89*fb55b51eSDominik Eckelmann 90*fb55b51eSDominik Eckelmann function showAfter(Doku_Event &$event, $params) { 91*fb55b51eSDominik Eckelmann $event->data['hidden'] = false; 928449cc9dSDominik Eckelmann } 938449cc9dSDominik Eckelmann 948449cc9dSDominik Eckelmann} 958449cc9dSDominik Eckelmann//Setup VIM: ex: et ts=4 : 96