diff options
author | Felipe Pena <felipe@php.net> | 2008-05-11 22:44:10 +0000 |
---|---|---|
committer | Felipe Pena <felipe@php.net> | 2008-05-11 22:44:10 +0000 |
commit | d6a777349b25ca40e4359c027106397bcb303e8d (patch) | |
tree | 649c3cd689356a046c844dc71ad813130f9513d4 | |
parent | 4ccf0b846e93e927c440af28cddec4b9921c3adb (diff) | |
download | php-git-d6a777349b25ca40e4359c027106397bcb303e8d.tar.gz |
- New tests
-rw-r--r-- | Zend/tests/034.phpt | 26 | ||||
-rw-r--r-- | Zend/tests/clone_001.phpt | 10 | ||||
-rw-r--r-- | Zend/tests/clone_002.phpt | 25 | ||||
-rw-r--r-- | Zend/tests/clone_003.phpt | 12 | ||||
-rw-r--r-- | Zend/tests/clone_004.phpt | 20 | ||||
-rw-r--r-- | Zend/tests/exception_004.phpt | 18 | ||||
-rw-r--r-- | Zend/tests/inter_04.phpt | 19 | ||||
-rw-r--r-- | Zend/tests/objects_024.phpt | 53 | ||||
-rw-r--r-- | Zend/tests/objects_025.phpt | 46 | ||||
-rw-r--r-- | Zend/tests/objects_026.phpt | 13 | ||||
-rw-r--r-- | Zend/tests/objects_027.phpt | 46 |
11 files changed, 288 insertions, 0 deletions
diff --git a/Zend/tests/034.phpt b/Zend/tests/034.phpt new file mode 100644 index 0000000000..6e46f2645e --- /dev/null +++ b/Zend/tests/034.phpt @@ -0,0 +1,26 @@ +--TEST-- +Testing multiples 'default:' in switch +--FILE-- +<?php + +switch (1) { + case 2: + print 'foo'; + break; + case 3: + print 'bar'; + break; + default: + print 1; + break; + default: + print 2; + break; + default: + print 3; + break; +} + +?> +--EXPECT-- +3 diff --git a/Zend/tests/clone_001.phpt b/Zend/tests/clone_001.phpt new file mode 100644 index 0000000000..c8ff8d8340 --- /dev/null +++ b/Zend/tests/clone_001.phpt @@ -0,0 +1,10 @@ +--TEST-- +Using clone statement on non-object +--FILE-- +<?php + +$a = clone array(); + +?> +--EXPECTF-- +Fatal error: __clone method called on non-object in %s on line %d diff --git a/Zend/tests/clone_002.phpt b/Zend/tests/clone_002.phpt new file mode 100644 index 0000000000..50156428e1 --- /dev/null +++ b/Zend/tests/clone_002.phpt @@ -0,0 +1,25 @@ +--TEST-- +Testing multiple clone statements +--FILE-- +<?php + +$a = clone clone $b = new stdClass; +var_dump($a == $b); + + +$c = clone clone clone $b = new stdClass; +var_dump($a == $b, $b == $c); + +class foo { } + +$d = clone $a = $b = new foo; +var_dump($a == $d, $b == $d, $c == $a); + +?> +--EXPECT-- +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(false) diff --git a/Zend/tests/clone_003.phpt b/Zend/tests/clone_003.phpt new file mode 100644 index 0000000000..362e3466e6 --- /dev/null +++ b/Zend/tests/clone_003.phpt @@ -0,0 +1,12 @@ +--TEST-- +Using clone statement on undefined variable +--FILE-- +<?php + +$a = clone $b; + +?> +--EXPECTF-- +Notice: Undefined variable: b in %s on line %d + +Fatal error: __clone method called on non-object in %s on line %d diff --git a/Zend/tests/clone_004.phpt b/Zend/tests/clone_004.phpt new file mode 100644 index 0000000000..984313ce74 --- /dev/null +++ b/Zend/tests/clone_004.phpt @@ -0,0 +1,20 @@ +--TEST-- +Testing usage of object as array on clone statement +--FILE-- +<?php + +error_reporting(E_ALL|E_STRICT); + +class foo { + public function __get($a) { + return new $this; + } +} + +$c = new foo; + +$a = clone $c->b[1]; + +?> +--EXPECTF-- +Fatal error: Cannot use object of type foo as array in %s on line %d diff --git a/Zend/tests/exception_004.phpt b/Zend/tests/exception_004.phpt new file mode 100644 index 0000000000..77d947f47e --- /dev/null +++ b/Zend/tests/exception_004.phpt @@ -0,0 +1,18 @@ +--TEST-- +Throwing exception using a class that isn't derived from the Exception base class +--FILE-- +<?php + +error_reporting(E_ALL|E_STRICT); + +class Foo { } + +try { + throw new Foo(); +} catch (Foo $e) { + var_dump($e); +} + +?> +--EXPECTF-- +Fatal error: Exceptions must be valid objects derived from the Exception base class in %s on line %d diff --git a/Zend/tests/inter_04.phpt b/Zend/tests/inter_04.phpt new file mode 100644 index 0000000000..0703e3d9bb --- /dev/null +++ b/Zend/tests/inter_04.phpt @@ -0,0 +1,19 @@ +--TEST-- +Trying declare interface with repeated name of inherited method +--FILE-- +<?php + +interface a { + function b(); +} + +interface b { + function b(); +} + +interface c extends a, b { +} + +?> +--EXPECTF-- +Fatal error: Can't inherit abstract function b::b() (previously declared abstract in a) in %s on line %d diff --git a/Zend/tests/objects_024.phpt b/Zend/tests/objects_024.phpt new file mode 100644 index 0000000000..af3f879db9 --- /dev/null +++ b/Zend/tests/objects_024.phpt @@ -0,0 +1,53 @@ +--TEST-- +Testing direct assigning for property of object returned by function +--FILE-- +<?php + +class foo { + static $bar = array(); + + public function __set($a, $b) { + self::$bar[] = $b; + } + + public function __get($a) { + /* last */ + return self::$bar[count(self::$bar)-1]; + } +} + +function test() { + return new foo; +} + +$a = test()->bar = 1; +var_dump($a, count(foo::$bar), test()->whatever); + +print "\n"; + +$a = test()->bar = NULL; +var_dump($a, count(foo::$bar), test()->whatever); + +print "\n"; + +$a = test()->bar = test(); +var_dump($a, count(foo::$bar), test()->whatever); + +print "\n"; + +?> +--EXPECTF-- +int(1) +int(1) +int(1) + +NULL +int(2) +NULL + +object(foo)#%d (0) { +} +int(3) +object(foo)#%d (0) { +} + diff --git a/Zend/tests/objects_025.phpt b/Zend/tests/objects_025.phpt new file mode 100644 index 0000000000..110ffc69b7 --- /dev/null +++ b/Zend/tests/objects_025.phpt @@ -0,0 +1,46 @@ +--TEST-- +Testing invalid method names with __call and __callstatic +--FILE-- +<?php + +class foo { + public function __call($a, $b) { + print "non-static - ok\n"; + } + + public static function __callstatic($a, $b) { + print "static - ok\n"; + } +} + +$a = new foo; +$a->foooo(); +$a::foooo(); + +$b = 'aaaaa1'; +$a->$b(); +$a::$b(); + +$b = ' '; +$a->$b(); +$a::$b(); + +$b = str_repeat('a', 10000); +$a->$b(); +$a::$b(); + +$b = NULL; +$a->$b(); + +?> +--EXPECTF-- +non-static - ok +static - ok +non-static - ok +static - ok +non-static - ok +static - ok +non-static - ok +static - ok + +Fatal error: Method name must be a string in %s on line %d diff --git a/Zend/tests/objects_026.phpt b/Zend/tests/objects_026.phpt new file mode 100644 index 0000000000..eb3a89f678 --- /dev/null +++ b/Zend/tests/objects_026.phpt @@ -0,0 +1,13 @@ +--TEST-- +Using $this when out of context +--FILE-- +<?php + +try { + $this->a = 1; +} catch (Exception $e) { +} + +?> +--EXPECTF-- +Fatal error: Using $this when not in object context in %s on line %d diff --git a/Zend/tests/objects_027.phpt b/Zend/tests/objects_027.phpt new file mode 100644 index 0000000000..b8051cbb03 --- /dev/null +++ b/Zend/tests/objects_027.phpt @@ -0,0 +1,46 @@ +--TEST-- +Testing 'new static;' calling parent method +--FILE-- +<?php + +class bar { + public function show() { + var_dump(new static); + } +} + +class foo extends bar { + public function test() { + parent::show(); + } +} + +$foo = new foo; +$foo->test(); +$foo::test(); + +call_user_func(array($foo, 'test')); +call_user_func(array('foo', 'test')); + +?> +--EXPECTF-- +object(foo)#%d (0) { +} + +Strict Standards: Non-static method foo::test() should not be called statically in %s on line %d + +Strict Standards: Non-static method bar::show() should not be called statically in %s on line %d +object(bar)#%d (0) { +} +object(foo)#%d (0) { +} + +Strict Standards: call_user_func() expects parameter 1 to be a valid callback, non-static method foo::test() should not be called statically in %s on line %d + +Strict Standards: Non-static method foo::test() should not be called statically in %s on line %d + +Strict Standards: Non-static method bar::show() should not be called statically in %s on line %d +object(bar)#%d (0) { +} + + |