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
"; } } } } } } } ?>