1*f8369d7dSTobias Sarnowski<?php 2*f8369d7dSTobias Sarnowski// use no mbstring help here 3*f8369d7dSTobias Sarnowskiif(!defined('UTF8_NOMBSTRING')) define('UTF8_NOMBSTRING',1); 4*f8369d7dSTobias Sarnowski 5*f8369d7dSTobias Sarnowskiclass safeFN_test extends DokuWikiTest { 6*f8369d7dSTobias Sarnowski 7*f8369d7dSTobias Sarnowski 8*f8369d7dSTobias Sarnowski function test1(){ 9*f8369d7dSTobias Sarnowski // we test multiple cases here - format: string, repl, additional, test 10*f8369d7dSTobias Sarnowski $tests = array(); 11*f8369d7dSTobias Sarnowski $tests[] = array('äa.txt', '%5g]a.txt'); 12*f8369d7dSTobias Sarnowski $tests[] = array('ä.', '%5g].'); 13*f8369d7dSTobias Sarnowski $tests[] = array('asciistring','asciistring'); 14*f8369d7dSTobias Sarnowski $tests[] = array('ascii-_/.string','ascii-_/.string'); 15*f8369d7dSTobias Sarnowski $tests[] = array('AName','%x%1a]ame'); 16*f8369d7dSTobias Sarnowski $tests[] = array('A Name','%x%0%1a]ame'); 17*f8369d7dSTobias Sarnowski $tests[] = array('Another...Name','%x]nother...%1a]ame'); 18*f8369d7dSTobias Sarnowski $tests[] = array('Aß∂ƒName','%x%5b%6oy%aa%1a]ame'); 19*f8369d7dSTobias Sarnowski $tests[] = array('A%ß-∂_.ƒName','%x%%5b]-%6oy]_.%aa%1a]ame'); 20*f8369d7dSTobias Sarnowski $tests[] = array('A%%ß-∂_.ƒName','%x%%%5b]-%6oy]_.%aa%1a]ame'); 21*f8369d7dSTobias Sarnowski $tests[] = array('데이터도 함께 복원됩니다. 강력한','%zf4%13dg%15ao%zhg%0%164o%yig%0%11at%138w%zk9%zag%zb8].%0%xyt%10cl%164c]'); 22*f8369d7dSTobias Sarnowski $tests[] = array('совместимая','%td%ta%sy%t8%t1%td%te%t4%t8%sw%tr]'); 23*f8369d7dSTobias Sarnowski $tests[] = array('нехватка_файлового_пространства_на_сервере_p0-squid.some.domain.1270211897.txt.gz','%t9%t1%th%sy%sw%te%t6%sw]_%tg%sw%t5%t7%ta%sy%ta%sz%ta]_%tb%tc%ta%td%te%tc%sw%t9%td%te%sy%sw]_%t9%sw]_%td%t1%tc%sy%t1%tc%t1]_p0-squid.some.domain.1270211897.txt.gz'); 24*f8369d7dSTobias Sarnowski 25*f8369d7dSTobias Sarnowski $tests[] = array('name[1]','name[1]'); 26*f8369d7dSTobias Sarnowski $tests[] = array('Name[1]','%1a]ame[1]'); 27*f8369d7dSTobias Sarnowski $tests[] = array('Name[A]','%1a]ame[%x]]'); 28*f8369d7dSTobias Sarnowski 29*f8369d7dSTobias Sarnowski foreach($tests as $test){ 30*f8369d7dSTobias Sarnowski list($utf8,$safe) = $test; 31*f8369d7dSTobias Sarnowski $this->assertEquals(SafeFN::encode($utf8),$safe); 32*f8369d7dSTobias Sarnowski $this->assertEquals(SafeFN::decode($safe),$utf8); 33*f8369d7dSTobias Sarnowski } 34*f8369d7dSTobias Sarnowski } 35*f8369d7dSTobias Sarnowski 36*f8369d7dSTobias Sarnowski function test2(){ 37*f8369d7dSTobias Sarnowski $tests[] = array('совместимая','%td%ta%sy%t8%t1%td%te%t4%t8%sw%tr'); 38*f8369d7dSTobias Sarnowski 39*f8369d7dSTobias Sarnowski foreach($tests as $test){ 40*f8369d7dSTobias Sarnowski list($utf8,$safe) = $test; 41*f8369d7dSTobias Sarnowski $this->assertEquals(SafeFN::decode($safe),$utf8); 42*f8369d7dSTobias Sarnowski } 43*f8369d7dSTobias Sarnowski } 44*f8369d7dSTobias Sarnowski 45*f8369d7dSTobias Sarnowski} 46*f8369d7dSTobias Sarnowski//Setup VIM: ex: et ts=4 : 47