xref: /dokuwiki/_test/tests/inc/PageUtilsIsHiddenPage.test.php (revision fb55b51ef82bc3066173e7547500d9e79c410e34)
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