xref: /dokuwiki/_test/tests/inc/parser/parser_table.test.php (revision f8369d7d6e37248d6523fdac6e1d760fca4f1b52)
1*f8369d7dSTobias Sarnowski<?php
2*f8369d7dSTobias Sarnowskirequire_once 'parser.inc.php';
3*f8369d7dSTobias Sarnowski
4*f8369d7dSTobias Sarnowskiclass TestOfDoku_Parser_Table extends TestOfDoku_Parser {
5*f8369d7dSTobias Sarnowski
6*f8369d7dSTobias Sarnowski    function testTable() {
7*f8369d7dSTobias Sarnowski        $this->P->addMode('table',new Doku_Parser_Mode_Table());
8*f8369d7dSTobias Sarnowski        $this->P->parse('
9*f8369d7dSTobias Sarnowskiabc
10*f8369d7dSTobias Sarnowski| Row 0 Col 1    | Row 0 Col 2     | Row 0 Col 3        |
11*f8369d7dSTobias Sarnowski| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
12*f8369d7dSTobias Sarnowskidef');
13*f8369d7dSTobias Sarnowski        $calls = array (
14*f8369d7dSTobias Sarnowski            array('document_start',array()),
15*f8369d7dSTobias Sarnowski            array('p_open',array()),
16*f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
17*f8369d7dSTobias Sarnowski            array('p_close',array()),
18*f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
19*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
20*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
21*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 1    ')),
22*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
23*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
24*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 2     ')),
25*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
26*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
27*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 3        ')),
28*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
29*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
30*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
31*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
32*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
33*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
34*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
35*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
36*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
37*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
38*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
39*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
40*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
41*f8369d7dSTobias Sarnowski            array('table_close',array(121)),
42*f8369d7dSTobias Sarnowski            array('p_open',array()),
43*f8369d7dSTobias Sarnowski            array('cdata',array('def')),
44*f8369d7dSTobias Sarnowski            array('p_close',array()),
45*f8369d7dSTobias Sarnowski            array('document_end',array()),
46*f8369d7dSTobias Sarnowski        );
47*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
48*f8369d7dSTobias Sarnowski    }
49*f8369d7dSTobias Sarnowski
50*f8369d7dSTobias Sarnowski    function testTableWinEOL() {
51*f8369d7dSTobias Sarnowski        $this->P->addMode('table',new Doku_Parser_Mode_Table());
52*f8369d7dSTobias 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");
53*f8369d7dSTobias Sarnowski        $calls = array (
54*f8369d7dSTobias Sarnowski            array('document_start',array()),
55*f8369d7dSTobias Sarnowski            array('p_open',array()),
56*f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
57*f8369d7dSTobias Sarnowski            array('p_close',array()),
58*f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
59*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
60*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
61*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 1    ')),
62*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
63*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
64*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 2     ')),
65*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
66*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
67*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 3        ')),
68*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
69*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
70*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
71*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
72*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
73*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
74*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
75*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
76*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
77*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
78*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
79*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
80*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
81*f8369d7dSTobias Sarnowski            array('table_close',array(121)),
82*f8369d7dSTobias Sarnowski            array('p_open',array()),
83*f8369d7dSTobias Sarnowski            array('cdata',array('def')),
84*f8369d7dSTobias Sarnowski            array('p_close',array()),
85*f8369d7dSTobias Sarnowski            array('document_end',array()),
86*f8369d7dSTobias Sarnowski        );
87*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
88*f8369d7dSTobias Sarnowski    }
89*f8369d7dSTobias Sarnowski
90*f8369d7dSTobias Sarnowski    function testEmptyTable() {
91*f8369d7dSTobias Sarnowski        $this->P->addMode('table',new Doku_Parser_Mode_Table());
92*f8369d7dSTobias Sarnowski        $this->P->parse('
93*f8369d7dSTobias Sarnowskiabc
94*f8369d7dSTobias Sarnowski|
95*f8369d7dSTobias Sarnowskidef');
96*f8369d7dSTobias Sarnowski
97*f8369d7dSTobias Sarnowski        $calls = array (
98*f8369d7dSTobias Sarnowski            array('document_start',array()),
99*f8369d7dSTobias Sarnowski            array('p_open',array()),
100*f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
101*f8369d7dSTobias Sarnowski            array('p_close',array()),
102*f8369d7dSTobias Sarnowski            array('table_open',array(0, 1, 6)),
103*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
104*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
105*f8369d7dSTobias Sarnowski            array('table_close',array(7)),
106*f8369d7dSTobias Sarnowski            array('p_open',array()),
107*f8369d7dSTobias Sarnowski            array('cdata',array('def')),
108*f8369d7dSTobias Sarnowski            array('p_close',array()),
109*f8369d7dSTobias Sarnowski            array('document_end',array()),
110*f8369d7dSTobias Sarnowski        );
111*f8369d7dSTobias Sarnowski
112*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
113*f8369d7dSTobias Sarnowski    }
114*f8369d7dSTobias Sarnowski
115*f8369d7dSTobias Sarnowski    function testTableHeaders() {
116*f8369d7dSTobias Sarnowski        $this->P->addMode('table',new Doku_Parser_Mode_Table());
117*f8369d7dSTobias Sarnowski        $this->P->parse('
118*f8369d7dSTobias Sarnowskiabc
119*f8369d7dSTobias Sarnowski^ X | Y ^ Z |
120*f8369d7dSTobias Sarnowskidef');
121*f8369d7dSTobias Sarnowski
122*f8369d7dSTobias Sarnowski        $calls = array (
123*f8369d7dSTobias Sarnowski            array('document_start',array()),
124*f8369d7dSTobias Sarnowski            array('p_open',array()),
125*f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
126*f8369d7dSTobias Sarnowski            array('p_close',array()),
127*f8369d7dSTobias Sarnowski            array('table_open',array(3, 1, 6)),
128*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
129*f8369d7dSTobias Sarnowski            array('tableheader_open',array(1,NULL,1)),
130*f8369d7dSTobias Sarnowski            array('cdata',array(' X ')),
131*f8369d7dSTobias Sarnowski            array('tableheader_close',array()),
132*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,NULL,1)),
133*f8369d7dSTobias Sarnowski            array('cdata',array(' Y ')),
134*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
135*f8369d7dSTobias Sarnowski            array('tableheader_open',array(1,NULL,1)),
136*f8369d7dSTobias Sarnowski            array('cdata',array(' Z ')),
137*f8369d7dSTobias Sarnowski            array('tableheader_close',array()),
138*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
139*f8369d7dSTobias Sarnowski            array('table_close',array(19)),
140*f8369d7dSTobias Sarnowski            array('p_open',array()),
141*f8369d7dSTobias Sarnowski            array('cdata',array('def')),
142*f8369d7dSTobias Sarnowski            array('p_close',array()),
143*f8369d7dSTobias Sarnowski            array('document_end',array()),
144*f8369d7dSTobias Sarnowski        );
145*f8369d7dSTobias Sarnowski
146*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
147*f8369d7dSTobias Sarnowski
148*f8369d7dSTobias Sarnowski    }
149*f8369d7dSTobias Sarnowski
150*f8369d7dSTobias Sarnowski    function testCellAlignment() {
151*f8369d7dSTobias Sarnowski        $this->P->addMode('table',new Doku_Parser_Mode_Table());
152*f8369d7dSTobias Sarnowski        $this->P->parse('
153*f8369d7dSTobias Sarnowskiabc
154*f8369d7dSTobias Sarnowski|  X | Y  ^  Z  |
155*f8369d7dSTobias Sarnowskidef');
156*f8369d7dSTobias Sarnowski
157*f8369d7dSTobias Sarnowski        $calls = array (
158*f8369d7dSTobias Sarnowski            array('document_start',array()),
159*f8369d7dSTobias Sarnowski            array('p_open',array()),
160*f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
161*f8369d7dSTobias Sarnowski            array('p_close',array()),
162*f8369d7dSTobias Sarnowski            array('table_open',array(3, 1, 6)),
163*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
164*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'right',1)),
165*f8369d7dSTobias Sarnowski            array('cdata',array('  X ')),
166*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
167*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
168*f8369d7dSTobias Sarnowski            array('cdata',array(' Y  ')),
169*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
170*f8369d7dSTobias Sarnowski            array('tableheader_open',array(1,'center',1)),
171*f8369d7dSTobias Sarnowski            array('cdata',array('  Z  ')),
172*f8369d7dSTobias Sarnowski            array('tableheader_close',array()),
173*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
174*f8369d7dSTobias Sarnowski            array('table_close',array(23)),
175*f8369d7dSTobias Sarnowski            array('p_open',array()),
176*f8369d7dSTobias Sarnowski            array('cdata',array('def')),
177*f8369d7dSTobias Sarnowski            array('p_close',array()),
178*f8369d7dSTobias Sarnowski            array('document_end',array()),
179*f8369d7dSTobias Sarnowski        );
180*f8369d7dSTobias Sarnowski
181*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
182*f8369d7dSTobias Sarnowski    }
183*f8369d7dSTobias Sarnowski
184*f8369d7dSTobias Sarnowski    function testCellSpan() {
185*f8369d7dSTobias Sarnowski        $this->P->addMode('table',new Doku_Parser_Mode_Table());
186*f8369d7dSTobias Sarnowski        $this->P->parse('
187*f8369d7dSTobias Sarnowskiabc
188*f8369d7dSTobias Sarnowski|  d || e |
189*f8369d7dSTobias Sarnowski| f ^ ^|
190*f8369d7dSTobias Sarnowski||||
191*f8369d7dSTobias Sarnowskidef');
192*f8369d7dSTobias Sarnowski
193*f8369d7dSTobias Sarnowski        $calls = array (
194*f8369d7dSTobias Sarnowski            array('document_start',array()),
195*f8369d7dSTobias Sarnowski            array('p_open',array()),
196*f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
197*f8369d7dSTobias Sarnowski            array('p_close',array()),
198*f8369d7dSTobias Sarnowski            array('table_open',array(3, 3, 6)),
199*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
200*f8369d7dSTobias Sarnowski            array('tablecell_open',array(2,'right',1)),
201*f8369d7dSTobias Sarnowski            array('cdata',array('  d ')),
202*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
203*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,NULL,1)),
204*f8369d7dSTobias Sarnowski            array('cdata',array(' e ')),
205*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
206*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
207*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
208*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,NULL,1)),
209*f8369d7dSTobias Sarnowski            array('cdata',array(' f ')),
210*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
211*f8369d7dSTobias Sarnowski            array('tableheader_open',array(2,NULL,1)),
212*f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
213*f8369d7dSTobias Sarnowski            array('tableheader_close',array()),
214*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
215*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
216*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
217*f8369d7dSTobias Sarnowski            array('table_close',array(31)),
218*f8369d7dSTobias Sarnowski            array('p_open',array()),
219*f8369d7dSTobias Sarnowski            array('cdata',array('def')),
220*f8369d7dSTobias Sarnowski            array('p_close',array()),
221*f8369d7dSTobias Sarnowski            array('document_end',array()),
222*f8369d7dSTobias Sarnowski        );
223*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
224*f8369d7dSTobias Sarnowski    }
225*f8369d7dSTobias Sarnowski
226*f8369d7dSTobias Sarnowski    function testCellRowSpan() {
227*f8369d7dSTobias Sarnowski        $this->P->addMode('table',new Doku_Parser_Mode_Table());
228*f8369d7dSTobias Sarnowski        $this->P->parse('
229*f8369d7dSTobias Sarnowskiabc
230*f8369d7dSTobias Sarnowski| a |  c:::||
231*f8369d7dSTobias Sarnowski|:::^ d  | e|
232*f8369d7dSTobias Sarnowski|b  ^  ::: |:::f|
233*f8369d7dSTobias Sarnowskidef');
234*f8369d7dSTobias Sarnowski
235*f8369d7dSTobias Sarnowski        $calls = array (
236*f8369d7dSTobias Sarnowski            array('document_start',array()),
237*f8369d7dSTobias Sarnowski            array('p_open',array()),
238*f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
239*f8369d7dSTobias Sarnowski            array('p_close',array()),
240*f8369d7dSTobias Sarnowski            array('table_open',array(3, 3, 6)),
241*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
242*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,NULL,2)),
243*f8369d7dSTobias Sarnowski            array('cdata',array(' a ')),
244*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
245*f8369d7dSTobias Sarnowski            array('tablecell_open',array(2,'right',1)),
246*f8369d7dSTobias Sarnowski            array('cdata',array('  c:::')),
247*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
248*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
249*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
250*f8369d7dSTobias Sarnowski            array('tableheader_open',array(1,'left',2)),
251*f8369d7dSTobias Sarnowski            array('cdata',array(' d  ')),
252*f8369d7dSTobias Sarnowski            array('tableheader_close',array()),
253*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,NULL,1)),
254*f8369d7dSTobias Sarnowski            array('cdata',array(' e')),
255*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
256*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
257*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
258*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
259*f8369d7dSTobias Sarnowski            array('cdata',array('b  ')),
260*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
261*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,NULL,1)),
262*f8369d7dSTobias Sarnowski            array('cdata',array(':::f')),
263*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
264*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
265*f8369d7dSTobias Sarnowski            array('table_close',array(51)),
266*f8369d7dSTobias Sarnowski            array('p_open',array()),
267*f8369d7dSTobias Sarnowski            array('cdata',array('def')),
268*f8369d7dSTobias Sarnowski            array('p_close',array()),
269*f8369d7dSTobias Sarnowski            array('document_end',array()),
270*f8369d7dSTobias Sarnowski        );
271*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
272*f8369d7dSTobias Sarnowski    }
273*f8369d7dSTobias Sarnowski
274*f8369d7dSTobias Sarnowski    function testCellAlignmentFormatting() {
275*f8369d7dSTobias Sarnowski        $this->P->addMode('table',new Doku_Parser_Mode_Table());
276*f8369d7dSTobias Sarnowski        $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong'));
277*f8369d7dSTobias Sarnowski        $this->P->parse('
278*f8369d7dSTobias Sarnowskiabc
279*f8369d7dSTobias Sarnowski|  **X** | Y  ^  Z  |
280*f8369d7dSTobias Sarnowskidef');
281*f8369d7dSTobias Sarnowski
282*f8369d7dSTobias Sarnowski        $calls = array (
283*f8369d7dSTobias Sarnowski            array('document_start',array()),
284*f8369d7dSTobias Sarnowski            array('p_open',array()),
285*f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
286*f8369d7dSTobias Sarnowski            array('p_close',array()),
287*f8369d7dSTobias Sarnowski            array('table_open',array(3, 1, 6)),
288*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
289*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'right',1)),
290*f8369d7dSTobias Sarnowski            array('cdata',array('  ')),
291*f8369d7dSTobias Sarnowski            array('strong_open',array()),
292*f8369d7dSTobias Sarnowski            array('cdata',array('X')),
293*f8369d7dSTobias Sarnowski            array('strong_close',array()),
294*f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
295*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
296*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
297*f8369d7dSTobias Sarnowski            array('cdata',array(' Y  ')),
298*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
299*f8369d7dSTobias Sarnowski            array('tableheader_open',array(1,'center',1)),
300*f8369d7dSTobias Sarnowski            array('cdata',array('  Z  ')),
301*f8369d7dSTobias Sarnowski            array('tableheader_close',array()),
302*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
303*f8369d7dSTobias Sarnowski            array('table_close',array(27)),
304*f8369d7dSTobias Sarnowski            array('p_open',array()),
305*f8369d7dSTobias Sarnowski            array('cdata',array('def')),
306*f8369d7dSTobias Sarnowski            array('p_close',array()),
307*f8369d7dSTobias Sarnowski            array('document_end',array()),
308*f8369d7dSTobias Sarnowski        );
309*f8369d7dSTobias Sarnowski
310*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
311*f8369d7dSTobias Sarnowski
312*f8369d7dSTobias Sarnowski    }
313*f8369d7dSTobias Sarnowski
314*f8369d7dSTobias Sarnowski    function testTableEol() {
315*f8369d7dSTobias Sarnowski        $this->P->addMode('table',new Doku_Parser_Mode_Table());
316*f8369d7dSTobias Sarnowski        $this->P->addMode('eol',new Doku_Parser_Mode_Eol());
317*f8369d7dSTobias Sarnowski        $this->P->parse('
318*f8369d7dSTobias Sarnowskiabc
319*f8369d7dSTobias Sarnowski| Row 0 Col 1    | Row 0 Col 2     | Row 0 Col 3        |
320*f8369d7dSTobias Sarnowski| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
321*f8369d7dSTobias Sarnowskidef');
322*f8369d7dSTobias Sarnowski        $calls = array (
323*f8369d7dSTobias Sarnowski            array('document_start',array()),
324*f8369d7dSTobias Sarnowski            array('p_open',array()),
325*f8369d7dSTobias Sarnowski            array('cdata',array("abc")),
326*f8369d7dSTobias Sarnowski            array('p_close',array()),
327*f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
328*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
329*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
330*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 1    ')),
331*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
332*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
333*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 2     ')),
334*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
335*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
336*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 3        ')),
337*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
338*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
339*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
340*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
341*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
342*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
343*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
344*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
345*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
346*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
347*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
348*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
349*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
350*f8369d7dSTobias Sarnowski            array('table_close',array(121)),
351*f8369d7dSTobias Sarnowski            array('p_open',array()),
352*f8369d7dSTobias Sarnowski            array('cdata',array('def')),
353*f8369d7dSTobias Sarnowski            array('p_close',array()),
354*f8369d7dSTobias Sarnowski            array('document_end',array()),
355*f8369d7dSTobias Sarnowski        );
356*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
357*f8369d7dSTobias Sarnowski    }
358*f8369d7dSTobias Sarnowski
359*f8369d7dSTobias Sarnowski    // This is really a failing test - formatting able to spread across cols
360*f8369d7dSTobias Sarnowski    // Problem is fixing it would mean a major rewrite of table handling
361*f8369d7dSTobias Sarnowski    function testTableStrong() {
362*f8369d7dSTobias Sarnowski        $this->P->addMode('table',new Doku_Parser_Mode_Table());
363*f8369d7dSTobias Sarnowski        $this->P->addMode('strong',new Doku_Parser_Mode_Formatting('strong'));
364*f8369d7dSTobias Sarnowski        $this->P->parse('
365*f8369d7dSTobias Sarnowskiabc
366*f8369d7dSTobias Sarnowski| **Row 0 Col 1**    | **Row 0 Col 2     | Row 0 Col 3**        |
367*f8369d7dSTobias Sarnowski| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
368*f8369d7dSTobias Sarnowskidef');
369*f8369d7dSTobias Sarnowski        $calls = array (
370*f8369d7dSTobias Sarnowski            array('document_start',array()),
371*f8369d7dSTobias Sarnowski            array('p_open',array()),
372*f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
373*f8369d7dSTobias Sarnowski            array('p_close',array()),
374*f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
375*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
376*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
377*f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
378*f8369d7dSTobias Sarnowski            array('strong_open',array()),
379*f8369d7dSTobias Sarnowski            array('cdata',array('Row 0 Col 1')),
380*f8369d7dSTobias Sarnowski            array('strong_close',array()),
381*f8369d7dSTobias Sarnowski            array('cdata',array('    ')),
382*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
383*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
384*f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
385*f8369d7dSTobias Sarnowski            array('strong_open',array()),
386*f8369d7dSTobias Sarnowski            array('cdata',array('Row 0 Col 2     | Row 0 Col 3')),
387*f8369d7dSTobias Sarnowski            array('strong_close',array()),
388*f8369d7dSTobias Sarnowski            array('cdata',array('        ')),
389*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
390*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,null,1)),
391*f8369d7dSTobias Sarnowski            array('cdata',array('')),
392*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
393*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
394*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
395*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
396*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
397*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
398*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
399*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
400*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
401*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
402*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
403*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
404*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
405*f8369d7dSTobias Sarnowski            array('table_close',array(129)),
406*f8369d7dSTobias Sarnowski            array('p_open',array()),
407*f8369d7dSTobias Sarnowski            array('cdata',array('def')),
408*f8369d7dSTobias Sarnowski            array('p_close',array()),
409*f8369d7dSTobias Sarnowski            array('document_end',array()),
410*f8369d7dSTobias Sarnowski        );
411*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
412*f8369d7dSTobias Sarnowski    }
413*f8369d7dSTobias Sarnowski
414*f8369d7dSTobias Sarnowski    // This is really a failing test - unformatted able to spread across cols
415*f8369d7dSTobias Sarnowski    // Problem is fixing it would mean a major rewrite of table handling
416*f8369d7dSTobias Sarnowski    function testTableUnformatted() {
417*f8369d7dSTobias Sarnowski        $this->P->addMode('table',new Doku_Parser_Mode_Table());
418*f8369d7dSTobias Sarnowski        $this->P->addMode('unformatted',new Doku_Parser_Mode_Unformatted());
419*f8369d7dSTobias Sarnowski        $this->P->parse('
420*f8369d7dSTobias Sarnowskiabc
421*f8369d7dSTobias Sarnowski| <nowiki>Row 0 Col 1</nowiki>    | <nowiki>Row 0 Col 2     | Row 0 Col 3</nowiki>        |
422*f8369d7dSTobias Sarnowski| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
423*f8369d7dSTobias Sarnowskidef');
424*f8369d7dSTobias Sarnowski        $calls = array (
425*f8369d7dSTobias Sarnowski            array('document_start',array()),
426*f8369d7dSTobias Sarnowski            array('p_open',array()),
427*f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
428*f8369d7dSTobias Sarnowski            array('p_close',array()),
429*f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
430*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
431*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
432*f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
433*f8369d7dSTobias Sarnowski            array('unformatted',array('Row 0 Col 1')),
434*f8369d7dSTobias Sarnowski            array('cdata',array('    ')),
435*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
436*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
437*f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
438*f8369d7dSTobias Sarnowski            array('unformatted',array('Row 0 Col 2     | Row 0 Col 3')),
439*f8369d7dSTobias Sarnowski            array('cdata',array('        ')),
440*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
441*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,null,1)),
442*f8369d7dSTobias Sarnowski            array('cdata',array('')),
443*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
444*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
445*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
446*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
447*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
448*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
449*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
450*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
451*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
452*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
453*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
454*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
455*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
456*f8369d7dSTobias Sarnowski            array('table_close',array(155)),
457*f8369d7dSTobias Sarnowski            array('p_open',array()),
458*f8369d7dSTobias Sarnowski            array('cdata',array('def')),
459*f8369d7dSTobias Sarnowski            array('p_close',array()),
460*f8369d7dSTobias Sarnowski            array('document_end',array()),
461*f8369d7dSTobias Sarnowski        );
462*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
463*f8369d7dSTobias Sarnowski    }
464*f8369d7dSTobias Sarnowski
465*f8369d7dSTobias Sarnowski    function testTableLinebreak() {
466*f8369d7dSTobias Sarnowski        $this->P->addMode('table',new Doku_Parser_Mode_Table());
467*f8369d7dSTobias Sarnowski        $this->P->addMode('linebreak',new Doku_Parser_Mode_Linebreak());
468*f8369d7dSTobias Sarnowski        $this->P->parse('
469*f8369d7dSTobias Sarnowskiabc
470*f8369d7dSTobias Sarnowski| Row 0\\\\ Col 1    | Row 0 Col 2     | Row 0 Col 3        |
471*f8369d7dSTobias Sarnowski| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
472*f8369d7dSTobias Sarnowskidef');
473*f8369d7dSTobias Sarnowski        $calls = array (
474*f8369d7dSTobias Sarnowski            array('document_start',array()),
475*f8369d7dSTobias Sarnowski            array('p_open',array()),
476*f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
477*f8369d7dSTobias Sarnowski            array('p_close',array()),
478*f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
479*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
480*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
481*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0')),
482*f8369d7dSTobias Sarnowski            array('linebreak',array()),
483*f8369d7dSTobias Sarnowski            array('cdata',array('Col 1    ')),
484*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
485*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
486*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 2     ')),
487*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
488*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
489*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 0 Col 3        ')),
490*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
491*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
492*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
493*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
494*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
495*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
496*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
497*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
498*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
499*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
500*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
501*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
502*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
503*f8369d7dSTobias Sarnowski            array('table_close',array(123)),
504*f8369d7dSTobias Sarnowski            array('p_open',array()),
505*f8369d7dSTobias Sarnowski            array('cdata',array('def')),
506*f8369d7dSTobias Sarnowski            array('p_close',array()),
507*f8369d7dSTobias Sarnowski            array('document_end',array()),
508*f8369d7dSTobias Sarnowski        );
509*f8369d7dSTobias Sarnowski
510*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
511*f8369d7dSTobias Sarnowski    }
512*f8369d7dSTobias Sarnowski
513*f8369d7dSTobias Sarnowski    // This is really a failing test - footnote able to spread across cols
514*f8369d7dSTobias Sarnowski    // Problem is fixing it would mean a major rewrite of table handling
515*f8369d7dSTobias Sarnowski    function testTableFootnote() {
516*f8369d7dSTobias Sarnowski        $this->P->addMode('table',new Doku_Parser_Mode_Table());
517*f8369d7dSTobias Sarnowski        $this->P->addMode('footnote',new Doku_Parser_Mode_Footnote());
518*f8369d7dSTobias Sarnowski        $this->P->parse('
519*f8369d7dSTobias Sarnowskiabc
520*f8369d7dSTobias Sarnowski| ((Row 0 Col 1))    | ((Row 0 Col 2     | Row 0 Col 3))        |
521*f8369d7dSTobias Sarnowski| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
522*f8369d7dSTobias Sarnowskidef');
523*f8369d7dSTobias Sarnowski        $calls = array (
524*f8369d7dSTobias Sarnowski            array('document_start',array()),
525*f8369d7dSTobias Sarnowski            array('p_open',array()),
526*f8369d7dSTobias Sarnowski            array('cdata',array("\n\nabc")),
527*f8369d7dSTobias Sarnowski            array('p_close',array()),
528*f8369d7dSTobias Sarnowski            array('table_open',array(3, 2, 6)),
529*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
530*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
531*f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
532*f8369d7dSTobias Sarnowski            array('nest', array ( array (
533*f8369d7dSTobias Sarnowski              array('footnote_open',array()),
534*f8369d7dSTobias Sarnowski              array('cdata',array('Row 0 Col 1')),
535*f8369d7dSTobias Sarnowski              array('footnote_close',array()),
536*f8369d7dSTobias Sarnowski            ))),
537*f8369d7dSTobias Sarnowski            array('cdata',array('    ')),
538*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
539*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
540*f8369d7dSTobias Sarnowski            array('cdata',array(' ')),
541*f8369d7dSTobias Sarnowski            array('nest', array ( array (
542*f8369d7dSTobias Sarnowski              array('footnote_open',array()),
543*f8369d7dSTobias Sarnowski              array('cdata',array('Row 0 Col 2     | Row 0 Col 3')),
544*f8369d7dSTobias Sarnowski              array('footnote_close',array()),
545*f8369d7dSTobias Sarnowski            ))),
546*f8369d7dSTobias Sarnowski            array('cdata',array('        ')),
547*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
548*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,null,1)),
549*f8369d7dSTobias Sarnowski            array('cdata',array('')),
550*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
551*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
552*f8369d7dSTobias Sarnowski            array('tablerow_open',array()),
553*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
554*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 1    ')),
555*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
556*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
557*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 2     ')),
558*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
559*f8369d7dSTobias Sarnowski            array('tablecell_open',array(1,'left',1)),
560*f8369d7dSTobias Sarnowski            array('cdata',array(' Row 1 Col 3        ')),
561*f8369d7dSTobias Sarnowski            array('tablecell_close',array()),
562*f8369d7dSTobias Sarnowski            array('tablerow_close',array()),
563*f8369d7dSTobias Sarnowski            array('table_close',array(129)),
564*f8369d7dSTobias Sarnowski            array('p_open',array()),
565*f8369d7dSTobias Sarnowski            array('cdata',array('def')),
566*f8369d7dSTobias Sarnowski            array('p_close',array()),
567*f8369d7dSTobias Sarnowski            array('document_end',array()),
568*f8369d7dSTobias Sarnowski        );
569*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
570*f8369d7dSTobias Sarnowski    }
571*f8369d7dSTobias Sarnowski}
572*f8369d7dSTobias Sarnowski
573