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