basename_variation.phpt 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. --TEST--
  2. Test basename() function : usage variations
  3. --FILE--
  4. <?php
  5. /* Prototype: string basename ( string $path [, string $suffix] );
  6. Description: Given a string containing a path to a file,
  7. this function will return the base name of the file.
  8. If the filename ends in suffix this will also be cut off.
  9. */
  10. $file_path_variations = array (
  11. /* paths with shortcut home dir char, with suffix variation */
  12. array("~/home/user/bar"),
  13. array("~/home/user/bar", ""),
  14. array("~/home/user/bar", NULL),
  15. array("~/home/user/bar", ' '),
  16. array("~/home/user/bar.tar", ".tar"),
  17. array("~/home/user/bar.tar", "~"),
  18. array("~/home/user/bar.tar/", "~"),
  19. array("~/home/user/bar.tar/", ""),
  20. array("~/home/user/bar.tar", NULL),
  21. array("~/home/user/bar.tar", ''),
  22. array("~/home/user/bar.tar", " "),
  23. /* paths with hostname:dir notation, with suffix variation */
  24. array("hostname:/home/usr/bar.tar"),
  25. array("hostname:/home/user/bar.tar", "home"),
  26. array("hostname:/home/user/tbar.gz", "bar.gz"),
  27. array("hostname:/home/user/tbar.gz", "/bar.gz"),
  28. array("hostname:/home/user/tbar.gz", "/bar.gz/"),
  29. array("hostname:/home/user/tbar.gz/", "/bar.gz/"),
  30. array("hostname:/home/user/tbar.gz/", "/bar.gz/"),
  31. array("hostname:/home/user/My Pics.gz/", "/bar.gz/"),
  32. array("hostname:/home/user/My Pics.gz/", "Pics.gz/"),
  33. array("hostname:/home/user/My Pics.gz/", "Pics.gz"),
  34. array("hostname:/home/user/My Pics.gz/", ".gz"),
  35. array("hostname:/home/user/My Pics.gz/"),
  36. array("hostname:/home/user/My Pics.gz/", NULL),
  37. array("hostname:/home/user/My Pics.gz/", ' '),
  38. array("hostname:/home/user/My Pics.gz/", ''),
  39. array("hostname:/home/user/My Pics.gz/", "My Pics.gz"),
  40. /* paths with numeirc strings */
  41. array("10.5"),
  42. array("10.5", ".5"),
  43. array("10.5", "10.5"),
  44. array("10"),
  45. array("105", "5"),
  46. array("/10.5"),
  47. array("10.5/"),
  48. array("10/10.gz"),
  49. array("0"),
  50. array('0'),
  51. /* paths and suffix given as same */
  52. array("bar.gz", "bar.gz"),
  53. array("/bar.gz", "/bar.gz"),
  54. array("/bar.gz/", "/bar.gz/"),
  55. array(" ", " "),
  56. array(' ', ' '),
  57. array(NULL, NULL),
  58. /* path with spaces */
  59. array(" "),
  60. array(' '),
  61. /* empty paths */
  62. array(""),
  63. array(''),
  64. array(NULL)
  65. );
  66. function check_basename( $path_arrays ) {
  67. $loop_counter = 1;
  68. foreach ($path_arrays as $path) {
  69. echo "\n--Iteration $loop_counter--\n"; $loop_counter++;
  70. if( 1 == count($path) ) { // no suffix provided
  71. var_dump( basename($path[0]) );
  72. } else { // path as well as suffix provided,
  73. var_dump( basename($path[0], $path[1]) );
  74. }
  75. }
  76. }
  77. echo "*** Testing possible variations in path and suffix ***\n";
  78. check_basename( $file_path_variations );
  79. echo "Done\n";
  80. --EXPECTF--
  81. *** Testing possible variations in path and suffix ***
  82. --Iteration 1--
  83. string(3) "bar"
  84. --Iteration 2--
  85. string(3) "bar"
  86. --Iteration 3--
  87. string(3) "bar"
  88. --Iteration 4--
  89. string(3) "bar"
  90. --Iteration 5--
  91. string(3) "bar"
  92. --Iteration 6--
  93. string(7) "bar.tar"
  94. --Iteration 7--
  95. string(7) "bar.tar"
  96. --Iteration 8--
  97. string(7) "bar.tar"
  98. --Iteration 9--
  99. string(7) "bar.tar"
  100. --Iteration 10--
  101. string(7) "bar.tar"
  102. --Iteration 11--
  103. string(7) "bar.tar"
  104. --Iteration 12--
  105. string(7) "bar.tar"
  106. --Iteration 13--
  107. string(7) "bar.tar"
  108. --Iteration 14--
  109. string(1) "t"
  110. --Iteration 15--
  111. string(7) "tbar.gz"
  112. --Iteration 16--
  113. string(7) "tbar.gz"
  114. --Iteration 17--
  115. string(7) "tbar.gz"
  116. --Iteration 18--
  117. string(7) "tbar.gz"
  118. --Iteration 19--
  119. string(10) "My Pics.gz"
  120. --Iteration 20--
  121. string(10) "My Pics.gz"
  122. --Iteration 21--
  123. string(3) "My "
  124. --Iteration 22--
  125. string(7) "My Pics"
  126. --Iteration 23--
  127. string(10) "My Pics.gz"
  128. --Iteration 24--
  129. string(10) "My Pics.gz"
  130. --Iteration 25--
  131. string(10) "My Pics.gz"
  132. --Iteration 26--
  133. string(10) "My Pics.gz"
  134. --Iteration 27--
  135. string(10) "My Pics.gz"
  136. --Iteration 28--
  137. string(4) "10.5"
  138. --Iteration 29--
  139. string(2) "10"
  140. --Iteration 30--
  141. string(4) "10.5"
  142. --Iteration 31--
  143. string(2) "10"
  144. --Iteration 32--
  145. string(2) "10"
  146. --Iteration 33--
  147. string(4) "10.5"
  148. --Iteration 34--
  149. string(4) "10.5"
  150. --Iteration 35--
  151. string(5) "10.gz"
  152. --Iteration 36--
  153. string(1) "0"
  154. --Iteration 37--
  155. string(1) "0"
  156. --Iteration 38--
  157. string(6) "bar.gz"
  158. --Iteration 39--
  159. string(6) "bar.gz"
  160. --Iteration 40--
  161. string(6) "bar.gz"
  162. --Iteration 41--
  163. string(1) " "
  164. --Iteration 42--
  165. string(1) " "
  166. --Iteration 43--
  167. string(0) ""
  168. --Iteration 44--
  169. string(1) " "
  170. --Iteration 45--
  171. string(1) " "
  172. --Iteration 46--
  173. string(0) ""
  174. --Iteration 47--
  175. string(0) ""
  176. --Iteration 48--
  177. string(0) ""
  178. Done