[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

/_test/tests/inc/parser/ -> parser_eol.test.php (source)

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