forked from dokufreaks/plugin-include
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnamespace_includes.test.php
140 lines (125 loc) · 7.56 KB
/
namespace_includes.test.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<?php
if (!defined('DOKU_INC')) die();
/**
* Test namespace includes
*/
class plugin_include_namespaces_includes_test extends DokuWikiTest {
/**
* @var helper_plugin_include $helper
*/
private $helper;
/**
* Setup - enable and load the include plugin and create the test pages
*/
public function setup() {
$this->pluginsEnabled[] = 'include';
parent::setup(); // this enables the include plugin
$this->helper = plugin_load('helper', 'include');
global $conf;
$conf['hidepages'] = 'inclhidden:hidden';
// for testing hidden pages
saveWikiText('inclhidden:hidden', 'Hidden page', 'Created hidden page');
saveWikiText('inclhidden:visible', 'Visible page', 'Created visible page');
// pages on different levels
saveWikiText('incltest:level1', 'Page on level 1', 'Created page on level 1');
saveWikiText('incltest:ns:level2', 'Page on level 2', 'Created page on level 2');
saveWikiText('incltest:ns:ns:level3', 'Page on level 3', 'Created page on level 3');
// for page ordering
saveWikiText('inclorder:page1', 'Page 1', 'Created page 1');
saveWikiText('inclorder:page2', 'Page 2', 'Created page 2');
saveWikiText('inclorder:page3', '{{include_n>10}} Page 3/10', 'created page 3/1');
saveWikiText('inclorder:page4', '{{include_n>2}} Page 4/2', 'created page 4/0');
}
/**
* Test hiding of hidden pages in namespace includes
*/
public function test_hidden() {
$flags = $this->helper->get_flags(array());
$pages = $this->helper->_get_included_pages('namespace', 'inclhidden:', '', '', $flags);
$this->assertEquals(array(
array('id' => 'inclhidden:visible', 'exists' => true, 'parent_id' => ''),
), $pages);
}
/**
* Test include depth limit
*/
public function test_depth() {
$flags = $this->helper->get_flags(array());
$pages = $this->helper->_get_included_pages('namespace', 'incltest:', '', '', $flags);
$this->assertEquals(array(
array('id' => 'incltest:level1', 'exists' => true, 'parent_id' => ''),
), $pages);
$flags = $this->helper->get_flags(array('depth=2'));
$pages = $this->helper->_get_included_pages('namespace', 'incltest:', '', '', $flags);
$this->assertEquals(array(
array('id' => 'incltest:level1', 'exists' => true, 'parent_id' => ''),
array('id' => 'incltest:ns:level2', 'exists' => true, 'parent_id' => ''),
), $pages);
$flags = $this->helper->get_flags(array('depth=2'));
$pages = $this->helper->_get_included_pages('namespace', 'incltest:ns', '', '', $flags);
$this->assertEquals(array(
array('id' => 'incltest:ns:level2', 'exists' => true, 'parent_id' => ''),
array('id' => 'incltest:ns:ns:level3', 'exists' => true, 'parent_id' => ''),
), $pages);
$flags = $this->helper->get_flags(array('depth=0'));
$pages = $this->helper->_get_included_pages('namespace', 'incltest:', '', '', $flags);
$this->assertEquals(array(
array('id' => 'incltest:level1', 'exists' => true, 'parent_id' => ''),
array('id' => 'incltest:ns:level2', 'exists' => true, 'parent_id' => ''),
array('id' => 'incltest:ns:ns:level3', 'exists' => true, 'parent_id' => ''),
), $pages);
// test include of the root namespace
$flags = $this->helper->get_flags(array());
$pages = $this->helper->_get_included_pages('namespace', ':', '', '', $flags);
$this->assertEquals(array(), $pages);
$flags = $this->helper->get_flags(array('depth=2'));
$pages = $this->helper->_get_included_pages('namespace', ':', '', '', $flags);
$this->assertEquals(array(
array('id' => 'inclhidden:visible', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page1', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page2', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page3', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page4', 'exists' => true, 'parent_id' => ''),
array('id' => 'incltest:level1', 'exists' => true, 'parent_id' => ''),
array('id' => 'wiki:dokuwiki', 'exists' => true, 'parent_id' => ''),
array('id' => 'wiki:syntax', 'exists' => true, 'parent_id' => ''),
), $pages);
}
/**
* Test ordering of namespace includes
*/
public function test_order() {
$flags = $this->helper->get_flags(array());
$pages = $this->helper->_get_included_pages('namespace', 'inclorder:', '', '', $flags);
$this->assertEquals(array(
array('id' => 'inclorder:page1', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page2', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page3', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page4', 'exists' => true, 'parent_id' => ''),
), $pages);
$flags = $this->helper->get_flags(array('rsort'));
$pages = $this->helper->_get_included_pages('namespace', 'inclorder:', '', '', $flags);
$this->assertEquals(array(
array('id' => 'inclorder:page4', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page3', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page2', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page1', 'exists' => true, 'parent_id' => ''),
), $pages);
$flags = $this->helper->get_flags(array('order=custom'));
$pages = $this->helper->_get_included_pages('namespace', 'inclorder:', '', '', $flags);
$this->assertEquals(array(
array('id' => 'inclorder:page4', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page3', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page1', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page2', 'exists' => true, 'parent_id' => ''),
), $pages);
$flags = $this->helper->get_flags(array('order=custom', 'rsort'));
$pages = $this->helper->_get_included_pages('namespace', 'inclorder:', '', '', $flags);
$this->assertEquals(array(
array('id' => 'inclorder:page2', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page1', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page3', 'exists' => true, 'parent_id' => ''),
array('id' => 'inclorder:page4', 'exists' => true, 'parent_id' => ''),
), $pages);
}
}