UnitTestCase('TestOfDoku_Parser_i18n'); } function testFormatting() { $formats = array ( 'strong', 'emphasis', 'underline', 'monospace', 'subscript', 'superscript', 'deleted', ); foreach ( $formats as $format ) { $this->P->addMode($format,new Doku_Parser_Mode_Formatting($format)); } $this->P->parse("I**ñ**t__ë__r//n//âtiôn''à''lizætiøn"); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\nI")), array('strong_open',array()), array('cdata',array('ñ')), array('strong_close',array()), array('cdata',array('t')), array('underline_open',array()), array('cdata',array('ë')), array('underline_close',array()), array('cdata',array('r')), array('emphasis_open',array()), array('cdata',array('n')), array('emphasis_close',array()), array('cdata',array('â')), array('superscript_open',array()), array('cdata',array('t')), array('superscript_close',array()), array('cdata',array('i')), array('subscript_open',array()), array('cdata',array('ô')), array('subscript_close',array()), array('cdata',array('n')), array('monospace_open',array()), array('cdata',array('à')), array('monospace_close',array()), array('cdata',array('liz')), array('deleted_open',array()), array('cdata',array('æ')), array('deleted_close',array()), array('cdata',array("tiøn\n")), array('p_close',array()), array('document_end',array()), ); $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); } function testHeader() { $this->P->addMode('header',new Doku_Parser_Mode_Header()); $this->P->parse("Foo\n ==== Iñtërnâtiônàlizætiøn ==== \n Bar"); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\nFoo\n")), array('p_close',array()), array('header',array(' Iñtërnâtiônàlizætiøn ',3)), array('section_open',array(3)), array('p_open',array()), array('cdata',array(" Bar\n")), array('p_close',array()), array('section_close',array()), array('document_end',array()), ); $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); } function testTable() { $this->P->addMode('table',new Doku_Parser_Mode_Table()); $this->P->parse(' abc | Row 0 Col 1 | Iñtërnâtiônàlizætiøn | Row 0 Col 3 | | Row 1 Col 1 | Iñtërnâtiônàlizætiøn | Row 1 Col 3 | def'); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n\nabc")), array('p_close',array()), array('table_open',array(3,2)), array('tablerow_open',array()), array('tablecell_open',array(1,'left')), array('cdata',array(' Row 0 Col 1')), array('cdata',array(' ')), array('tablecell_close',array()), array('tablecell_open',array(1,'left')), array('cdata',array(' Iñtërnâtiônàlizætiøn')), array('cdata',array(' ')), array('tablecell_close',array()), array('tablecell_open',array(1,'left')), array('cdata',array(' Row 0 Col 3')), array('cdata',array(' ')), array('tablecell_close',array()), array('tablerow_close',array()), array('tablerow_open',array()), array('tablecell_open',array(1,'left')), array('cdata',array(' Row 1 Col 1')), array('cdata',array(' ')), array('tablecell_close',array()), array('tablecell_open',array(1,'left')), array('cdata',array(' Iñtërnâtiônàlizætiøn')), array('cdata',array(' ')), array('tablecell_close',array()), array('tablecell_open',array(1,'left')), array('cdata',array(' Row 1 Col 3')), array('cdata',array(' ')), array('tablecell_close',array()), array('tablerow_close',array()), array('table_close',array()), array('p_open',array()), array('cdata',array('def'."\n")), array('p_close',array()), array('document_end',array()), ); $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); } function testAcronym() { $t = array('Iñtërnâtiônàlizætiøn'); $this->P->addMode('acronym',new Doku_Parser_Mode_Acronym($t)); $this->P->parse("Foo Iñtërnâtiônàlizætiøn Bar"); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\nFoo ")), array('acronym',array('Iñtërnâtiônàlizætiøn')), array('cdata',array(" Bar\n")), array('p_close',array()), array('document_end',array()), ); $this->assertEqual(array_map('stripbyteindex',$this->H->calls),$calls); } function testInterwiki() { $this->P->addMode('internallink',new Doku_Parser_Mode_InternalLink()); $this->P->parse("Foo [[wp>Iñtërnâtiônàlizætiøn|Iñtërnâtiônàlizætiøn]] Bar"); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), 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')), array('cdata',array(' Bar'."\n")), array('p_close',array()), array('document_end',array()), ); $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); } function testInternalLink() { $this->P->addMode('internallink',new Doku_Parser_Mode_InternalLink()); $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"); $calls = array ( array('document_start',array()), array('p_open',array()), array('cdata',array("\n".'Foo ')), array('internallink',array('x:Iñtërnâtiônàlizætiøn:y:foo_bar:z','Iñtërnâtiônàlizætiøn')), array('cdata',array(' Bar'."\n")), array('p_close',array()), array('document_end',array()), ); $this->assertEqual(array_map('stripByteIndex',$this->H->calls),$calls); } } /** * Conditional test runner */ if (!defined('TEST_RUNNING')) { define('TEST_RUNNING', true); $test = &new TestOfDoku_Parser_i18n(); $test->run(new HtmlReporter()); }