summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2008-06-03 15:36:59 +0000
committerFelipe Pena <felipe@php.net>2008-06-03 15:36:59 +0000
commitcde37a23b06a04a76e5f226495643306ee0b94f8 (patch)
treeb13ed24fb23807a206fa9073091accaabbfd5e79 /Zend
parent15ec44e0bde2ce00fbfe26ddf4249b9f4681d160 (diff)
downloadphp-git-cde37a23b06a04a76e5f226495643306ee0b94f8.tar.gz
- New tests
Diffstat (limited to 'Zend')
-rw-r--r--Zend/tests/call_static_002.phpt28
-rw-r--r--Zend/tests/call_static_003.phpt40
-rw-r--r--Zend/tests/call_static_004.phpt23
-rw-r--r--Zend/tests/call_static_005.phpt17
-rw-r--r--Zend/tests/call_static_006.phpt32
-rw-r--r--Zend/tests/call_static_007.phpt36
6 files changed, 176 insertions, 0 deletions
diff --git a/Zend/tests/call_static_002.phpt b/Zend/tests/call_static_002.phpt
new file mode 100644
index 0000000000..ba8fc6eee3
--- /dev/null
+++ b/Zend/tests/call_static_002.phpt
@@ -0,0 +1,28 @@
+--TEST--
+Testing __call and __callstatic with callbacks
+--XFAIL--
+http://bugs.php.net/bug.php?id=45089
+--FILE--
+<?php
+
+class Foo {
+ public function __call($a, $b) {
+ print "nonstatic\n";
+ var_dump($a);
+ }
+ static public function __callStatic($a, $b) {
+ print "static\n";
+ var_dump($a);
+ }
+}
+
+$a = new Foo;
+call_user_func(array($a, 'aAa'));
+call_user_func(array('Foo', 'aAa'));
+
+?>
+--EXPECTF--
+nonstatic
+unicode(3) "aAa"
+static
+unicode(3) "aAa"
diff --git a/Zend/tests/call_static_003.phpt b/Zend/tests/call_static_003.phpt
new file mode 100644
index 0000000000..f4128bdebb
--- /dev/null
+++ b/Zend/tests/call_static_003.phpt
@@ -0,0 +1,40 @@
+--TEST--
+Testing method name case
+--XFAIL--
+http://bugs.php.net/bug.php?id=45089
+--FILE--
+<?php
+
+class Foo {
+ public function __call($a, $b) {
+ print "nonstatic\n";
+ var_dump($a);
+ }
+ static public function __callStatic($a, $b) {
+ print "static\n";
+ var_dump($a);
+ }
+ public function test() {
+ $this->fOoBaR();
+ self::foOBAr();
+ $this::fOOBAr();
+ }
+}
+
+$a = new Foo;
+$a->test();
+$a::bAr();
+foo::BAZ();
+
+?>
+--EXPECT--
+nonstatic
+unicode(6) "fOoBaR"
+nonstatic
+unicode(6) "foOBAr"
+nonstatic
+unicode(6) "fOOBAr"
+static
+unicode(3) "bAr"
+static
+unicode(3) "BAZ"
diff --git a/Zend/tests/call_static_004.phpt b/Zend/tests/call_static_004.phpt
new file mode 100644
index 0000000000..40d65cfa94
--- /dev/null
+++ b/Zend/tests/call_static_004.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Invalid method name in dynamic static call
+--XFAIL--
+http://bugs.php.net/bug.php?id=45089
+--FILE--
+<?php
+
+class foo {
+ static function __callstatic($a, $b) {
+ var_dump($a);
+ }
+}
+
+foo::AaA();
+
+$a = 1;
+foo::$a();
+
+?>
+--EXPECTF--
+unicode(3) "AaA"
+
+Fatal error: Function name must be a string in %s on line %d
diff --git a/Zend/tests/call_static_005.phpt b/Zend/tests/call_static_005.phpt
new file mode 100644
index 0000000000..7259857e55
--- /dev/null
+++ b/Zend/tests/call_static_005.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Invalid method name in dynamic static call
+--FILE--
+<?php
+
+class foo {
+ static function __callstatic($a, $b) {
+ var_dump($a);
+ }
+}
+
+$a = 'foo::';
+$a();
+
+?>
+--EXPECTF--
+Fatal error: Call to undefined function foo::() in %s on line %d
diff --git a/Zend/tests/call_static_006.phpt b/Zend/tests/call_static_006.phpt
new file mode 100644
index 0000000000..f5df139dd0
--- /dev/null
+++ b/Zend/tests/call_static_006.phpt
@@ -0,0 +1,32 @@
+--TEST--
+Testing __callStatic
+--XFAIL--
+http://bugs.php.net/bug.php?id=45089
+--FILE--
+<?php
+
+class foo {
+ public function aa() {
+ print "ok\n";
+ }
+ static function __callstatic($a, $b) {
+ var_dump($a);
+ }
+}
+
+foo::aa();
+
+$b = 'AA';
+foo::$b();
+
+foo::__construct();
+
+?>
+--EXPECTF--
+Strict Standards: Non-static method foo::aa() should not be called statically in %s on line %d
+ok
+
+Strict Standards: Non-static method foo::aa() should not be called statically in %s on line %d
+ok
+
+Fatal error: Can not call constructor in %s on line %d
diff --git a/Zend/tests/call_static_007.phpt b/Zend/tests/call_static_007.phpt
new file mode 100644
index 0000000000..3b2b027d25
--- /dev/null
+++ b/Zend/tests/call_static_007.phpt
@@ -0,0 +1,36 @@
+--TEST--
+Testing __call and __callstatic
+--XFAIL--
+http://bugs.php.net/bug.php?id=45089
+--FILE--
+<?php
+
+class a {
+ public function __call($a, $b) {
+ print "__call: ". $a ."\n";
+ }
+ static public function __callStatic($a, $b) {
+ print "__callstatic: ". $a ."\n";
+ }
+ public function baz() {
+ self::Bar();
+ }
+}
+
+
+$a = new a;
+
+$b = 'Test';
+$a::$b();
+$a->$b();
+
+$a->baz();
+
+a::Foo();
+
+?>
+--EXPECT--
+__callstatic: Test
+__call: Test
+__call: Bar
+__callstatic: Foo