1--TEST--
2Test 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
12  /* simple paths with trailing slashes */
13  array("bar/"),
14  array("/bar/"),
15  array("/foo/bar/"),
16  array("foo/bar/"),
17  array("/bar/"),
18
19  /* paths with suffix removal */
20  array("bar.gz", ".gz"),
21  array("bar.gz", "bar.gz"),
22  array("/foo/bar.gz", ".gz"),
23  array("foo/bar.gz", ".gz"),
24  array("/bar.gz", ".gz"),
25
26  /* paths with suffix and trailing slashes with suffix removal*/
27  array("bar.gz/", ".gz"),
28  array("/bar.gz/", ".gz"),
29  array("/foo/bar.gz/", ".gz"),
30  array("foo/bar.gz/", ".gz"),
31  array("/bar.gz/", ".gz"),
32
33  /* paths with basename only suffix, with suffix removal*/
34  array("/.gz", ".gz"),
35  array(".gz", ".gz"),
36  array("/foo/.gz", ".gz"),
37
38  /* paths with basename only suffix & trailing slashes, with suffix removal*/
39  array(".gz/", ".gz"),
40  array("/foo/.gz/", ".gz"),
41  array("foo/.gz/", ".gz"),
42
43  /* paths with binary value to check if the function is binary safe*/
44  array("foo".chr(0)."bar"),
45  array("/foo".chr(0)."bar"),
46  array("/foo".chr(0)."bar/"),
47  array("foo".chr(0)."bar/"),
48  array("foo".chr(0)."bar/test"),
49  array("/foo".chr(0)."bar/bar.gz", ".gz"),
50  array("/foo".chr(0)."bar/bar.gz")
51);
52
53function check_basename( $path_arrays ) {
54   $loop_counter = 1;
55   foreach ($path_arrays as $path) {
56     echo "\n--Iteration $loop_counter--\n"; $loop_counter++;
57     if( 1 == count($path) ) { // no suffix provided
58       var_dump( basename($path[0]) );
59     } else { // path as well as suffix provided,
60       var_dump( basename($path[0], $path[1]) );
61     }
62   }
63}
64
65echo "*** Testing basic operations ***\n";
66check_basename( $file_paths );
67
68echo "Done\n";
69?>
70--EXPECTF--
71*** Testing basic operations ***
72
73--Iteration 1--
74string(3) "bar"
75
76--Iteration 2--
77string(3) "bar"
78
79--Iteration 3--
80string(3) "bar"
81
82--Iteration 4--
83string(3) "bar"
84
85--Iteration 5--
86string(3) "bar"
87
88--Iteration 6--
89string(3) "bar"
90
91--Iteration 7--
92string(3) "bar"
93
94--Iteration 8--
95string(3) "bar"
96
97--Iteration 9--
98string(3) "bar"
99
100--Iteration 10--
101string(3) "bar"
102
103--Iteration 11--
104string(6) "bar.gz"
105
106--Iteration 12--
107string(3) "bar"
108
109--Iteration 13--
110string(3) "bar"
111
112--Iteration 14--
113string(3) "bar"
114
115--Iteration 15--
116string(3) "bar"
117
118--Iteration 16--
119string(3) "bar"
120
121--Iteration 17--
122string(3) "bar"
123
124--Iteration 18--
125string(3) "bar"
126
127--Iteration 19--
128string(3) "bar"
129
130--Iteration 20--
131string(3) ".gz"
132
133--Iteration 21--
134string(3) ".gz"
135
136--Iteration 22--
137string(3) ".gz"
138
139--Iteration 23--
140string(3) ".gz"
141
142--Iteration 24--
143string(3) ".gz"
144
145--Iteration 25--
146string(3) ".gz"
147
148--Iteration 26--
149string(7) "foo%0bar"
150
151--Iteration 27--
152string(7) "foo%0bar"
153
154--Iteration 28--
155string(7) "foo%0bar"
156
157--Iteration 29--
158string(7) "foo%0bar"
159
160--Iteration 30--
161string(4) "test"
162
163--Iteration 31--
164string(3) "bar"
165
166--Iteration 32--
167string(6) "bar.gz"
168Done
169