xref: /dokuwiki/_test/tests/inc/PageUtilsIsHiddenPage.test.php (revision fa33bdca3c0cef238379db9f86959c91c440319c)
1<?php
2
3class PageUtilsIsHiddenPageTest extends DokuWikiTest {
4
5    function prepare($hidePages = '^:test$', $act = 'show') {
6        global $conf;
7        global $ACT;
8        $conf['hidepages'] = $hidePages;
9        $ACT = $act;
10    }
11
12    function testHiddenOff(){
13        $this->prepare('');
14
15        $this->assertFalse(isHiddenPage('test'));
16    }
17
18    function testHiddenOffAdmin(){
19        $this->prepare('^:test$', 'admin');
20
21        $this->assertFalse(isHiddenPage('test'));
22    }
23
24    function testHiddenOnMatch(){
25        $this->prepare();
26
27        $this->assertTrue(isHiddenPage('test'));
28    }
29
30    function testHiddenOnNoMatch(){
31        $this->prepare();
32
33        $this->assertFalse(isHiddenPage('another'));
34    }
35
36    function testEventHandlerBefore() {
37        global $EVENT_HANDLER;
38        $this->prepare();
39        $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'BEFORE', $this, 'alwaysHide');
40
41        $this->assertTrue(isHiddenPage('another'));
42    }
43
44    function alwaysHide(Doku_Event $event, $params) {
45        $event->data['hidden'] = true;
46    }
47
48    function testEventHandlerBeforeAndPrevent() {
49        global $EVENT_HANDLER;
50        $this->prepare();
51        $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'BEFORE', $this, 'showBefore');
52
53        $this->assertFalse(isHiddenPage('test'));
54    }
55
56    function showBefore(Doku_Event $event, $params) {
57        $event->data['hidden'] = false;
58        $event->preventDefault();
59        $event->stopPropagation();
60    }
61
62    function testEventHandlerAfter() {
63        global $EVENT_HANDLER;
64        $this->prepare();
65        $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'AFTER', $this, 'alwaysHide');
66
67        $this->assertTrue(isHiddenPage('another'));
68    }
69
70    function testEventHandlerAfterHide() {
71        global $EVENT_HANDLER;
72        $this->prepare();
73        $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'AFTER', $this, 'hideBeforeWithoutPrevent');
74
75        $this->assertTrue(isHiddenPage('another'));
76    }
77
78    function hideBeforeWithoutPrevent(Doku_Event $event, $params) {
79        $event->data['hidden'] = true;
80    }
81
82    function testEventHandlerAfterShow() {
83        global $EVENT_HANDLER;
84        $this->prepare();
85        $EVENT_HANDLER->register_hook('PAGEUTILS_ID_HIDEPAGE', 'AFTER', $this, 'showAfter');
86
87        $this->assertFalse(isHiddenPage('test'));
88    }
89
90    function showAfter(Doku_Event $event, $params) {
91        $event->data['hidden'] = false;
92    }
93
94}
95//Setup VIM: ex: et ts=4 :
96