@@ -238,4 +238,71 @@ public function testTouchCreatesEmptyFilesFromTraversableObject()
238
238
$ this ->assertFileExists ($ basePath .'2 ' );
239
239
$ this ->assertFileExists ($ basePath .'3 ' );
240
240
}
241
+
242
+ public function testRemoveCleansFilesLinksAndDirectoriesIteratively ()
243
+ {
244
+ $ basePath = $ this ->workspace .DIRECTORY_SEPARATOR .'directory ' .DIRECTORY_SEPARATOR ;
245
+
246
+ mkdir ($ basePath );
247
+ mkdir ($ basePath .'dir ' );
248
+ touch ($ basePath .'file ' );
249
+ link ($ basePath .'file ' , $ basePath .'link ' );
250
+
251
+ $ this ->filesystem ->remove ($ basePath );
252
+
253
+ $ this ->assertTrue (!is_dir ($ basePath ));
254
+ }
255
+
256
+ public function testRemoveCleansArrayOfFilesLinksAndDirectories ()
257
+ {
258
+ $ basePath = $ this ->workspace .DIRECTORY_SEPARATOR ;
259
+
260
+ mkdir ($ basePath .'dir ' );
261
+ touch ($ basePath .'file ' );
262
+ link ($ basePath .'file ' , $ basePath .'link ' );
263
+
264
+ $ files = array (
265
+ $ basePath .'dir ' , $ basePath .'file ' , $ basePath .'link '
266
+ );
267
+
268
+ $ this ->filesystem ->remove ($ files );
269
+
270
+ $ this ->assertTrue (!is_dir ($ basePath .'dir ' ));
271
+ $ this ->assertTrue (!is_file ($ basePath .'file ' ));
272
+ $ this ->assertTrue (!is_link ($ basePath .'link ' ));
273
+ }
274
+
275
+ public function testRemoveCleansTraversableObjectOfFilesLinksAndDirectories ()
276
+ {
277
+ $ basePath = $ this ->workspace .DIRECTORY_SEPARATOR ;
278
+
279
+ mkdir ($ basePath .'dir ' );
280
+ touch ($ basePath .'file ' );
281
+ link ($ basePath .'file ' , $ basePath .'link ' );
282
+
283
+ $ files = new \ArrayObject (array (
284
+ $ basePath .'dir ' , $ basePath .'file ' , $ basePath .'link '
285
+ ));
286
+
287
+ $ this ->filesystem ->remove ($ files );
288
+
289
+ $ this ->assertTrue (!is_dir ($ basePath .'dir ' ));
290
+ $ this ->assertTrue (!is_file ($ basePath .'file ' ));
291
+ $ this ->assertTrue (!is_link ($ basePath .'link ' ));
292
+ }
293
+
294
+ public function testRemoveIgnoresNonExistingFiles ()
295
+ {
296
+ $ basePath = $ this ->workspace .DIRECTORY_SEPARATOR ;
297
+
298
+ mkdir ($ basePath .'dir ' );
299
+
300
+ $ files = array (
301
+ $ basePath .'dir ' , $ basePath .'file '
302
+ );
303
+
304
+ $ this ->filesystem ->remove ($ files );
305
+
306
+ $ this ->assertTrue (!is_dir ($ basePath .'dir ' ));
307
+ }
241
308
}
0 commit comments