helly           Fri Dec 16 22:22:14 2005 EDT

  Modified files:              
    /php-src/ext/spl/tests      spl_autoload_006.phpt spl_autoload_007.phpt 
  Log:
  - Add new tests
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/spl/tests/spl_autoload_006.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/spl/tests/spl_autoload_006.phpt
diff -u /dev/null php-src/ext/spl/tests/spl_autoload_006.phpt:1.2
--- /dev/null   Fri Dec 16 22:22:14 2005
+++ php-src/ext/spl/tests/spl_autoload_006.phpt Fri Dec 16 22:22:14 2005
@@ -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===
http://cvs.php.net/viewcvs.cgi/php-src/ext/spl/tests/spl_autoload_007.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/spl/tests/spl_autoload_007.phpt
diff -u /dev/null php-src/ext/spl/tests/spl_autoload_007.phpt:1.2
--- /dev/null   Fri Dec 16 22:22:14 2005
+++ php-src/ext/spl/tests/spl_autoload_007.phpt Fri Dec 16 22:22:14 2005
@@ -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===

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to