opendir_variation4-win32-mb.phpt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. --TEST--
  2. Test opendir() function : usage variations - different relative paths
  3. --SKIPIF--
  4. <?php
  5. if (substr(PHP_OS, 0, 3) != 'WIN') {
  6. die("skip Valid only on Windows");
  7. }
  8. ?>
  9. --FILE--
  10. <?php
  11. /*
  12. * Test opendir() with different relative paths as $path argument
  13. */
  14. echo "*** Testing opendir() : usage variation ***\n";
  15. $base_dir_path = __DIR__ . '/opendir_variation4-win32-mb';
  16. @mkdir($base_dir_path);
  17. $level_one_dir_name = "私はガラスを食べられますlevel_one";
  18. $level_one_dir_path = "$base_dir_path/$level_one_dir_name";
  19. $level_two_dir_name = "私はガラスを食べられますlevel_two";
  20. $level_two_dir_path = "$base_dir_path/$level_one_dir_name/$level_two_dir_name";
  21. // create directories
  22. mkdir($level_one_dir_path);
  23. mkdir($level_two_dir_path);
  24. echo "\n-- \$path = './私はガラスを食べられますlevel_one': --\n";
  25. var_dump(chdir($base_dir_path));
  26. var_dump($dh = opendir("./$level_one_dir_name"));
  27. clean_dh($dh);
  28. echo "\n-- \$path = '私はガラスを食べられますlevel_one/私はガラスを食べられますlevel_two': --\n";
  29. var_dump(chdir($base_dir_path));
  30. var_dump($dh = opendir("$level_one_dir_name/$level_two_dir_name"));
  31. clean_dh($dh);
  32. echo "\n-- \$path = '..': --\n";
  33. var_dump($dh = opendir('..'));
  34. clean_dh($dh);
  35. echo "\n-- \$path = 'level_two', '.': --\n";
  36. var_dump(chdir($level_two_dir_path));
  37. var_dump($dh = opendir('.'));
  38. clean_dh($dh);
  39. echo "\n-- \$path = '../': --\n";
  40. var_dump($dh = opendir('../'));
  41. clean_dh($dh);
  42. echo "\n-- \$path = './': --\n";
  43. var_dump(chdir($level_two_dir_path));
  44. var_dump($dh = opendir('./'));
  45. clean_dh($dh);
  46. echo "\n-- \$path = '../../'私はガラスを食べられますlevel_one': --\n";
  47. var_dump(chdir($level_two_dir_path));
  48. var_dump($dh = opendir("../../$level_one_dir_name"));
  49. clean_dh($dh);
  50. /*
  51. * function to remove directory handle before re-using variable name in test
  52. * and to ensure directory is not in use at CLEAN section so can me removed
  53. */
  54. function clean_dh($dh){
  55. if (is_resource($dh)) {
  56. closedir($dh);
  57. }
  58. unset($dh);
  59. }
  60. ?>
  61. --CLEAN--
  62. <?php
  63. $base_dir_path = __DIR__ . '/opendir_variation4-win32-mb';
  64. rmdir("$base_dir_path/私はガラスを食べられますlevel_one/私はガラスを食べられますlevel_two");
  65. rmdir("$base_dir_path/私はガラスを食べられますlevel_one");
  66. rmdir($base_dir_path);
  67. ?>
  68. --EXPECTF--
  69. *** Testing opendir() : usage variation ***
  70. -- $path = './私はガラスを食べられますlevel_one': --
  71. bool(true)
  72. resource(%d) of type (stream)
  73. -- $path = '私はガラスを食べられますlevel_one/私はガラスを食べられますlevel_two': --
  74. bool(true)
  75. resource(%d) of type (stream)
  76. -- $path = '..': --
  77. resource(%d) of type (stream)
  78. -- $path = 'level_two', '.': --
  79. bool(true)
  80. resource(%d) of type (stream)
  81. -- $path = '../': --
  82. resource(%d) of type (stream)
  83. -- $path = './': --
  84. bool(true)
  85. resource(%d) of type (stream)
  86. -- $path = '../../'私はガラスを食べられますlevel_one': --
  87. bool(true)
  88. resource(%d) of type (stream)