summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2008-11-10 11:39:35 +0000
committerFelipe Pena <felipe@php.net>2008-11-10 11:39:35 +0000
commit004f58e25278a3e1e63f7adaecd3280045a41fa8 (patch)
treeed0cbe9b41f654bc8abae3794b7007c82bf36fa7
parentbf9c7bce77cad1bc014e9a50f0d69bfd404c6b6d (diff)
downloadphp-git-004f58e25278a3e1e63f7adaecd3280045a41fa8.tar.gz
- New tests
-rw-r--r--Zend/tests/ns_070.phpt21
-rw-r--r--Zend/tests/ns_071.phpt21
-rw-r--r--Zend/tests/ns_072.phpt33
-rw-r--r--Zend/tests/ns_073.phpt22
-rw-r--r--Zend/tests/ns_074.phpt24
5 files changed, 121 insertions, 0 deletions
diff --git a/Zend/tests/ns_070.phpt b/Zend/tests/ns_070.phpt
new file mode 100644
index 0000000000..850b82040c
--- /dev/null
+++ b/Zend/tests/ns_070.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Testing parameter type-hinted with default value inside namespace
+--FILE--
+<?php
+
+namespace foo;
+
+class bar {
+ public function __construct(\stdclass $x = NULL) {
+ var_dump($x);
+ }
+}
+
+new bar(new stdclass);
+new bar(null);
+
+?>
+--EXPECTF--
+object(stdClass)#%d (0) {
+}
+NULL
diff --git a/Zend/tests/ns_071.phpt b/Zend/tests/ns_071.phpt
new file mode 100644
index 0000000000..1fb266dc2d
--- /dev/null
+++ b/Zend/tests/ns_071.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Testing parameter type-hinted (array) with default value inside namespace
+--FILE--
+<?php
+
+namespace foo;
+
+class bar {
+ public function __construct(array $x = NULL) {
+ var_dump($x);
+ }
+}
+
+new bar(null);
+new bar(new stdclass);
+
+?>
+--EXPECTF--
+NULL
+
+Catchable fatal error: Argument 1 passed to foo::bar::__construct() must be an array, object given, called in %s on line %d and defined in %s on line %d
diff --git a/Zend/tests/ns_072.phpt b/Zend/tests/ns_072.phpt
new file mode 100644
index 0000000000..b6f89a2cf7
--- /dev/null
+++ b/Zend/tests/ns_072.phpt
@@ -0,0 +1,33 @@
+--TEST--
+Testing parameter type-hinted with interface
+--FILE--
+<?php
+
+namespace foo;
+
+interface foo {
+
+}
+
+class bar {
+ public function __construct(foo $x = NULL) {
+ var_dump($x);
+ }
+}
+
+class test implements foo {
+
+}
+
+
+new bar(new test);
+new bar(null);
+new bar(new stdclass);
+
+?>
+--EXPECTF--
+object(foo::test)#%d (0) {
+}
+NULL
+
+Catchable fatal error: Argument 1 passed to foo::bar::__construct() must implement interface foo::foo, instance of stdClass given, called in %s on line %d and defined in %s on line %d
diff --git a/Zend/tests/ns_073.phpt b/Zend/tests/ns_073.phpt
new file mode 100644
index 0000000000..4f37aa58b4
--- /dev/null
+++ b/Zend/tests/ns_073.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Testing type-hinted lambda parameter inside namespace
+--FILE--
+<?php
+
+namespace foo;
+
+$x = function (\stdclass $x = NULL) {
+ var_dump($x);
+};
+
+$x(NULL);
+$x(new \stdclass);
+$x(new stdclass);
+
+?>
+--EXPECTF--
+NULL
+object(stdClass)#%d (0) {
+}
+object(stdClass)#%d (0) {
+}
diff --git a/Zend/tests/ns_074.phpt b/Zend/tests/ns_074.phpt
new file mode 100644
index 0000000000..5b15e3b42f
--- /dev/null
+++ b/Zend/tests/ns_074.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Testing type-hinted lambda parameter inside namespace
+--FILE--
+<?php
+
+namespace foo;
+
+$x = function (\stdclass $x = NULL) {
+ var_dump($x);
+};
+
+class stdclass { }
+
+$x(NULL);
+$x(new stdclass);
+$x(new stdclass);
+
+?>
+--EXPECTF--
+NULL
+object(foo\stdClass)#%d (0) {
+}
+object(foo\stdClass)#%d (0) {
+}