diff --git a/ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt b/ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt new file mode 100644 index 0000000000000..b72e6749ac2ab --- /dev/null +++ b/ext/fileinfo/tests/finfo_buffer_basic_charset-mb.phpt @@ -0,0 +1,57 @@ +--TEST-- +Test finfo_buffer() function : basic functionality +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- + +===DONE=== +--EXPECTF-- +*** Testing finfo_buffer() : basic functionality *** +string(36) "ASCII text, with no line terminators" +string(3) "ELF" +string(22) "old ACE/gr binary file" +string(12) "xo65 object," +string(15) "MIFF image data" +string(25) "RIFF (little-endian) data" +string(28) "text/plain; charset=us-ascii" +string(26) "text/plain; charset=ebcdic" +string(40) "application/octet-stream; charset=binary" +string(28) "text/plain; charset=us-ascii" +string(28) "text/plain; charset=us-ascii" +string(25) "text/plain; charset=utf-8" +===DONE=== diff --git a/ext/gd/tests/001_charset-mb.phpt b/ext/gd/tests/001_charset-mb.phpt new file mode 100644 index 0000000000000..071150890af04 --- /dev/null +++ b/ext/gd/tests/001_charset-mb.phpt @@ -0,0 +1,27 @@ +--TEST-- +imagecreatefrompng() and empty/missing file +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- + +--EXPECTF-- +Warning: imagecreatefrompng(%s001АБВГДЕЖЗИЙКЛМНОПF.test): failed to open stream: No such file or directory in %s on line %d +bool(false) + +Warning: imagecreatefrompng(): '%s001АБВГДЕЖЗИЙКЛМНОПF.test' is not a valid PNG file in %s on line %d +bool(false) +Done diff --git a/ext/phar/tests/phar_extract-mb.phpt b/ext/phar/tests/phar_extract-mb.phpt new file mode 100644 index 0000000000000..e938d1edc0214 --- /dev/null +++ b/ext/phar/tests/phar_extract-mb.phpt @@ -0,0 +1,150 @@ +--TEST-- +Phar: Phar::extractTo() +--SKIPIF-- + +--INI-- +phar.readonly=0 +--FILE-- +mount($pname . '/mount', __FILE__); +$a->addEmptyDir('one/level'); + +$a->extractTo(dirname(__FILE__) . '/extractАБВГДЕЖЗИЙКЛМНОПF', 'mount'); +$a->extractTo(dirname(__FILE__) . '/extractАБВГДЕЖЗИЙКЛМНОПF'); + +$out = array(); + +foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/extractАБВГДЕЖЗИЙКЛМНОПF', 0x00003000), RecursiveIteratorIterator::CHILD_FIRST) as $p => $b) { + $out[] = $p; +} + +sort($out); + +foreach ($out as $b) { + echo "$b\n"; +} + +$a->extractTo(dirname(__FILE__) . '/extract1', 'file1.txt'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1/file1.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract1', 'subdir/ectory/file.txt'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1/subdir/ectory/file.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract1-2', array('file2.txt', 'one/level')); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1-2/file2.txt')); +var_dump(is_dir(dirname(__FILE__) . '/extract1-2/one/level')); + +try { + $a->extractTo(dirname(__FILE__) . '/whatever', 134); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +$a->extractTo(array()); + +try { + $a->extractTo(''); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +file_put_contents(dirname(__FILE__) . '/oops', 'I is file'); + +try { + $a->extractTo(dirname(__FILE__) . '/oops', 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +try { + $a->extractTo(dirname(__FILE__) . '/oops1', array(array(), 'file1.txt')); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +try { + $a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +file_put_contents(dirname(__FILE__) . '/extract/file1.txt', 'first'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt', true); +var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); + +try { + $a->extractTo(str_repeat('a', 20000), 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +$a[str_repeat('a', 20000)] = 'long'; + +try { + $a->extractTo(dirname(__FILE__) . '/extract', str_repeat('a', 20000)); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +%sextract%cfile1.txt +%sextract%cfile2.txt +%sextract%cone +%sextract%csubdir +%sextract%csubdir%cectory +%sextract%csubdir%cectory%cfile.txt +string(2) "hi" +string(3) "hi3" +string(3) "hi2" +bool(false) +Invalid argument, expected a filename (string) or array of filenames + +Warning: Phar::extractTo() expects parameter 1 to be a valid path, array given in %sphar_extract.php on line %d +Invalid argument, extraction path must be non-zero length +Unable to use path "%soops" for extraction, it is a file, must be a directory +Invalid argument, array of filenames to extract contains non-string value +Extraction from phar "%stempmanifest1.phar.php" failed: Cannot extract "file1.txt" to "%sextract/file1.txt", path already exists +string(5) "first" +string(2) "hi" +Cannot extract to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...", destination directory is too long for filesystem +Extraction from phar "%stempmanifest1.phar.php" failed: Cannot extract "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..." to "%s...", extracted filename is too long for filesystem +===DONE=== diff --git a/ext/phar/tests/phar_extract_charset-mb.phpt b/ext/phar/tests/phar_extract_charset-mb.phpt new file mode 100644 index 0000000000000..305f7278f131f --- /dev/null +++ b/ext/phar/tests/phar_extract_charset-mb.phpt @@ -0,0 +1,151 @@ +--TEST-- +Phar: Phar::extractTo() +--SKIPIF-- + +--INI-- +phar.readonly=0 +default_charset=cp1251 +--FILE-- +mount($pname . '/mount', __FILE__); +$a->addEmptyDir('one/level'); + +$a->extractTo(dirname(__FILE__) . '/extract', 'mount'); +$a->extractTo(dirname(__FILE__) . '/extract'); + +$out = array(); + +foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/extract', 0x00003000), RecursiveIteratorIterator::CHILD_FIRST) as $p => $b) { + $out[] = $p; +} + +sort($out); + +foreach ($out as $b) { + echo "$b\n"; +} + +$a->extractTo(dirname(__FILE__) . '/extract1', 'file1.txt'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1/file1.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract1', 'subdir/ectory/file.txt'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1/subdir/ectory/file.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract1-2', array('file2.txt', 'one/level')); +var_dump(file_get_contents(dirname(__FILE__) . '/extract1-2/file2.txt')); +var_dump(is_dir(dirname(__FILE__) . '/extract1-2/one/level')); + +try { + $a->extractTo(dirname(__FILE__) . '/whatever', 134); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +$a->extractTo(array()); + +try { + $a->extractTo(''); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +file_put_contents(dirname(__FILE__) . '/oops', 'I is file'); + +try { + $a->extractTo(dirname(__FILE__) . '/oops', 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +try { + $a->extractTo(dirname(__FILE__) . '/oops1', array(array(), 'file1.txt')); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +try { + $a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +file_put_contents(dirname(__FILE__) . '/extract/file1.txt', 'first'); +var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); + +$a->extractTo(dirname(__FILE__) . '/extract', 'file1.txt', true); +var_dump(file_get_contents(dirname(__FILE__) . '/extract/file1.txt')); + +try { + $a->extractTo(str_repeat('a', 20000), 'file1.txt'); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +$a[str_repeat('a', 20000)] = 'long'; + +try { + $a->extractTo(dirname(__FILE__) . '/extract', str_repeat('a', 20000)); +} catch (Exception $e) { + echo $e->getMessage(), "\n"; +} + +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +%sextract%cfile1.txt +%sextract%cfile2.txt +%sextract%cone +%sextract%csubdir +%sextract%csubdir%cectory +%sextract%csubdir%cectory%cfile.txt +string(2) "hi" +string(3) "hi3" +string(3) "hi2" +bool(false) +Invalid argument, expected a filename (string) or array of filenames + +Warning: Phar::extractTo() expects parameter 1 to be a valid path, array given in %sphar_extract.php on line %d +Invalid argument, extraction path must be non-zero length +Unable to use path "%soops" for extraction, it is a file, must be a directory +Invalid argument, array of filenames to extract contains non-string value +Extraction from phar "%stempmanifestАБВГДЕЖЗИЙКЛМНОПF1.phar.php" failed: Cannot extract "file1.txt" to "%sextract/file1.txt", path already exists +string(5) "first" +string(2) "hi" +Cannot extract to "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...", destination directory is too long for filesystem +Extraction from phar "%stempmanifestАБВГДЕЖЗИЙКЛМНОПF1.phar.php" failed: Cannot extract "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa..." to "%s...", extracted filename is too long for filesystem +===DONE=== diff --git a/ext/phar/tests/tar/bignames_overflow-mb.phpt b/ext/phar/tests/tar/bignames_overflow-mb.phpt new file mode 100644 index 0000000000000..c0595720ef348 --- /dev/null +++ b/ext/phar/tests/tar/bignames_overflow-mb.phpt @@ -0,0 +1,40 @@ +--TEST-- +Phar: tar with huge filenames, buffer overflow +--SKIPIF-- + +--INI-- +phar.require_hash=0 +--FILE-- +init(); +$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 101), 'hi'); +$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 255), 'hi2'); +$tar->close(); + +$p1 = new PharData($fname); +foreach ($p1 as $file) { + echo $file->getFileName(), "\n"; +} +echo $p1['a/' . str_repeat('a', 100)]->getContent() . "\n"; +echo $p1[str_repeat('a', 155) . '/' . str_repeat('a', 100)]->getContent() . "\n"; + +?> +===DONE=== +--CLEAN-- + +--EXPECT-- +АБВГДЕЖЗИЙКЛМНОПFa +АБВГДЕЖЗИЙКЛМНОПFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +hi +hi2 +===DONE=== diff --git a/ext/phar/tests/tar/bignames_overflow_charset-mb.phpt b/ext/phar/tests/tar/bignames_overflow_charset-mb.phpt new file mode 100644 index 0000000000000..c9d694b3b1947 --- /dev/null +++ b/ext/phar/tests/tar/bignames_overflow_charset-mb.phpt @@ -0,0 +1,41 @@ +--TEST-- +Phar: tar with huge filenames, buffer overflow +--SKIPIF-- + +--INI-- +phar.require_hash=0 +default_charset=cp1251 +--FILE-- +init(); +$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 101), 'hi'); +$tar->addFile('АБВГДЕЖЗИЙКЛМНОПF'.str_repeat('a', 255), 'hi2'); +$tar->close(); + +$p1 = new PharData($fname); +foreach ($p1 as $file) { + echo $file->getFileName(), "\n"; +} +echo $p1['a/' . str_repeat('a', 100)]->getContent() . "\n"; +echo $p1[str_repeat('a', 155) . '/' . str_repeat('a', 100)]->getContent() . "\n"; + +?> +===DONE=== +--CLEAN-- + +--EXPECT-- +АБВГДЕЖЗИЙКЛМНОПFa +АБВГДЕЖЗИЙКЛМНОПFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +hi +hi2 +===DONE=== diff --git a/ext/phar/tests/tar/rename-charset_mb.phpt b/ext/phar/tests/tar/rename-charset_mb.phpt new file mode 100644 index 0000000000000..51bc4d68afb61 --- /dev/null +++ b/ext/phar/tests/tar/rename-charset_mb.phpt @@ -0,0 +1,43 @@ +--TEST-- +Phar: rename test tar-based +--SKIPIF-- + +--INI-- +phar.readonly=0 +phar.require_hash=0 +default_charset=cp1251 +--FILE-- +init(); +$tar->addFile('.phar/stubАБВГДЕЖЗИЙКЛМНОПF.php', ""); + +$files = array(); +$files['a'] = 'a'; + +foreach ($files as $n => $file) { + $tar->addFile($n, $file); +} + +$tar->close(); + +include $fname; + +echo file_get_contents($alias . '/a') . "\n"; +rename($alias . '/a', $alias . '/b'); +echo file_get_contents($alias . '/b') . "\n"; +echo file_get_contents($alias . '/a') . "\n"; +?> +--CLEAN-- + +--EXPECTF-- +a +a + +Warning: file_get_contents(phar://%srename_charset-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar/a): failed to open stream: phar error: "a" is not a file in phar "%srename_charset-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar" in %srename_charset-mbАБВГДЕЖЗИЙКЛМНОПF.php on line %d diff --git a/ext/phar/tests/tar/rename-mb.phpt b/ext/phar/tests/tar/rename-mb.phpt new file mode 100644 index 0000000000000..66eac67d50e28 --- /dev/null +++ b/ext/phar/tests/tar/rename-mb.phpt @@ -0,0 +1,42 @@ +--TEST-- +Phar: rename test tar-based +--SKIPIF-- + +--INI-- +phar.readonly=0 +phar.require_hash=0 +--FILE-- +init(); +$tar->addFile('.phar/stub.php', ""); + +$files = array(); +$files['a'] = 'a'; + +foreach ($files as $n => $file) { + $tar->addFile($n, $file); +} + +$tar->close(); + +include $fname; + +echo file_get_contents($alias . '/a') . "\n"; +rename($alias . '/a', $alias . '/b'); +echo file_get_contents($alias . '/b') . "\n"; +echo file_get_contents($alias . '/a') . "\n"; +?> +--CLEAN-- + +--EXPECTF-- +a +a + +Warning: file_get_contents(phar://%srename-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar/a): failed to open stream: phar error: "a" is not a file in phar "%srename-mbАБВГДЕЖЗИЙКЛМНОПF.phar.tar" in %srename-mbАБВГДЕЖЗИЙКЛМНОПF.php on line %d diff --git a/ext/phar/tests/tar/tar_001-mb.phpt b/ext/phar/tests/tar/tar_001-mb.phpt new file mode 100644 index 0000000000000..69a17ce8be93d --- /dev/null +++ b/ext/phar/tests/tar/tar_001-mb.phpt @@ -0,0 +1,31 @@ +--TEST-- +Phar: tar-based phar corrupted +--SKIPIF-- + + +--FILE-- +init(); +$tar->addFile('tar_001.phpt', __FILE__); +$tar->close(); + +$tar = fopen('phar://' . dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar/tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt', 'rb'); +try { + $phar = new Phar(dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar'); + echo "should not execute\n"; +} catch (Exception $e) { + echo $e->getMessage() . "\n"; +} +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +Warning: fopen(phar://%star_001.phar.tar/tar_001-mbАБВГДЕЖЗИЙКЛМНОПF.phpt): failed to open stream: phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) in %star_001-mbАБВГДЕЖЗИЙКЛМНОПF.php on line 9 +phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) +===DONE=== diff --git a/ext/phar/tests/tar/tar_001_charset-mb.phpt b/ext/phar/tests/tar/tar_001_charset-mb.phpt new file mode 100644 index 0000000000000..af05540018570 --- /dev/null +++ b/ext/phar/tests/tar/tar_001_charset-mb.phpt @@ -0,0 +1,33 @@ +--TEST-- +Phar: tar-based phar corrupted +--SKIPIF-- + + +--INI-- +default_charset=cp1251 +--FILE-- +init(); +$tar->addFile('tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt', __FILE__); +$tar->close(); + +$tar = fopen('phar://' . dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar/tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt', 'rb'); +try { + $phar = new Phar(dirname(__FILE__) . '/tar_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar'); + echo "should not execute\n"; +} catch (Exception $e) { + echo $e->getMessage() . "\n"; +} +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +Warning: fopen(phar://%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar/tar_001АБВГДЕЖЗИЙКЛМНОПF.phpt): failed to open stream: phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) in %star_001АБВГДЕЖЗИЙКЛМНОПF.php on line 9 +phar error: "%star_001АБВГДЕЖЗИЙКЛМНОПF.phar.tar" is a corrupted tar file (truncated) +===DONE=== diff --git a/ext/standard/tests/dir/dir_basic_charset-mb.phpt b/ext/standard/tests/dir/dir_basic_charset-mb.phpt new file mode 100644 index 0000000000000..e691dec599719 --- /dev/null +++ b/ext/standard/tests/dir/dir_basic_charset-mb.phpt @@ -0,0 +1,88 @@ +--TEST-- +Test dir() function : basic functionality +--INI-- +default_charset=cp1251 +--FILE-- +read() ); +var_dump( $d->read() ); +var_dump( $d->rewind() ); + +echo "\nTest using handle directly:\n"; +var_dump( readdir($d->handle) ); +var_dump( readdir($d->handle) ); + +echo "\nClose directory:\n"; +var_dump( $d->close() ); +var_dump( $d ); + +echo "\nTest read after closing the dir:"; +var_dump( $d->read() ); + +// delete temp files +delete_files($dir_path, 3, "АБВГДЕЖЗИЙКЛМНОПFdir_basic", 1, ".tmp"); +echo "Done"; +?> +--CLEAN-- + +--EXPECTF-- +*** Testing dir() : basic functionality *** +Get Directory instance: +object(Directory)#%d (2) { + ["path"]=> + string(%d) "%s/АБВГДЕЖЗИЙКЛМНОПFdir_basic" + ["handle"]=> + resource(%d) of type (stream) +} + +Read and rewind: +string(%d) "%s" +string(%d) "%s" +NULL + +Test using handle directly: +string(%d) "%s" +string(%d) "%s" + +Close directory: +NULL +object(Directory)#%d (2) { + ["path"]=> + string(%d) "%sАБВГДЕЖЗИЙКЛМНОПFdir_basic" + ["handle"]=> + resource(%d) of type (Unknown) +} + +Test read after closing the dir: +Warning: Directory::read(): %s is not a valid Directory resource in %s on line %d +bool(false) +Done diff --git a/ext/standard/tests/dir/readdir_basic_charset-mb.phpt b/ext/standard/tests/dir/readdir_basic_charset-mb.phpt new file mode 100644 index 0000000000000..bb8b34592a015 --- /dev/null +++ b/ext/standard/tests/dir/readdir_basic_charset-mb.phpt @@ -0,0 +1,75 @@ +--TEST-- +Test readdir() function : basic functionality +--INI-- +default_charset=cp1251 +--FILE-- + +===DONE=== +--CLEAN-- + +--EXPECTF-- +*** Testing readdir() : basic functionality *** + +-- Call readdir() with $path argument -- +resource(%d) of type (stream) +string(1) "." +string(2) ".." +string(9) "file1.tmp" +string(9) "file2.tmp" +string(9) "file3.tmp" + +-- Call readdir() without $path argument -- +resource(%d) of type (stream) +string(1) "." +string(2) ".." +string(9) "file1.tmp" +string(9) "file2.tmp" +string(9) "file3.tmp" +===DONE=== diff --git a/ext/standard/tests/dir/readdir_error_charset-mb.phpt b/ext/standard/tests/dir/readdir_error_charset-mb.phpt new file mode 100644 index 0000000000000..1ad1c525a4a56 --- /dev/null +++ b/ext/standard/tests/dir/readdir_error_charset-mb.phpt @@ -0,0 +1,45 @@ +--TEST-- +Test readdir() function : error conditions - Incorrect number of args +--INI-- +default_charset=cp1251 +--FILE-- + +===DONE=== +--CLEAN-- + +--EXPECTF-- +*** Testing readdir() : error conditions *** + +-- Testing readdir() function with more than expected no. of arguments -- + +Warning: readdir() expects at most 1 parameter, 2 given in %s on line %d +NULL +===DONE=== diff --git a/ext/standard/tests/dir/readdir_variation2_charset-mb.phpt b/ext/standard/tests/dir/readdir_variation2_charset-mb.phpt new file mode 100644 index 0000000000000..2371fd3dce420 --- /dev/null +++ b/ext/standard/tests/dir/readdir_variation2_charset-mb.phpt @@ -0,0 +1,50 @@ +--TEST-- +Test readdir() function : usage variations - empty directories +--INI-- +default_charset=cp1251 +--FILE-- + strlen($b) ? 1 : -1; +} +$entries = array(); +while(FALSE !== ($file = readdir($dir_handle))){ + $entries[] = $file; +} + +closedir($dir_handle); + +usort($entries, "mysort"); +foreach($entries as $entry) { + var_dump($entry); +} +?> +===DONE=== +--CLEAN-- + +--EXPECTF-- +*** Testing readdir() : usage variations *** + +-- Pass an empty directory to readdir() -- +string(1) "." +string(2) ".." +===DONE=== diff --git a/ext/standard/tests/dir/rewinddir_variation2-win32-mb.phpt b/ext/standard/tests/dir/rewinddir_variation2-mb.phpt similarity index 100% rename from ext/standard/tests/dir/rewinddir_variation2-win32-mb.phpt rename to ext/standard/tests/dir/rewinddir_variation2-mb.phpt diff --git a/ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt b/ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt new file mode 100644 index 0000000000000..89283a1ed527c --- /dev/null +++ b/ext/standard/tests/file/fseek_dir_basic_charset-mb.phpt @@ -0,0 +1,98 @@ +--TEST-- +Testing fseek() on a directory stream +--INI-- +default_charset=cp1251 +--FILE-- + +--EXPECTF-- +call readdir(): +resource(%d) of type (stream) +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} + +call fseek() on directory resource: +int(0) +call readdir(): +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} + +call fseek() with different arguments on directory resource: +int(0) +call readdir(): +array(6) { + [0]=> + bool(false) + [1]=> + string(1) "." + [2]=> + string(2) ".." + [3]=> + string(9) "file1.tmp" + [4]=> + string(9) "file2.tmp" + [5]=> + string(9) "file3.tmp" +} +bool(true) diff --git a/ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt b/ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt new file mode 100644 index 0000000000000..577292d9634ba --- /dev/null +++ b/ext/standard/tests/file/windows_mb_path/bug54977_charset.phpt @@ -0,0 +1,54 @@ +--TEST-- +Bug #54977 UTF-8 files and folder are not shown +--SKIPIF-- + +--INI-- +default_charset=shift_jis +--FILE-- + +===DONE=== +--EXPECT-- +testBug54977 +windows_mb_path +多国語 +多国語.test +汚れて掘る +汚れて掘る.test +王 +王.test +===DONE=== diff --git a/ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt b/ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt new file mode 100644 index 0000000000000..5d54bd16c6c66 --- /dev/null +++ b/ext/standard/tests/file/windows_mb_path/bug64699_charset.phpt @@ -0,0 +1,65 @@ +--TEST-- +Bug #64699 is_dir() is inaccurate result on Windows with japanese locale. +--SKIPIF-- + +--INI-- +default_charset=shift_jis +--FILE-- + $comp: {$file}\n"; + } + closedir($dh); +} + +foreach ($dirs as $d) { + rmdir($prefix . $d); +} +rmdir($prefix); + +set_active_cp($old_cp); + +?> +===DONE=== +--EXPECTF-- +Active code page: 65001 +filetype()[dir ] == is_dir()[dir ] -> OK: . +filetype()[dir ] == is_dir()[dir ] -> OK: .. +filetype()[dir ] == is_dir()[dir ] -> OK: a +filetype()[dir ] == is_dir()[dir ] -> OK: şŞıİğĞ +filetype()[dir ] == is_dir()[dir ] -> OK: ソ +filetype()[dir ] == is_dir()[dir ] -> OK: ゾ +filetype()[dir ] == is_dir()[dir ] -> OK: 多国語 +filetype()[dir ] == is_dir()[dir ] -> OK: 表 +Active code page: %d +===DONE=== diff --git a/ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt b/ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt new file mode 100644 index 0000000000000..68c40d4fc2fc3 --- /dev/null +++ b/ext/standard/tests/file/windows_mb_path/test_readdir_charset_mb_names.phpt @@ -0,0 +1,77 @@ +--TEST-- +Test readdir() with a dir for multibyte filenames +--SKIPIF-- + +--INI-- +default_charset=shift_jis +--FILE-- + +===DONE=== +--EXPECTF-- +Active code page: 65001 +filename: . : filetype: dir +filename: .. : filetype: dir +filename: Röd_Statistics.txt : filetype: file +filename: tschüß : filetype: file +filename: tschüß3 : filetype: dir +filename: Voláçao : filetype: file +filename: Voláçao3 : filetype: dir +filename: českýtestování.inc : filetype: file +filename: š.txt : filetype: file +filename: Ελλάδα.txt : filetype: file +filename: привет : filetype: file +filename: привет3 : filetype: dir +filename: テストマルチバイト・パス : filetype: file +filename: テストマルチバイト・パス42 : filetype: dir +filename: 測試多字節路徑 : filetype: file +filename: 測試多字節路徑5 : filetype: dir +Active code page: %d +===DONE=== diff --git a/ext/tidy/tests/005_charset-mb.phpt b/ext/tidy/tests/005_charset-mb.phpt new file mode 100644 index 0000000000000..610cc02f54754 --- /dev/null +++ b/ext/tidy/tests/005_charset-mb.phpt @@ -0,0 +1,20 @@ +--TEST-- +tidy_parse_file() +--SKIPIF-- + +--INI-- +default_charset=cp1251 +--FILE-- + +--EXPECT-- + +
+