[ Index ]

PHP Cross Reference of DokuWiki

title

Body

[close]

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

   1  <?php
   2  
   3  use dokuwiki\Parsing\ParserMode\Acronym;
   4  use dokuwiki\Parsing\ParserMode\Formatting;
   5  use dokuwiki\Parsing\ParserMode\Header;
   6  use dokuwiki\Parsing\ParserMode\Internallink;
   7  use dokuwiki\Parsing\ParserMode\Table;
   8  
   9  require_once  'parser.inc.php';
  10  
  11  class TestOfDoku_Parser_i18n extends TestOfDoku_Parser {
  12  
  13      function testFormatting() {
  14          $formats = array (
  15              'strong', 'emphasis', 'underline', 'monospace',
  16              'subscript', 'superscript', 'deleted',
  17          );
  18          foreach ( $formats as $format ) {
  19              $this->P->addMode($format,new Formatting($format));
  20          }
  21          $this->P->parse("I**ñ**t__ë__r//n//â<sup>t</sup>i<sub>ô</sub>n''à''liz<del>æ</del>tiøn");
  22          $calls = array (
  23              array('document_start',array()),
  24              array('p_open',array()),
  25              array('cdata',array("\nI")),
  26              array('strong_open',array()),
  27              array('cdata',array('ñ')),
  28              array('strong_close',array()),
  29              array('cdata',array('t')),
  30              array('underline_open',array()),
  31              array('cdata',array('ë')),
  32              array('underline_close',array()),
  33              array('cdata',array('r')),
  34              array('emphasis_open',array()),
  35              array('cdata',array('n')),
  36              array('emphasis_close',array()),
  37              array('cdata',array('â')),
  38              array('superscript_open',array()),
  39              array('cdata',array('t')),
  40              array('superscript_close',array()),
  41              array('cdata',array('i')),
  42              array('subscript_open',array()),
  43              array('cdata',array('ô')),
  44              array('subscript_close',array()),
  45              array('cdata',array('n')),
  46              array('monospace_open',array()),
  47              array('cdata',array('à')),
  48              array('monospace_close',array()),
  49              array('cdata',array('liz')),
  50              array('deleted_open',array()),
  51              array('cdata',array('æ')),
  52              array('deleted_close',array()),
  53              array('cdata',array("tiøn")),
  54              array('p_close',array()),
  55              array('document_end',array()),
  56          );
  57          $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
  58      }
  59  
  60      function testHeader() {
  61          $this->P->addMode('header',new Header());
  62          $this->P->parse("Foo\n ==== Iñtërnâtiônàlizætiøn ==== \n Bar");
  63          $calls = array (
  64              array('document_start',array()),
  65              array('p_open',array()),
  66              array('cdata',array("\nFoo")),
  67              array('p_close',array()),
  68              array('header',array('Iñtërnâtiônàlizætiøn',3,5)),
  69              array('section_open',array(3)),
  70              array('p_open',array()),
  71              array('cdata',array("\n Bar")),
  72              array('p_close',array()),
  73              array('section_close',array()),
  74              array('document_end',array()),
  75          );
  76          $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
  77      }
  78  
  79      function testTable() {
  80          $this->P->addMode('table',new Table());
  81          $this->P->parse('
  82  abc
  83  | Row 0 Col 1    | Iñtërnâtiônàlizætiøn     | Row 0 Col 3        |
  84  | Row 1 Col 1    | Iñtërnâtiônàlizætiøn     | Row 1 Col 3        |
  85  def');
  86          $calls = array (
  87              array('document_start',array()),
  88              array('p_open',array()),
  89              array('cdata',array("\n\nabc")),
  90              array('p_close',array()),
  91              array('table_open',array(3, 2, 6)),
  92              array('tablerow_open',array()),
  93              array('tablecell_open',array(1,'left',1)),
  94              array('cdata',array(' Row 0 Col 1    ')),
  95              array('tablecell_close',array()),
  96              array('tablecell_open',array(1,'left',1)),
  97              array('cdata',array(' Iñtërnâtiônàlizætiøn     ')),
  98              array('tablecell_close',array()),
  99              array('tablecell_open',array(1,'left',1)),
 100              array('cdata',array(' Row 0 Col 3        ')),
 101              array('tablecell_close',array()),
 102              array('tablerow_close',array()),
 103              array('tablerow_open',array()),
 104              array('tablecell_open',array(1,'left',1)),
 105              array('cdata',array(' Row 1 Col 1    ')),
 106              array('tablecell_close',array()),
 107              array('tablecell_open',array(1,'left',1)),
 108              array('cdata',array(' Iñtërnâtiônàlizætiøn     ')),
 109              array('tablecell_close',array()),
 110              array('tablecell_open',array(1,'left',1)),
 111              array('cdata',array(' Row 1 Col 3        ')),
 112              array('tablecell_close',array()),
 113              array('tablerow_close',array()),
 114              array('table_close',array(153)),
 115              array('p_open',array()),
 116              array('cdata',array('def')),
 117              array('p_close',array()),
 118              array('document_end',array()),
 119          );
 120          $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
 121      }
 122  
 123      function testAcronym() {
 124          $t = array('Iñtërnâtiônàlizætiøn');
 125          $this->P->addMode('acronym',new Acronym($t));
 126          $this->P->parse("Foo Iñtërnâtiônàlizætiøn Bar");
 127          $calls = array (
 128              array('document_start',array()),
 129              array('p_open',array()),
 130              array('cdata',array("\nFoo ")),
 131              array('acronym',array('Iñtërnâtiônàlizætiøn')),
 132              array('cdata',array(" Bar")),
 133              array('p_close',array()),
 134              array('document_end',array()),
 135          );
 136          $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls);
 137      }
 138  
 139      function testInterwiki() {
 140          $this->P->addMode('internallink',new InternalLink());
 141          $this->P->parse("Foo [[wp>Iñtërnâtiônàlizætiøn|Iñtërnâtiônàlizætiøn]] Bar");
 142          $calls = array (
 143              array('document_start',array()),
 144              array('p_open',array()),
 145              array('cdata',array("\n".'Foo ')),
 146              array('interwikilink',array('wp>Iñtërnâtiônàlizætiøn','Iñtërnâtiônàlizætiøn','wp','Iñtërnâtiônàlizætiøn')),
 147              array('cdata',array(' Bar')),
 148              array('p_close',array()),
 149              array('document_end',array()),
 150          );
 151          $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
 152      }
 153  
 154      function testInternalLink() {
 155          $this->P->addMode('internallink',new InternalLink());
 156          $this->P->parse("Foo [[x:Iñtërnâtiônàlizætiøn:y:foo_bar:z|Iñtërnâtiônàlizætiøn]] Bar");
 157          $calls = array (
 158              array('document_start',array()),
 159              array('p_open',array()),
 160              array('cdata',array("\n".'Foo ')),
 161              array('internallink',array('x:Iñtërnâtiônàlizætiøn:y:foo_bar:z','Iñtërnâtiônàlizætiøn')),
 162              array('cdata',array(' Bar')),
 163              array('p_close',array()),
 164              array('document_end',array()),
 165          );
 166          $this->assertEquals(array_map('stripByteIndex',$this->H->calls),$calls);
 167      }
 168  }
 169