xref: /dokuwiki/_test/tests/inc/parser/parser_table.test.php (revision be906b566b9bdfd92c032ee07c4fd077d820a8d1)
1f8369d7dSTobias Sarnowski<?php
236dc94bbSAndreas Gohr
3*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Eol;
4*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Footnote;
5*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Formatting;
6*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Linebreak;
7*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Table;
8*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Unformatted;
936dc94bbSAndreas Gohr
10f8369d7dSTobias Sarnowskirequire_once 'parser.inc.php';
11f8369d7dSTobias Sarnowski
12f8369d7dSTobias Sarnowskiclass TestOfDoku_Parser_Table extends TestOfDoku_Parser {
13f8369d7dSTobias Sarnowski
14f8369d7dSTobias Sarnowski    function testTable() {
1536dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
16f8369d7dSTobias Sarnowski        $this->P->parse('
17f8369d7dSTobias Sarnowskiabc
18f8369d7dSTobias Sarnowski| Row 0 Col 1    | Row 0 Col 2     | Row 0 Col 3        |
19f8369d7dSTobias Sarnowski| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
20f8369d7dSTobias Sarnowskidef');
21f8369d7dSTobias Sarnowski        $calls = array (
22f8369d7dSTobias Sarnowski            array('document_start',array()),
23f8369d7dSTobias Sarnowski            array('p_open',array()),
24f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
25f8369d7dSTobias Sarnowski            array('p_close',array()),
26f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
27f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
28f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
29f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 1    ')),
30f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
31f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
32f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 2     ')),
33f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
34f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
35f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 3        ')),
36f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
37f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
38f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
39f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
40f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
41f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
42f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
43f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
44f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
45f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
46f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
47f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
48f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
49f8369d7dSTobias Sarnowski            array('table_close',array(121)),
50f8369d7dSTobias Sarnowski            array('p_open',array()),
51f8369d7dSTobias Sarnowski            array('cdata',array('def')),
52f8369d7dSTobias Sarnowski            array('p_close',array()),
53f8369d7dSTobias Sarnowski            array('document_end',array()),
54f8369d7dSTobias Sarnowski        );
55e0328e30SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
56f8369d7dSTobias Sarnowski    }
57f8369d7dSTobias Sarnowski
58f8369d7dSTobias Sarnowski    function testTableWinEOL() {
5936dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
60f8369d7dSTobias Sarnowski        $this->P->parse("\r\nabc\r\n| Row 0 Col 1    | Row 0 Col 2     | Row 0 Col 3        |\r\n| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |\r\ndef");
61f8369d7dSTobias Sarnowski        $calls = array (
62f8369d7dSTobias Sarnowski            array('document_start',array()),
63f8369d7dSTobias Sarnowski            array('p_open',array()),
64f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
65f8369d7dSTobias Sarnowski            array('p_close',array()),
66f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
67f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
68f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
69f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 1    ')),
70f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
71f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
72f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 2     ')),
73f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
74f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
75f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 3        ')),
76f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
77f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
78f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
79f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
80f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
81f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
82f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
83f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
84f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
85f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
86f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
87f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
88f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
89f8369d7dSTobias Sarnowski            array('table_close',array(121)),
90f8369d7dSTobias Sarnowski            array('p_open',array()),
91f8369d7dSTobias Sarnowski            array('cdata',array('def')),
92f8369d7dSTobias Sarnowski            array('p_close',array()),
93f8369d7dSTobias Sarnowski            array('document_end',array()),
94f8369d7dSTobias Sarnowski        );
95e0328e30SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
96f8369d7dSTobias Sarnowski    }
97f8369d7dSTobias Sarnowski
98f8369d7dSTobias Sarnowski    function testEmptyTable() {
9936dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
100f8369d7dSTobias Sarnowski        $this->P->parse('
101f8369d7dSTobias Sarnowskiabc
102f8369d7dSTobias Sarnowski|
103f8369d7dSTobias Sarnowskidef');
104f8369d7dSTobias Sarnowski
105f8369d7dSTobias Sarnowski        $calls = array (
106f8369d7dSTobias Sarnowski            array('document_start',array()),
107f8369d7dSTobias Sarnowski            array('p_open',array()),
108f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
109f8369d7dSTobias Sarnowski            array('p_close',array()),
110f8369d7dSTobias Sarnowski            array('table_open',array(0, 1, 6)),
111f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
112f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
113f8369d7dSTobias Sarnowski            array('table_close',array(7)),
114f8369d7dSTobias Sarnowski            array('p_open',array()),
115f8369d7dSTobias Sarnowski            array('cdata',array('def')),
116f8369d7dSTobias Sarnowski            array('p_close',array()),
117f8369d7dSTobias Sarnowski            array('document_end',array()),
118f8369d7dSTobias Sarnowski        );
119f8369d7dSTobias Sarnowski
120e0328e30SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
121f8369d7dSTobias Sarnowski    }
122f8369d7dSTobias Sarnowski
123f8369d7dSTobias Sarnowski    function testTableHeaders() {
12436dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
125f8369d7dSTobias Sarnowski        $this->P->parse('
126f8369d7dSTobias Sarnowskiabc
127f8369d7dSTobias Sarnowski^ X | Y ^ Z |
128f8369d7dSTobias Sarnowskidef');
129f8369d7dSTobias Sarnowski
130f8369d7dSTobias Sarnowski        $calls = array (
131f8369d7dSTobias Sarnowski            array('document_start',array()),
132f8369d7dSTobias Sarnowski            array('p_open',array()),
133f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
134f8369d7dSTobias Sarnowski            array('p_close',array()),
135f8369d7dSTobias Sarnowski            array('table_open',array(3, 1, 6)),
136f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
137f8369d7dSTobias Sarnowski            array('tableheader_open',array(1,NULL,1)),
138f8369d7dSTobias Sarnowski            array('cdata',array(' X ')),
139f8369d7dSTobias Sarnowski            array('tableheader_close',array()),
140f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,NULL,1)),
141f8369d7dSTobias Sarnowski            array('cdata',array(' Y ')),
142f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
143f8369d7dSTobias Sarnowski            array('tableheader_open',array(1,NULL,1)),
144f8369d7dSTobias Sarnowski            array('cdata',array(' Z ')),
145f8369d7dSTobias Sarnowski            array('tableheader_close',array()),
146f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
147688ce8d8SChristopher Smith            array('table_close',array(19)),
148688ce8d8SChristopher Smith            array('p_open',array()),
149688ce8d8SChristopher Smith            array('cdata',array('def')),
150688ce8d8SChristopher Smith            array('p_close',array()),
151688ce8d8SChristopher Smith            array('document_end',array()),
152688ce8d8SChristopher Smith        );
153688ce8d8SChristopher Smith
154688ce8d8SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
155688ce8d8SChristopher Smith
156688ce8d8SChristopher Smith    }
157688ce8d8SChristopher Smith
158688ce8d8SChristopher Smith    function testTableHead() {
15936dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
160688ce8d8SChristopher Smith        $this->P->parse('
161688ce8d8SChristopher Smithabc
162688ce8d8SChristopher Smith^ X ^ Y ^ Z ^
163c2a1d01eSChristopher Smith| x | y | z |
164688ce8d8SChristopher Smithdef');
165688ce8d8SChristopher Smith
166688ce8d8SChristopher Smith        $calls = array (
167688ce8d8SChristopher Smith            array('document_start',array()),
168688ce8d8SChristopher Smith            array('p_open',array()),
169688ce8d8SChristopher Smith            array('cdata',array("\n\nabc")),
170688ce8d8SChristopher Smith            array('p_close',array()),
171c2a1d01eSChristopher Smith            array('table_open',array(3, 2, 6)),
172688ce8d8SChristopher Smith            array('tablethead_open',array()),
173688ce8d8SChristopher Smith            array('tablerow_open',array()),
174688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
175688ce8d8SChristopher Smith            array('cdata',array(' X ')),
176688ce8d8SChristopher Smith            array('tableheader_close',array()),
177688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
178688ce8d8SChristopher Smith            array('cdata',array(' Y ')),
179688ce8d8SChristopher Smith            array('tableheader_close',array()),
180688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
181688ce8d8SChristopher Smith            array('cdata',array(' Z ')),
182688ce8d8SChristopher Smith            array('tableheader_close',array()),
183688ce8d8SChristopher Smith            array('tablerow_close',array()),
184f05a1cc5SGerrit Uitslag            array('tablethead_close',array()),
185c2a1d01eSChristopher Smith            array('tablerow_open',array()),
186c2a1d01eSChristopher Smith            array('tablecell_open',array(1,NULL,1)),
187c2a1d01eSChristopher Smith            array('cdata',array(' x ')),
188c2a1d01eSChristopher Smith            array('tablecell_close',array()),
189c2a1d01eSChristopher Smith            array('tablecell_open',array(1,NULL,1)),
190c2a1d01eSChristopher Smith            array('cdata',array(' y ')),
191c2a1d01eSChristopher Smith            array('tablecell_close',array()),
192c2a1d01eSChristopher Smith            array('tablecell_open',array(1,NULL,1)),
193c2a1d01eSChristopher Smith            array('cdata',array(' z ')),
194c2a1d01eSChristopher Smith            array('tablecell_close',array()),
195c2a1d01eSChristopher Smith            array('tablerow_close',array()),
196c2a1d01eSChristopher Smith            array('table_close',array(33)),
197c2a1d01eSChristopher Smith            array('p_open',array()),
198c2a1d01eSChristopher Smith            array('cdata',array('def')),
199c2a1d01eSChristopher Smith            array('p_close',array()),
200c2a1d01eSChristopher Smith            array('document_end',array()),
201c2a1d01eSChristopher Smith        );
202c2a1d01eSChristopher Smith
203c2a1d01eSChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
204c2a1d01eSChristopher Smith
205c2a1d01eSChristopher Smith    }
206c2a1d01eSChristopher Smith
207c2a1d01eSChristopher Smith    function testTableHeadOneRowTable() {
20836dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
209c2a1d01eSChristopher Smith        $this->P->parse('
210c2a1d01eSChristopher Smithabc
211c2a1d01eSChristopher Smith^ X ^ Y ^ Z ^
212c2a1d01eSChristopher Smithdef');
213c2a1d01eSChristopher Smith
214c2a1d01eSChristopher Smith        $calls = array (
215c2a1d01eSChristopher Smith            array('document_start',array()),
216c2a1d01eSChristopher Smith            array('p_open',array()),
217c2a1d01eSChristopher Smith            array('cdata',array("\n\nabc")),
218c2a1d01eSChristopher Smith            array('p_close',array()),
219c2a1d01eSChristopher Smith            array('table_open',array(3, 1, 6)),
220c2a1d01eSChristopher Smith            array('tablerow_open',array()),
221c2a1d01eSChristopher Smith            array('tableheader_open',array(1,NULL,1)),
222c2a1d01eSChristopher Smith            array('cdata',array(' X ')),
223c2a1d01eSChristopher Smith            array('tableheader_close',array()),
224c2a1d01eSChristopher Smith            array('tableheader_open',array(1,NULL,1)),
225c2a1d01eSChristopher Smith            array('cdata',array(' Y ')),
226c2a1d01eSChristopher Smith            array('tableheader_close',array()),
227c2a1d01eSChristopher Smith            array('tableheader_open',array(1,NULL,1)),
228c2a1d01eSChristopher Smith            array('cdata',array(' Z ')),
229c2a1d01eSChristopher Smith            array('tableheader_close',array()),
230c2a1d01eSChristopher Smith            array('tablerow_close',array()),
231f8369d7dSTobias Sarnowski            array('table_close',array(19)),
232f8369d7dSTobias Sarnowski            array('p_open',array()),
233f8369d7dSTobias Sarnowski            array('cdata',array('def')),
234f8369d7dSTobias Sarnowski            array('p_close',array()),
235f8369d7dSTobias Sarnowski            array('document_end',array()),
236f8369d7dSTobias Sarnowski        );
237f8369d7dSTobias Sarnowski
238688ce8d8SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
239f8369d7dSTobias Sarnowski
240f8369d7dSTobias Sarnowski    }
241f8369d7dSTobias Sarnowski
242688ce8d8SChristopher Smith    function testTableHeadMultiline() {
24336dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
244f05a1cc5SGerrit Uitslag        $this->P->parse('
245f05a1cc5SGerrit Uitslagabc
246688ce8d8SChristopher Smith^ X1 ^ Y1 ^ Z1 ^
247688ce8d8SChristopher Smith^ X2 ^ Y2 ^ Z2 ^
248f05a1cc5SGerrit Uitslag| A | B | C |
249f05a1cc5SGerrit Uitslagdef');
250f05a1cc5SGerrit Uitslag
251f05a1cc5SGerrit Uitslag        $calls = array (
252f05a1cc5SGerrit Uitslag            array('document_start',array()),
253f05a1cc5SGerrit Uitslag            array('p_open',array()),
254f05a1cc5SGerrit Uitslag            array('cdata',array("\n\nabc")),
255f05a1cc5SGerrit Uitslag            array('p_close',array()),
256688ce8d8SChristopher Smith            array('table_open',array(3, 3, 6)),
257f05a1cc5SGerrit Uitslag            array('tablethead_open',array()),
258f05a1cc5SGerrit Uitslag            array('tablerow_open',array()),
259f05a1cc5SGerrit Uitslag            array('tableheader_open',array(1,NULL,1)),
260688ce8d8SChristopher Smith            array('cdata',array(' X1 ')),
261f05a1cc5SGerrit Uitslag            array('tableheader_close',array()),
262f05a1cc5SGerrit Uitslag            array('tableheader_open',array(1,NULL,1)),
263688ce8d8SChristopher Smith            array('cdata',array(' Y1 ')),
264688ce8d8SChristopher Smith            array('tableheader_close',array()),
265688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
266688ce8d8SChristopher Smith            array('cdata',array(' Z1 ')),
267688ce8d8SChristopher Smith            array('tableheader_close',array()),
268688ce8d8SChristopher Smith            array('tablerow_close',array()),
269688ce8d8SChristopher Smith            array('tablerow_open',array()),
270688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
271688ce8d8SChristopher Smith            array('cdata',array(' X2 ')),
272688ce8d8SChristopher Smith            array('tableheader_close',array()),
273688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
274688ce8d8SChristopher Smith            array('cdata',array(' Y2 ')),
275688ce8d8SChristopher Smith            array('tableheader_close',array()),
276688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
277688ce8d8SChristopher Smith            array('cdata',array(' Z2 ')),
278f05a1cc5SGerrit Uitslag            array('tableheader_close',array()),
279f05a1cc5SGerrit Uitslag            array('tablerow_close',array()),
280f05a1cc5SGerrit Uitslag            array('tablethead_close',array()),
281f05a1cc5SGerrit Uitslag            array('tablerow_open',array()),
282f05a1cc5SGerrit Uitslag            array('tablecell_open',array(1,NULL,1)),
283f05a1cc5SGerrit Uitslag            array('cdata',array(' A ')),
284f05a1cc5SGerrit Uitslag            array('tablecell_close',array()),
285f05a1cc5SGerrit Uitslag            array('tablecell_open',array(1,NULL,1)),
286f05a1cc5SGerrit Uitslag            array('cdata',array(' B ')),
287f05a1cc5SGerrit Uitslag            array('tablecell_close',array()),
288f05a1cc5SGerrit Uitslag            array('tablecell_open',array(1,NULL,1)),
289f05a1cc5SGerrit Uitslag            array('cdata',array(' C ')),
290f05a1cc5SGerrit Uitslag            array('tablecell_close',array()),
291f05a1cc5SGerrit Uitslag            array('tablerow_close',array()),
292688ce8d8SChristopher Smith            array('table_close',array(53)),
293f05a1cc5SGerrit Uitslag            array('p_open',array()),
294f05a1cc5SGerrit Uitslag            array('cdata',array('def')),
295f05a1cc5SGerrit Uitslag            array('p_close',array()),
296f05a1cc5SGerrit Uitslag            array('document_end',array()),
297f05a1cc5SGerrit Uitslag        );
298f05a1cc5SGerrit Uitslag
299688ce8d8SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
300f05a1cc5SGerrit Uitslag
301f05a1cc5SGerrit Uitslag    }
302f05a1cc5SGerrit Uitslag
303f8369d7dSTobias Sarnowski    function testCellAlignment() {
30436dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
305f8369d7dSTobias Sarnowski        $this->P->parse('
306f8369d7dSTobias Sarnowskiabc
307f8369d7dSTobias Sarnowski|  X | Y  ^  Z  |
308f8369d7dSTobias Sarnowskidef');
309f8369d7dSTobias Sarnowski
310f8369d7dSTobias Sarnowski        $calls = array (
311f8369d7dSTobias Sarnowski            array('document_start',array()),
312f8369d7dSTobias Sarnowski            array('p_open',array()),
313f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
314f8369d7dSTobias Sarnowski            array('p_close',array()),
315f8369d7dSTobias Sarnowski            array('table_open',array(3, 1, 6)),
316f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
317f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'right',1)),
318f8369d7dSTobias Sarnowski            array('cdata',array('  X ')),
319f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
320f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
321f8369d7dSTobias Sarnowski            array('cdata',array(' Y  ')),
322f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
323f8369d7dSTobias Sarnowski            array('tableheader_open',array(1,'center',1)),
324f8369d7dSTobias Sarnowski            array('cdata',array('  Z  ')),
325f8369d7dSTobias Sarnowski            array('tableheader_close',array()),
326f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
327f8369d7dSTobias Sarnowski            array('table_close',array(23)),
328f8369d7dSTobias Sarnowski            array('p_open',array()),
329f8369d7dSTobias Sarnowski            array('cdata',array('def')),
330f8369d7dSTobias Sarnowski            array('p_close',array()),
331f8369d7dSTobias Sarnowski            array('document_end',array()),
332f8369d7dSTobias Sarnowski        );
333f8369d7dSTobias Sarnowski
334e0328e30SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
335f8369d7dSTobias Sarnowski    }
336f8369d7dSTobias Sarnowski
337f8369d7dSTobias Sarnowski    function testCellSpan() {
33836dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
339f8369d7dSTobias Sarnowski        $this->P->parse('
340f8369d7dSTobias Sarnowskiabc
341f8369d7dSTobias Sarnowski|  d || e |
342f8369d7dSTobias Sarnowski| f ^ ^|
343f8369d7dSTobias Sarnowski||||
344f8369d7dSTobias Sarnowskidef');
345f8369d7dSTobias Sarnowski
346f8369d7dSTobias Sarnowski        $calls = array (
347f8369d7dSTobias Sarnowski            array('document_start',array()),
348f8369d7dSTobias Sarnowski            array('p_open',array()),
349f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
350f8369d7dSTobias Sarnowski            array('p_close',array()),
351f8369d7dSTobias Sarnowski            array('table_open',array(3, 3, 6)),
352f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
353f8369d7dSTobias Sarnowski            array('tablecell_open',array(2,'right',1)),
354f8369d7dSTobias Sarnowski            array('cdata',array('  d ')),
355f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
356f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,NULL,1)),
357f8369d7dSTobias Sarnowski            array('cdata',array(' e ')),
358f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
359f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
360f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
361f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,NULL,1)),
362f8369d7dSTobias Sarnowski            array('cdata',array(' f ')),
363f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
364f8369d7dSTobias Sarnowski            array('tableheader_open',array(2,NULL,1)),
365f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
366f8369d7dSTobias Sarnowski            array('tableheader_close',array()),
367f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
368f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
369f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
370f8369d7dSTobias Sarnowski            array('table_close',array(31)),
371f8369d7dSTobias Sarnowski            array('p_open',array()),
372f8369d7dSTobias Sarnowski            array('cdata',array('def')),
373f8369d7dSTobias Sarnowski            array('p_close',array()),
374f8369d7dSTobias Sarnowski            array('document_end',array()),
375f8369d7dSTobias Sarnowski        );
376e0328e30SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
377f8369d7dSTobias Sarnowski    }
378f8369d7dSTobias Sarnowski
379f8369d7dSTobias Sarnowski    function testCellRowSpan() {
38036dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
381f8369d7dSTobias Sarnowski        $this->P->parse('
382f8369d7dSTobias Sarnowskiabc
383f8369d7dSTobias Sarnowski| a |  c:::||
384f8369d7dSTobias Sarnowski|:::^ d  | e|
385f8369d7dSTobias Sarnowski|b  ^  ::: |:::f|
386f8369d7dSTobias Sarnowskidef');
387f8369d7dSTobias Sarnowski
388f8369d7dSTobias Sarnowski        $calls = array (
389f8369d7dSTobias Sarnowski            array('document_start',array()),
390f8369d7dSTobias Sarnowski            array('p_open',array()),
391f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
392f8369d7dSTobias Sarnowski            array('p_close',array()),
393f8369d7dSTobias Sarnowski            array('table_open',array(3, 3, 6)),
394f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
395f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,NULL,2)),
396f8369d7dSTobias Sarnowski            array('cdata',array(' a ')),
397f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
398f8369d7dSTobias Sarnowski            array('tablecell_open',array(2,'right',1)),
399f8369d7dSTobias Sarnowski            array('cdata',array('  c:::')),
400f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
401f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
402f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
403f8369d7dSTobias Sarnowski            array('tableheader_open',array(1,'left',2)),
404f8369d7dSTobias Sarnowski            array('cdata',array(' d  ')),
405f8369d7dSTobias Sarnowski            array('tableheader_close',array()),
406f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,NULL,1)),
407f8369d7dSTobias Sarnowski            array('cdata',array(' e')),
408f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
409f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
410f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
411f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
412f8369d7dSTobias Sarnowski            array('cdata',array('b  ')),
413f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
414f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,NULL,1)),
415f8369d7dSTobias Sarnowski            array('cdata',array(':::f')),
416f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
417f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
418f8369d7dSTobias Sarnowski            array('table_close',array(51)),
419f8369d7dSTobias Sarnowski            array('p_open',array()),
420f8369d7dSTobias Sarnowski            array('cdata',array('def')),
421f8369d7dSTobias Sarnowski            array('p_close',array()),
422f8369d7dSTobias Sarnowski            array('document_end',array()),
423f8369d7dSTobias Sarnowski        );
424e0328e30SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
425f8369d7dSTobias Sarnowski    }
4260d9a72ffSGerrit Uitslag
4270d9a72ffSGerrit Uitslag    function testCellRowSpanFirstRow() {
42836dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
4290d9a72ffSGerrit Uitslag        $this->P->parse('
4300d9a72ffSGerrit Uitslagabc
4310d9a72ffSGerrit Uitslag|::: ^  d:::^:::|  :::  |
4320d9a72ffSGerrit Uitslag| b ^ e  | | ::: |
4330d9a72ffSGerrit Uitslag|c  ^  ::: | |:::|
4340d9a72ffSGerrit Uitslagdef');
4350d9a72ffSGerrit Uitslag
4360d9a72ffSGerrit Uitslag        $calls = array (
4370d9a72ffSGerrit Uitslag            array('document_start',array()),
4380d9a72ffSGerrit Uitslag            array('p_open',array()),
4390d9a72ffSGerrit Uitslag            array('cdata',array("\n\nabc")),
4400d9a72ffSGerrit Uitslag            array('p_close',array()),
4410d9a72ffSGerrit Uitslag            array('table_open',array(4, 3, 6)),
4420d9a72ffSGerrit Uitslag            array('tablerow_open',array()),
4430d9a72ffSGerrit Uitslag            array('tablecell_open',array(1,NULL,1)),
4440d9a72ffSGerrit Uitslag            array('cdata',array('')),
4450d9a72ffSGerrit Uitslag            array('tablecell_close',array()),
4460d9a72ffSGerrit Uitslag            array('tableheader_open',array(1,'right',1)),
4470d9a72ffSGerrit Uitslag            array('cdata',array('  d:::')),
4480d9a72ffSGerrit Uitslag            array('tableheader_close',array()),
4490d9a72ffSGerrit Uitslag            array('tableheader_open',array(1,NULL,1)),
4500d9a72ffSGerrit Uitslag            array('cdata',array('')),
4510d9a72ffSGerrit Uitslag            array('tableheader_close',array()),
4520d9a72ffSGerrit Uitslag            array('tablecell_open',array(1,NULL,3)),
4530d9a72ffSGerrit Uitslag            array('cdata',array('')),
4540d9a72ffSGerrit Uitslag            array('tablecell_close',array()),
4550d9a72ffSGerrit Uitslag            array('tablerow_close',array()),
4560d9a72ffSGerrit Uitslag            array('tablerow_open',array()),
4570d9a72ffSGerrit Uitslag            array('tablecell_open',array(1,NULL,1)),
4580d9a72ffSGerrit Uitslag            array('cdata',array(' b ')),
4590d9a72ffSGerrit Uitslag            array('tablecell_close',array()),
4600d9a72ffSGerrit Uitslag            array('tableheader_open',array(1,'left',2)),
4610d9a72ffSGerrit Uitslag            array('cdata',array(' e  ')),
4620d9a72ffSGerrit Uitslag            array('tableheader_close',array()),
4630d9a72ffSGerrit Uitslag            array('tablecell_open',array(1,NULL,1)),
4640d9a72ffSGerrit Uitslag            array('cdata',array(' ')),
4650d9a72ffSGerrit Uitslag            array('tablecell_close',array()),
4660d9a72ffSGerrit Uitslag            array('tablerow_close',array()),
4670d9a72ffSGerrit Uitslag            array('tablerow_open',array()),
4680d9a72ffSGerrit Uitslag            array('tablecell_open',array(1,'left',1)),
4690d9a72ffSGerrit Uitslag            array('cdata',array('c  ')),
4700d9a72ffSGerrit Uitslag            array('tablecell_close',array()),
4710d9a72ffSGerrit Uitslag            array('tablecell_open',array(1,NULL,1)),
4720d9a72ffSGerrit Uitslag            array('cdata',array(' ')),
4730d9a72ffSGerrit Uitslag            array('tablecell_close',array()),
4740d9a72ffSGerrit Uitslag            array('tablerow_close',array()),
4750d9a72ffSGerrit Uitslag
4760d9a72ffSGerrit Uitslag            array('table_close',array(69)),
4770d9a72ffSGerrit Uitslag            array('p_open',array()),
4780d9a72ffSGerrit Uitslag            array('cdata',array('def')),
4790d9a72ffSGerrit Uitslag            array('p_close',array()),
4800d9a72ffSGerrit Uitslag            array('document_end',array()),
4810d9a72ffSGerrit Uitslag        );
482e0328e30SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
4830d9a72ffSGerrit Uitslag    }
484f8369d7dSTobias Sarnowski
485688ce8d8SChristopher Smith    function testRowSpanTableHead() {
48636dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
487688ce8d8SChristopher Smith        $this->P->parse('
488688ce8d8SChristopher Smithabc
489688ce8d8SChristopher Smith^ X1 ^ Y1 ^ Z1 ^
490688ce8d8SChristopher Smith^ X2 ^ ::: ^ Z2 ^
491688ce8d8SChristopher Smith| A3 | B3 | C3 |
492688ce8d8SChristopher Smithdef');
493688ce8d8SChristopher Smith
494688ce8d8SChristopher Smith        $calls = array (
495688ce8d8SChristopher Smith            array('document_start',array()),
496688ce8d8SChristopher Smith            array('p_open',array()),
497688ce8d8SChristopher Smith            array('cdata',array("\n\nabc")),
498688ce8d8SChristopher Smith            array('p_close',array()),
499688ce8d8SChristopher Smith            array('table_open',array(3, 3, 6)),
500688ce8d8SChristopher Smith            array('tablethead_open',array()),
501688ce8d8SChristopher Smith            array('tablerow_open',array()),
502688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
503688ce8d8SChristopher Smith            array('cdata',array(' X1 ')),
504688ce8d8SChristopher Smith            array('tableheader_close',array()),
505688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,2)),
506688ce8d8SChristopher Smith            array('cdata',array(' Y1 ')),
507688ce8d8SChristopher Smith            array('tableheader_close',array()),
508688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
509688ce8d8SChristopher Smith            array('cdata',array(' Z1 ')),
510688ce8d8SChristopher Smith            array('tableheader_close',array()),
511688ce8d8SChristopher Smith            array('tablerow_close',array()),
512688ce8d8SChristopher Smith            array('tablerow_open',array()),
513688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
514688ce8d8SChristopher Smith            array('cdata',array(' X2 ')),
515688ce8d8SChristopher Smith            array('tableheader_close',array()),
516688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
517688ce8d8SChristopher Smith            array('cdata',array(' Z2 ')),
518688ce8d8SChristopher Smith            array('tableheader_close',array()),
519688ce8d8SChristopher Smith            array('tablerow_close',array()),
520688ce8d8SChristopher Smith            array('tablethead_close',array()),
521688ce8d8SChristopher Smith            array('tablerow_open',array()),
522688ce8d8SChristopher Smith            array('tablecell_open',array(1,NULL,1)),
523688ce8d8SChristopher Smith            array('cdata',array(' A3 ')),
524688ce8d8SChristopher Smith            array('tablecell_close',array()),
525688ce8d8SChristopher Smith            array('tablecell_open',array(1,NULL,1)),
526688ce8d8SChristopher Smith            array('cdata',array(' B3 ')),
527688ce8d8SChristopher Smith            array('tablecell_close',array()),
528688ce8d8SChristopher Smith            array('tablecell_open',array(1,NULL,1)),
529688ce8d8SChristopher Smith            array('cdata',array(' C3 ')),
530688ce8d8SChristopher Smith            array('tablecell_close',array()),
531688ce8d8SChristopher Smith            array('tablerow_close',array()),
532688ce8d8SChristopher Smith            array('table_close',array(57)),
533688ce8d8SChristopher Smith            array('p_open',array()),
534688ce8d8SChristopher Smith            array('cdata',array('def')),
535688ce8d8SChristopher Smith            array('p_close',array()),
536688ce8d8SChristopher Smith            array('document_end',array()),
537688ce8d8SChristopher Smith        );
538688ce8d8SChristopher Smith
539688ce8d8SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
540688ce8d8SChristopher Smith
541688ce8d8SChristopher Smith    }
542688ce8d8SChristopher Smith
543688ce8d8SChristopher Smith    function testRowSpanAcrossTableHeadBoundary() {
54436dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
545688ce8d8SChristopher Smith        $this->P->parse('
546688ce8d8SChristopher Smithabc
547688ce8d8SChristopher Smith^ X1 ^ Y1 ^ Z1 ^
548688ce8d8SChristopher Smith^ X2 ^ ::: ^ Z2 ^
549688ce8d8SChristopher Smith| A3 | ::: | C3 |
550688ce8d8SChristopher Smith| A4 | ::: | C4 |
551688ce8d8SChristopher Smithdef');
552688ce8d8SChristopher Smith
553688ce8d8SChristopher Smith        $calls = array (
554688ce8d8SChristopher Smith            array('document_start',array()),
555688ce8d8SChristopher Smith            array('p_open',array()),
556688ce8d8SChristopher Smith            array('cdata',array("\n\nabc")),
557688ce8d8SChristopher Smith            array('p_close',array()),
558688ce8d8SChristopher Smith            array('table_open',array(3, 4, 6)),
559688ce8d8SChristopher Smith            array('tablethead_open',array()),
560688ce8d8SChristopher Smith            array('tablerow_open',array()),
561688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
562688ce8d8SChristopher Smith            array('cdata',array(' X1 ')),
563688ce8d8SChristopher Smith            array('tableheader_close',array()),
564688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,2)),
565688ce8d8SChristopher Smith            array('cdata',array(' Y1 ')),
566688ce8d8SChristopher Smith            array('tableheader_close',array()),
567688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
568688ce8d8SChristopher Smith            array('cdata',array(' Z1 ')),
569688ce8d8SChristopher Smith            array('tableheader_close',array()),
570688ce8d8SChristopher Smith            array('tablerow_close',array()),
571688ce8d8SChristopher Smith            array('tablerow_open',array()),
572688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
573688ce8d8SChristopher Smith            array('cdata',array(' X2 ')),
574688ce8d8SChristopher Smith            array('tableheader_close',array()),
575688ce8d8SChristopher Smith            array('tableheader_open',array(1,NULL,1)),
576688ce8d8SChristopher Smith            array('cdata',array(' Z2 ')),
577688ce8d8SChristopher Smith            array('tableheader_close',array()),
578688ce8d8SChristopher Smith            array('tablerow_close',array()),
579688ce8d8SChristopher Smith            array('tablethead_close',array()),
580688ce8d8SChristopher Smith            array('tablerow_open',array()),
581688ce8d8SChristopher Smith            array('tablecell_open',array(1,NULL,1)),
582688ce8d8SChristopher Smith            array('cdata',array(' A3 ')),
583688ce8d8SChristopher Smith            array('tablecell_close',array()),
584688ce8d8SChristopher Smith            array('tablecell_open',array(1,NULL,2)),
585688ce8d8SChristopher Smith            array('cdata',array('')),
586688ce8d8SChristopher Smith            array('tablecell_close',array()),
587688ce8d8SChristopher Smith            array('tablecell_open',array(1,NULL,1)),
588688ce8d8SChristopher Smith            array('cdata',array(' C3 ')),
589688ce8d8SChristopher Smith            array('tablecell_close',array()),
590688ce8d8SChristopher Smith            array('tablerow_close',array()),
591688ce8d8SChristopher Smith            array('tablerow_open',array()),
592688ce8d8SChristopher Smith            array('tablecell_open',array(1,NULL,1)),
593688ce8d8SChristopher Smith            array('cdata',array(' A4 ')),
594688ce8d8SChristopher Smith            array('tablecell_close',array()),
595688ce8d8SChristopher Smith            array('tablecell_open',array(1,NULL,1)),
596688ce8d8SChristopher Smith            array('cdata',array(' C4 ')),
597688ce8d8SChristopher Smith            array('tablecell_close',array()),
598688ce8d8SChristopher Smith            array('tablerow_close',array()),
599688ce8d8SChristopher Smith            array('table_close',array(76)),
600688ce8d8SChristopher Smith            array('p_open',array()),
601688ce8d8SChristopher Smith            array('cdata',array('def')),
602688ce8d8SChristopher Smith            array('p_close',array()),
603688ce8d8SChristopher Smith            array('document_end',array()),
604688ce8d8SChristopher Smith        );
605688ce8d8SChristopher Smith
606688ce8d8SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
607688ce8d8SChristopher Smith
608688ce8d8SChristopher Smith    }
609688ce8d8SChristopher Smith
610f8369d7dSTobias Sarnowski    function testCellAlignmentFormatting() {
61136dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
61236dc94bbSAndreas Gohr        $this->P->addMode('strong',new Formatting('strong'));
613f8369d7dSTobias Sarnowski        $this->P->parse('
614f8369d7dSTobias Sarnowskiabc
615f8369d7dSTobias Sarnowski|  **X** | Y  ^  Z  |
616f8369d7dSTobias Sarnowskidef');
617f8369d7dSTobias Sarnowski
618f8369d7dSTobias Sarnowski        $calls = array (
619f8369d7dSTobias Sarnowski            array('document_start',array()),
620f8369d7dSTobias Sarnowski            array('p_open',array()),
621f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
622f8369d7dSTobias Sarnowski            array('p_close',array()),
623f8369d7dSTobias Sarnowski            array('table_open',array(3, 1, 6)),
624f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
625f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'right',1)),
626f8369d7dSTobias Sarnowski            array('cdata',array('  ')),
627f8369d7dSTobias Sarnowski            array('strong_open',array()),
628f8369d7dSTobias Sarnowski            array('cdata',array('X')),
629f8369d7dSTobias Sarnowski            array('strong_close',array()),
630f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
631f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
632f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
633f8369d7dSTobias Sarnowski            array('cdata',array(' Y  ')),
634f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
635f8369d7dSTobias Sarnowski            array('tableheader_open',array(1,'center',1)),
636f8369d7dSTobias Sarnowski            array('cdata',array('  Z  ')),
637f8369d7dSTobias Sarnowski            array('tableheader_close',array()),
638f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
639f8369d7dSTobias Sarnowski            array('table_close',array(27)),
640f8369d7dSTobias Sarnowski            array('p_open',array()),
641f8369d7dSTobias Sarnowski            array('cdata',array('def')),
642f8369d7dSTobias Sarnowski            array('p_close',array()),
643f8369d7dSTobias Sarnowski            array('document_end',array()),
644f8369d7dSTobias Sarnowski        );
645f8369d7dSTobias Sarnowski
646e0328e30SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
647f8369d7dSTobias Sarnowski
648f8369d7dSTobias Sarnowski    }
649f8369d7dSTobias Sarnowski
650f8369d7dSTobias Sarnowski    function testTableEol() {
65136dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
65236dc94bbSAndreas Gohr        $this->P->addMode('eol',new Eol());
653f8369d7dSTobias Sarnowski        $this->P->parse('
654f8369d7dSTobias Sarnowskiabc
655f8369d7dSTobias Sarnowski| Row 0 Col 1    | Row 0 Col 2     | Row 0 Col 3        |
656f8369d7dSTobias Sarnowski| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
657f8369d7dSTobias Sarnowskidef');
658f8369d7dSTobias Sarnowski        $calls = array (
659f8369d7dSTobias Sarnowski            array('document_start',array()),
660f8369d7dSTobias Sarnowski            array('p_open',array()),
661f8369d7dSTobias Sarnowski            array('cdata',array("abc")),
662f8369d7dSTobias Sarnowski            array('p_close',array()),
663f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
664f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
665f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
666f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 1    ')),
667f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
668f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
669f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 2     ')),
670f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
671f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
672f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 3        ')),
673f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
674f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
675f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
676f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
677f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
678f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
679f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
680f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
681f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
682f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
683f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
684f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
685f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
686f8369d7dSTobias Sarnowski            array('table_close',array(121)),
687f8369d7dSTobias Sarnowski            array('p_open',array()),
688f8369d7dSTobias Sarnowski            array('cdata',array('def')),
689f8369d7dSTobias Sarnowski            array('p_close',array()),
690f8369d7dSTobias Sarnowski            array('document_end',array()),
691f8369d7dSTobias Sarnowski        );
692e0328e30SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
693f8369d7dSTobias Sarnowski    }
694f8369d7dSTobias Sarnowski
695f8369d7dSTobias Sarnowski    // This is really a failing test - formatting able to spread across cols
696f8369d7dSTobias Sarnowski    // Problem is fixing it would mean a major rewrite of table handling
697f8369d7dSTobias Sarnowski    function testTableStrong() {
69836dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
69936dc94bbSAndreas Gohr        $this->P->addMode('strong',new Formatting('strong'));
700f8369d7dSTobias Sarnowski        $this->P->parse('
701f8369d7dSTobias Sarnowskiabc
702f8369d7dSTobias Sarnowski| **Row 0 Col 1**    | **Row 0 Col 2     | Row 0 Col 3**        |
703f8369d7dSTobias Sarnowski| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
704f8369d7dSTobias Sarnowskidef');
705f8369d7dSTobias Sarnowski        $calls = array (
706f8369d7dSTobias Sarnowski            array('document_start',array()),
707f8369d7dSTobias Sarnowski            array('p_open',array()),
708f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
709f8369d7dSTobias Sarnowski            array('p_close',array()),
710f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
711f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
712f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
713f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
714f8369d7dSTobias Sarnowski            array('strong_open',array()),
715f8369d7dSTobias Sarnowski            array('cdata',array('Row 0 Col 1')),
716f8369d7dSTobias Sarnowski            array('strong_close',array()),
717f8369d7dSTobias Sarnowski            array('cdata',array('    ')),
718f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
719f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
720f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
721f8369d7dSTobias Sarnowski            array('strong_open',array()),
722f8369d7dSTobias Sarnowski            array('cdata',array('Row 0 Col 2     | Row 0 Col 3')),
723f8369d7dSTobias Sarnowski            array('strong_close',array()),
724f8369d7dSTobias Sarnowski            array('cdata',array('        ')),
725f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
726f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,null,1)),
727f8369d7dSTobias Sarnowski            array('cdata',array('')),
728f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
729f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
730f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
731f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
732f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
733f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
734f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
735f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
736f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
737f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
738f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
739f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
740f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
741f8369d7dSTobias Sarnowski            array('table_close',array(129)),
742f8369d7dSTobias Sarnowski            array('p_open',array()),
743f8369d7dSTobias Sarnowski            array('cdata',array('def')),
744f8369d7dSTobias Sarnowski            array('p_close',array()),
745f8369d7dSTobias Sarnowski            array('document_end',array()),
746f8369d7dSTobias Sarnowski        );
747e0328e30SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
748f8369d7dSTobias Sarnowski    }
749f8369d7dSTobias Sarnowski
750f8369d7dSTobias Sarnowski    // This is really a failing test - unformatted able to spread across cols
751f8369d7dSTobias Sarnowski    // Problem is fixing it would mean a major rewrite of table handling
752f8369d7dSTobias Sarnowski    function testTableUnformatted() {
75336dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
75436dc94bbSAndreas Gohr        $this->P->addMode('unformatted',new Unformatted());
755f8369d7dSTobias Sarnowski        $this->P->parse('
756f8369d7dSTobias Sarnowskiabc
757f8369d7dSTobias Sarnowski| <nowiki>Row 0 Col 1</nowiki>    | <nowiki>Row 0 Col 2     | Row 0 Col 3</nowiki>        |
758f8369d7dSTobias Sarnowski| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
759f8369d7dSTobias Sarnowskidef');
760f8369d7dSTobias Sarnowski        $calls = array (
761f8369d7dSTobias Sarnowski            array('document_start',array()),
762f8369d7dSTobias Sarnowski            array('p_open',array()),
763f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
764f8369d7dSTobias Sarnowski            array('p_close',array()),
765f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
766f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
767f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
768f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
769f8369d7dSTobias Sarnowski            array('unformatted',array('Row 0 Col 1')),
770f8369d7dSTobias Sarnowski            array('cdata',array('    ')),
771f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
772f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
773f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
774f8369d7dSTobias Sarnowski            array('unformatted',array('Row 0 Col 2     | Row 0 Col 3')),
775f8369d7dSTobias Sarnowski            array('cdata',array('        ')),
776f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
777f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,null,1)),
778f8369d7dSTobias Sarnowski            array('cdata',array('')),
779f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
780f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
781f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
782f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
783f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
784f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
785f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
786f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
787f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
788f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
789f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
790f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
791f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
792f8369d7dSTobias Sarnowski            array('table_close',array(155)),
793f8369d7dSTobias Sarnowski            array('p_open',array()),
794f8369d7dSTobias Sarnowski            array('cdata',array('def')),
795f8369d7dSTobias Sarnowski            array('p_close',array()),
796f8369d7dSTobias Sarnowski            array('document_end',array()),
797f8369d7dSTobias Sarnowski        );
798e0328e30SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
799f8369d7dSTobias Sarnowski    }
800f8369d7dSTobias Sarnowski
801f8369d7dSTobias Sarnowski    function testTableLinebreak() {
80236dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
80336dc94bbSAndreas Gohr        $this->P->addMode('linebreak',new Linebreak());
804f8369d7dSTobias Sarnowski        $this->P->parse('
805f8369d7dSTobias Sarnowskiabc
806f8369d7dSTobias Sarnowski| Row 0\\\\ Col 1    | Row 0 Col 2     | Row 0 Col 3        |
807f8369d7dSTobias Sarnowski| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
808f8369d7dSTobias Sarnowskidef');
809f8369d7dSTobias Sarnowski        $calls = array (
810f8369d7dSTobias Sarnowski            array('document_start',array()),
811f8369d7dSTobias Sarnowski            array('p_open',array()),
812f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
813f8369d7dSTobias Sarnowski            array('p_close',array()),
814f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
815f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
816f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
817f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0')),
818f8369d7dSTobias Sarnowski            array('linebreak',array()),
819f8369d7dSTobias Sarnowski            array('cdata',array('Col 1    ')),
820f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
821f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
822f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 2     ')),
823f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
824f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
825f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 3        ')),
826f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
827f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
828f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
829f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
830f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
831f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
832f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
833f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
834f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
835f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
836f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
837f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
838f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
839f8369d7dSTobias Sarnowski            array('table_close',array(123)),
840f8369d7dSTobias Sarnowski            array('p_open',array()),
841f8369d7dSTobias Sarnowski            array('cdata',array('def')),
842f8369d7dSTobias Sarnowski            array('p_close',array()),
843f8369d7dSTobias Sarnowski            array('document_end',array()),
844f8369d7dSTobias Sarnowski        );
845f8369d7dSTobias Sarnowski
846e0328e30SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
847f8369d7dSTobias Sarnowski    }
848f8369d7dSTobias Sarnowski
849f8369d7dSTobias Sarnowski    // This is really a failing test - footnote able to spread across cols
850f8369d7dSTobias Sarnowski    // Problem is fixing it would mean a major rewrite of table handling
851f8369d7dSTobias Sarnowski    function testTableFootnote() {
85236dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
85336dc94bbSAndreas Gohr        $this->P->addMode('footnote',new Footnote());
854f8369d7dSTobias Sarnowski        $this->P->parse('
855f8369d7dSTobias Sarnowskiabc
856f8369d7dSTobias Sarnowski| ((Row 0 Col 1))    | ((Row 0 Col 2     | Row 0 Col 3))        |
857f8369d7dSTobias Sarnowski| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
858f8369d7dSTobias Sarnowskidef');
859f8369d7dSTobias Sarnowski        $calls = array (
860f8369d7dSTobias Sarnowski            array('document_start',array()),
861f8369d7dSTobias Sarnowski            array('p_open',array()),
862f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
863f8369d7dSTobias Sarnowski            array('p_close',array()),
864f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
865f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
866f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
867f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
868f8369d7dSTobias Sarnowski            array('nest', array ( array (
869f8369d7dSTobias Sarnowski              array('footnote_open',array()),
870f8369d7dSTobias Sarnowski              array('cdata',array('Row 0 Col 1')),
871f8369d7dSTobias Sarnowski              array('footnote_close',array()),
872f8369d7dSTobias Sarnowski            ))),
873f8369d7dSTobias Sarnowski            array('cdata',array('    ')),
874f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
875f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
876f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
877f8369d7dSTobias Sarnowski            array('nest', array ( array (
878f8369d7dSTobias Sarnowski              array('footnote_open',array()),
879f8369d7dSTobias Sarnowski              array('cdata',array('Row 0 Col 2     | Row 0 Col 3')),
880f8369d7dSTobias Sarnowski              array('footnote_close',array()),
881f8369d7dSTobias Sarnowski            ))),
882f8369d7dSTobias Sarnowski            array('cdata',array('        ')),
883f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
884f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,null,1)),
885f8369d7dSTobias Sarnowski            array('cdata',array('')),
886f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
887f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
888f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
889f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
890f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
891f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
892f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
893f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
894f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
895f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
896f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
897f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
898f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
899f8369d7dSTobias Sarnowski            array('table_close',array(129)),
900f8369d7dSTobias Sarnowski            array('p_open',array()),
901f8369d7dSTobias Sarnowski            array('cdata',array('def')),
902f8369d7dSTobias Sarnowski            array('p_close',array()),
903f8369d7dSTobias Sarnowski            array('document_end',array()),
904f8369d7dSTobias Sarnowski        );
905e0328e30SChristopher Smith        $this->assertEquals($calls,array_map('stripbyteindex',$this->H->calls));
906f8369d7dSTobias Sarnowski    }
9075a41afe6SChristopher Smith
9085a41afe6SChristopher Smith    function testTable_FS1833() {
9095a41afe6SChristopher Smith        $syntax = " \n| Row 0 Col 1    |\n";
91036dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
9115a41afe6SChristopher Smith        $this->P->parse($syntax);
9125a41afe6SChristopher Smith        $calls = array (
9135a41afe6SChristopher Smith            array('document_start',array()),
9145a41afe6SChristopher Smith            array('table_open',array(1, 1, 2)),
9155a41afe6SChristopher Smith            array('tablerow_open',array()),
9165a41afe6SChristopher Smith            array('tablecell_open',array(1,'left',1)),
9175a41afe6SChristopher Smith            array('cdata',array(' Row 0 Col 1    ')),
9185a41afe6SChristopher Smith            array('tablecell_close',array()),
9195a41afe6SChristopher Smith            array('tablerow_close',array()),
9205a41afe6SChristopher Smith            array('table_close',array(strlen($syntax))),
9215a41afe6SChristopher Smith            array('document_end',array()),
9225a41afe6SChristopher Smith        );
9235a41afe6SChristopher Smith        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
9245a41afe6SChristopher Smith    }
9255a41afe6SChristopher Smith
926dbd52c81SAndreas Gohr    /**
927dbd52c81SAndreas Gohr     * missing cells in one row get filled up...
928dbd52c81SAndreas Gohr     */
929dbd52c81SAndreas Gohr    function testTable_CellFix() {
930dbd52c81SAndreas Gohr        $syntax = "\n| r1c1 | r1c2 | r1c3 |\n| r2c1 |\n";
93136dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
932dbd52c81SAndreas Gohr        $this->P->parse($syntax);
933dbd52c81SAndreas Gohr        $calls = array (
934dbd52c81SAndreas Gohr            array('document_start',array()),
935dbd52c81SAndreas Gohr            array('table_open',array(3, 2, 2)),
936dbd52c81SAndreas Gohr
937dbd52c81SAndreas Gohr            array('tablerow_open',array()),
938dbd52c81SAndreas Gohr            array('tablecell_open',array(1,null,1)),
939dbd52c81SAndreas Gohr            array('cdata',array(' r1c1 ')),
940dbd52c81SAndreas Gohr            array('tablecell_close',array()),
941dbd52c81SAndreas Gohr            array('tablecell_open',array(1,null,1)),
942dbd52c81SAndreas Gohr            array('cdata',array(' r1c2 ')),
943dbd52c81SAndreas Gohr            array('tablecell_close',array()),
944dbd52c81SAndreas Gohr            array('tablecell_open',array(1,null,1)),
945dbd52c81SAndreas Gohr            array('cdata',array(' r1c3 ')),
946dbd52c81SAndreas Gohr            array('tablecell_close',array()),
947dbd52c81SAndreas Gohr            array('tablerow_close',array()),
948dbd52c81SAndreas Gohr
949dbd52c81SAndreas Gohr            array('tablerow_open',array()),
950dbd52c81SAndreas Gohr            array('tablecell_open',array(1,null,1)),
951dbd52c81SAndreas Gohr            array('cdata',array(' r2c1 ')),
952dbd52c81SAndreas Gohr            array('tablecell_close',array()),
953dbd52c81SAndreas Gohr            array('tablecell_open',array(1,null,1)),
954dbd52c81SAndreas Gohr            array('cdata',array('')),
955dbd52c81SAndreas Gohr            array('tablecell_close',array()),
956dbd52c81SAndreas Gohr            array('tablecell_open',array(1,null,1)),
957dbd52c81SAndreas Gohr            array('cdata',array('')),
958dbd52c81SAndreas Gohr            array('tablecell_close',array()),
959dbd52c81SAndreas Gohr            array('tablerow_close',array()),
960dbd52c81SAndreas Gohr
961dbd52c81SAndreas Gohr            array('table_close',array(strlen($syntax))),
962dbd52c81SAndreas Gohr            array('document_end',array()),
963dbd52c81SAndreas Gohr        );
964dbd52c81SAndreas Gohr        $this->assertEquals($calls, array_map('stripbyteindex',$this->H->calls));
965dbd52c81SAndreas Gohr    }
966dbd52c81SAndreas Gohr
967dbd52c81SAndreas Gohr    /**
968dbd52c81SAndreas Gohr     * ... even if the longer row comes later
969dbd52c81SAndreas Gohr     */
970dbd52c81SAndreas Gohr    function testTable_CellFix2() {
971dbd52c81SAndreas Gohr        $syntax = "\n| r1c1 |\n| r2c1 | r2c2 | r2c3 |\n";
97236dc94bbSAndreas Gohr        $this->P->addMode('table',new Table());
973dbd52c81SAndreas Gohr        $this->P->parse($syntax);
974dbd52c81SAndreas Gohr        $calls = array (
975dbd52c81SAndreas Gohr            array('document_start',array()),
976dbd52c81SAndreas Gohr            array('table_open',array(3, 2, 2)),
977dbd52c81SAndreas Gohr
978dbd52c81SAndreas Gohr            array('tablerow_open',array()),
979dbd52c81SAndreas Gohr            array('tablecell_open',array(1,null,1)),
980dbd52c81SAndreas Gohr            array('cdata',array(' r1c1 ')),
981dbd52c81SAndreas Gohr            array('tablecell_close',array()),
982dbd52c81SAndreas Gohr            array('tablecell_open',array(1,null,1)),
983dbd52c81SAndreas Gohr            array('cdata',array('')),
984dbd52c81SAndreas Gohr            array('tablecell_close',array()),
985dbd52c81SAndreas Gohr            array('tablecell_open',array(1,null,1)),
986dbd52c81SAndreas Gohr            array('cdata',array('')),
987dbd52c81SAndreas Gohr            array('tablecell_close',array()),
988dbd52c81SAndreas Gohr            array('tablerow_close',array()),
989dbd52c81SAndreas Gohr
990dbd52c81SAndreas Gohr            array('tablerow_open',array()),
991dbd52c81SAndreas Gohr            array('tablecell_open',array(1,null,1)),
992dbd52c81SAndreas Gohr            array('cdata',array(' r2c1 ')),
993dbd52c81SAndreas Gohr            array('tablecell_close',array()),
994dbd52c81SAndreas Gohr            array('tablecell_open',array(1,null,1)),
995dbd52c81SAndreas Gohr            array('cdata',array(' r2c2 ')),
996dbd52c81SAndreas Gohr            array('tablecell_close',array()),
997dbd52c81SAndreas Gohr            array('tablecell_open',array(1,null,1)),
998dbd52c81SAndreas Gohr            array('cdata',array(' r2c3 ')),
999dbd52c81SAndreas Gohr            array('tablecell_close',array()),
1000dbd52c81SAndreas Gohr            array('tablerow_close',array()),
1001dbd52c81SAndreas Gohr
1002dbd52c81SAndreas Gohr            array('table_close',array(strlen($syntax))),
1003dbd52c81SAndreas Gohr            array('document_end',array()),
1004dbd52c81SAndreas Gohr        );
1005dbd52c81SAndreas Gohr        $this->assertEquals($calls, array_map('stripbyteindex',$this->H->calls));
1006dbd52c81SAndreas Gohr    }
1007f8369d7dSTobias Sarnowski}
1008