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