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