]> granicus.if.org Git - php/commitdiff
- Add test to verify all ArrayAccess methods can throw
authorMarcus Boerger <helly@php.net>
Tue, 19 Jul 2005 20:10:37 +0000 (20:10 +0000)
committerMarcus Boerger <helly@php.net>
Tue, 19 Jul 2005 20:10:37 +0000 (20:10 +0000)
tests/classes/array_access_013.phpt [new file with mode: 0755]

diff --git a/tests/classes/array_access_013.phpt b/tests/classes/array_access_013.phpt
new file mode 100755 (executable)
index 0000000..c3dee3f
--- /dev/null
@@ -0,0 +1,58 @@
+--TEST--
+ZE2 arrayAcces & exceptions
+--FILE--
+<?php
+
+class Test implements ArrayAccess
+{
+        public function offsetExists($offset)      { throw new Exception(__METHOD__); return false; }
+        public function offsetGet($offset)         { throw new Exception(__METHOD__); return $offset; }
+        public function offsetSet($offset, $data ) { throw new Exception(__METHOD__); }
+        public function offsetUnset($offset)       { throw new Exception(__METHOD__); }
+}
+
+$t = new Test;
+
+try
+{
+       echo isset($t[0]);
+}
+catch(Exception $e)
+{
+    echo "Caught in " . $e->getMessage() . "()\n";
+}
+
+try
+{
+       echo $t[0];
+}
+catch(Exception $e)
+{
+    echo "Caught in " . $e->getMessage() . "()\n";
+}
+
+try
+{
+       $t[0] = 1;
+}
+catch(Exception $e)
+{
+    echo "Caught in " . $e->getMessage() . "()\n";
+}
+
+try
+{
+       unset($t[0]);
+}
+catch(Exception $e)
+{
+    echo "Caught in " . $e->getMessage() . "()\n";
+}
+?>
+===DONE===
+--EXPECT--
+Caught in Test::offsetExists()
+Caught in Test::offsetGet()
+Caught in Test::offsetSet()
+Caught in Test::offsetUnset()
+===DONE===