filterTestDir = KERNEL_PKG_PATH . '/test/smarty_filter_tests';
$this->smartyDir = KERNEL_PKG_PATH . 'smarty_bit';
}
function testPrePostFilters ()
{
global $gBitLanguage;
$gBitLanguage->mLanguage = 'sv';
$this->assertTrue (is_dir("$this->filterTestDir"), // Quite fatal
"$this->filterTestDir is not a directory", );
// echo "$this->filterTestDir
";
$filterTestDirHandle = opendir($this->filterTestDir);
while (false !== ($filterTestCase = readdir($filterTestDirHandle))) {
$filterTestCaseDir = $this->filterTestDir . '/' . $filterTestCase;
$this->assertTrue(is_dir ($filterTestCaseDir),
"$filterTestCaseDir is not a directory", );
// echo "$filterTestCaseDir
";
if (preg_match('/(.+)filter\.(.+)/', $filterTestCase, $matches)) {
// echo "$matches[0]
";
$filterType = $matches[1];
$filterBase = $matches[2];
$smartyFile =
$this->smartyDir . '/' . $filterType .'filter.' . $filterBase . '.php';
$filterName = 'smarty_' . $filterType . 'filter_' .$filterBase;
// echo "$smartyFile
";
// echo "$filterName
";
$this->assertTrue(file_exists ($smartyFile),
"Smarty filter $smartyFile is missing", );
include_once($smartyFile);
// echo "$filterTestCaseDir
";
$filterTestCaseDirHandle = opendir("$filterTestCaseDir");
while (false != ($inputFile = readdir($filterTestCaseDirHandle))) {
if (preg_match('/^(.+)\.input$/', $inputFile, $matches)) {
$baseName = $matches[1];
$outputFile = $filterTestCaseDir . '/' . $baseName . '.output';
$errorFile = $filterTestCaseDir . '/' . $baseName . '.error';
$inputFile = $filterTestCaseDir . '/' . $inputFile;
// echo "$inputFile
";
// echo "$outputFile
";
// echo "$errorFile
";
$this->assertTrue(file_exists ($inputFile),
(file_exists ($inputFile) ?
"" :
"Input file $inputFile " .
"is missing"), );
// remove error file if there is no error
if (file_exists($errorFile)) {
@unlink ($errorFile);
}
$input = file_get_contents($inputFile);
// $filterOutput = call_user_func ($filterName, $input, &$smarty);
$filterOutput = call_user_func_array ($filterName,
[$input, &$gBitSmarty], );
if (!file_exists($outputFile)) {
// Output file does not exist - Create error file
// echo "OUTPUT does not Exists
";
$this->assertTrue(file_exists ($outputFile),
(file_exists ($outputFile) ?
"" :
"Output file $outputFile " .
"is missing, " .
"$errorFile created."), );
// Error handling missing when writing to file,
// final code should be encapsulated in a function.
$outHandle = fopen ($errorFile, 'wb');
fwrite ($outHandle, $filterOutput, strlen ($filterOutput));
fclose($outHandle);
// echo "END OUTPUT does not Exists
";
// break;
}
else {
// echo "OUTPUT Exists
";
$output = file_get_contents($outputFile);
$compareResult = strcmp ($output, $filterOutput);
// print "$output
\n";
// print "$filterOutput
\n";
// print "$compareResult
\n";
$this->assertTrue (0 == $compareResult,
(0 == $compareResult ?
"" :
"$inputFile did not match " .
"output, incorrect data stored in " .
"$errorFile"), );
if (0 != $compareResult) {
$outHandle = fopen ($errorFile, 'wb');
fwrite ($outHandle, $filterOutput, strlen ($filterOutput));
fclose($outHandle);
}
// echo "END OUTPUT Exists
";
}
}
}
}
}
}
}
?>