basename_basic.phpt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. --TEST--
  2. Test basename() function : basic functionality
  3. --FILE--
  4. <?php
  5. $file_paths = array (
  6. /* simple paths */
  7. array("bar"),
  8. array("/foo/bar"),
  9. array("foo/bar"),
  10. array("/bar"),
  11. /* simple paths with trailing slashes */
  12. array("bar/"),
  13. array("/bar/"),
  14. array("/foo/bar/"),
  15. array("foo/bar/"),
  16. array("/bar/"),
  17. /* paths with suffix removal */
  18. array("bar.gz", ".gz"),
  19. array("bar.gz", "bar.gz"),
  20. array("/foo/bar.gz", ".gz"),
  21. array("foo/bar.gz", ".gz"),
  22. array("/bar.gz", ".gz"),
  23. /* paths with suffix and trailing slashes with suffix removal*/
  24. array("bar.gz/", ".gz"),
  25. array("/bar.gz/", ".gz"),
  26. array("/foo/bar.gz/", ".gz"),
  27. array("foo/bar.gz/", ".gz"),
  28. array("/bar.gz/", ".gz"),
  29. /* paths with basename only suffix, with suffix removal*/
  30. array("/.gz", ".gz"),
  31. array(".gz", ".gz"),
  32. array("/foo/.gz", ".gz"),
  33. /* paths with basename only suffix & trailing slashes, with suffix removal*/
  34. array(".gz/", ".gz"),
  35. array("/foo/.gz/", ".gz"),
  36. array("foo/.gz/", ".gz"),
  37. /* paths with binary value to check if the function is binary safe*/
  38. array("foo".chr(0)."bar"),
  39. array("/foo".chr(0)."bar"),
  40. array("/foo".chr(0)."bar/"),
  41. array("foo".chr(0)."bar/"),
  42. array("foo".chr(0)."bar/test"),
  43. array("/foo".chr(0)."bar/bar.gz", ".gz"),
  44. array("/foo".chr(0)."bar/bar.gz")
  45. );
  46. function check_basename( $path_arrays ) {
  47. $loop_counter = 1;
  48. foreach ($path_arrays as $path) {
  49. echo "\n--Iteration $loop_counter--\n"; $loop_counter++;
  50. if( 1 == count($path) ) { // no suffix provided
  51. var_dump( basename($path[0]) );
  52. } else { // path as well as suffix provided,
  53. var_dump( basename($path[0], $path[1]) );
  54. }
  55. }
  56. }
  57. echo "*** Testing basic operations ***\n";
  58. check_basename( $file_paths );
  59. echo "Done\n";
  60. ?>
  61. --EXPECTF--
  62. *** Testing basic operations ***
  63. --Iteration 1--
  64. string(3) "bar"
  65. --Iteration 2--
  66. string(3) "bar"
  67. --Iteration 3--
  68. string(3) "bar"
  69. --Iteration 4--
  70. string(3) "bar"
  71. --Iteration 5--
  72. string(3) "bar"
  73. --Iteration 6--
  74. string(3) "bar"
  75. --Iteration 7--
  76. string(3) "bar"
  77. --Iteration 8--
  78. string(3) "bar"
  79. --Iteration 9--
  80. string(3) "bar"
  81. --Iteration 10--
  82. string(3) "bar"
  83. --Iteration 11--
  84. string(6) "bar.gz"
  85. --Iteration 12--
  86. string(3) "bar"
  87. --Iteration 13--
  88. string(3) "bar"
  89. --Iteration 14--
  90. string(3) "bar"
  91. --Iteration 15--
  92. string(3) "bar"
  93. --Iteration 16--
  94. string(3) "bar"
  95. --Iteration 17--
  96. string(3) "bar"
  97. --Iteration 18--
  98. string(3) "bar"
  99. --Iteration 19--
  100. string(3) "bar"
  101. --Iteration 20--
  102. string(3) ".gz"
  103. --Iteration 21--
  104. string(3) ".gz"
  105. --Iteration 22--
  106. string(3) ".gz"
  107. --Iteration 23--
  108. string(3) ".gz"
  109. --Iteration 24--
  110. string(3) ".gz"
  111. --Iteration 25--
  112. string(3) ".gz"
  113. --Iteration 26--
  114. string(7) "foo%0bar"
  115. --Iteration 27--
  116. string(7) "foo%0bar"
  117. --Iteration 28--
  118. string(7) "foo%0bar"
  119. --Iteration 29--
  120. string(7) "foo%0bar"
  121. --Iteration 30--
  122. string(4) "test"
  123. --Iteration 31--
  124. string(3) "bar"
  125. --Iteration 32--
  126. string(6) "bar.gz"
  127. Done