xref: /dokuwiki/_test/tests/inc/parser/parser_lists.test.php (revision be906b566b9bdfd92c032ee07c4fd077d820a8d1)
1f8369d7dSTobias Sarnowski<?php
236dc94bbSAndreas Gohr
3*be906b56SAndreas Gohruse dokuwiki\Parsing\Handler\Lists;
4*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Eol;
5*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Footnote;
6*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Formatting;
7*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Linebreak;
8*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Listblock;
9*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Unformatted;
1036dc94bbSAndreas Gohr
11f8369d7dSTobias Sarnowskirequire_once 'parser.inc.php';
12f8369d7dSTobias Sarnowski
13f8369d7dSTobias Sarnowskiclass TestOfDoku_Parser_Lists extends TestOfDoku_Parser {
14f8369d7dSTobias Sarnowski
15f8369d7dSTobias Sarnowski    function testUnorderedList() {
1636dc94bbSAndreas Gohr        $this->P->addMode('listblock',new Listblock());
17f8369d7dSTobias Sarnowski        $this->P->parse('
18f8369d7dSTobias Sarnowski  *A
19f8369d7dSTobias Sarnowski    * B
20f8369d7dSTobias Sarnowski  * C
21f8369d7dSTobias Sarnowski');
22f8369d7dSTobias Sarnowski        $calls = array (
23f8369d7dSTobias Sarnowski            array('document_start',array()),
24f8369d7dSTobias Sarnowski            array('listu_open',array()),
255c2aad12SAndreas Gohr            array('listitem_open',array(1,Lists::NODE)),
26f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
27f8369d7dSTobias Sarnowski            array('cdata',array("A")),
28f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
29f8369d7dSTobias Sarnowski            array('listu_open',array()),
30f8369d7dSTobias Sarnowski            array('listitem_open',array(2)),
31f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
32f8369d7dSTobias Sarnowski            array('cdata',array(' B')),
33f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
34f8369d7dSTobias Sarnowski            array('listitem_close',array()),
35f8369d7dSTobias Sarnowski            array('listu_close',array()),
36f8369d7dSTobias Sarnowski            array('listitem_close',array()),
37f8369d7dSTobias Sarnowski            array('listitem_open',array(1)),
38f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
39f8369d7dSTobias Sarnowski            array('cdata',array(' C')),
40f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
41f8369d7dSTobias Sarnowski            array('listitem_close',array()),
42f8369d7dSTobias Sarnowski            array('listu_close',array()),
43f8369d7dSTobias Sarnowski            array('document_end',array()),
44f8369d7dSTobias Sarnowski        );
45f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
46f8369d7dSTobias Sarnowski    }
47f8369d7dSTobias Sarnowski
48f8369d7dSTobias Sarnowski    function testOrderedList() {
4936dc94bbSAndreas Gohr        $this->P->addMode('listblock',new Listblock());
50f8369d7dSTobias Sarnowski        $this->P->parse('
51f8369d7dSTobias Sarnowski  -A
52f8369d7dSTobias Sarnowski    - B
53f8369d7dSTobias Sarnowski  - C
54f8369d7dSTobias Sarnowski');
55f8369d7dSTobias Sarnowski        $calls = array (
56f8369d7dSTobias Sarnowski            array('document_start',array()),
57f8369d7dSTobias Sarnowski            array('listo_open',array()),
585c2aad12SAndreas Gohr            array('listitem_open',array(1,Lists::NODE)),
59f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
60f8369d7dSTobias Sarnowski            array('cdata',array("A")),
61f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
62f8369d7dSTobias Sarnowski            array('listo_open',array()),
63f8369d7dSTobias Sarnowski            array('listitem_open',array(2)),
64f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
65f8369d7dSTobias Sarnowski            array('cdata',array(' B')),
66f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
67f8369d7dSTobias Sarnowski            array('listitem_close',array()),
68f8369d7dSTobias Sarnowski            array('listo_close',array()),
69f8369d7dSTobias Sarnowski            array('listitem_close',array()),
70f8369d7dSTobias Sarnowski            array('listitem_open',array(1)),
71f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
72f8369d7dSTobias Sarnowski            array('cdata',array(' C')),
73f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
74f8369d7dSTobias Sarnowski            array('listitem_close',array()),
75f8369d7dSTobias Sarnowski            array('listo_close',array()),
76f8369d7dSTobias Sarnowski            array('document_end',array()),
77f8369d7dSTobias Sarnowski        );
78f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
79f8369d7dSTobias Sarnowski    }
80f8369d7dSTobias Sarnowski
81f8369d7dSTobias Sarnowski
82f8369d7dSTobias Sarnowski    function testMixedList() {
8336dc94bbSAndreas Gohr        $this->P->addMode('listblock',new Listblock());
84f8369d7dSTobias Sarnowski        $this->P->parse('
85f8369d7dSTobias Sarnowski  -A
86f8369d7dSTobias Sarnowski    * B
87f8369d7dSTobias Sarnowski  - C
88f8369d7dSTobias Sarnowski');
89f8369d7dSTobias Sarnowski        $calls = array (
90f8369d7dSTobias Sarnowski            array('document_start',array()),
91f8369d7dSTobias Sarnowski            array('listo_open',array()),
925c2aad12SAndreas Gohr            array('listitem_open',array(1,Lists::NODE)),
93f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
94f8369d7dSTobias Sarnowski            array('cdata',array("A")),
95f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
96f8369d7dSTobias Sarnowski            array('listu_open',array()),
97f8369d7dSTobias Sarnowski            array('listitem_open',array(2)),
98f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
99f8369d7dSTobias Sarnowski            array('cdata',array(' B')),
100f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
101f8369d7dSTobias Sarnowski            array('listitem_close',array()),
102f8369d7dSTobias Sarnowski            array('listu_close',array()),
103f8369d7dSTobias Sarnowski            array('listitem_close',array()),
104f8369d7dSTobias Sarnowski            array('listitem_open',array(1)),
105f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
106f8369d7dSTobias Sarnowski            array('cdata',array(' C')),
107f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
108f8369d7dSTobias Sarnowski            array('listitem_close',array()),
109f8369d7dSTobias Sarnowski            array('listo_close',array()),
110f8369d7dSTobias Sarnowski            array('document_end',array()),
111f8369d7dSTobias Sarnowski        );
112f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
113f8369d7dSTobias Sarnowski    }
114f8369d7dSTobias Sarnowski
115f8369d7dSTobias Sarnowski    function testUnorderedListWinEOL() {
11636dc94bbSAndreas Gohr        $this->P->addMode('listblock',new Listblock());
117f8369d7dSTobias Sarnowski        $this->P->parse("\r\n  *A\r\n    * B\r\n  * C\r\n");
118f8369d7dSTobias Sarnowski        $calls = array (
119f8369d7dSTobias Sarnowski            array('document_start',array()),
120f8369d7dSTobias Sarnowski            array('listu_open',array()),
1215c2aad12SAndreas Gohr            array('listitem_open',array(1,Lists::NODE)),
122f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
123f8369d7dSTobias Sarnowski            array('cdata',array("A")),
124f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
125f8369d7dSTobias Sarnowski            array('listu_open',array()),
126f8369d7dSTobias Sarnowski            array('listitem_open',array(2)),
127f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
128f8369d7dSTobias Sarnowski            array('cdata',array(' B')),
129f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
130f8369d7dSTobias Sarnowski            array('listitem_close',array()),
131f8369d7dSTobias Sarnowski            array('listu_close',array()),
132f8369d7dSTobias Sarnowski            array('listitem_close',array()),
133f8369d7dSTobias Sarnowski            array('listitem_open',array(1)),
134f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
135f8369d7dSTobias Sarnowski            array('cdata',array(' C')),
136f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
137f8369d7dSTobias Sarnowski            array('listitem_close',array()),
138f8369d7dSTobias Sarnowski            array('listu_close',array()),
139f8369d7dSTobias Sarnowski            array('document_end',array()),
140f8369d7dSTobias Sarnowski        );
141f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
142f8369d7dSTobias Sarnowski    }
143f8369d7dSTobias Sarnowski
144f8369d7dSTobias Sarnowski    function testOrderedListWinEOL() {
14536dc94bbSAndreas Gohr        $this->P->addMode('listblock',new Listblock());
146f8369d7dSTobias Sarnowski        $this->P->parse("\r\n  -A\r\n    - B\r\n  - C\r\n");
147f8369d7dSTobias Sarnowski        $calls = array (
148f8369d7dSTobias Sarnowski            array('document_start',array()),
149f8369d7dSTobias Sarnowski            array('listo_open',array()),
1505c2aad12SAndreas Gohr            array('listitem_open',array(1,Lists::NODE)),
151f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
152f8369d7dSTobias Sarnowski            array('cdata',array("A")),
153f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
154f8369d7dSTobias Sarnowski            array('listo_open',array()),
155f8369d7dSTobias Sarnowski            array('listitem_open',array(2)),
156f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
157f8369d7dSTobias Sarnowski            array('cdata',array(' B')),
158f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
159f8369d7dSTobias Sarnowski            array('listitem_close',array()),
160f8369d7dSTobias Sarnowski            array('listo_close',array()),
161f8369d7dSTobias Sarnowski            array('listitem_close',array()),
162f8369d7dSTobias Sarnowski            array('listitem_open',array(1)),
163f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
164f8369d7dSTobias Sarnowski            array('cdata',array(' C')),
165f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
166f8369d7dSTobias Sarnowski            array('listitem_close',array()),
167f8369d7dSTobias Sarnowski            array('listo_close',array()),
168f8369d7dSTobias Sarnowski            array('document_end',array()),
169f8369d7dSTobias Sarnowski        );
170f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
171f8369d7dSTobias Sarnowski    }
172f8369d7dSTobias Sarnowski
173f8369d7dSTobias Sarnowski    function testNotAList() {
17436dc94bbSAndreas Gohr        $this->P->addMode('listblock',new Listblock());
175f8369d7dSTobias Sarnowski        $this->P->parse("Foo  -bar  *foo Bar");
176f8369d7dSTobias Sarnowski        $calls = array (
177f8369d7dSTobias Sarnowski            array('document_start',array()),
178f8369d7dSTobias Sarnowski            array('p_open',array()),
179f8369d7dSTobias Sarnowski            array('cdata',array("\nFoo  -bar  *foo Bar")),
180f8369d7dSTobias Sarnowski            array('p_close',array()),
181f8369d7dSTobias Sarnowski            array('document_end',array()),
182f8369d7dSTobias Sarnowski        );
183f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
184f8369d7dSTobias Sarnowski    }
185f8369d7dSTobias Sarnowski
186f8369d7dSTobias Sarnowski    function testUnorderedListParagraph() {
18736dc94bbSAndreas Gohr        $this->P->addMode('listblock',new Listblock());
18836dc94bbSAndreas Gohr        $this->P->addMode('eol',new Eol());
189f8369d7dSTobias Sarnowski        $this->P->parse('Foo
190f8369d7dSTobias Sarnowski  *A
191f8369d7dSTobias Sarnowski    * B
192f8369d7dSTobias Sarnowski  * C
193f8369d7dSTobias SarnowskiBar');
194f8369d7dSTobias Sarnowski        $calls = array (
195f8369d7dSTobias Sarnowski            array('document_start',array()),
196f8369d7dSTobias Sarnowski            array('p_open',array()),
197f8369d7dSTobias Sarnowski            array('cdata',array("Foo")),
198f8369d7dSTobias Sarnowski            array('p_close',array()),
199f8369d7dSTobias Sarnowski            array('listu_open',array()),
2005c2aad12SAndreas Gohr            array('listitem_open',array(1,Lists::NODE)),
201f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
202f8369d7dSTobias Sarnowski            array('cdata',array("A")),
203f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
204f8369d7dSTobias Sarnowski            array('listu_open',array()),
205f8369d7dSTobias Sarnowski            array('listitem_open',array(2)),
206f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
207f8369d7dSTobias Sarnowski            array('cdata',array(' B')),
208f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
209f8369d7dSTobias Sarnowski            array('listitem_close',array()),
210f8369d7dSTobias Sarnowski            array('listu_close',array()),
211f8369d7dSTobias Sarnowski            array('listitem_close',array()),
212f8369d7dSTobias Sarnowski            array('listitem_open',array(1)),
213f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
214f8369d7dSTobias Sarnowski            array('cdata',array(' C')),
215f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
216f8369d7dSTobias Sarnowski            array('listitem_close',array()),
217f8369d7dSTobias Sarnowski            array('listu_close',array()),
218f8369d7dSTobias Sarnowski            array('p_open',array()),
219f8369d7dSTobias Sarnowski            array('cdata',array("Bar")),
220f8369d7dSTobias Sarnowski            array('p_close',array()),
221f8369d7dSTobias Sarnowski            array('document_end',array()),
222f8369d7dSTobias Sarnowski        );
223f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
224f8369d7dSTobias Sarnowski    }
225f8369d7dSTobias Sarnowski
226f8369d7dSTobias Sarnowski    // This is really a failing test - formatting able to spread across list items
227f8369d7dSTobias Sarnowski    // Problem is fixing it would mean a major rewrite of lists
228f8369d7dSTobias Sarnowski    function testUnorderedListStrong() {
22936dc94bbSAndreas Gohr        $this->P->addMode('listblock',new Listblock());
23036dc94bbSAndreas Gohr        $this->P->addMode('strong',new Formatting('strong'));
231f8369d7dSTobias Sarnowski        $this->P->parse('
232f8369d7dSTobias Sarnowski  ***A**
233f8369d7dSTobias Sarnowski    *** B
234f8369d7dSTobias Sarnowski  * C**
235f8369d7dSTobias Sarnowski');
236f8369d7dSTobias Sarnowski        $calls = array (
237f8369d7dSTobias Sarnowski            array('document_start',array()),
238f8369d7dSTobias Sarnowski            array('listu_open',array()),
2395c2aad12SAndreas Gohr            array('listitem_open',array(1,Lists::NODE)),
240f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
241f8369d7dSTobias Sarnowski            array('strong_open',array()),
242f8369d7dSTobias Sarnowski            array('cdata',array("A")),
243f8369d7dSTobias Sarnowski            array('strong_close',array()),
244f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
245f8369d7dSTobias Sarnowski            array('listu_open',array()),
246f8369d7dSTobias Sarnowski            array('listitem_open',array(2)),
247f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
248f8369d7dSTobias Sarnowski            array('strong_open',array()),
249f8369d7dSTobias Sarnowski            array('cdata',array(" B\n  * C")),
250f8369d7dSTobias Sarnowski            array('strong_close',array()),
251f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
252f8369d7dSTobias Sarnowski            array('listitem_close',array()),
253f8369d7dSTobias Sarnowski            array('listu_close',array()),
254f8369d7dSTobias Sarnowski            array('listitem_close',array()),
255f8369d7dSTobias Sarnowski            array('listu_close',array()),
256f8369d7dSTobias Sarnowski            array('document_end',array()),
257f8369d7dSTobias Sarnowski        );
258f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
259f8369d7dSTobias Sarnowski    }
260f8369d7dSTobias Sarnowski
261f8369d7dSTobias Sarnowski    // This is really a failing test - unformatted able to spread across list items
262f8369d7dSTobias Sarnowski    // Problem is fixing it would mean a major rewrite of lists
263f8369d7dSTobias Sarnowski    function testUnorderedListUnformatted() {
26436dc94bbSAndreas Gohr        $this->P->addMode('listblock',new Listblock());
26536dc94bbSAndreas Gohr        $this->P->addMode('unformatted',new Unformatted());
266f8369d7dSTobias Sarnowski        $this->P->parse('
267f8369d7dSTobias Sarnowski  *%%A%%
268f8369d7dSTobias Sarnowski    *%% B
269f8369d7dSTobias Sarnowski  * C%%
270f8369d7dSTobias Sarnowski');
271f8369d7dSTobias Sarnowski        $calls = array (
272f8369d7dSTobias Sarnowski            array('document_start',array()),
273f8369d7dSTobias Sarnowski            array('listu_open',array()),
2745c2aad12SAndreas Gohr            array('listitem_open',array(1,Lists::NODE)),
275f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
276f8369d7dSTobias Sarnowski            array('unformatted',array("A")),
277f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
278f8369d7dSTobias Sarnowski            array('listu_open',array()),
279f8369d7dSTobias Sarnowski            array('listitem_open',array(2)),
280f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
281f8369d7dSTobias Sarnowski            array('unformatted',array(" B\n  * C")),
282f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
283f8369d7dSTobias Sarnowski            array('listitem_close',array()),
284f8369d7dSTobias Sarnowski            array('listu_close',array()),
285f8369d7dSTobias Sarnowski            array('listitem_close',array()),
286f8369d7dSTobias Sarnowski            array('listu_close',array()),
287f8369d7dSTobias Sarnowski            array('document_end',array()),
288f8369d7dSTobias Sarnowski        );
289f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
290f8369d7dSTobias Sarnowski    }
291f8369d7dSTobias Sarnowski
292f8369d7dSTobias Sarnowski    function testUnorderedListLinebreak() {
29336dc94bbSAndreas Gohr        $this->P->addMode('listblock',new Listblock());
29436dc94bbSAndreas Gohr        $this->P->addMode('linebreak',new Linebreak());
295f8369d7dSTobias Sarnowski        $this->P->parse('
296f8369d7dSTobias Sarnowski  *A\\\\ D
297f8369d7dSTobias Sarnowski    * B
298f8369d7dSTobias Sarnowski  * C
299f8369d7dSTobias Sarnowski');
300f8369d7dSTobias Sarnowski        $calls = array (
301f8369d7dSTobias Sarnowski            array('document_start',array()),
302f8369d7dSTobias Sarnowski            array('listu_open',array()),
3035c2aad12SAndreas Gohr            array('listitem_open',array(1,Lists::NODE)),
304f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
305f8369d7dSTobias Sarnowski            array('cdata',array("A")),
306f8369d7dSTobias Sarnowski            array('linebreak',array()),
307f8369d7dSTobias Sarnowski            array('cdata',array("D")),
308f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
309f8369d7dSTobias Sarnowski            array('listu_open',array()),
310f8369d7dSTobias Sarnowski            array('listitem_open',array(2)),
311f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
312f8369d7dSTobias Sarnowski            array('cdata',array(' B')),
313f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
314f8369d7dSTobias Sarnowski            array('listitem_close',array()),
315f8369d7dSTobias Sarnowski            array('listu_close',array()),
316f8369d7dSTobias Sarnowski            array('listitem_close',array()),
317f8369d7dSTobias Sarnowski            array('listitem_open',array(1)),
318f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
319f8369d7dSTobias Sarnowski            array('cdata',array(' C')),
320f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
321f8369d7dSTobias Sarnowski            array('listitem_close',array()),
322f8369d7dSTobias Sarnowski            array('listu_close',array()),
323f8369d7dSTobias Sarnowski            array('document_end',array()),
324f8369d7dSTobias Sarnowski        );
325f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
326f8369d7dSTobias Sarnowski    }
327f8369d7dSTobias Sarnowski
328f8369d7dSTobias Sarnowski    function testUnorderedListLinebreak2() {
32936dc94bbSAndreas Gohr        $this->P->addMode('listblock',new Listblock());
33036dc94bbSAndreas Gohr        $this->P->addMode('linebreak',new Linebreak());
331f8369d7dSTobias Sarnowski        $this->P->parse('
332f8369d7dSTobias Sarnowski  *A\\\\
333f8369d7dSTobias Sarnowski  * B
334f8369d7dSTobias Sarnowski');
335f8369d7dSTobias Sarnowski        $calls = array (
336f8369d7dSTobias Sarnowski            array('document_start',array()),
337f8369d7dSTobias Sarnowski            array('listu_open',array()),
338f8369d7dSTobias Sarnowski            array('listitem_open',array(1)),
339f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
340f8369d7dSTobias Sarnowski            array('cdata',array("A")),
341f8369d7dSTobias Sarnowski            array('linebreak',array()),
342f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
343f8369d7dSTobias Sarnowski            array('listitem_close',array()),
344f8369d7dSTobias Sarnowski            array('listitem_open',array(1)),
345f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
346f8369d7dSTobias Sarnowski            array('cdata',array(' B')),
347f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
348f8369d7dSTobias Sarnowski            array('listitem_close',array()),
349f8369d7dSTobias Sarnowski            array('listu_close',array()),
350f8369d7dSTobias Sarnowski            array('document_end',array()),
351f8369d7dSTobias Sarnowski        );
352f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
353f8369d7dSTobias Sarnowski    }
354f8369d7dSTobias Sarnowski
355f8369d7dSTobias Sarnowski    function testUnorderedListFootnote() {
35636dc94bbSAndreas Gohr        $this->P->addMode('listblock',new Listblock());
35736dc94bbSAndreas Gohr        $this->P->addMode('footnote',new Footnote());
358f8369d7dSTobias Sarnowski        $this->P->parse('
359f8369d7dSTobias Sarnowski  *((A))
360f8369d7dSTobias Sarnowski    *(( B
361f8369d7dSTobias Sarnowski  * C ))
362f8369d7dSTobias Sarnowski
363f8369d7dSTobias Sarnowski');
364f8369d7dSTobias Sarnowski        $calls = array (
365f8369d7dSTobias Sarnowski            array('document_start',array()),
366f8369d7dSTobias Sarnowski            array('listu_open',array()),
3675c2aad12SAndreas Gohr            array('listitem_open',array(1,Lists::NODE)),
368f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
369f8369d7dSTobias Sarnowski            array('nest', array( array(
370f8369d7dSTobias Sarnowski                array('footnote_open',array()),
371f8369d7dSTobias Sarnowski                array('cdata',array("A")),
372f8369d7dSTobias Sarnowski                array('footnote_close',array())
373f8369d7dSTobias Sarnowski            ))),
374f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
375f8369d7dSTobias Sarnowski            array('listu_open',array()),
376f8369d7dSTobias Sarnowski            array('listitem_open',array(2)),
377f8369d7dSTobias Sarnowski            array('listcontent_open',array()),
378f8369d7dSTobias Sarnowski            array('nest', array( array(
379f8369d7dSTobias Sarnowski                array('footnote_open',array()),
380f8369d7dSTobias Sarnowski                array('cdata',array(" B")),
381f8369d7dSTobias Sarnowski                array('listu_open',array()),
382f8369d7dSTobias Sarnowski                array('listitem_open',array(1)),
383f8369d7dSTobias Sarnowski                array('listcontent_open',array()),
384f8369d7dSTobias Sarnowski                array('cdata',array(" C )) ")),
385f8369d7dSTobias Sarnowski                array('listcontent_close',array()),
386f8369d7dSTobias Sarnowski                array('listitem_close',array()),
387f8369d7dSTobias Sarnowski                array('listu_close',array()),
388f8369d7dSTobias Sarnowski                array('cdata',array("\n\n")),
389f8369d7dSTobias Sarnowski                array('footnote_close',array())
390f8369d7dSTobias Sarnowski            ))),
391f8369d7dSTobias Sarnowski            array('listcontent_close',array()),
392f8369d7dSTobias Sarnowski            array('listitem_close',array()),
393f8369d7dSTobias Sarnowski            array('listu_close',array()),
394f8369d7dSTobias Sarnowski            array('listitem_close',array()),
395f8369d7dSTobias Sarnowski            array('listu_close',array()),
396f8369d7dSTobias Sarnowski            array('document_end',array())
397f8369d7dSTobias Sarnowski        );
398f8369d7dSTobias Sarnowski
399f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
400f8369d7dSTobias Sarnowski    }
401f8369d7dSTobias Sarnowski}
402f8369d7dSTobias Sarnowski
403