1f8369d7dSTobias Sarnowski<?php 2f8369d7dSTobias Sarnowski 3f8369d7dSTobias Sarnowski/** 4f8369d7dSTobias Sarnowski * Helper class with some filesystem utilities. 5f8369d7dSTobias Sarnowski */ 6f8369d7dSTobias Sarnowskiclass TestUtils { 7f8369d7dSTobias Sarnowski 8f8369d7dSTobias Sarnowski /** 9f8369d7dSTobias Sarnowski * helper for recursive copy() 10f8369d7dSTobias Sarnowski * 11f8369d7dSTobias Sarnowski * @static 12f8369d7dSTobias Sarnowski * @param $destdir string 13f8369d7dSTobias Sarnowski * @param $source string 14f8369d7dSTobias Sarnowski */ 15f8369d7dSTobias Sarnowski public static function rcopy($destdir, $source) { 16f8369d7dSTobias Sarnowski if (!is_dir($source)) { 17f8369d7dSTobias Sarnowski copy($source, $destdir.'/'.basename($source)); 18f8369d7dSTobias Sarnowski } else { 19f8369d7dSTobias Sarnowski $newdestdir = $destdir.'/'.basename($source); 20*9c6354e5STobias Sarnowski if (!is_dir($newdestdir)) { 21f8369d7dSTobias Sarnowski mkdir($newdestdir); 22*9c6354e5STobias Sarnowski } 23f8369d7dSTobias Sarnowski 24f8369d7dSTobias Sarnowski $dh = dir($source); 25f8369d7dSTobias Sarnowski while (false !== ($entry = $dh->read())) { 26f8369d7dSTobias Sarnowski if ($entry == '.' || $entry == '..') { 27f8369d7dSTobias Sarnowski continue; 28f8369d7dSTobias Sarnowski } 29f8369d7dSTobias Sarnowski TestUtils::rcopy($newdestdir, $source.'/'.$entry); 30f8369d7dSTobias Sarnowski } 31f8369d7dSTobias Sarnowski $dh->close(); 32f8369d7dSTobias Sarnowski } 33f8369d7dSTobias Sarnowski } 34f8369d7dSTobias Sarnowski 35f8369d7dSTobias Sarnowski /** 36f8369d7dSTobias Sarnowski * helper for recursive rmdir()/unlink() 37f8369d7dSTobias Sarnowski * 38f8369d7dSTobias Sarnowski * @static 39f8369d7dSTobias Sarnowski * @param $target string 40f8369d7dSTobias Sarnowski */ 41f8369d7dSTobias Sarnowski public static function rdelete($target) { 42f8369d7dSTobias Sarnowski if (!is_dir($target)) { 43f8369d7dSTobias Sarnowski unlink($target); 44f8369d7dSTobias Sarnowski } else { 45f8369d7dSTobias Sarnowski $dh = dir($target); 46f8369d7dSTobias Sarnowski while (false !== ($entry = $dh->read())) { 47f8369d7dSTobias Sarnowski if ($entry == '.' || $entry == '..') { 48f8369d7dSTobias Sarnowski continue; 49f8369d7dSTobias Sarnowski } 50f8369d7dSTobias Sarnowski TestUtils::rdelete("$target/$entry"); 51f8369d7dSTobias Sarnowski } 52f8369d7dSTobias Sarnowski $dh->close(); 53f8369d7dSTobias Sarnowski rmdir($target); 54f8369d7dSTobias Sarnowski } 55f8369d7dSTobias Sarnowski } 56f8369d7dSTobias Sarnowski 57f8369d7dSTobias Sarnowski /** 58f8369d7dSTobias Sarnowski * helper to append text to a file 59f8369d7dSTobias Sarnowski * 60f8369d7dSTobias Sarnowski * @static 61f8369d7dSTobias Sarnowski * @param $file string 62f8369d7dSTobias Sarnowski * @param $text string 63f8369d7dSTobias Sarnowski */ 64f8369d7dSTobias Sarnowski public static function fappend($file, $text) { 65f8369d7dSTobias Sarnowski $fh = fopen($file, 'a'); 66f8369d7dSTobias Sarnowski fwrite($fh, $text); 67f8369d7dSTobias Sarnowski fclose($fh); 68f8369d7dSTobias Sarnowski } 69f8369d7dSTobias Sarnowski 70f8369d7dSTobias Sarnowski} 71