xref: /dokuwiki/_test/tests/inc/parser/parser_quotes.test.php (revision ff576d9309a9a8c229caea79f2f8509cc986eee4)
1f8369d7dSTobias Sarnowski<?php
2f8369d7dSTobias Sarnowskirequire_once 'parser.inc.php';
3f8369d7dSTobias Sarnowski
4f8369d7dSTobias Sarnowskiclass TestOfDoku_Parser_Quotes extends TestOfDoku_Parser {
5f8369d7dSTobias Sarnowski
6*ff576d93SDominik Eckelmann    function setUp() {
7*ff576d93SDominik Eckelmann        parent::setUp();
8f8369d7dSTobias Sarnowski        global $conf;
9f8369d7dSTobias Sarnowski        $conf['typography'] = 2;
10f8369d7dSTobias Sarnowski    }
11f8369d7dSTobias Sarnowski
12f8369d7dSTobias Sarnowski    function testSingleQuoteOpening() {
13f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
14f8369d7dSTobias Sarnowski        $this->P->parse("Foo 'hello Bar");
15f8369d7dSTobias Sarnowski
16f8369d7dSTobias Sarnowski        $calls = array (
17f8369d7dSTobias Sarnowski            array('document_start',array()),
18f8369d7dSTobias Sarnowski            array('p_open',array()),
19f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo ')),
20f8369d7dSTobias Sarnowski            array('singlequoteopening',array()),
21f8369d7dSTobias Sarnowski            array('cdata',array('hello Bar')),
22f8369d7dSTobias Sarnowski            array('p_close',array()),
23f8369d7dSTobias Sarnowski            array('document_end',array()),
24f8369d7dSTobias Sarnowski        );
25f8369d7dSTobias Sarnowski
26f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
27f8369d7dSTobias Sarnowski    }
28f8369d7dSTobias Sarnowski
29f8369d7dSTobias Sarnowski    function testSingleQuoteOpeningSpecial() {
30f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
31f8369d7dSTobias Sarnowski        $this->P->parse("Foo said:'hello Bar");
32f8369d7dSTobias Sarnowski
33f8369d7dSTobias Sarnowski        $calls = array (
34f8369d7dSTobias Sarnowski            array('document_start',array()),
35f8369d7dSTobias Sarnowski            array('p_open',array()),
36f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo said:')),
37f8369d7dSTobias Sarnowski            array('singlequoteopening',array()),
38f8369d7dSTobias Sarnowski            array('cdata',array('hello Bar')),
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 testSingleQuoteClosing() {
47f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
48f8369d7dSTobias Sarnowski        $this->P->parse("Foo hello' Bar");
49f8369d7dSTobias Sarnowski
50f8369d7dSTobias Sarnowski        $calls = array (
51f8369d7dSTobias Sarnowski            array('document_start',array()),
52f8369d7dSTobias Sarnowski            array('p_open',array()),
53f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo hello')),
54f8369d7dSTobias Sarnowski            array('singlequoteclosing',array()),
55f8369d7dSTobias Sarnowski            array('cdata',array(' Bar')),
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 testSingleQuoteClosingSpecial() {
64f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
65f8369d7dSTobias Sarnowski        $this->P->parse("Foo hello') Bar");
66f8369d7dSTobias Sarnowski
67f8369d7dSTobias Sarnowski        $calls = array (
68f8369d7dSTobias Sarnowski            array('document_start',array()),
69f8369d7dSTobias Sarnowski            array('p_open',array()),
70f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo hello')),
71f8369d7dSTobias Sarnowski            array('singlequoteclosing',array()),
72f8369d7dSTobias Sarnowski            array('cdata',array(') Bar')),
73f8369d7dSTobias Sarnowski            array('p_close',array()),
74f8369d7dSTobias Sarnowski            array('document_end',array()),
75f8369d7dSTobias Sarnowski        );
76f8369d7dSTobias Sarnowski
77f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
78f8369d7dSTobias Sarnowski    }
79f8369d7dSTobias Sarnowski
80f8369d7dSTobias Sarnowski    function testSingleQuotes() {
81f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
82f8369d7dSTobias Sarnowski        $this->P->parse("Foo 'hello' Bar");
83f8369d7dSTobias Sarnowski
84f8369d7dSTobias Sarnowski        $calls = array (
85f8369d7dSTobias Sarnowski            array('document_start',array()),
86f8369d7dSTobias Sarnowski            array('p_open',array()),
87f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo ')),
88f8369d7dSTobias Sarnowski            array('singlequoteopening',array()),
89f8369d7dSTobias Sarnowski            array('cdata',array('hello')),
90f8369d7dSTobias Sarnowski            array('singlequoteclosing',array()),
91f8369d7dSTobias Sarnowski            array('cdata',array(' Bar')),
92f8369d7dSTobias Sarnowski            array('p_close',array()),
93f8369d7dSTobias Sarnowski            array('document_end',array()),
94f8369d7dSTobias Sarnowski        );
95f8369d7dSTobias Sarnowski
96f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
97f8369d7dSTobias Sarnowski    }
98f8369d7dSTobias Sarnowski
99f8369d7dSTobias Sarnowski    function testApostrophe() {
100f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
101f8369d7dSTobias Sarnowski        $this->P->parse("hey it's fine weather today");
102f8369d7dSTobias Sarnowski
103f8369d7dSTobias Sarnowski        $calls = array (
104f8369d7dSTobias Sarnowski            array('document_start',array()),
105f8369d7dSTobias Sarnowski            array('p_open',array()),
106f8369d7dSTobias Sarnowski            array('cdata',array("\n".'hey it')),
107f8369d7dSTobias Sarnowski            array('apostrophe',array()),
108f8369d7dSTobias Sarnowski            array('cdata',array('s fine weather today')),
109f8369d7dSTobias Sarnowski            array('p_close',array()),
110f8369d7dSTobias Sarnowski            array('document_end',array()),
111f8369d7dSTobias Sarnowski        );
112f8369d7dSTobias Sarnowski
113f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
114f8369d7dSTobias Sarnowski    }
115f8369d7dSTobias Sarnowski
116f8369d7dSTobias Sarnowski
117f8369d7dSTobias Sarnowski    function testSingleQuotesSpecial() {
118f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
119f8369d7dSTobias Sarnowski        $this->P->parse("Foo ('hello') Bar");
120f8369d7dSTobias Sarnowski
121f8369d7dSTobias Sarnowski        $calls = array (
122f8369d7dSTobias Sarnowski            array('document_start',array()),
123f8369d7dSTobias Sarnowski            array('p_open',array()),
124f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo (')),
125f8369d7dSTobias Sarnowski            array('singlequoteopening',array()),
126f8369d7dSTobias Sarnowski            array('cdata',array('hello')),
127f8369d7dSTobias Sarnowski            array('singlequoteclosing',array()),
128f8369d7dSTobias Sarnowski            array('cdata',array(') Bar')),
129f8369d7dSTobias Sarnowski            array('p_close',array()),
130f8369d7dSTobias Sarnowski            array('document_end',array()),
131f8369d7dSTobias Sarnowski        );
132f8369d7dSTobias Sarnowski
133f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
134f8369d7dSTobias Sarnowski    }
135f8369d7dSTobias Sarnowski
136f8369d7dSTobias Sarnowski    function testDoubleQuoteOpening() {
137f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
138f8369d7dSTobias Sarnowski        $this->P->parse('Foo "hello Bar');
139f8369d7dSTobias Sarnowski
140f8369d7dSTobias Sarnowski        $calls = array (
141f8369d7dSTobias Sarnowski            array('document_start',array()),
142f8369d7dSTobias Sarnowski            array('p_open',array()),
143f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo ')),
144f8369d7dSTobias Sarnowski            array('doublequoteopening',array()),
145f8369d7dSTobias Sarnowski            array('cdata',array('hello Bar')),
146f8369d7dSTobias Sarnowski            array('p_close',array()),
147f8369d7dSTobias Sarnowski            array('document_end',array()),
148f8369d7dSTobias Sarnowski        );
149f8369d7dSTobias Sarnowski
150f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
151f8369d7dSTobias Sarnowski    }
152f8369d7dSTobias Sarnowski
153f8369d7dSTobias Sarnowski    function testDoubleQuoteOpeningSpecial() {
154f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
155f8369d7dSTobias Sarnowski        $this->P->parse('Foo said:"hello Bar');
156f8369d7dSTobias Sarnowski
157f8369d7dSTobias Sarnowski        $calls = array (
158f8369d7dSTobias Sarnowski            array('document_start',array()),
159f8369d7dSTobias Sarnowski            array('p_open',array()),
160f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo said:')),
161f8369d7dSTobias Sarnowski            array('doublequoteopening',array()),
162f8369d7dSTobias Sarnowski            array('cdata',array('hello Bar')),
163f8369d7dSTobias Sarnowski            array('p_close',array()),
164f8369d7dSTobias Sarnowski            array('document_end',array()),
165f8369d7dSTobias Sarnowski        );
166f8369d7dSTobias Sarnowski
167f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
168f8369d7dSTobias Sarnowski    }
169f8369d7dSTobias Sarnowski
170f8369d7dSTobias Sarnowski    function testDoubleQuoteClosing() {
171f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
172f8369d7dSTobias Sarnowski        $this->P->parse('Foo hello" Bar');
173f8369d7dSTobias Sarnowski
174f8369d7dSTobias Sarnowski        $calls = array (
175f8369d7dSTobias Sarnowski            array('document_start',array()),
176f8369d7dSTobias Sarnowski            array('p_open',array()),
177f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo hello')),
178f8369d7dSTobias Sarnowski            array('doublequoteclosing',array()),
179f8369d7dSTobias Sarnowski            array('cdata',array(' Bar')),
180f8369d7dSTobias Sarnowski            array('p_close',array()),
181f8369d7dSTobias Sarnowski            array('document_end',array()),
182f8369d7dSTobias Sarnowski        );
183f8369d7dSTobias Sarnowski
184f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
185f8369d7dSTobias Sarnowski    }
186f8369d7dSTobias Sarnowski
187f8369d7dSTobias Sarnowski    function testDoubleQuoteClosingSpecial() {
188f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
189f8369d7dSTobias Sarnowski        $this->P->parse('Foo hello") Bar');
190f8369d7dSTobias Sarnowski
191f8369d7dSTobias Sarnowski        $calls = array (
192f8369d7dSTobias Sarnowski            array('document_start',array()),
193f8369d7dSTobias Sarnowski            array('p_open',array()),
194f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo hello')),
195f8369d7dSTobias Sarnowski            array('doublequoteclosing',array()),
196f8369d7dSTobias Sarnowski            array('cdata',array(') Bar')),
197f8369d7dSTobias Sarnowski            array('p_close',array()),
198f8369d7dSTobias Sarnowski            array('document_end',array()),
199f8369d7dSTobias Sarnowski        );
200f8369d7dSTobias Sarnowski
201f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
202f8369d7dSTobias Sarnowski    }
203f8369d7dSTobias Sarnowski
204f8369d7dSTobias Sarnowski    function testDoubleQuotes() {
205f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
206f8369d7dSTobias Sarnowski        $this->P->parse('Foo "hello" Bar');
207f8369d7dSTobias Sarnowski
208f8369d7dSTobias Sarnowski        $calls = array (
209f8369d7dSTobias Sarnowski            array('document_start',array()),
210f8369d7dSTobias Sarnowski            array('p_open',array()),
211f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo ')),
212f8369d7dSTobias Sarnowski            array('doublequoteopening',array()),
213f8369d7dSTobias Sarnowski            array('cdata',array('hello')),
214f8369d7dSTobias Sarnowski            array('doublequoteclosing',array()),
215f8369d7dSTobias Sarnowski            array('cdata',array(' Bar')),
216f8369d7dSTobias Sarnowski            array('p_close',array()),
217f8369d7dSTobias Sarnowski            array('document_end',array()),
218f8369d7dSTobias Sarnowski        );
219f8369d7dSTobias Sarnowski
220f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
221f8369d7dSTobias Sarnowski    }
222f8369d7dSTobias Sarnowski
223f8369d7dSTobias Sarnowski    function testDoubleQuotesSpecial() {
224f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
225f8369d7dSTobias Sarnowski        $this->P->parse('Foo ("hello") Bar');
226f8369d7dSTobias Sarnowski
227f8369d7dSTobias Sarnowski        $calls = array (
228f8369d7dSTobias Sarnowski            array('document_start',array()),
229f8369d7dSTobias Sarnowski            array('p_open',array()),
230f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo (')),
231f8369d7dSTobias Sarnowski            array('doublequoteopening',array()),
232f8369d7dSTobias Sarnowski            array('cdata',array('hello')),
233f8369d7dSTobias Sarnowski            array('doublequoteclosing',array()),
234f8369d7dSTobias Sarnowski            array('cdata',array(') Bar')),
235f8369d7dSTobias Sarnowski            array('p_close',array()),
236f8369d7dSTobias Sarnowski            array('document_end',array()),
237f8369d7dSTobias Sarnowski        );
238f8369d7dSTobias Sarnowski
239f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
240f8369d7dSTobias Sarnowski    }
241f8369d7dSTobias Sarnowski
242f8369d7dSTobias Sarnowski    function testAllQuotes() {
243f8369d7dSTobias Sarnowski        $this->P->addMode('quotes',new Doku_Parser_Mode_Quotes());
244f8369d7dSTobias Sarnowski        $this->P->parse('There was written "He thought \'It\'s a man\'s world\'".');
245f8369d7dSTobias Sarnowski
246f8369d7dSTobias Sarnowski        $calls = array (
247f8369d7dSTobias Sarnowski            array('document_start',array()),
248f8369d7dSTobias Sarnowski            array('p_open',array()),
249f8369d7dSTobias Sarnowski            array('cdata',array("\n".'There was written ')),
250f8369d7dSTobias Sarnowski            array('doublequoteopening',array()),
251f8369d7dSTobias Sarnowski            array('cdata',array('He thought ')),
252f8369d7dSTobias Sarnowski            array('singlequoteopening',array()),
253f8369d7dSTobias Sarnowski            array('cdata',array('It')),
254f8369d7dSTobias Sarnowski            array('apostrophe',array()),
255f8369d7dSTobias Sarnowski            array('cdata',array('s a man')),
256f8369d7dSTobias Sarnowski            array('apostrophe',array()),
257f8369d7dSTobias Sarnowski            array('cdata',array('s world')),
258f8369d7dSTobias Sarnowski            array('singlequoteclosing',array()),
259f8369d7dSTobias Sarnowski            array('doublequoteclosing',array()),
260f8369d7dSTobias Sarnowski            array('cdata',array(".")),
261f8369d7dSTobias Sarnowski            array('p_close',array()),
262f8369d7dSTobias Sarnowski            array('document_end',array()),
263f8369d7dSTobias Sarnowski        );
264f8369d7dSTobias Sarnowski
265f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
266f8369d7dSTobias Sarnowski    }
267f8369d7dSTobias Sarnowski
268f8369d7dSTobias Sarnowski}
269f8369d7dSTobias Sarnowski
270