]> granicus.if.org Git - php/commitdiff
- New tests
authorFelipe Pena <felipe@php.net>
Mon, 10 Nov 2008 11:39:35 +0000 (11:39 +0000)
committerFelipe Pena <felipe@php.net>
Mon, 10 Nov 2008 11:39:35 +0000 (11:39 +0000)
Zend/tests/ns_070.phpt [new file with mode: 0644]
Zend/tests/ns_071.phpt [new file with mode: 0644]
Zend/tests/ns_072.phpt [new file with mode: 0644]
Zend/tests/ns_073.phpt [new file with mode: 0644]
Zend/tests/ns_074.phpt [new file with mode: 0644]

diff --git a/Zend/tests/ns_070.phpt b/Zend/tests/ns_070.phpt
new file mode 100644 (file)
index 0000000..850b820
--- /dev/null
@@ -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 (file)
index 0000000..1fb266d
--- /dev/null
@@ -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 (file)
index 0000000..b6f89a2
--- /dev/null
@@ -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 (file)
index 0000000..4f37aa5
--- /dev/null
@@ -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 (file)
index 0000000..5b15e3b
--- /dev/null
@@ -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) {
+}