]> granicus.if.org Git - php/commitdiff
- New tests
authorFelipe Pena <felipe@php.net>
Tue, 3 Jun 2008 15:36:59 +0000 (15:36 +0000)
committerFelipe Pena <felipe@php.net>
Tue, 3 Jun 2008 15:36:59 +0000 (15:36 +0000)
Zend/tests/call_static_002.phpt [new file with mode: 0644]
Zend/tests/call_static_003.phpt [new file with mode: 0644]
Zend/tests/call_static_004.phpt [new file with mode: 0644]
Zend/tests/call_static_005.phpt [new file with mode: 0644]
Zend/tests/call_static_006.phpt [new file with mode: 0644]
Zend/tests/call_static_007.phpt [new file with mode: 0644]

diff --git a/Zend/tests/call_static_002.phpt b/Zend/tests/call_static_002.phpt
new file mode 100644 (file)
index 0000000..ba8fc6e
--- /dev/null
@@ -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 (file)
index 0000000..f4128bd
--- /dev/null
@@ -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 (file)
index 0000000..40d65cf
--- /dev/null
@@ -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 (file)
index 0000000..7259857
--- /dev/null
@@ -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 (file)
index 0000000..f5df139
--- /dev/null
@@ -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 (file)
index 0000000..3b2b027
--- /dev/null
@@ -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