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