xref: /dokuwiki/_test/tests/inc/parser/renderer_xhtml.test.php (revision 0c4c028148c71233cd6f0a7f17b8c723dfee0aac)
1<?php
2
3/**
4 * Class renderer_xhtml_test
5 */
6class renderer_xhtml_test extends DokuWikiTest {
7    /** @var Doku_Renderer_xhtml */
8    protected $R;
9
10    /**
11     * Called for each test
12     *
13     * @throws Exception
14     */
15    function setUp() {
16        parent::setUp();
17        $this->R = new Doku_Renderer_xhtml();
18    }
19
20    function tearDown() {
21        unset($this->R);
22    }
23
24    function test_tableopen_0arg() {
25        $this->R->table_open();
26
27        $expected = '<div class="table"><table class="inline">'."\n";
28        $this->assertEquals($expected, $this->R->doc);
29    }
30
31    function test_tableopen_1arg() {
32        $this->R->table_open(4);
33
34        $expected = '<div class="table"><table class="inline">'."\n";
35        $this->assertEquals($expected, $this->R->doc);
36    }
37
38    function test_tableopen_2arg() {
39        $this->R->table_open(4, 4);
40
41        $expected = '<div class="table"><table class="inline">'."\n";
42        $this->assertEquals($expected, $this->R->doc);
43    }
44
45    function test_tableopen_3arg() {
46        $this->R->table_open(4, 4, 100);
47
48        $expected = '<div class="table sectionedit1"><table class="inline">'."\n";
49        $this->assertEquals($expected, $this->R->doc);
50    }
51
52    function test_tableopen_4arg() {
53        $this->R->table_open(4, 4, 100, 'feature');
54
55        $expected = '<div class="table feature sectionedit1"><table class="inline">'."\n";
56        $this->assertEquals($expected, $this->R->doc);
57    }
58
59    function test_table() {
60        $this->R->table_open(null, null, null, 'feature');
61        $this->R->tablethead_open();
62
63        $this->R->tablerow_open('item');
64        $this->R->tableheader_open();
65        $this->R->cdata('header1');
66        $this->R->tableheader_close();
67        $this->R->tableheader_open(1, null, 1, 'second');
68        $this->R->cdata('header2');
69        $this->R->tableheader_close();
70        $this->R->tablerow_close();
71
72        $this->R->tablethead_close();
73        $this->R->tabletbody_open();
74
75        $this->R->tablerow_open('values');
76        $this->R->tablecell_open(1, null, 1, 'first value');
77        $this->R->cdata('cell1,1');
78        $this->R->tablecell_close();
79        $this->R->tablecell_open(1, null, 1, 'second');
80        $this->R->cdata('cell1,2');
81        $this->R->tablecell_close();
82        $this->R->tablerow_close();
83
84        $this->R->tablerow_open();
85        $this->R->tablecell_open();
86        $this->R->cdata('cell2.1');
87        $this->R->tablecell_close();
88        $this->R->tablecell_open();
89        $this->R->cdata('cell2,2');
90        $this->R->tablecell_close();
91        $this->R->tablerow_close();
92
93        $this->R->tabletbody_close();
94        $this->R->table_close();
95
96        $expected = '<div class="table feature"><table class="inline">
97	<thead>
98	<tr class="row0 item">
99		<th class="col0">header1</th><th class="col1 second">header2</th>
100	</tr>
101	</thead>
102	<tbody>
103	<tr class="row1 values">
104		<td class="col0 first value">cell1,1</td><td class="col1 second">cell1,2</td>
105	</tr>
106	<tr class="row2">
107		<td class="col0">cell2.1</td><td class="col1">cell2,2</td>
108	</tr>
109	</tbody>
110</table></div>
111';
112        $this->assertEquals($expected, $this->R->doc);
113    }
114
115    function test_olist() {
116        $this->R->document_start();
117        $this->R->listo_open();
118
119        $this->R->listitem_open(1, Doku_Handler_List::NODE);
120        $this->R->listcontent_open();
121        $this->R->cdata('item1');
122        $this->R->listcontent_close();
123
124        $this->R->listo_open();
125
126        $this->R->listitem_open(2);
127        $this->R->listcontent_open();
128        $this->R->cdata('item1b');
129        $this->R->listcontent_close();
130        $this->R->listitem_close();
131
132        $this->R->listo_close();
133        $this->R->listitem_close();
134
135        $this->R->listitem_open(1);
136        $this->R->listcontent_open();
137        $this->R->cdata('item2');
138        $this->R->listcontent_close();
139        $this->R->listitem_close();
140
141        $this->R->listitem_open(1, Doku_Handler_List::NODE);
142        $this->R->listcontent_open();
143        $this->R->cdata('item3');
144        $this->R->listcontent_close();
145
146        $this->R->listo_open('special');
147
148        $this->R->listitem_open(2);
149        $this->R->listcontent_open();
150        $this->R->cdata('item3b');
151        $this->R->listcontent_close();
152        $this->R->listitem_close();
153
154        $this->R->listo_close();
155        $this->R->listitem_close();
156
157        $this->R->listo_close();
158        $this->R->document_end();
159
160        $expected = '<ol>
161<li class="level1 node"><div class="li">item1</div>
162<ol>
163<li class="level2"><div class="li">item1b</div>
164</li>
165</ol>
166</li>
167<li class="level1"><div class="li">item2</div>
168</li>
169<li class="level1 node"><div class="li">item3</div>
170<ol class="special">
171<li class="level2"><div class="li">item3b</div>
172</li>
173</ol>
174</li>
175</ol>
176';
177        $this->assertEquals($expected, $this->R->doc);
178    }
179
180    function test_ulist() {
181        $this->R->document_start();
182        $this->R->listu_open();
183
184        $this->R->listitem_open(1, Doku_Handler_List::NODE);
185        $this->R->listcontent_open();
186        $this->R->cdata('item1');
187        $this->R->listcontent_close();
188
189        $this->R->listu_open();
190
191        $this->R->listitem_open(2);
192        $this->R->listcontent_open();
193        $this->R->cdata('item1b');
194        $this->R->listcontent_close();
195        $this->R->listitem_close();
196
197        $this->R->listu_close();
198        $this->R->listitem_close();
199
200        $this->R->listitem_open(1);
201        $this->R->listcontent_open();
202        $this->R->cdata('item2');
203        $this->R->listcontent_close();
204        $this->R->listitem_close();
205
206        $this->R->listitem_open(1, Doku_Handler_List::NODE);
207        $this->R->listcontent_open();
208        $this->R->cdata('item3');
209        $this->R->listcontent_close();
210
211        $this->R->listu_open('special');
212
213        $this->R->listitem_open(2);
214        $this->R->listcontent_open();
215        $this->R->cdata('item3b');
216        $this->R->listcontent_close();
217        $this->R->listitem_close();
218
219        $this->R->listu_close();
220        $this->R->listitem_close();
221
222        $this->R->listu_close();
223        $this->R->document_end();
224
225        $expected = '<ul>
226<li class="level1 node"><div class="li">item1</div>
227<ul>
228<li class="level2"><div class="li">item1b</div>
229</li>
230</ul>
231</li>
232<li class="level1"><div class="li">item2</div>
233</li>
234<li class="level1 node"><div class="li">item3</div>
235<ul class="special">
236<li class="level2"><div class="li">item3b</div>
237</li>
238</ul>
239</li>
240</ul>
241';
242        $this->assertEquals($expected, $this->R->doc);
243    }
244}
245