]> granicus.if.org Git - php/commitdiff
Additional class related tests.
authorRobin Fernandes <robinf@php.net>
Wed, 17 Jun 2009 10:38:23 +0000 (10:38 +0000)
committerRobin Fernandes <robinf@php.net>
Wed, 17 Jun 2009 10:38:23 +0000 (10:38 +0000)
tests/classes/interface_optional_arg_003.inc [new file with mode: 0644]
tests/classes/interface_optional_arg_003.phpt [new file with mode: 0644]
tests/classes/iterators_008.phpt [new file with mode: 0644]
tests/classes/static_properties_undeclared_assign.phpt [new file with mode: 0644]
tests/classes/static_properties_undeclared_assignInc.phpt [new file with mode: 0644]
tests/classes/static_properties_undeclared_assignRef.phpt [new file with mode: 0644]
tests/classes/static_properties_undeclared_inc.phpt [new file with mode: 0644]
tests/classes/static_properties_undeclared_isset.phpt [new file with mode: 0644]
tests/classes/static_properties_undeclared_read.phpt [new file with mode: 0644]

diff --git a/tests/classes/interface_optional_arg_003.inc b/tests/classes/interface_optional_arg_003.inc
new file mode 100644 (file)
index 0000000..a62c656
--- /dev/null
@@ -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 (file)
index 0000000..13e36d5
--- /dev/null
@@ -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 (file)
index 0000000..22e6dc8
--- /dev/null
@@ -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 (file)
index 0000000..99340e9
--- /dev/null
@@ -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 (file)
index 0000000..258f2f8
--- /dev/null
@@ -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 (file)
index 0000000..75cf270
--- /dev/null
@@ -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 (file)
index 0000000..ff8b8c3
--- /dev/null
@@ -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 (file)
index 0000000..58aac40
--- /dev/null
@@ -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 (file)
index 0000000..715b41e
--- /dev/null
@@ -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