diff options
Diffstat (limited to 'lib/htmlpurifier/tests/multitest.php')
-rw-r--r-- | lib/htmlpurifier/tests/multitest.php | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/lib/htmlpurifier/tests/multitest.php b/lib/htmlpurifier/tests/multitest.php deleted file mode 100644 index ef296cdda..000000000 --- a/lib/htmlpurifier/tests/multitest.php +++ /dev/null @@ -1,159 +0,0 @@ -<?php - -/** @file - * Multiple PHP Versions test - * - * This file tests HTML Purifier in all versions of PHP. Arguments - * are specified like --arg=opt, allowed arguments are: - * - quiet (q), if specified no informative messages are enabled (please use - * this if you're outputting XML) - * - distro, allowed values 'normal' or 'standalone', by default all - * distributions are tested. "--standalone" is a shortcut for - * "--distro=standalone". - * - quick, run only the most recent versions of each release series - * - disable-flush, by default flush is run, this disables it - * - file (f), xml, type: these correspond to the parameters in index.php - * - * @note - * It requires a script called phpv that takes an extra argument (the - * version number of PHP) before all other arguments. Contact me if you'd - * like to set up a similar script. The name of the script can be - * edited with $phpv - * - * @note - * Also, configuration must be set up with a variable called - * $versions_to_test specifying version numbers to pass to $phpv - */ - -define('HTMLPurifierTest', 1); -chdir(dirname(__FILE__)); -$php = 'php'; // for safety - -require_once 'common.php'; - -if (!SimpleReporter::inCli()) { - echo 'Multitest only available from command line'; - exit; -} - -$AC = array(); // parameters -$AC['file'] = ''; -$AC['xml'] = false; -$AC['quiet'] = false; -$AC['php'] = $php; -$AC['disable-phpt'] = false; -$AC['disable-flush'] = false; -$AC['type'] = ''; -$AC['distro'] = ''; // valid values are normal/standalone -$AC['quick'] = false; // run the latest version on each release series -$AC['standalone'] = false; // convenience for --distro=standalone -// Legacy parameters -$AC['only-phpt'] = false; // --type=phpt -$AC['exclude-normal'] = false; // --distro=standalone -$AC['exclude-standalone'] = false; // --distro=normal -$AC['verbose'] = false; -$aliases = array( - 'f' => 'file', - 'q' => 'quiet', - 'v' => 'verbose', -); -htmlpurifier_parse_args($AC, $aliases); - -// Backwards compat extra parsing -if ($AC['only-phpt']) { - $AC['type'] = 'phpt'; -} -if ($AC['exclude-normal']) $AC['distro'] = 'standalone'; -elseif ($AC['exclude-standalone']) $AC['distro'] = 'normal'; -elseif ($AC['standalone']) $AC['distro'] = 'standalone'; - -if ($AC['xml']) { - $reporter = new XmlReporter(); -} else { - $reporter = new HTMLPurifier_SimpleTest_TextReporter($AC); -} - -// Regenerate any necessary files -if (!$AC['disable-flush']) htmlpurifier_flush($AC['php'], $reporter); - -$file_arg = ''; -require 'test_files.php'; -if ($AC['file']) { - $test_files_lookup = array_flip($test_files); - if (isset($test_files_lookup[$AC['file']])) { - $file_arg = '--file=' . $AC['file']; - } else { - throw new Exception("Invalid file passed"); - } -} -// This allows us to get out of having to do dry runs. -$size = count($test_files); - -$type_arg = ''; -if ($AC['type']) $type_arg = '--type=' . $AC['type']; - -if ($AC['quick']) { - $seriesArray = array(); - foreach ($versions_to_test as $version) { - $series = substr($version, 0, strpos($version, '.', strpos($version, '.') + 1)); - if (!isset($seriesArray[$series])) { - $seriesArray[$series] = $version; - continue; - } - if (version_compare($version, $seriesArray[$series], '>')) { - $seriesArray[$series] = $version; - } - } - $versions_to_test = array_values($seriesArray); -} - -// Setup the test -$test = new TestSuite('HTML Purifier Multiple Versions Test'); -foreach ($versions_to_test as $version) { - // Support for arbitrarily forcing flushes by wrapping the suspect - // version name in an array() - $flush_arg = ''; - if (is_array($version)) { - $version = $version[0]; - $flush_arg = '--flush'; - } - if ($AC['type'] !== 'phpt') { - $break = true; - switch ($AC['distro']) { - case '': - $break = false; - case 'normal': - $test->add( - new CliTestCase( - "$phpv $version index.php --xml $flush_arg $type_arg --disable-phpt $file_arg", - $AC['quiet'], $size - ) - ); - if ($break) break; - case 'standalone': - $test->add( - new CliTestCase( - "$phpv $version index.php --xml $flush_arg $type_arg --standalone --disable-phpt $file_arg", - $AC['quiet'], $size - ) - ); - if ($break) break; - } - } - if (!$AC['disable-phpt'] && (!$AC['type'] || $AC['type'] == 'phpt')) { - $test->add( - new CliTestCase( - $AC['php'] . " index.php --xml --php \"$phpv $version\" --type=phpt", - $AC['quiet'], $size - ) - ); - } -} - -// This is the HTML Purifier website's test XML file. We could -// add more websites, i.e. more configurations to test. -// $test->add(new RemoteTestCase('http://htmlpurifier.org/dev/tests/?xml=1', 'http://htmlpurifier.org/dev/tests/?xml=1&dry=1&flush=1')); - -$test->run($reporter); - -// vim: et sw=4 sts=4 |