1f8369d7dSTobias Sarnowski<?php 236dc94bbSAndreas Gohr 3*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Eol; 4*be906b56SAndreas Gohruse dokuwiki\Parsing\ParserMode\Linebreak; 536dc94bbSAndreas Gohr 6f8369d7dSTobias Sarnowskirequire_once 'parser.inc.php'; 7f8369d7dSTobias Sarnowski 8f8369d7dSTobias Sarnowskiclass TestOfDoku_Parser_Eol extends TestOfDoku_Parser { 9f8369d7dSTobias Sarnowski 10f8369d7dSTobias Sarnowski function testEol() { 1136dc94bbSAndreas Gohr $this->P->addMode('eol',new Eol()); 12f8369d7dSTobias Sarnowski $this->P->parse("Foo\nBar"); 13f8369d7dSTobias Sarnowski $calls = array ( 14f8369d7dSTobias Sarnowski array('document_start',array()), 15f8369d7dSTobias Sarnowski array('p_open',array()), 16f8369d7dSTobias Sarnowski array('cdata',array("Foo".DOKU_PARSER_EOL."Bar")), 17f8369d7dSTobias Sarnowski array('p_close',array()), 18f8369d7dSTobias Sarnowski array('document_end',array()), 19f8369d7dSTobias Sarnowski ); 20f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 21f8369d7dSTobias Sarnowski } 22f8369d7dSTobias Sarnowski 23f8369d7dSTobias Sarnowski function testEolMultiple() { 2436dc94bbSAndreas Gohr $this->P->addMode('eol',new Eol()); 25f8369d7dSTobias Sarnowski $this->P->parse("Foo\n\nbar\nFoo"); 26f8369d7dSTobias Sarnowski $calls = array ( 27f8369d7dSTobias Sarnowski array('document_start',array()), 28f8369d7dSTobias Sarnowski array('p_open',array()), 29f8369d7dSTobias Sarnowski array('cdata',array("Foo")), 30f8369d7dSTobias Sarnowski array('p_close',array()), 31f8369d7dSTobias Sarnowski array('p_open',array()), 32f8369d7dSTobias Sarnowski array('cdata',array("bar".DOKU_PARSER_EOL."Foo")), 33f8369d7dSTobias Sarnowski array('p_close',array()), 34f8369d7dSTobias Sarnowski array('document_end',array()), 35f8369d7dSTobias Sarnowski ); 36f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 37f8369d7dSTobias Sarnowski } 38f8369d7dSTobias Sarnowski 39f8369d7dSTobias Sarnowski function testWinEol() { 4036dc94bbSAndreas Gohr $this->P->addMode('eol',new Eol()); 41f8369d7dSTobias Sarnowski $this->P->parse("Foo\r\nBar"); 42f8369d7dSTobias Sarnowski $calls = array ( 43f8369d7dSTobias Sarnowski array('document_start',array()), 44f8369d7dSTobias Sarnowski array('p_open',array()), 45f8369d7dSTobias Sarnowski array('cdata',array("Foo".DOKU_PARSER_EOL."Bar")), 46f8369d7dSTobias Sarnowski array('p_close',array()), 47f8369d7dSTobias Sarnowski array('document_end',array()), 48f8369d7dSTobias Sarnowski ); 49f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 50f8369d7dSTobias Sarnowski } 51f8369d7dSTobias Sarnowski 52f8369d7dSTobias Sarnowski function testLinebreak() { 5336dc94bbSAndreas Gohr $this->P->addMode('linebreak',new Linebreak()); 54f8369d7dSTobias Sarnowski $this->P->parse('Foo\\\\ Bar'); 55f8369d7dSTobias Sarnowski $calls = array ( 56f8369d7dSTobias Sarnowski array('document_start',array()), 57f8369d7dSTobias Sarnowski array('p_open',array()), 58f8369d7dSTobias Sarnowski array('cdata',array("\nFoo")), 59f8369d7dSTobias Sarnowski array('linebreak',array()), 60f8369d7dSTobias Sarnowski array('cdata',array("Bar")), 61f8369d7dSTobias Sarnowski array('p_close',array()), 62f8369d7dSTobias Sarnowski array('document_end',array()), 63f8369d7dSTobias Sarnowski ); 64f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 65f8369d7dSTobias Sarnowski } 66f8369d7dSTobias Sarnowski 67f8369d7dSTobias Sarnowski function testLinebreakPlusEol() { 6836dc94bbSAndreas Gohr $this->P->addMode('linebreak',new Linebreak()); 6936dc94bbSAndreas Gohr $this->P->addMode('eol',new Eol()); 70f8369d7dSTobias Sarnowski $this->P->parse('Foo\\\\'."\n\n".'Bar'); 71f8369d7dSTobias Sarnowski 72f8369d7dSTobias Sarnowski $calls = array ( 73f8369d7dSTobias Sarnowski array('document_start',array()), 74f8369d7dSTobias Sarnowski array('p_open',array()), 75f8369d7dSTobias Sarnowski array('cdata',array("Foo")), 76f8369d7dSTobias Sarnowski array('linebreak',array()), 77f8369d7dSTobias Sarnowski array('p_close',array()), 78f8369d7dSTobias Sarnowski array('p_open',array()), 79f8369d7dSTobias Sarnowski array('cdata',array("Bar")), 80f8369d7dSTobias Sarnowski array('p_close',array()), 81f8369d7dSTobias Sarnowski array('document_end',array()), 82f8369d7dSTobias Sarnowski ); 83f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 84f8369d7dSTobias Sarnowski } 85f8369d7dSTobias Sarnowski 86f8369d7dSTobias Sarnowski function testLinebreakInvalid() { 8736dc94bbSAndreas Gohr $this->P->addMode('linebreak',new Linebreak()); 88f8369d7dSTobias Sarnowski $this->P->parse('Foo\\\\Bar'); 89f8369d7dSTobias Sarnowski $calls = array ( 90f8369d7dSTobias Sarnowski array('document_start',array()), 91f8369d7dSTobias Sarnowski array('p_open',array()), 92f8369d7dSTobias Sarnowski array('cdata',array("\n".'Foo\\\\Bar')), 93f8369d7dSTobias Sarnowski array('p_close',array()), 94f8369d7dSTobias Sarnowski array('document_end',array()), 95f8369d7dSTobias Sarnowski ); 96f8369d7dSTobias Sarnowski $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls); 97f8369d7dSTobias Sarnowski } 98f8369d7dSTobias Sarnowski 99f8369d7dSTobias Sarnowski} 100f8369d7dSTobias Sarnowski 101