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