test
authorMichael Wallner <mike@php.net>
Sat, 16 Feb 2013 22:11:50 +0000 (23:11 +0100)
committerMichael Wallner <mike@php.net>
Sat, 16 Feb 2013 22:11:50 +0000 (23:11 +0100)
tests/002.phpt [new file with mode: 0644]

diff --git a/tests/002.phpt b/tests/002.phpt
new file mode 100644 (file)
index 0000000..95c9c02
--- /dev/null
@@ -0,0 +1,100 @@
+--TEST--
+property proxy
+--SKIPIF--
+<?php if (!extension_loaded("propro")) print "skip"; ?>
+--FILE--
+<?php
+
+echo "Test\n";
+
+class c {
+       private $storage = array();
+       function __get($p) {
+               return new php\PropertyProxy($this->storage, $p);
+       }
+       function __set($p, $v) {
+               $this->storage[$p] = $v;
+       }
+}
+
+$c = new c;
+$c->data["foo"] = 1;
+var_dump(
+       isset($c->data["foo"]),
+       isset($c->data["bar"])
+);
+
+var_dump($c);
+
+$c->data[] = 1;
+$c->data[] = 2;
+$c->data[] = 3;
+$c->data["bar"][] = 123;
+$c->data["bar"][] = 456;
+
+var_dump($c);
+unset($c->data["bar"][0]);
+
+var_dump($c);
+
+?>
+DONE
+--EXPECTF--
+Test
+bool(true)
+bool(false)
+object(c)#%d (1) {
+  ["storage":"c":private]=>
+  array(1) {
+    ["data"]=>
+    array(1) {
+      ["foo"]=>
+      int(1)
+    }
+  }
+}
+object(c)#%d (1) {
+  ["storage":"c":private]=>
+  array(1) {
+    ["data"]=>
+    array(5) {
+      ["foo"]=>
+      int(1)
+      [0]=>
+      int(1)
+      [1]=>
+      int(2)
+      [2]=>
+      int(3)
+      ["bar"]=>
+      array(2) {
+        [0]=>
+        int(123)
+        [1]=>
+        int(456)
+      }
+    }
+  }
+}
+object(c)#%d (1) {
+  ["storage":"c":private]=>
+  array(1) {
+    ["data"]=>
+    array(5) {
+      ["foo"]=>
+      int(1)
+      [0]=>
+      int(1)
+      [1]=>
+      int(2)
+      [2]=>
+      int(3)
+      ["bar"]=>
+      array(1) {
+        [1]=>
+        int(456)
+      }
+    }
+  }
+}
+DONE