aboutsummaryrefslogtreecommitdiffstats
path: root/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading
diff options
context:
space:
mode:
Diffstat (limited to 'lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading')
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/_autoload.inc12
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/_no-autoload.inc17
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-includes.phpt12
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-with-autoload.phpt28
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-with-spl-autoload-default.phpt25
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-with-spl-autoload.phpt43
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-without-spl-autoload.phpt19
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-without-spl-with-autoload.phpt21
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto.phpt11
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/error-auto-with-spl-nonstatic-autoload.phpt32
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/path-includes-autoload.phpt14
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/path-includes.phpt12
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/safe-includes.phpt12
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/standalone-autoload.phpt12
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/standalone-with-prefix.phpt15
-rw-r--r--lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/standalone.phpt13
16 files changed, 298 insertions, 0 deletions
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/_autoload.inc b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/_autoload.inc
new file mode 100644
index 000000000..42e3500e4
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/_autoload.inc
@@ -0,0 +1,12 @@
+<?php
+
+/**
+ * Tests if autoloading for HTML Purifier is enabled. If all tests pass,
+ * output is blank.
+ */
+
+assert("!in_array(realpath('../library/HTMLPurifier/Filter/YouTube.php'), get_included_files())");
+new HTMLPurifier_Filter_YouTube();
+assert(" in_array(realpath('../library/HTMLPurifier.autoload.php'), get_included_files())");
+
+// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/_no-autoload.inc b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/_no-autoload.inc
new file mode 100644
index 000000000..fc109e727
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/_no-autoload.inc
@@ -0,0 +1,17 @@
+<?php
+
+/**
+ * Tests if autoloading is off in HTML Purifier. If all tests pass, no output.
+ */
+
+if (function_exists('spl_autoload_register')) {
+ $__v = spl_autoload_functions();
+ assert('$__v == false || !in_array(array("HTMLPurifier_Bootstrap", "autoload"), $__v)');
+} else {
+ if (function_exists('__autoload')) {
+ $__r = new ReflectionFunction('__autoload');
+ assert('$__r->getFileName() != realpath("../library/HTMLPurifier.autoload.php")');
+ }
+}
+
+// vim: et sw=4 sts=4
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-includes.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-includes.phpt
new file mode 100644
index 000000000..6a8f909b8
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-includes.phpt
@@ -0,0 +1,12 @@
+--TEST--
+HTMLPurifier.auto.php and HTMLPurifier.includes.php loading test
+--FILE--
+<?php
+require '../library/HTMLPurifier.path.php';
+require 'HTMLPurifier.includes.php';
+require 'HTMLPurifier/PHPT/loading/_no-autoload.inc';
+$config = HTMLPurifier_Config::createDefault();
+$purifier = new HTMLPurifier($config);
+echo $purifier->purify('<b>Salsa!');
+--EXPECT--
+<b>Salsa!</b> \ No newline at end of file
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-with-autoload.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-with-autoload.phpt
new file mode 100644
index 000000000..aad437202
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-with-autoload.phpt
@@ -0,0 +1,28 @@
+--TEST--
+HTMLPurifier.auto.php using spl_autoload_register with __autoload() already defined loading test
+--SKIPIF--
+<?php
+if (!function_exists('spl_autoload_register')) {
+ echo "skip - spl_autoload_register() not available";
+}
+--FILE--
+<?php
+function __autoload($class) {
+ echo "Autoloading $class...
+";
+ eval("class $class {}");
+}
+
+require '../library/HTMLPurifier.auto.php';
+require 'HTMLPurifier/PHPT/loading/_autoload.inc';
+$config = HTMLPurifier_Config::createDefault();
+$purifier = new HTMLPurifier($config);
+echo $purifier->purify('<b>Salsa!') . "
+";
+
+// purposely invoke older autoload
+$bar = new Bar();
+
+--EXPECT--
+<b>Salsa!</b>
+Autoloading Bar... \ No newline at end of file
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-with-spl-autoload-default.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-with-spl-autoload-default.phpt
new file mode 100644
index 000000000..a4011f1d3
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-with-spl-autoload-default.phpt
@@ -0,0 +1,25 @@
+--TEST--
+HTMLPurifier.auto.php using spl_autoload_register default
+--SKIPIF--
+<?php
+if (!function_exists('spl_autoload_register')) {
+ echo "skip - spl_autoload_register() not available";
+}
+--FILE--
+<?php
+spl_autoload_extensions(".php");
+spl_autoload_register();
+
+require '../library/HTMLPurifier.auto.php';
+require 'HTMLPurifier/PHPT/loading/_autoload.inc';
+$config = HTMLPurifier_Config::createDefault();
+$purifier = new HTMLPurifier($config);
+echo $purifier->purify('<b>Salsa!') . "
+";
+
+// purposely invoke standard autoload
+$test = new default_load();
+
+--EXPECT--
+<b>Salsa!</b>
+Default loaded
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-with-spl-autoload.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-with-spl-autoload.phpt
new file mode 100644
index 000000000..1697bb13f
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-with-spl-autoload.phpt
@@ -0,0 +1,43 @@
+--TEST--
+HTMLPurifier.auto.php using spl_autoload_register with user registration loading test
+--SKIPIF--
+<?php
+if (!function_exists('spl_autoload_register')) {
+ echo "skip - spl_autoload_register() not available";
+}
+--FILE--
+<?php
+function my_autoload($class) {
+ echo "Autoloading $class...
+";
+ eval("class $class {}");
+ return true;
+}
+class MyClass {
+ public static function myAutoload($class) {
+ if ($class == 'Foo') {
+ echo "Special autoloading Foo...
+";
+ eval("class $class {}");
+ }
+ }
+}
+
+spl_autoload_register(array('MyClass', 'myAutoload'));
+spl_autoload_register('my_autoload');
+
+require '../library/HTMLPurifier.auto.php';
+require 'HTMLPurifier/PHPT/loading/_autoload.inc';
+$config = HTMLPurifier_Config::createDefault();
+$purifier = new HTMLPurifier($config);
+echo $purifier->purify('<b>Salsa!') . "
+";
+
+// purposely invoke older autoloads
+$foo = new Foo();
+$bar = new Bar();
+
+--EXPECT--
+<b>Salsa!</b>
+Special autoloading Foo...
+Autoloading Bar... \ No newline at end of file
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-without-spl-autoload.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-without-spl-autoload.phpt
new file mode 100644
index 000000000..aeee9dcee
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-without-spl-autoload.phpt
@@ -0,0 +1,19 @@
+--TEST--
+HTMLPurifier.auto.php without spl_autoload_register without userland autoload loading test
+--SKIPIF--
+<?php
+if (function_exists('spl_autoload_register')) {
+ echo "skip - spl_autoload_register() available";
+}
+--FILE--
+<?php
+assert("!function_exists('__autoload')");
+require '../library/HTMLPurifier.auto.php';
+require 'HTMLPurifier/PHPT/loading/_autoload.inc';
+$config = HTMLPurifier_Config::createDefault();
+$purifier = new HTMLPurifier($config);
+echo $purifier->purify('<b>Salsa!') . "
+";
+
+--EXPECT--
+<b>Salsa!</b> \ No newline at end of file
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-without-spl-with-autoload.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-without-spl-with-autoload.phpt
new file mode 100644
index 000000000..2b6f49d8c
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto-without-spl-with-autoload.phpt
@@ -0,0 +1,21 @@
+--TEST--
+HTMLPurifier.auto.php without spl_autoload_register but with userland
+__autoload() defined test
+--SKIPIF--
+<?php
+if (function_exists('spl_autoload_register')) {
+ echo "skip - spl_autoload_register() available";
+}
+--FILE--
+<?php
+function __autoload($class) {
+ echo "Autoloading $class...
+";
+ eval("class $class {}");
+}
+require '../library/HTMLPurifier.auto.php';
+require 'HTMLPurifier/PHPT/loading/_no-autoload.inc';
+$purifier = new HTMLPurifier();
+
+--EXPECT--
+Autoloading HTMLPurifier... \ No newline at end of file
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto.phpt
new file mode 100644
index 000000000..a4ea716f9
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/auto.phpt
@@ -0,0 +1,11 @@
+--TEST--
+HTMLPurifier.auto.php loading test
+--FILE--
+<?php
+require '../library/HTMLPurifier.auto.php';
+require 'HTMLPurifier/PHPT/loading/_autoload.inc';
+$config = HTMLPurifier_Config::createDefault();
+$purifier = new HTMLPurifier($config);
+echo $purifier->purify('<b>Salsa!');
+--EXPECT--
+<b>Salsa!</b> \ No newline at end of file
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/error-auto-with-spl-nonstatic-autoload.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/error-auto-with-spl-nonstatic-autoload.phpt
new file mode 100644
index 000000000..9a91abaf8
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/error-auto-with-spl-nonstatic-autoload.phpt
@@ -0,0 +1,32 @@
+--TEST--
+Error when registering autoload with non-static autoload already on SPL stack
+--SKIPIF--
+<?php
+if (!function_exists('spl_autoload_register')) {
+ echo "skip - spl_autoload_register() not available";
+}
+if (version_compare(PHP_VERSION, '5.2.11', '>=')) {
+ echo "skip - non-buggy version of PHP";
+}
+--FILE--
+<?php
+class NotStatic
+{
+ public function autoload($class) {
+ echo "Autoloading... $class" . PHP_EOL;
+ eval("class $class {}");
+ }
+}
+
+$obj = new NotStatic();
+spl_autoload_register(array($obj, 'autoload'));
+
+try {
+ require '../library/HTMLPurifier.auto.php';
+} catch (Exception $e) {
+ echo 'Caught error gracefully';
+ assert('strpos($e->getMessage(), "44144") !== false');
+}
+
+--EXPECT--
+Caught error gracefully
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/path-includes-autoload.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/path-includes-autoload.phpt
new file mode 100644
index 000000000..6120956c6
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/path-includes-autoload.phpt
@@ -0,0 +1,14 @@
+--TEST--
+HTMLPurifier.path.php, HTMLPurifier.includes.php and HTMLPurifier.autoload.php loading test
+--FILE--
+<?php
+require '../library/HTMLPurifier.path.php';
+require 'HTMLPurifier.includes.php';
+require 'HTMLPurifier.autoload.php';
+require 'HTMLPurifier/PHPT/loading/_autoload.inc';
+$config = HTMLPurifier_Config::createDefault();
+$purifier = new HTMLPurifier($config);
+echo $purifier->purify('<b>Salsa!');
+
+--EXPECT--
+<b>Salsa!</b> \ No newline at end of file
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/path-includes.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/path-includes.phpt
new file mode 100644
index 000000000..681d51a96
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/path-includes.phpt
@@ -0,0 +1,12 @@
+--TEST--
+HTMLPurifier.path.php and HTMLPurifier.includes.php loading test
+--FILE--
+<?php
+require '../library/HTMLPurifier.path.php';
+require 'HTMLPurifier.includes.php';
+require 'HTMLPurifier/PHPT/loading/_no-autoload.inc';
+$config = HTMLPurifier_Config::createDefault();
+$purifier = new HTMLPurifier($config);
+echo $purifier->purify('<b>Salsa!');
+--EXPECT--
+<b>Salsa!</b> \ No newline at end of file
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/safe-includes.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/safe-includes.phpt
new file mode 100644
index 000000000..cb6f95d53
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/safe-includes.phpt
@@ -0,0 +1,12 @@
+--TEST--
+HTMLPurifier.safe-includes.php loading test
+--FILE--
+<?php
+require_once '../library/HTMLPurifier.php'; // Tests for require_once
+require_once '../library/HTMLPurifier.safe-includes.php';
+require 'HTMLPurifier/PHPT/loading/_no-autoload.inc';
+$config = HTMLPurifier_Config::createDefault();
+$purifier = new HTMLPurifier($config);
+echo $purifier->purify('<b>Salsa!');
+--EXPECT--
+<b>Salsa!</b> \ No newline at end of file
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/standalone-autoload.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/standalone-autoload.phpt
new file mode 100644
index 000000000..36bb2efd7
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/standalone-autoload.phpt
@@ -0,0 +1,12 @@
+--TEST--
+HTMLPurifier.standalone.php loading test
+--FILE--
+<?php
+require '../library/HTMLPurifier.standalone.php';
+require '../library/HTMLPurifier.autoload.php';
+require 'HTMLPurifier/PHPT/loading/_autoload.inc';
+$config = HTMLPurifier_Config::createDefault();
+$purifier = new HTMLPurifier($config);
+echo $purifier->purify('<b>Salsa!');
+--EXPECT--
+<b>Salsa!</b> \ No newline at end of file
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/standalone-with-prefix.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/standalone-with-prefix.phpt
new file mode 100644
index 000000000..721dd7d17
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/standalone-with-prefix.phpt
@@ -0,0 +1,15 @@
+--TEST--
+HTMLPurifier.standalone.php with HTMLPURIFIER_PREFIX loading test
+--FILE--
+<?php
+define('HTMLPURIFIER_PREFIX', realpath('../library'));
+require '../library/HTMLPurifier.path.php';
+require 'HTMLPurifier.standalone.php';
+require 'HTMLPurifier/Filter/YouTube.php';
+require 'HTMLPurifier/PHPT/loading/_no-autoload.inc';
+$config = HTMLPurifier_Config::createDefault();
+$purifier = new HTMLPurifier($config);
+echo $purifier->purify('<b>Salsa!');
+assert('in_array(realpath("../library/HTMLPurifier/Filter/YouTube.php"), get_included_files())');
+--EXPECT--
+<b>Salsa!</b> \ No newline at end of file
diff --git a/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/standalone.phpt b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/standalone.phpt
new file mode 100644
index 000000000..a4fe4f77d
--- /dev/null
+++ b/lib/htmlpurifier/tests/HTMLPurifier/PHPT/loading/standalone.phpt
@@ -0,0 +1,13 @@
+--TEST--
+HTMLPurifier.standalone.php loading test
+--FILE--
+<?php
+require '../library/HTMLPurifier.standalone.php';
+require 'HTMLPurifier/Filter/YouTube.php';
+require 'HTMLPurifier/PHPT/loading/_no-autoload.inc';
+$config = HTMLPurifier_Config::createDefault();
+$purifier = new HTMLPurifier($config);
+echo $purifier->purify('<b>Salsa!');
+assert('in_array(realpath("../library/standalone/HTMLPurifier/Filter/YouTube.php"), get_included_files())');
+--EXPECT--
+<b>Salsa!</b> \ No newline at end of file