summaryrefslogtreecommitdiff
path: root/ext/spl/tests/arrayObject___construct_error1.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/tests/arrayObject___construct_error1.phpt')
-rw-r--r--ext/spl/tests/arrayObject___construct_error1.phpt27
1 files changed, 27 insertions, 0 deletions
diff --git a/ext/spl/tests/arrayObject___construct_error1.phpt b/ext/spl/tests/arrayObject___construct_error1.phpt
new file mode 100644
index 0000000000..789b08763c
--- /dev/null
+++ b/ext/spl/tests/arrayObject___construct_error1.phpt
@@ -0,0 +1,27 @@
+--TEST--
+SPL: ArrayObject::__construct with bad iterator.
+--XFAIL--
+See bug http://bugs.php.net/bug.php?id=46317
+--FILE--
+<?php
+echo "Bad iterator type:\n";
+$a = new stdClass;
+$a->p = 1;
+try {
+ var_dump(new ArrayObject($a, 0, "Exception"));
+} catch (InvalidArgumentException $e) {
+ echo $e->getMessage() . "(" . $e->getLine() . ")\n";
+}
+
+echo "Non-existent class:\n";
+try {
+ var_dump(new ArrayObject(new stdClass, 0, "nonExistentClassName"));
+} catch (InvalidArgumentException $e) {
+ echo $e->getMessage() . "(" . $e->getLine() . ")\n";
+}
+?>
+--EXPECTF--
+Bad iterator type:
+ArrayObject::__construct() expects parameter 3 to be a class name derived from Iterator, 'Exception' given(6)
+Non-existent class:
+ArrayObject::__construct() expects parameter 3 to be a class name derived from Iterator, 'nonExistentClassName' given(13)