xref: /dokuwiki/_test/tests/inc/utf8_html.test.php (revision f8369d7d6e37248d6523fdac6e1d760fca4f1b52)
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 = '&#252;';
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 = '&#x264a;';
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 = '&#x100001;';
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 = '&#252;';
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 = '&#x264a;';
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 = '&#x100001;';
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  = '&amp;#38;&amp;#38;';
60*f8369d7dSTobias Sarnowski        $in = '&amp;#38;&#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;&amp;#38;';
66*f8369d7dSTobias Sarnowski        $in = '&amp;#38;&#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