summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRobin Fernandes <robinf@php.net>2009-06-17 10:38:24 +0000
committerRobin Fernandes <robinf@php.net>2009-06-17 10:38:24 +0000
commiteb9f2006cc21802d452b51586d7ca4c6956ded27 (patch)
tree872891ac8385a1f23ffda7a2b052b33fb007ba05 /tests
parentae9ba9cd606d841a6ee4451eab23b6e5072f86fa (diff)
downloadphp-git-eb9f2006cc21802d452b51586d7ca4c6956ded27.tar.gz
Additional class related tests.
Diffstat (limited to 'tests')
-rw-r--r--tests/classes/interface_optional_arg_003.inc4
-rw-r--r--tests/classes/interface_optional_arg_003.phpt17
-rw-r--r--tests/classes/iterators_008.phpt45
-rw-r--r--tests/classes/static_properties_undeclared_assign.phpt9
-rw-r--r--tests/classes/static_properties_undeclared_assignInc.phpt9
-rw-r--r--tests/classes/static_properties_undeclared_assignRef.phpt10
-rw-r--r--tests/classes/static_properties_undeclared_inc.phpt9
-rw-r--r--tests/classes/static_properties_undeclared_isset.phpt9
-rw-r--r--tests/classes/static_properties_undeclared_read.phpt9
9 files changed, 121 insertions, 0 deletions
diff --git a/tests/classes/interface_optional_arg_003.inc b/tests/classes/interface_optional_arg_003.inc
new file mode 100644
index 0000000000..a62c65670c
--- /dev/null
+++ b/tests/classes/interface_optional_arg_003.inc
@@ -0,0 +1,4 @@
+<?php
+interface I {
+ function f($a = null);
+} \ No newline at end of file
diff --git a/tests/classes/interface_optional_arg_003.phpt b/tests/classes/interface_optional_arg_003.phpt
new file mode 100644
index 0000000000..13e36d5583
--- /dev/null
+++ b/tests/classes/interface_optional_arg_003.phpt
@@ -0,0 +1,17 @@
+--TEST--
+default argument value in and in implementing class with interface in included file
+--FILE--
+<?php
+include 'interface_optional_arg_003.inc';
+
+class C implements I {
+ function f($a = 2) {
+ var_dump($a);
+ }
+}
+
+$c = new C;
+$c->f();
+?>
+--EXPECTF--
+int(2) \ No newline at end of file
diff --git a/tests/classes/iterators_008.phpt b/tests/classes/iterators_008.phpt
new file mode 100644
index 0000000000..22e6dc8107
--- /dev/null
+++ b/tests/classes/iterators_008.phpt
@@ -0,0 +1,45 @@
+--TEST--
+Ensure plain userspace superclass does not override special iterator behaviour on child class.
+--FILE--
+<?php
+Class C {}
+
+class D extends C implements Iterator {
+
+ private $counter = 2;
+
+ public function valid() {
+ echo __METHOD__ . "($this->counter)\n";
+ return $this->counter;
+ }
+
+ public function next() {
+ $this->counter--;
+ echo __METHOD__ . "($this->counter)\n";
+ }
+
+ public function rewind() {
+ echo __METHOD__ . "($this->counter)\n";
+ }
+
+ public function current() {
+ echo __METHOD__ . "($this->counter)\n";
+ }
+
+ public function key() {
+ echo __METHOD__ . "($this->counter)\n";
+ }
+
+}
+
+foreach (new D as $x) {}
+?>
+--EXPECTF--
+D::rewind(2)
+D::valid(2)
+D::current(2)
+D::next(1)
+D::valid(1)
+D::current(1)
+D::next(0)
+D::valid(0) \ No newline at end of file
diff --git a/tests/classes/static_properties_undeclared_assign.phpt b/tests/classes/static_properties_undeclared_assign.phpt
new file mode 100644
index 0000000000..99340e9ac5
--- /dev/null
+++ b/tests/classes/static_properties_undeclared_assign.phpt
@@ -0,0 +1,9 @@
+--TEST--
+Assigning to a non-existent static property
+--FILE--
+<?php
+Class C {}
+C::$p = 1;
+?>
+--EXPECTF--
+Fatal error: Access to undeclared static property: C::$p in %s on line 3 \ No newline at end of file
diff --git a/tests/classes/static_properties_undeclared_assignInc.phpt b/tests/classes/static_properties_undeclared_assignInc.phpt
new file mode 100644
index 0000000000..258f2f841b
--- /dev/null
+++ b/tests/classes/static_properties_undeclared_assignInc.phpt
@@ -0,0 +1,9 @@
+--TEST--
+Assigning & incrementing a non-existent static property
+--FILE--
+<?php
+Class C {}
+C::$p += 1;
+?>
+--EXPECTF--
+Fatal error: Access to undeclared static property: C::$p in %s on line 3 \ No newline at end of file
diff --git a/tests/classes/static_properties_undeclared_assignRef.phpt b/tests/classes/static_properties_undeclared_assignRef.phpt
new file mode 100644
index 0000000000..75cf270a9a
--- /dev/null
+++ b/tests/classes/static_properties_undeclared_assignRef.phpt
@@ -0,0 +1,10 @@
+--TEST--
+Assigning a non-existent static property by reference
+--FILE--
+<?php
+Class C {}
+$a = 'foo';
+C::$p =& $a;
+?>
+--EXPECTF--
+Fatal error: Access to undeclared static property: C::$p in %s on line 4 \ No newline at end of file
diff --git a/tests/classes/static_properties_undeclared_inc.phpt b/tests/classes/static_properties_undeclared_inc.phpt
new file mode 100644
index 0000000000..ff8b8c3af1
--- /dev/null
+++ b/tests/classes/static_properties_undeclared_inc.phpt
@@ -0,0 +1,9 @@
+--TEST--
+Incrementing a non-existent static property
+--FILE--
+<?php
+Class C {}
+C::$p++;
+?>
+--EXPECTF--
+Fatal error: Access to undeclared static property: C::$p in %s on line 3 \ No newline at end of file
diff --git a/tests/classes/static_properties_undeclared_isset.phpt b/tests/classes/static_properties_undeclared_isset.phpt
new file mode 100644
index 0000000000..58aac40052
--- /dev/null
+++ b/tests/classes/static_properties_undeclared_isset.phpt
@@ -0,0 +1,9 @@
+--TEST--
+Issetting a non-existent static property
+--FILE--
+<?php
+Class C {}
+var_dump(isset(C::$p));
+?>
+--EXPECTF--
+bool(false) \ No newline at end of file
diff --git a/tests/classes/static_properties_undeclared_read.phpt b/tests/classes/static_properties_undeclared_read.phpt
new file mode 100644
index 0000000000..715b41e78d
--- /dev/null
+++ b/tests/classes/static_properties_undeclared_read.phpt
@@ -0,0 +1,9 @@
+--TEST--
+Reading a non-existent static property
+--FILE--
+<?php
+Class C {}
+echo C::$p;
+?>
+--EXPECTF--
+Fatal error: Access to undeclared static property: C::$p in %s on line 3 \ No newline at end of file