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