xref: /dokuwiki/_test/tests/inc/parser/parser_replacements.test.php (revision be906b566b9bdfd92c032ee07c4fd077d820a8d1)
1f8369d7dSTobias Sarnowski<?php
236dc94bbSAndreas Gohr
3*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Acronym;
4*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Entity;
5*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Hr;
6*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Multiplyentity;
7*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Smiley;
8*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Wordblock;
936dc94bbSAndreas Gohr
10f8369d7dSTobias Sarnowskirequire_once 'parser.inc.php';
11f8369d7dSTobias Sarnowski
12f8369d7dSTobias Sarnowskiclass TestOfDoku_Parser_Replacements extends TestOfDoku_Parser {
13f8369d7dSTobias Sarnowski
14f8369d7dSTobias Sarnowski    function testSingleAcronym() {
1536dc94bbSAndreas Gohr        $this->P->addMode('acronym',new Acronym(array('FOOBAR')));
16f8369d7dSTobias Sarnowski        $this->P->parse('abc FOOBAR xyz');
17f8369d7dSTobias Sarnowski
18f8369d7dSTobias Sarnowski        $calls = array (
19f8369d7dSTobias Sarnowski            array('document_start',array()),
20f8369d7dSTobias Sarnowski            array('p_open',array()),
21f8369d7dSTobias Sarnowski            array('cdata',array("\n".'abc ')),
22f8369d7dSTobias Sarnowski            array('acronym',array('FOOBAR')),
23f8369d7dSTobias Sarnowski            array('cdata',array(' xyz')),
24f8369d7dSTobias Sarnowski            array('p_close',array()),
25f8369d7dSTobias Sarnowski            array('document_end',array()),
26f8369d7dSTobias Sarnowski        );
27f8369d7dSTobias Sarnowski
28f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
29f8369d7dSTobias Sarnowski    }
30f8369d7dSTobias Sarnowski
31f8369d7dSTobias Sarnowski    function testAlmostAnAcronym() {
3236dc94bbSAndreas Gohr        $this->P->addMode('acronym',new Acronym(array('FOOBAR')));
33f8369d7dSTobias Sarnowski        $this->P->parse('abcFOOBARxyz');
34f8369d7dSTobias Sarnowski
35f8369d7dSTobias Sarnowski        $calls = array (
36f8369d7dSTobias Sarnowski            array('document_start',array()),
37f8369d7dSTobias Sarnowski            array('p_open',array()),
38f8369d7dSTobias Sarnowski            array('cdata',array("\n".'abcFOOBARxyz')),
39f8369d7dSTobias Sarnowski            array('p_close',array()),
40f8369d7dSTobias Sarnowski            array('document_end',array()),
41f8369d7dSTobias Sarnowski        );
42f8369d7dSTobias Sarnowski
43f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
44f8369d7dSTobias Sarnowski    }
45f8369d7dSTobias Sarnowski
46f8369d7dSTobias Sarnowski    function testPickAcronymCorrectly() {
4736dc94bbSAndreas Gohr        $this->P->addMode('acronym',new Acronym(array('FOO')));
48f8369d7dSTobias Sarnowski        $this->P->parse('FOOBAR FOO');
49f8369d7dSTobias Sarnowski
50f8369d7dSTobias Sarnowski        $calls = array (
51f8369d7dSTobias Sarnowski            array('document_start',array()),
52f8369d7dSTobias Sarnowski            array('p_open',array()),
53f8369d7dSTobias Sarnowski            array('cdata',array("\n".'FOOBAR ')),
54f8369d7dSTobias Sarnowski            array('acronym',array('FOO')),
55f8369d7dSTobias Sarnowski            array('cdata',array('')),
56f8369d7dSTobias Sarnowski            array('p_close',array()),
57f8369d7dSTobias Sarnowski            array('document_end',array()),
58f8369d7dSTobias Sarnowski        );
59f8369d7dSTobias Sarnowski
60f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
61f8369d7dSTobias Sarnowski    }
62f8369d7dSTobias Sarnowski
63f8369d7dSTobias Sarnowski    function testMultipleAcronyms() {
6436dc94bbSAndreas Gohr        $this->P->addMode('acronym',new Acronym(array('FOO','BAR')));
65f8369d7dSTobias Sarnowski        $this->P->parse('abc FOO def BAR xyz');
66f8369d7dSTobias Sarnowski
67f8369d7dSTobias Sarnowski        $calls = array (
68f8369d7dSTobias Sarnowski            array('document_start',array()),
69f8369d7dSTobias Sarnowski            array('p_open',array()),
70f8369d7dSTobias Sarnowski            array('cdata',array("\n".'abc ')),
71f8369d7dSTobias Sarnowski            array('acronym',array('FOO')),
72f8369d7dSTobias Sarnowski            array('cdata',array(' def ')),
73f8369d7dSTobias Sarnowski            array('acronym',array('BAR')),
74f8369d7dSTobias Sarnowski            array('cdata',array(' xyz')),
75f8369d7dSTobias Sarnowski            array('p_close',array()),
76f8369d7dSTobias Sarnowski            array('document_end',array()),
77f8369d7dSTobias Sarnowski        );
78f8369d7dSTobias Sarnowski
79f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
80f8369d7dSTobias Sarnowski
81f8369d7dSTobias Sarnowski    }
82f8369d7dSTobias Sarnowski
83f8369d7dSTobias Sarnowski    function testMultipleAcronymsWithSubset1() {
8436dc94bbSAndreas Gohr        $this->P->addMode('acronym',new Acronym(array('FOO','A.FOO','FOO.1','A.FOO.1')));
85f8369d7dSTobias Sarnowski        $this->P->parse('FOO A.FOO FOO.1 A.FOO.1');
86f8369d7dSTobias Sarnowski
87f8369d7dSTobias Sarnowski        $calls = array (
88f8369d7dSTobias Sarnowski            array('document_start',array()),
89f8369d7dSTobias Sarnowski            array('p_open',array()),
90f8369d7dSTobias Sarnowski            array('cdata',array("\n")),
91f8369d7dSTobias Sarnowski            array('acronym',array('FOO')),
92f8369d7dSTobias Sarnowski            array('cdata',array(" ")),
93f8369d7dSTobias Sarnowski            array('acronym',array('A.FOO')),
94f8369d7dSTobias Sarnowski            array('cdata',array(" ")),
95f8369d7dSTobias Sarnowski            array('acronym',array('FOO.1')),
96f8369d7dSTobias Sarnowski            array('cdata',array(" ")),
97f8369d7dSTobias Sarnowski            array('acronym',array('A.FOO.1')),
98f8369d7dSTobias Sarnowski            array('cdata',array('')),
99f8369d7dSTobias Sarnowski            array('p_close',array()),
100f8369d7dSTobias Sarnowski            array('document_end',array()),
101f8369d7dSTobias Sarnowski        );
102f8369d7dSTobias Sarnowski
103f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
104f8369d7dSTobias Sarnowski    }
105f8369d7dSTobias Sarnowski
106f8369d7dSTobias Sarnowski    function testMultipleAcronymsWithSubset2() {
10736dc94bbSAndreas Gohr        $this->P->addMode('acronym',new Acronym(array('A.FOO.1','FOO.1','A.FOO','FOO')));
108f8369d7dSTobias Sarnowski        $this->P->parse('FOO A.FOO FOO.1 A.FOO.1');
109f8369d7dSTobias Sarnowski
110f8369d7dSTobias Sarnowski        $calls = array (
111f8369d7dSTobias Sarnowski            array('document_start',array()),
112f8369d7dSTobias Sarnowski            array('p_open',array()),
113f8369d7dSTobias Sarnowski            array('cdata',array("\n")),
114f8369d7dSTobias Sarnowski            array('acronym',array('FOO')),
115f8369d7dSTobias Sarnowski            array('cdata',array(" ")),
116f8369d7dSTobias Sarnowski            array('acronym',array('A.FOO')),
117f8369d7dSTobias Sarnowski            array('cdata',array(" ")),
118f8369d7dSTobias Sarnowski            array('acronym',array('FOO.1')),
119f8369d7dSTobias Sarnowski            array('cdata',array(" ")),
120f8369d7dSTobias Sarnowski            array('acronym',array('A.FOO.1')),
121f8369d7dSTobias Sarnowski            array('cdata',array('')),
122f8369d7dSTobias Sarnowski            array('p_close',array()),
123f8369d7dSTobias Sarnowski            array('document_end',array()),
124f8369d7dSTobias Sarnowski        );
125f8369d7dSTobias Sarnowski
126f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
127f8369d7dSTobias Sarnowski    }
128f8369d7dSTobias Sarnowski
129f8369d7dSTobias Sarnowski    function testSingleSmileyFail() {
13036dc94bbSAndreas Gohr        $this->P->addMode('smiley',new Smiley(array(':-)')));
131f8369d7dSTobias Sarnowski        $this->P->parse('abc:-)xyz');
132f8369d7dSTobias Sarnowski
133f8369d7dSTobias Sarnowski        $calls = array (
134f8369d7dSTobias Sarnowski            array('document_start',array()),
135f8369d7dSTobias Sarnowski            array('p_open',array()),
136f8369d7dSTobias Sarnowski            array('cdata',array("\nabc:-)xyz")),
137f8369d7dSTobias Sarnowski            array('p_close',array()),
138f8369d7dSTobias Sarnowski            array('document_end',array()),
139f8369d7dSTobias Sarnowski        );
140f8369d7dSTobias Sarnowski
141f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
142f8369d7dSTobias Sarnowski    }
143f8369d7dSTobias Sarnowski
144f8369d7dSTobias Sarnowski    function testSingleSmiley() {
14536dc94bbSAndreas Gohr        $this->P->addMode('smiley',new Smiley(array(':-)')));
146f8369d7dSTobias Sarnowski        $this->P->parse('abc :-) xyz');
147f8369d7dSTobias Sarnowski
148f8369d7dSTobias Sarnowski        $calls = array (
149f8369d7dSTobias Sarnowski            array('document_start',array()),
150f8369d7dSTobias Sarnowski            array('p_open',array()),
151f8369d7dSTobias Sarnowski            array('cdata',array("\n".'abc ')),
152f8369d7dSTobias Sarnowski            array('smiley',array(':-)')),
153f8369d7dSTobias Sarnowski            array('cdata',array(' xyz')),
154f8369d7dSTobias Sarnowski            array('p_close',array()),
155f8369d7dSTobias Sarnowski            array('document_end',array()),
156f8369d7dSTobias Sarnowski        );
157f8369d7dSTobias Sarnowski
158f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
159f8369d7dSTobias Sarnowski    }
160f8369d7dSTobias Sarnowski
161f8369d7dSTobias Sarnowski    function testMultipleSmileysFail() {
16236dc94bbSAndreas Gohr        $this->P->addMode('smiley',new Smiley(array(':-)','^_^')));
163f8369d7dSTobias Sarnowski        $this->P->parse('abc:-)x^_^yz');
164f8369d7dSTobias Sarnowski
165f8369d7dSTobias Sarnowski        $calls = array (
166f8369d7dSTobias Sarnowski            array('document_start',array()),
167f8369d7dSTobias Sarnowski            array('p_open',array()),
168f8369d7dSTobias Sarnowski            array('cdata',array("\nabc:-)x^_^yz")),
169f8369d7dSTobias Sarnowski            array('p_close',array()),
170f8369d7dSTobias Sarnowski            array('document_end',array()),
171f8369d7dSTobias Sarnowski        );
172f8369d7dSTobias Sarnowski
173f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
174f8369d7dSTobias Sarnowski    }
175f8369d7dSTobias Sarnowski
176f8369d7dSTobias Sarnowski    function testMultipleSmileys() {
17736dc94bbSAndreas Gohr        $this->P->addMode('smiley',new Smiley(array(':-)','^_^')));
178f8369d7dSTobias Sarnowski        $this->P->parse('abc :-) x ^_^ yz');
179f8369d7dSTobias Sarnowski
180f8369d7dSTobias Sarnowski        $calls = array (
181f8369d7dSTobias Sarnowski            array('document_start',array()),
182f8369d7dSTobias Sarnowski            array('p_open',array()),
183f8369d7dSTobias Sarnowski            array('cdata',array("\n".'abc ')),
184f8369d7dSTobias Sarnowski            array('smiley',array(':-)')),
185f8369d7dSTobias Sarnowski            array('cdata',array(' x ')),
186f8369d7dSTobias Sarnowski            array('smiley',array('^_^')),
187f8369d7dSTobias Sarnowski            array('cdata',array(' yz')),
188f8369d7dSTobias Sarnowski            array('p_close',array()),
189f8369d7dSTobias Sarnowski            array('document_end',array()),
190f8369d7dSTobias Sarnowski        );
191f8369d7dSTobias Sarnowski
192f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
193f8369d7dSTobias Sarnowski    }
194f8369d7dSTobias Sarnowski
195f8369d7dSTobias Sarnowski    function testBackslashSmileyFail() {
196f8369d7dSTobias Sarnowski        // This smiley is really :-\\ but escaping makes like interesting
19736dc94bbSAndreas Gohr        $this->P->addMode('smiley',new Smiley(array(':-\\\\')));
198f8369d7dSTobias Sarnowski        $this->P->parse('abc:-\\\xyz');
199f8369d7dSTobias Sarnowski
200f8369d7dSTobias Sarnowski        $calls = array (
201f8369d7dSTobias Sarnowski            array('document_start',array()),
202f8369d7dSTobias Sarnowski            array('p_open',array()),
203f8369d7dSTobias Sarnowski            array('cdata',array("\nabc".':-\\\\'."xyz")),
204f8369d7dSTobias Sarnowski            array('p_close',array()),
205f8369d7dSTobias Sarnowski            array('document_end',array()),
206f8369d7dSTobias Sarnowski        );
207f8369d7dSTobias Sarnowski
208f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
209f8369d7dSTobias Sarnowski    }
210f8369d7dSTobias Sarnowski
211f8369d7dSTobias Sarnowski    function testBackslashSmiley() {
212f8369d7dSTobias Sarnowski        // This smiley is really :-\\ but escaping makes like interesting
21336dc94bbSAndreas Gohr        $this->P->addMode('smiley',new Smiley(array(':-\\\\')));
214f8369d7dSTobias Sarnowski        $this->P->parse('abc :-\\\ xyz');
215f8369d7dSTobias Sarnowski
216f8369d7dSTobias Sarnowski        $calls = array (
217f8369d7dSTobias Sarnowski            array('document_start',array()),
218f8369d7dSTobias Sarnowski            array('p_open',array()),
219f8369d7dSTobias Sarnowski            array('cdata',array("\n".'abc ')),
220f8369d7dSTobias Sarnowski            array('smiley',array(':-\\\\')),
221f8369d7dSTobias Sarnowski            array('cdata',array(' xyz')),
222f8369d7dSTobias Sarnowski            array('p_close',array()),
223f8369d7dSTobias Sarnowski            array('document_end',array()),
224f8369d7dSTobias Sarnowski        );
225f8369d7dSTobias Sarnowski
226f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
227f8369d7dSTobias Sarnowski    }
228f8369d7dSTobias Sarnowski
229f8369d7dSTobias Sarnowski    function testSingleWordblock() {
23036dc94bbSAndreas Gohr        $this->P->addMode('wordblock',new Wordblock(array('CAT')));
231f8369d7dSTobias Sarnowski        $this->P->parse('abc CAT xyz');
232f8369d7dSTobias Sarnowski
233f8369d7dSTobias Sarnowski        $calls = array (
234f8369d7dSTobias Sarnowski            array('document_start',array()),
235f8369d7dSTobias Sarnowski            array('p_open',array()),
236f8369d7dSTobias Sarnowski            array('cdata',array("\n".'abc ')),
237f8369d7dSTobias Sarnowski            array('wordblock',array('CAT')),
238f8369d7dSTobias Sarnowski            array('cdata',array(' xyz')),
239f8369d7dSTobias Sarnowski            array('p_close',array()),
240f8369d7dSTobias Sarnowski            array('document_end',array()),
241f8369d7dSTobias Sarnowski        );
242f8369d7dSTobias Sarnowski
243f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
244f8369d7dSTobias Sarnowski    }
245f8369d7dSTobias Sarnowski
246f8369d7dSTobias Sarnowski    function testWordblockCase() {
24736dc94bbSAndreas Gohr        $this->P->addMode('wordblock',new Wordblock(array('CAT')));
248f8369d7dSTobias Sarnowski        $this->P->parse('abc cat xyz');
249f8369d7dSTobias Sarnowski
250f8369d7dSTobias Sarnowski        $calls = array (
251f8369d7dSTobias Sarnowski            array('document_start',array()),
252f8369d7dSTobias Sarnowski            array('p_open',array()),
253f8369d7dSTobias Sarnowski            array('cdata',array("\n".'abc ')),
254f8369d7dSTobias Sarnowski            array('wordblock',array('cat')),
255f8369d7dSTobias Sarnowski            array('cdata',array(' xyz')),
256f8369d7dSTobias Sarnowski            array('p_close',array()),
257f8369d7dSTobias Sarnowski            array('document_end',array()),
258f8369d7dSTobias Sarnowski        );
259f8369d7dSTobias Sarnowski
260f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
261f8369d7dSTobias Sarnowski    }
262f8369d7dSTobias Sarnowski
263f8369d7dSTobias Sarnowski    function testMultipleWordblock() {
26436dc94bbSAndreas Gohr        $this->P->addMode('wordblock',new Wordblock(array('CAT','dog')));
265f8369d7dSTobias Sarnowski        $this->P->parse('abc cat x DOG yz');
266f8369d7dSTobias Sarnowski
267f8369d7dSTobias Sarnowski        $calls = array (
268f8369d7dSTobias Sarnowski            array('document_start',array()),
269f8369d7dSTobias Sarnowski            array('p_open',array()),
270f8369d7dSTobias Sarnowski            array('cdata',array("\n".'abc ')),
271f8369d7dSTobias Sarnowski            array('wordblock',array('cat')),
272f8369d7dSTobias Sarnowski            array('cdata',array(' x ')),
273f8369d7dSTobias Sarnowski            array('wordblock',array('DOG')),
274f8369d7dSTobias Sarnowski            array('cdata',array(' yz')),
275f8369d7dSTobias Sarnowski            array('p_close',array()),
276f8369d7dSTobias Sarnowski            array('document_end',array()),
277f8369d7dSTobias Sarnowski        );
278f8369d7dSTobias Sarnowski
279f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
280f8369d7dSTobias Sarnowski    }
281f8369d7dSTobias Sarnowski
282f8369d7dSTobias Sarnowski    function testSingleEntity() {
28336dc94bbSAndreas Gohr        $this->P->addMode('entity',new Entity(array('->')));
284f8369d7dSTobias Sarnowski        $this->P->parse('x -> y');
285f8369d7dSTobias Sarnowski
286f8369d7dSTobias Sarnowski        $calls = array (
287f8369d7dSTobias Sarnowski            array('document_start',array()),
288f8369d7dSTobias Sarnowski            array('p_open',array()),
289f8369d7dSTobias Sarnowski            array('cdata',array("\n".'x ')),
290f8369d7dSTobias Sarnowski            array('entity',array('->')),
291f8369d7dSTobias Sarnowski            array('cdata',array(' y')),
292f8369d7dSTobias Sarnowski            array('p_close',array()),
293f8369d7dSTobias Sarnowski            array('document_end',array()),
294f8369d7dSTobias Sarnowski        );
295f8369d7dSTobias Sarnowski
296f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
297f8369d7dSTobias Sarnowski    }
298f8369d7dSTobias Sarnowski
299f8369d7dSTobias Sarnowski    function testMultipleEntities() {
30036dc94bbSAndreas Gohr        $this->P->addMode('entity',new Entity(array('->','<-')));
301f8369d7dSTobias Sarnowski        $this->P->parse('x -> y <- z');
302f8369d7dSTobias Sarnowski
303f8369d7dSTobias Sarnowski        $calls = array (
304f8369d7dSTobias Sarnowski            array('document_start',array()),
305f8369d7dSTobias Sarnowski            array('p_open',array()),
306f8369d7dSTobias Sarnowski            array('cdata',array("\n".'x ')),
307f8369d7dSTobias Sarnowski            array('entity',array('->')),
308f8369d7dSTobias Sarnowski            array('cdata',array(' y ')),
309f8369d7dSTobias Sarnowski            array('entity',array('<-')),
310f8369d7dSTobias Sarnowski            array('cdata',array(' z')),
311f8369d7dSTobias Sarnowski            array('p_close',array()),
312f8369d7dSTobias Sarnowski            array('document_end',array()),
313f8369d7dSTobias Sarnowski        );
314f8369d7dSTobias Sarnowski
315f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
316f8369d7dSTobias Sarnowski    }
317f8369d7dSTobias Sarnowski
318f8369d7dSTobias Sarnowski    function testMultiplyEntity() {
31936dc94bbSAndreas Gohr        $this->P->addMode('multiplyentity',new Multiplyentity());
320f8369d7dSTobias Sarnowski        $this->P->parse('Foo 10x20 Bar');
321f8369d7dSTobias Sarnowski
322f8369d7dSTobias Sarnowski        $calls = array (
323f8369d7dSTobias Sarnowski            array('document_start',array()),
324f8369d7dSTobias Sarnowski            array('p_open',array()),
325f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo ')),
326f8369d7dSTobias Sarnowski            array('multiplyentity',array(10,20)),
327f8369d7dSTobias Sarnowski            array('cdata',array(' Bar')),
328f8369d7dSTobias Sarnowski            array('p_close',array()),
329f8369d7dSTobias Sarnowski            array('document_end',array()),
330f8369d7dSTobias Sarnowski        );
331f8369d7dSTobias Sarnowski
332f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
333f8369d7dSTobias Sarnowski    }
334f8369d7dSTobias Sarnowski
335f8369d7dSTobias Sarnowski    function testMultiplyEntityHex() {
336f8369d7dSTobias Sarnowski    	// the multiply entity pattern should not match hex numbers, eg. 0x123
33736dc94bbSAndreas Gohr        $this->P->addMode('multiplyentity',new Multiplyentity());
338f8369d7dSTobias Sarnowski        $this->P->parse('Foo 0x123 Bar');
339f8369d7dSTobias Sarnowski
340f8369d7dSTobias Sarnowski        $calls = array (
341f8369d7dSTobias Sarnowski            array('document_start',array()),
342f8369d7dSTobias Sarnowski            array('p_open',array()),
343f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo 0x123 Bar')),
344f8369d7dSTobias Sarnowski            array('p_close',array()),
345f8369d7dSTobias Sarnowski            array('document_end',array()),
346f8369d7dSTobias Sarnowski        );
347f8369d7dSTobias Sarnowski
348f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
349f8369d7dSTobias Sarnowski    }
350f8369d7dSTobias Sarnowski
351f8369d7dSTobias Sarnowski    function testHR() {
35236dc94bbSAndreas Gohr        $this->P->addMode('hr',new Hr());
353f8369d7dSTobias Sarnowski        $this->P->parse("Foo \n ---- \n Bar");
354f8369d7dSTobias Sarnowski
355f8369d7dSTobias Sarnowski        $calls = array (
356f8369d7dSTobias Sarnowski            array('document_start',array()),
357f8369d7dSTobias Sarnowski            array('p_open',array()),
358f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo ')),
359f8369d7dSTobias Sarnowski            array('p_close',array()),
360f8369d7dSTobias Sarnowski            array('hr',array()),
361f8369d7dSTobias Sarnowski            array('p_open',array()),
362f8369d7dSTobias Sarnowski            array('cdata',array("\n Bar")),
363f8369d7dSTobias Sarnowski            array('p_close',array()),
364f8369d7dSTobias Sarnowski            array('document_end',array()),
365f8369d7dSTobias Sarnowski        );
366f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
367f8369d7dSTobias Sarnowski    }
368f8369d7dSTobias Sarnowski
369f8369d7dSTobias Sarnowski    function testHREol() {
37036dc94bbSAndreas Gohr        $this->P->addMode('hr',new Hr());
371f8369d7dSTobias Sarnowski        $this->P->parse("Foo \n----\n Bar");
372f8369d7dSTobias Sarnowski
373f8369d7dSTobias Sarnowski        $calls = array (
374f8369d7dSTobias Sarnowski            array('document_start',array()),
375f8369d7dSTobias Sarnowski            array('p_open',array()),
376f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo ')),
377f8369d7dSTobias Sarnowski            array('p_close',array()),
378f8369d7dSTobias Sarnowski            array('hr',array()),
379f8369d7dSTobias Sarnowski            array('p_open',array()),
380f8369d7dSTobias Sarnowski            array('cdata',array("\n Bar")),
381f8369d7dSTobias Sarnowski            array('p_close',array()),
382f8369d7dSTobias Sarnowski            array('document_end',array()),
383f8369d7dSTobias Sarnowski        );
384f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
385f8369d7dSTobias Sarnowski    }
386f8369d7dSTobias Sarnowski}
387f8369d7dSTobias Sarnowski
388