]> granicus.if.org Git - php/commitdiff
- Add new tests
authorMarcus Boerger <helly@php.net>
Fri, 16 Dec 2005 22:22:14 +0000 (22:22 +0000)
committerMarcus Boerger <helly@php.net>
Fri, 16 Dec 2005 22:22:14 +0000 (22:22 +0000)
ext/spl/tests/spl_autoload_006.phpt [new file with mode: 0755]
ext/spl/tests/spl_autoload_007.phpt [new file with mode: 0755]

diff --git a/ext/spl/tests/spl_autoload_006.phpt b/ext/spl/tests/spl_autoload_006.phpt
new file mode 100755 (executable)
index 0000000..7cd576f
--- /dev/null
@@ -0,0 +1,50 @@
+--TEST--
+SPL: spl_autoload() with static methods
+--INI--
+include_path=.
+--FILE--
+<?php
+
+class MyAutoLoader {
+
+        static function autoLoad($className) {
+               echo __METHOD__ . "($className)\n";
+        }
+}
+
+spl_autoload_register('MyAutoLoader::autoLoad');
+
+var_dump(spl_autoload_functions());
+
+// check
+var_dump(class_exists("TestClass", true));
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+array(1) {
+  [0]=>
+  array(2) {
+    [0]=>
+    string(12) "MyAutoLoader"
+    [1]=>
+    string(8) "autoLoad"
+  }
+}
+MyAutoLoader::autoLoad(TestClass)
+bool(false)
+===DONE===
+--UEXPECTF--
+array(1) {
+  [0]=>
+  array(2) {
+    [0]=>
+    unicode(12) "MyAutoLoader"
+    [1]=>
+    unicode(8) "autoLoad"
+  }
+}
+MyAutoLoader::autoLoad(TestClass)
+bool(false)
+===DONE===
diff --git a/ext/spl/tests/spl_autoload_007.phpt b/ext/spl/tests/spl_autoload_007.phpt
new file mode 100755 (executable)
index 0000000..40b4b61
--- /dev/null
@@ -0,0 +1,138 @@
+--TEST--
+SPL: spl_autoload() with inaccessible methods
+--INI--
+include_path=.
+--FILE--
+<?php
+
+class MyAutoLoader {
+
+        static protected function noAccess($className) {
+               echo __METHOD__ . "($className)\n";
+        }
+
+        static function autoLoad($className) {
+               echo __METHOD__ . "($className)\n";
+        }
+
+        function dynaLoad($className) {
+               echo __METHOD__ . "($className)\n";
+        }
+}
+
+$obj = new MyAutoLoader;
+
+$funcs = array(
+       'MyAutoLoader::notExist',
+       'MyAutoLoader::noAccess',
+       'MyAutoLoader::autoLoad',
+       'MyAutoLoader::dynaLoad',
+       array('MyAutoLoader', 'notExist'),
+       array('MyAutoLoader', 'noAccess'),
+       array('MyAutoLoader', 'autoLoad'),
+       array('MyAutoLoader', 'dynaLoad'),
+       array($obj, 'notExist'),
+       array($obj, 'noAccess'),
+       array($obj, 'autoLoad'),
+       array($obj, 'dynaLoad'),
+);
+
+foreach($funcs as $idx => $func)
+{
+       if ($idx) echo "\n";
+       try
+       {
+               var_dump($func);
+               spl_autoload_register($func);
+               echo "ok\n";
+       }
+       catch (Exception $e)
+       {
+               echo $e->getMessage() . "\n";
+       }
+}
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+string(22) "MyAutoLoader::notExist"
+Function 'MyAutoLoader::notExist' not found
+
+string(22) "MyAutoLoader::noAccess"
+Function 'MyAutoLoader::noAccess' not callable
+
+string(22) "MyAutoLoader::autoLoad"
+ok
+
+string(22) "MyAutoLoader::dynaLoad"
+Function 'MyAutoLoader::dynaLoad' not callable
+
+array(2) {
+  [0]=>
+  string(12) "MyAutoLoader"
+  [1]=>
+  string(8) "notExist"
+}
+Passed array does not specify an existing static method
+
+array(2) {
+  [0]=>
+  string(12) "MyAutoLoader"
+  [1]=>
+  string(8) "noAccess"
+}
+Passed array does not specify a callable static method
+
+array(2) {
+  [0]=>
+  string(12) "MyAutoLoader"
+  [1]=>
+  string(8) "autoLoad"
+}
+ok
+
+array(2) {
+  [0]=>
+  string(12) "MyAutoLoader"
+  [1]=>
+  string(8) "dynaLoad"
+}
+Passed array specifies a non static method but no object
+
+array(2) {
+  [0]=>
+  object(MyAutoLoader)#%d (0) {
+  }
+  [1]=>
+  string(8) "notExist"
+}
+Passed array does not specify an existing method
+
+array(2) {
+  [0]=>
+  object(MyAutoLoader)#%d (0) {
+  }
+  [1]=>
+  string(8) "noAccess"
+}
+Passed array does not specify a callable method
+
+array(2) {
+  [0]=>
+  object(MyAutoLoader)#%d (0) {
+  }
+  [1]=>
+  string(8) "autoLoad"
+}
+ok
+
+array(2) {
+  [0]=>
+  object(MyAutoLoader)#%d (0) {
+  }
+  [1]=>
+  string(8) "dynaLoad"
+}
+ok
+===DONE===