debug("\n----------\n---------- ".$this->getName()."\n----------\n"); } protected function debug($sMsg) { if (DEBUG_UNIT_TEST) { if (is_string($sMsg)) { echo "$sMsg\n"; } else { print_r($sMsg); } } } public function GetMicroTime() { list($uSec, $sec) = explode(" ", microtime()); return ((float)$uSec + (float)$sec); } public function WriteToCsvHeader($sFilename, $aHeader) { $sResultFile = APPROOT.'log/'.$sFilename; if (is_file($sResultFile)) { @unlink($sResultFile); } SetupUtils::builddir(dirname($sResultFile)); file_put_contents($sResultFile, implode(';', $aHeader)."\n"); } public function WriteToCsvData($sFilename, $aData) { $sResultFile = APPROOT.'log/'.$sFilename; $file = fopen($sResultFile, 'a'); fputs($file, implode(';', $aData)."\n"); fclose($file); } public function GetTestId() { $sId = str_replace('"', '', $this->getName()); $sId = str_replace(' ', '_', $sId); return $sId; } /** * @since 2.7.4 3.0.0 */ public function InvokeNonPublicStaticMethod($sObjectClass, $sMethodName, $aArgs) { return $this->InvokeNonPublicMethod($sObjectClass, $sMethodName, null, $aArgs); } /** * @param string $sObjectClass for example DBObject::class * @param string $sMethodName * @param object $oObject * @param array $aArgs * * @return mixed method result * * @throws \ReflectionException * * @since 2.7.4 3.0.0 */ public function InvokeNonPublicMethod($sObjectClass, $sMethodName, $oObject, $aArgs) { $class = new \ReflectionClass($sObjectClass); $method = $class->getMethod($sMethodName); $method->setAccessible(true); return $method->invokeArgs($oObject, $aArgs); } public function RecurseRmdir($dir) { if (is_dir($dir)) { $objects = scandir($dir); foreach ($objects as $object) { if ($object != "." && $object != "..") { if (is_dir($dir.DIRECTORY_SEPARATOR.$object)) $this->RecurseRmdir($dir.DIRECTORY_SEPARATOR.$object); else unlink($dir.DIRECTORY_SEPARATOR.$object); } } rmdir($dir); } } public function CreateTmpdir() { $sTmpDir=tempnam(sys_get_temp_dir(),''); if (file_exists($sTmpDir)) { unlink($sTmpDir); } mkdir($sTmpDir); if (is_dir($sTmpDir)) { return $sTmpDir; } return sys_get_temp_dir(); } public function RecurseMkdir($sDir){ if (strpos($sDir, DIRECTORY_SEPARATOR) === 0){ $sPath = DIRECTORY_SEPARATOR; } else { $sPath = ""; } foreach (explode(DIRECTORY_SEPARATOR, $sDir) as $sSubDir){ if (($sSubDir === '..')) { break; } if (( trim($sSubDir) === '' ) || ( $sSubDir === '.' )) { continue; } $sPath .= $sSubDir . DIRECTORY_SEPARATOR; if (!is_dir($sPath)) { var_dump($sPath); @mkdir($sPath); } } } public function RecurseCopy($src,$dst) { $dir = opendir($src); @mkdir($dst); while(false !== ( $file = readdir($dir)) ) { if (( $file != '.' ) && ( $file != '..' )) { if ( is_dir($src . '/' . $file) ) { $this->RecurseCopy($src . DIRECTORY_SEPARATOR . $file,$dst . DIRECTORY_SEPARATOR . $file); } else { copy($src . DIRECTORY_SEPARATOR . $file,$dst . DIRECTORY_SEPARATOR . $file); } } } closedir($dir); } }