1*f8369d7dSTobias Sarnowski<?php 2*f8369d7dSTobias Sarnowski 3*f8369d7dSTobias Sarnowskirequire_once DOKU_INC.'inc/utf8.php'; 4*f8369d7dSTobias Sarnowski 5*f8369d7dSTobias Sarnowski// use no mbstring help here 6*f8369d7dSTobias Sarnowskiif(!defined('UTF8_NOMBSTRING')) define('UTF8_NOMBSTRING',1); 7*f8369d7dSTobias Sarnowski 8*f8369d7dSTobias Sarnowskiclass utf8_html_test extends DokuWikiTest { 9*f8369d7dSTobias Sarnowski 10*f8369d7dSTobias Sarnowski function test_from_1byte(){ 11*f8369d7dSTobias Sarnowski $in = 'a'; 12*f8369d7dSTobias Sarnowski $out = 'a'; 13*f8369d7dSTobias Sarnowski $this->assertEquals(utf8_tohtml($in),$out); 14*f8369d7dSTobias Sarnowski } 15*f8369d7dSTobias Sarnowski 16*f8369d7dSTobias Sarnowski function test_from_2byte(){ 17*f8369d7dSTobias Sarnowski $in = "\xc3\xbc"; 18*f8369d7dSTobias Sarnowski $out = 'ü'; 19*f8369d7dSTobias Sarnowski $this->assertEquals(utf8_tohtml($in),$out); 20*f8369d7dSTobias Sarnowski } 21*f8369d7dSTobias Sarnowski 22*f8369d7dSTobias Sarnowski function test_from_3byte(){ 23*f8369d7dSTobias Sarnowski $in = "\xe2\x99\x8a"; 24*f8369d7dSTobias Sarnowski $out = '♊'; 25*f8369d7dSTobias Sarnowski $this->assertEquals(utf8_tohtml($in),$out); 26*f8369d7dSTobias Sarnowski } 27*f8369d7dSTobias Sarnowski 28*f8369d7dSTobias Sarnowski function test_from_4byte(){ 29*f8369d7dSTobias Sarnowski $in = "\xf4\x80\x80\x81"; 30*f8369d7dSTobias Sarnowski $out = '􀀁'; 31*f8369d7dSTobias Sarnowski $this->assertEquals(utf8_tohtml($in),$out); 32*f8369d7dSTobias Sarnowski } 33*f8369d7dSTobias Sarnowski 34*f8369d7dSTobias Sarnowski function test_to_1byte(){ 35*f8369d7dSTobias Sarnowski $out = 'a'; 36*f8369d7dSTobias Sarnowski $in = 'a'; 37*f8369d7dSTobias Sarnowski $this->assertEquals(utf8_unhtml($in),$out); 38*f8369d7dSTobias Sarnowski } 39*f8369d7dSTobias Sarnowski 40*f8369d7dSTobias Sarnowski function test_to_2byte(){ 41*f8369d7dSTobias Sarnowski $out = "\xc3\xbc"; 42*f8369d7dSTobias Sarnowski $in = 'ü'; 43*f8369d7dSTobias Sarnowski $this->assertEquals(utf8_unhtml($in),$out); 44*f8369d7dSTobias Sarnowski } 45*f8369d7dSTobias Sarnowski 46*f8369d7dSTobias Sarnowski function test_to_3byte(){ 47*f8369d7dSTobias Sarnowski $out = "\xe2\x99\x8a"; 48*f8369d7dSTobias Sarnowski $in = '♊'; 49*f8369d7dSTobias Sarnowski $this->assertEquals(utf8_unhtml($in),$out); 50*f8369d7dSTobias Sarnowski } 51*f8369d7dSTobias Sarnowski 52*f8369d7dSTobias Sarnowski function test_to_4byte(){ 53*f8369d7dSTobias Sarnowski $out = "\xf4\x80\x80\x81"; 54*f8369d7dSTobias Sarnowski $in = '􀀁'; 55*f8369d7dSTobias Sarnowski $this->assertEquals(utf8_unhtml($in),$out); 56*f8369d7dSTobias Sarnowski } 57*f8369d7dSTobias Sarnowski 58*f8369d7dSTobias Sarnowski function test_without_entities(){ 59*f8369d7dSTobias Sarnowski $out = '&#38;&#38;'; 60*f8369d7dSTobias Sarnowski $in = '&#38;&amp;#38;'; 61*f8369d7dSTobias Sarnowski $this->assertEquals(utf8_unhtml($in),$out); 62*f8369d7dSTobias Sarnowski } 63*f8369d7dSTobias Sarnowski 64*f8369d7dSTobias Sarnowski function test_with_entities(){ 65*f8369d7dSTobias Sarnowski $out = '&&#38;'; 66*f8369d7dSTobias Sarnowski $in = '&#38;&amp;#38;'; 67*f8369d7dSTobias Sarnowski $this->assertEquals(utf8_unhtml($in,HTML_ENTITIES),$out); 68*f8369d7dSTobias Sarnowski } 69*f8369d7dSTobias Sarnowski 70*f8369d7dSTobias Sarnowski} 71*f8369d7dSTobias Sarnowski 72*f8369d7dSTobias Sarnowski//Setup VIM: ex: et ts=4 : 73