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