diff options
author | Marcus Boerger <helly@php.net> | 2004-09-29 09:36:23 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2004-09-29 09:36:23 +0000 |
commit | 13f3e07ff2e2c36c8c02b4db0fc45337e9e218cb (patch) | |
tree | b5a71643e4c9205f62506ae8b8998b88c91cdbe4 | |
parent | a898c2dd2850dfbb16cf4aa01bcd32f75eaee412 (diff) | |
download | php-git-13f3e07ff2e2c36c8c02b4db0fc45337e9e218cb.tar.gz |
- Add new tests
-rwxr-xr-x | tests/classes/array_access_008.phpt | 58 | ||||
-rwxr-xr-x | tests/classes/destructor_and_exceptions.phpt | 60 |
2 files changed, 118 insertions, 0 deletions
diff --git a/tests/classes/array_access_008.phpt b/tests/classes/array_access_008.phpt new file mode 100755 index 0000000000..84ecf08ba8 --- /dev/null +++ b/tests/classes/array_access_008.phpt @@ -0,0 +1,58 @@ +--TEST-- +ZE2 ArrayAccess and ASSIGN_OP operators (.=) +--FILE-- +<?php + +class Peoples implements ArrayAccess { + public $person; + + function __construct() { + $this->person = array(array('name'=>'Foo')); + } + + function offsetExists($index) { + return array_key_exists($this->person, $index); + } + + function & offsetGet($index) { + return $this->person[$index]; + } + + function offsetSet($index, $value) { + $this->person[$index] = $value; + } + + function offsetUnset($index) { + unset($this->person[$index]); + } +} + +$people = new Peoples; + +var_dump($people->person[0]['name']); +$people->person[0]['name'] = $people->person[0]['name'] . 'Bar'; +var_dump($people->person[0]['name']); +$people->person[0]['name'] .= 'Baz'; +var_dump($people->person[0]['name']); + +echo "===ArrayOverloading===\n"; + +$people = new Peoples; + +var_dump($people[0]['name']); +$people[0]['name'] = $people->person[0]['name'] . 'Bar'; +var_dump($people[0]['name']); +$people[0]['name'] .= 'Baz'; +var_dump($people[0]['name']); + +?> +===DONE=== +--EXPECT-- +string(3) "Foo" +string(6) "FooBar" +string(9) "FooBarBaz" +===ArrayOverloading=== +string(3) "Foo" +string(6) "FooBar" +string(9) "FooBarBaz" +===DONE=== diff --git a/tests/classes/destructor_and_exceptions.phpt b/tests/classes/destructor_and_exceptions.phpt new file mode 100755 index 0000000000..8100c92465 --- /dev/null +++ b/tests/classes/destructor_and_exceptions.phpt @@ -0,0 +1,60 @@ +--TEST-- +ZE2 catch exception thrown in destructor +--FILE-- +<?php + +class FailClass +{ + public $fatal; + + function __destruct() + { + echo __METHOD__ . "\n"; + throw new exception("FailClass"); + echo "Done: " . __METHOD__ . "\n"; + } +} + +try +{ + $a = new FailClass; + unset($a); +} +catch(Exception $e) +{ + echo "Caught: " . $e->getMessage() . "\n"; +} + +class FatalException extends Exception +{ + function __construct($what) + { + echo __METHOD__ . "\n"; + $o = new FailClass; + unset($o); + echo "Done: " . __METHOD__ . "\n"; + } +} + +try +{ + throw new FatalException("Damn"); +} +catch(Exception $e) +{ + echo "Caught Exception: " . $e->getMessage() . "\n"; +} +catch(FatalException $e) +{ + echo "Caught FatalException: " . $e->getMessage() . "\n"; +} + +?> +===DONE=== +--EXPECTF-- +FailClass::__destruct +Caught: FailClass +FatalException::__construct +FailClass::__destruct +Caught Exception: FailClass +===DONE=== |