diff options
author | Felipe Pena <felipe@php.net> | 2009-12-20 22:04:55 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2009-12-20 22:04:55 +0000 |
commit | e83e52eba15e2180ebb66d006f5c2018259b6891 (patch) | |
tree | f3c0702f93bd9b2628275a81a6ac5a12c1f3edba | |
parent | ae70213177f8363a85418e4e9bf4ea73624e406d (diff) | |
download | php-git-e83e52eba15e2180ebb66d006f5c2018259b6891.tar.gz |
- New tests
-rw-r--r-- | Zend/tests/call_user_func_004.phpt | 18 | ||||
-rw-r--r-- | Zend/tests/call_user_func_005.phpt | 35 | ||||
-rw-r--r-- | Zend/tests/closure_035.phpt | 31 |
3 files changed, 84 insertions, 0 deletions
diff --git a/Zend/tests/call_user_func_004.phpt b/Zend/tests/call_user_func_004.phpt new file mode 100644 index 0000000000..4885c4d3fa --- /dev/null +++ b/Zend/tests/call_user_func_004.phpt @@ -0,0 +1,18 @@ +--TEST-- +Calling non-static method with call_user_func() +--FILE-- +<?php + +class foo { + public function teste() { + $this->a = 1; + } +} + +call_user_func(array('foo', 'teste')); + +?> +--EXPECTF-- +Strict Standards: call_user_func() expects parameter 1 to be a valid callback, non-static method foo::teste() should not be called statically in %s on line %d + +Fatal error: Using $this when not in object context in %s on line %d diff --git a/Zend/tests/call_user_func_005.phpt b/Zend/tests/call_user_func_005.phpt new file mode 100644 index 0000000000..6c1fa19733 --- /dev/null +++ b/Zend/tests/call_user_func_005.phpt @@ -0,0 +1,35 @@ +--TEST-- +Passing Closure as parameter to an non-existent function +--FILE-- +<?php + +class foo { + public static function __callstatic($x, $y) { + var_dump($x,$y); + return 1; + } + + public function teste() { + return foo::x(function &($a=1,$b) { }); + } +} + +var_dump(call_user_func(array('foo', 'teste'))); + +?> +--EXPECTF-- +Strict Standards: call_user_func() expects parameter 1 to be a valid callback, non-static method foo::teste() should not be called statically in %s on line %d +%string|unicode%(1) "x" +array(1) { + [0]=> + object(Closure)#%d (1) { + ["parameter"]=> + array(2) { + ["$a"]=> + string(10) "<required>" + ["$b"]=> + string(10) "<required>" + } + } +} +int(1) diff --git a/Zend/tests/closure_035.phpt b/Zend/tests/closure_035.phpt new file mode 100644 index 0000000000..ac8b4caea0 --- /dev/null +++ b/Zend/tests/closure_035.phpt @@ -0,0 +1,31 @@ +--TEST-- +Testing recursion detection with Closures +--FILE-- +<?php + +$x = function () use (&$x) { + $h = function () use ($x) { + var_dump($x); + return 1; + }; + return $h(); +}; + +var_dump($x()); + +?> +--EXPECTF-- +object(Closure)#%d (1) { + ["static"]=> + array(1) { + [%u|b%"x"]=> + &object(Closure)#%d (1) { + ["static"]=> + array(1) { + [%u|b%"x"]=> + *RECURSION* + } + } + } +} +int(1) |