xref: /dokuwiki/_test/tests/inc/utf8_substr.test.php (revision f8369d7d6e37248d6523fdac6e1d760fca4f1b52)
1*f8369d7dSTobias Sarnowski<?php
2*f8369d7dSTobias Sarnowski// use no mbstring help here
3*f8369d7dSTobias Sarnowskiif(!defined('UTF8_NOMBSTRING')) define('UTF8_NOMBSTRING',1);
4*f8369d7dSTobias Sarnowskirequire_once DOKU_INC.'inc/utf8.php';
5*f8369d7dSTobias Sarnowski
6*f8369d7dSTobias Sarnowskiclass utf8_substr_test extends DokuWikiTest {
7*f8369d7dSTobias Sarnowski
8*f8369d7dSTobias Sarnowski
9*f8369d7dSTobias Sarnowski    function test1(){
10*f8369d7dSTobias Sarnowski        // we test multiple cases here - format: in, offset, length, out
11*f8369d7dSTobias Sarnowski        $tests   = array();
12*f8369d7dSTobias Sarnowski        $tests[] = array('asciistring',2,null,'ciistring');
13*f8369d7dSTobias Sarnowski        $tests[] = array('asciistring',2,4,'ciis');
14*f8369d7dSTobias Sarnowski        $tests[] = array('asciistring',-4,null,'ring');
15*f8369d7dSTobias Sarnowski        $tests[] = array('asciistring',2,-4,'ciist');
16*f8369d7dSTobias Sarnowski        $tests[] = array('asciistring',-6,-2,'stri');
17*f8369d7dSTobias Sarnowski
18*f8369d7dSTobias Sarnowski        $tests[] = array('живπά우리をあöä',2,null,'вπά우리をあöä');
19*f8369d7dSTobias Sarnowski        $tests[] = array('живπά우리をあöä',2,4,'вπά우');
20*f8369d7dSTobias Sarnowski        $tests[] = array('живπά우리をあöä',-4,null,'をあöä');
21*f8369d7dSTobias Sarnowski        $tests[] = array('живπά우리をあöä',2,-4,'вπά우리');
22*f8369d7dSTobias Sarnowski        $tests[] = array('живπά우리をあöä',-6,-2,'우리をあ');
23*f8369d7dSTobias Sarnowski
24*f8369d7dSTobias Sarnowski        foreach($tests as $test){
25*f8369d7dSTobias Sarnowski            $this->assertEquals(utf8_substr($test[0],$test[1],$test[2]),$test[3]);
26*f8369d7dSTobias Sarnowski        }
27*f8369d7dSTobias Sarnowski    }
28*f8369d7dSTobias Sarnowski
29*f8369d7dSTobias Sarnowski    function test2_bug891() {
30*f8369d7dSTobias Sarnowski        // we test multiple cases here - format: in, offset, length, out
31*f8369d7dSTobias Sarnowski        $tests   = array();
32*f8369d7dSTobias Sarnowski
33*f8369d7dSTobias Sarnowski        $str = str_repeat('в',66000).'@@';
34*f8369d7dSTobias Sarnowski        $tests[] = array($str, 65600, 1, 'в');
35*f8369d7dSTobias Sarnowski        $tests[] = array($str,0,66002,$str);
36*f8369d7dSTobias Sarnowski
37*f8369d7dSTobias Sarnowski        foreach($tests as $test){
38*f8369d7dSTobias Sarnowski            $this->assertEquals(utf8_substr($test[0],$test[1],$test[2]),$test[3]);
39*f8369d7dSTobias Sarnowski        }
40*f8369d7dSTobias Sarnowski    }
41*f8369d7dSTobias Sarnowski
42*f8369d7dSTobias Sarnowski}
43*f8369d7dSTobias Sarnowski//Setup VIM: ex: et ts=4 :
44