summaryrefslogtreecommitdiff
path: root/test/SimpleTest/autorun.php
diff options
context:
space:
mode:
Diffstat (limited to 'test/SimpleTest/autorun.php')
-rw-r--r--test/SimpleTest/autorun.php106
1 files changed, 106 insertions, 0 deletions
diff --git a/test/SimpleTest/autorun.php b/test/SimpleTest/autorun.php
new file mode 100644
index 0000000..3e2388a
--- /dev/null
+++ b/test/SimpleTest/autorun.php
@@ -0,0 +1,106 @@
+<?php
+
+$GLOBALS['TIME'] = 0.0;
+
+error_reporting(E_ALL | E_STRICT);
+$simpletest_location = 'simpletest';
+$settings_locations = array(
+ dirname(__FILE__) . '/../conf/test-settings.php',
+ dirname(__FILE__) . '/../test-settings.php',
+);
+
+foreach ($settings_locations as $location) {
+ if (file_exists($location)) {
+ require $location;
+ break;
+ }
+}
+
+function __autoload($class) {
+ require str_replace('_', '/', $class) . '.php';
+}
+set_include_path(
+ get_include_path() . PATH_SEPARATOR .
+ dirname(__FILE__) . PATH_SEPARATOR .
+ dirname(__FILE__) . '/../library'
+);
+/**
+ * Pretty prints a string with ill-formed characters to a Windows
+ * cmd.exe screen.
+ */
+function str_dump($string) {
+ for ($i = 0, $len = strlen($string); $i < $len; $i++) {
+ $char = $string[$i];
+ $byte = ord($char);
+ $echo = $char;
+ $spec = '';
+ if ($byte <= 0x1F || $byte >= 0x7F) {
+ $spec = "\\";
+ switch ($byte) {
+ case 0x00: $echo = '0'; break;
+ case 0x07: $echo = 'a'; break;
+ case 0x08: $echo = 'b'; break;
+ case 0x09: $echo = 't'; break;
+ case 0x10: {$echo = "\n"; $spec = ''; break;}
+ case 0x11: $echo = 'v'; break;
+ case 0x12: $echo = 'f'; break;
+ case 0x13: {$echo = $spec = ''; break;}
+ case 0x1B: $echo = 'e'; break;
+ default:
+ $echo = 'x' . strtoupper(dechex($byte));
+ }
+ }
+ if ($echo == '\\') $echo = '\\\\';
+ echo $spec . $echo;
+ }
+ echo "\n";
+}
+
+/**
+ * Pretty prints a token as taken by TreeConstructer->emitToken
+ */
+function token_dump($token) {
+ switch ($token['type']) {
+ case HTML5_Tokenizer::DOCTYPE:
+ echo "<!doctype ...>\n";
+ break;
+ case HTML5_Tokenizer::STARTTAG:
+ $attr = '';
+ foreach ($token['attr'] as $kp) {
+ $attr .= ' '.$kp['name'] . '="' . $kp['value'] . '"';
+ }
+ echo "<{$token['name']}$attr>\n";
+ break;
+ case HTML5_Tokenizer::ENDTAG:
+ echo "</{$token['name']}>\n";
+ break;
+ case HTML5_Tokenizer::COMMENT:
+ echo "<!-- {$token['data']} -->\n";
+ break;
+ case HTML5_Tokenizer::CHARACTER:
+ echo '"'.$token['data'].'"'."\n";
+ break;
+ case HTML5_Tokenizer::EOF:
+ echo "EOF\n";
+ break;
+ }
+}
+
+require_once $simpletest_location . '/autorun.php';
+
+class TimedTextReporter extends TextReporter
+{
+ public function paintFooter($test_name) {
+ parent::paintFooter($test_name);
+ echo 'Time: ' . $GLOBALS['TIME'] . "\n";
+ }
+}
+
+function get_microtime() {
+ $microtime = explode(' ', microtime());
+ return $microtime[1] . substr($microtime[0], 1);
+}
+
+SimpleTest::prefer(new TimedTextReporter());
+
+// vim: et sw=4 sts=4