1<?php
2
3use dokuwiki\Parsing\ParserMode\Eol;
4use dokuwiki\Parsing\ParserMode\Quote;
5
6require_once 'parser.inc.php';
7
8class TestOfDoku_Parser_Quote extends TestOfDoku_Parser {
9
10    function testQuote() {
11        $this->P->addMode('quote',new Quote());
12        $this->P->parse("abc\n> def\n>>ghi\nklm");
13        $calls = array (
14            array('document_start',array()),
15            array('p_open',array()),
16            array('cdata',array("\nabc")),
17            array('p_close',array()),
18            array('quote_open',array()),
19            array('cdata',array(" def")),
20            array('quote_open',array()),
21            array('cdata',array("ghi")),
22            array('quote_close',array()),
23            array('quote_close',array()),
24            array('p_open',array()),
25            array('cdata',array("klm")),
26            array('p_close',array()),
27            array('document_end',array()),
28
29        );
30        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
31    }
32
33    function testQuoteWinCr() {
34        $this->P->addMode('quote',new Quote());
35        $this->P->parse("abc\r\n> def\r\n>>ghi\r\nklm");
36        $calls = array (
37            array('document_start',array()),
38            array('p_open',array()),
39            array('cdata',array("\nabc")),
40            array('p_close',array()),
41            array('quote_open',array()),
42            array('cdata',array(" def")),
43            array('quote_open',array()),
44            array('cdata',array("ghi")),
45            array('quote_close',array()),
46            array('quote_close',array()),
47            array('p_open',array()),
48            array('cdata',array("klm")),
49            array('p_close',array()),
50            array('document_end',array()),
51
52        );
53        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
54    }
55
56    function testQuoteMinumumContext() {
57        $this->P->addMode('quote',new Quote());
58        $this->P->parse("\n> def\n>>ghi\n ");
59        $calls = array (
60            array('document_start',array()),
61            array('quote_open',array()),
62            array('cdata',array(" def")),
63            array('quote_open',array()),
64            array('cdata',array("ghi")),
65            array('quote_close',array()),
66            array('quote_close',array()),
67            array('document_end',array()),
68
69        );
70        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
71    }
72
73    function testQuoteEol() {
74        $this->P->addMode('quote',new Quote());
75        $this->P->addMode('eol',new Eol());
76        $this->P->parse("abc\n> def\n>>ghi\nklm");
77        $calls = array (
78            array('document_start',array()),
79            array('p_open',array()),
80            array('cdata',array("abc")),
81            array('p_close',array()),
82            array('quote_open',array()),
83            array('cdata',array(" def")),
84            array('quote_open',array()),
85            array('cdata',array("ghi")),
86            array('quote_close',array()),
87            array('quote_close',array()),
88            array('p_open',array()),
89            array('cdata',array("klm")),
90            array('p_close',array()),
91            array('document_end',array()),
92
93        );
94        $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
95    }
96
97}
98
99