diff options
author | Andreas Gohr <andi@splitbrain.org> | 2012-07-28 09:59:01 +0200 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2012-07-28 09:59:01 +0200 |
commit | f393a4eb51a5f8ed0e64f09f76cbafe57d7dcb57 (patch) | |
tree | 76c2def20593be48017b66e4f0498d04f6d62dde /_test/tests | |
parent | e5ab313f460502d6879db851a6a0201727bc6344 (diff) | |
download | rpg-f393a4eb51a5f8ed0e64f09f76cbafe57d7dcb57.tar.gz rpg-f393a4eb51a5f8ed0e64f09f76cbafe57d7dcb57.tar.bz2 |
added utf8_basename()
This is a locale independent version of basename to work around
https://bugs.php.net/bug.php?id=37738
The function is not yet used anywhere. It should be at least used
where ever non-ASCII filenames and paths are handled. Simply replacing
all calls to basename() with this function might be the safest.
Diffstat (limited to '_test/tests')
-rw-r--r-- | _test/tests/inc/utf8_basename.test.php | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/_test/tests/inc/utf8_basename.test.php b/_test/tests/inc/utf8_basename.test.php new file mode 100644 index 000000000..1cb5b5606 --- /dev/null +++ b/_test/tests/inc/utf8_basename.test.php @@ -0,0 +1,69 @@ +<?php + +class utf8_basename_test extends DokuWikiTest { + + function test1(){ + $data = array( + array('/this/foo/bar.test.png', '', 'bar.test.png'), + array('\\this\\foo\\bar.test.png', '', 'bar.test.png'), + array('/this\\foo/bar.test.png', '', 'bar.test.png'), + array('/this/foo\\bar.test.png', '', 'bar.test.png'), + + array('/this/ДокуВики/bar.test.png', '', 'bar.test.png'), + array('\\this\\ДокуВики\\bar.test.png', '', 'bar.test.png'), + array('/this\\ДокуВики/bar.test.png', '', 'bar.test.png'), + array('/this/ДокуВики\\bar.test.png', '', 'bar.test.png'), + + array('/this/foo/ДокуВики.test.png', '', 'ДокуВики.test.png'), + array('\\this\\foo\\ДокуВики.test.png', '', 'ДокуВики.test.png'), + array('/this\\foo/ДокуВики.test.png', '', 'ДокуВики.test.png'), + array('/this/foo\\ДокуВики.test.png', '', 'ДокуВики.test.png'), + + array('/this/foo/bar.test.png', '.png', 'bar.test'), + array('\\this\\foo\\bar.test.png', '.png', 'bar.test'), + array('/this\\foo/bar.test.png', '.png', 'bar.test'), + array('/this/foo\\bar.test.png', '.png', 'bar.test'), + + array('/this/ДокуВики/bar.test.png', '.png', 'bar.test'), + array('\\this\\ДокуВики\\bar.test.png', '.png', 'bar.test'), + array('/this\\ДокуВики/bar.test.png', '.png', 'bar.test'), + array('/this/ДокуВики\\bar.test.png', '.png', 'bar.test'), + + array('/this/foo/ДокуВики.test.png', '.png', 'ДокуВики.test'), + array('\\this\\foo\\ДокуВики.test.png', '.png', 'ДокуВики.test'), + array('/this\\foo/ДокуВики.test.png', '.png', 'ДокуВики.test'), + array('/this/foo\\ДокуВики.test.png', '.png', 'ДокуВики.test'), + + array('/this/foo/bar.test.png', '.foo', 'bar.test.png'), + array('\\this\\foo\\bar.test.png', '.foo', 'bar.test.png'), + array('/this\\foo/bar.test.png', '.foo', 'bar.test.png'), + array('/this/foo\\bar.test.png', '.foo', 'bar.test.png'), + + array('/this/ДокуВики/bar.test.png', '.foo', 'bar.test.png'), + array('\\this\\ДокуВики\\bar.test.png', '.foo', 'bar.test.png'), + array('/this\\ДокуВики/bar.test.png', '.foo', 'bar.test.png'), + array('/this/ДокуВики\\bar.test.png', '.foo', 'bar.test.png'), + + array('/this/foo/ДокуВики.test.png', '.foo', 'ДокуВики.test.png'), + array('\\this\\foo\\ДокуВики.test.png', '.foo', 'ДокуВики.test.png'), + array('/this\\foo/ДокуВики.test.png', '.foo', 'ДокуВики.test.png'), + array('/this/foo\\ДокуВики.test.png', '.foo', 'ДокуВики.test.png'), + + + array('/this/foo/ДокуВики.test.Вик', '.foo', 'ДокуВики.test.Вик'), + array('\\this\\foo\\ДокуВики.test.Вик', '.foo', 'ДокуВики.test.Вик'), + array('/this\\foo/ДокуВики.test.Вик', '.foo', 'ДокуВики.test.Вик'), + array('/this/foo\\ДокуВики.test.Вик', '.foo', 'ДокуВики.test.Вик'), + + array('/this/foo/ДокуВики.test.Вик', '.Вик', 'ДокуВики.test'), + array('\\this\\foo\\ДокуВики.test.Вик', '.Вик', 'ДокуВики.test'), + array('/this\\foo/ДокуВики.test.Вик', '.Вик', 'ДокуВики.test'), + array('/this/foo\\ДокуВики.test.Вик', '.Вик', 'ДокуВики.test'), + ); + + foreach($data as $test){ + $this->assertEquals($test[2], utf8_basename($test[0], $test[1]), "input: ('".$test[0]."', '".$test[1]."')"); + } + } + +}
\ No newline at end of file |