xref: /dokuwiki/_test/tests/inc/parser/parser_eol.test.php (revision f8369d7d6e37248d6523fdac6e1d760fca4f1b52)
1*f8369d7dSTobias Sarnowski<?php
2*f8369d7dSTobias Sarnowskirequire_once 'parser.inc.php';
3*f8369d7dSTobias Sarnowski
4*f8369d7dSTobias Sarnowskiclass TestOfDoku_Parser_Eol extends TestOfDoku_Parser {
5*f8369d7dSTobias Sarnowski
6*f8369d7dSTobias Sarnowski    function testEol() {
7*f8369d7dSTobias Sarnowski        $this->P->addMode('eol',new Doku_Parser_Mode_Eol());
8*f8369d7dSTobias Sarnowski        $this->P->parse("Foo\nBar");
9*f8369d7dSTobias Sarnowski        $calls = array (
10*f8369d7dSTobias Sarnowski            array('document_start',array()),
11*f8369d7dSTobias Sarnowski            array('p_open',array()),
12*f8369d7dSTobias Sarnowski            array('cdata',array("Foo".DOKU_PARSER_EOL."Bar")),
13*f8369d7dSTobias Sarnowski            array('p_close',array()),
14*f8369d7dSTobias Sarnowski            array('document_end',array()),
15*f8369d7dSTobias Sarnowski        );
16*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
17*f8369d7dSTobias Sarnowski    }
18*f8369d7dSTobias Sarnowski
19*f8369d7dSTobias Sarnowski    function testEolMultiple() {
20*f8369d7dSTobias Sarnowski        $this->P->addMode('eol',new Doku_Parser_Mode_Eol());
21*f8369d7dSTobias Sarnowski        $this->P->parse("Foo\n\nbar\nFoo");
22*f8369d7dSTobias Sarnowski        $calls = array (
23*f8369d7dSTobias Sarnowski            array('document_start',array()),
24*f8369d7dSTobias Sarnowski            array('p_open',array()),
25*f8369d7dSTobias Sarnowski            array('cdata',array("Foo")),
26*f8369d7dSTobias Sarnowski            array('p_close',array()),
27*f8369d7dSTobias Sarnowski            array('p_open',array()),
28*f8369d7dSTobias Sarnowski            array('cdata',array("bar".DOKU_PARSER_EOL."Foo")),
29*f8369d7dSTobias Sarnowski            array('p_close',array()),
30*f8369d7dSTobias Sarnowski            array('document_end',array()),
31*f8369d7dSTobias Sarnowski        );
32*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
33*f8369d7dSTobias Sarnowski    }
34*f8369d7dSTobias Sarnowski
35*f8369d7dSTobias Sarnowski    function testWinEol() {
36*f8369d7dSTobias Sarnowski        $this->P->addMode('eol',new Doku_Parser_Mode_Eol());
37*f8369d7dSTobias Sarnowski        $this->P->parse("Foo\r\nBar");
38*f8369d7dSTobias Sarnowski        $calls = array (
39*f8369d7dSTobias Sarnowski            array('document_start',array()),
40*f8369d7dSTobias Sarnowski            array('p_open',array()),
41*f8369d7dSTobias Sarnowski            array('cdata',array("Foo".DOKU_PARSER_EOL."Bar")),
42*f8369d7dSTobias Sarnowski            array('p_close',array()),
43*f8369d7dSTobias Sarnowski            array('document_end',array()),
44*f8369d7dSTobias Sarnowski        );
45*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
46*f8369d7dSTobias Sarnowski    }
47*f8369d7dSTobias Sarnowski
48*f8369d7dSTobias Sarnowski    function testLinebreak() {
49*f8369d7dSTobias Sarnowski        $this->P->addMode('linebreak',new Doku_Parser_Mode_Linebreak());
50*f8369d7dSTobias Sarnowski        $this->P->parse('Foo\\\\ Bar');
51*f8369d7dSTobias Sarnowski        $calls = array (
52*f8369d7dSTobias Sarnowski            array('document_start',array()),
53*f8369d7dSTobias Sarnowski            array('p_open',array()),
54*f8369d7dSTobias Sarnowski            array('cdata',array("\nFoo")),
55*f8369d7dSTobias Sarnowski            array('linebreak',array()),
56*f8369d7dSTobias Sarnowski            array('cdata',array("Bar")),
57*f8369d7dSTobias Sarnowski            array('p_close',array()),
58*f8369d7dSTobias Sarnowski            array('document_end',array()),
59*f8369d7dSTobias Sarnowski        );
60*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
61*f8369d7dSTobias Sarnowski    }
62*f8369d7dSTobias Sarnowski
63*f8369d7dSTobias Sarnowski    function testLinebreakPlusEol() {
64*f8369d7dSTobias Sarnowski        $this->P->addMode('linebreak',new Doku_Parser_Mode_Linebreak());
65*f8369d7dSTobias Sarnowski        $this->P->addMode('eol',new Doku_Parser_Mode_Eol());
66*f8369d7dSTobias Sarnowski        $this->P->parse('Foo\\\\'."\n\n".'Bar');
67*f8369d7dSTobias Sarnowski
68*f8369d7dSTobias Sarnowski        $calls = array (
69*f8369d7dSTobias Sarnowski            array('document_start',array()),
70*f8369d7dSTobias Sarnowski            array('p_open',array()),
71*f8369d7dSTobias Sarnowski            array('cdata',array("Foo")),
72*f8369d7dSTobias Sarnowski            array('linebreak',array()),
73*f8369d7dSTobias Sarnowski            array('p_close',array()),
74*f8369d7dSTobias Sarnowski            array('p_open',array()),
75*f8369d7dSTobias Sarnowski            array('cdata',array("Bar")),
76*f8369d7dSTobias Sarnowski            array('p_close',array()),
77*f8369d7dSTobias Sarnowski            array('document_end',array()),
78*f8369d7dSTobias Sarnowski        );
79*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
80*f8369d7dSTobias Sarnowski    }
81*f8369d7dSTobias Sarnowski
82*f8369d7dSTobias Sarnowski    function testLinebreakInvalid() {
83*f8369d7dSTobias Sarnowski        $this->P->addMode('linebreak',new Doku_Parser_Mode_Linebreak());
84*f8369d7dSTobias Sarnowski        $this->P->parse('Foo\\\\Bar');
85*f8369d7dSTobias Sarnowski        $calls = array (
86*f8369d7dSTobias Sarnowski            array('document_start',array()),
87*f8369d7dSTobias Sarnowski            array('p_open',array()),
88*f8369d7dSTobias Sarnowski            array('cdata',array("\n".'Foo\\\\Bar')),
89*f8369d7dSTobias Sarnowski            array('p_close',array()),
90*f8369d7dSTobias Sarnowski            array('document_end',array()),
91*f8369d7dSTobias Sarnowski        );
92*f8369d7dSTobias Sarnowski        $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
93*f8369d7dSTobias Sarnowski    }
94*f8369d7dSTobias Sarnowski
95*f8369d7dSTobias Sarnowski}
96*f8369d7dSTobias Sarnowski
97