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