summaryrefslogtreecommitdiff
path: root/ext/spl/tests/spl_autoload_001.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/tests/spl_autoload_001.phpt')
-rw-r--r--ext/spl/tests/spl_autoload_001.phpt136
1 files changed, 136 insertions, 0 deletions
diff --git a/ext/spl/tests/spl_autoload_001.phpt b/ext/spl/tests/spl_autoload_001.phpt
new file mode 100644
index 0000000..ff9d1e9
--- /dev/null
+++ b/ext/spl/tests/spl_autoload_001.phpt
@@ -0,0 +1,136 @@
+--TEST--
+SPL: spl_autoload() and friends
+--INI--
+include_path=.
+--FILE--
+<?php
+
+echo "===EMPTY===\n";
+
+var_dump(spl_autoload_extensions());
+
+try
+{
+ spl_autoload("TestClass");
+}
+catch(Exception $e)
+{
+ echo 'Exception: ' . $e->getMessage() . "\n";
+}
+
+$test_exts = array(NULL, "1", ".inc,,.php.inc", "");
+
+foreach($test_exts as $exts)
+{
+ echo "===($exts)===\n";
+ try
+ {
+ spl_autoload("TestClass", $exts);
+ }
+ catch(Exception $e)
+ {
+ echo 'Exception: ' . $e->getMessage() . "\n";
+ }
+}
+
+try
+{
+ spl_autoload_extensions(".inc,.php.inc");
+ spl_autoload("TestClass");
+}
+catch(Exception $e)
+{
+ echo 'Exception: ' . $e->getMessage() . "\n";
+}
+
+function TestFunc1($classname)
+{
+ echo __METHOD__ . "($classname)\n";
+}
+
+function TestFunc2($classname)
+{
+ echo __METHOD__ . "($classname)\n";
+}
+
+echo "===SPL_AUTOLOAD()===\n";
+
+spl_autoload_register();
+
+try
+{
+ var_dump(spl_autoload_extensions(".inc"));
+ var_dump(class_exists("TestClass", true));
+}
+catch(Exception $e)
+{
+ echo 'Exception: ' . $e->getMessage() . "\n";
+}
+
+echo "===REGISTER===\n";
+
+spl_autoload_unregister("spl_autoload");
+spl_autoload_register("TestFunc1");
+spl_autoload_register("TestFunc2");
+spl_autoload_register("TestFunc2"); /* 2nd call ignored */
+spl_autoload_extensions(".inc,.class.inc"); /* we do not have spl_autoload_registered yet */
+
+try
+{
+ var_dump(class_exists("TestClass", true));
+}
+catch(Exception $e)
+{
+ echo 'Exception: ' . $e->getMessage() . "\n";
+}
+
+echo "===LOAD===\n";
+
+spl_autoload_register("spl_autoload");
+var_dump(class_exists("TestClass", true));
+
+echo "===NOFUNCTION===\n";
+
+try
+{
+ spl_autoload_register("unavailable_autoload_function");
+}
+catch(Exception $e)
+{
+ echo 'Exception: ' . $e->getMessage() . "\n";
+}
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+===EMPTY===
+string(9) ".inc,.php"
+%stestclass.inc
+Exception: Class TestClass could not be loaded
+===()===
+Exception: Class TestClass could not be loaded
+===(1)===
+Exception: Class TestClass could not be loaded
+===(.inc,,.php.inc)===
+%stestclass
+%stestclass.php.inc
+Exception: Class TestClass could not be loaded
+===()===
+Exception: Class TestClass could not be loaded
+Exception: Class TestClass could not be loaded
+===SPL_AUTOLOAD()===
+string(4) ".inc"
+Exception: Class TestClass could not be loaded
+===REGISTER===
+TestFunc1(TestClass)
+TestFunc2(TestClass)
+bool(false)
+===LOAD===
+TestFunc1(TestClass)
+TestFunc2(TestClass)
+%stestclass.class.inc
+bool(true)
+===NOFUNCTION===
+Exception: Function 'unavailable_autoload_function' not found (function 'unavailable_autoload_function' not found or invalid function name)
+===DONE===