com php-src: Adding test for bug #63462: tests/classes/bug63462.phpt
| From: | Lars Strojny | Date: | Sun, 06 Jan 2013 13:46:49 +0000 |
| Subject: | com php-src: Adding test for bug #63462: tests/classes/bug63462.phpt | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-70867@lists.php.net to get a copy of this message | ||
Commit: bdc1e2302ce57f6763c50d03bf987261f34f1d2b
Author: Lars Strojny <lstrojny@php.net> Sun, 6 Jan 2013 14:46:49 +0100
Parents: d7da1aa694a9a29ca7ec772e5d51d96b6dc8dda0
Branches: PHP-5.4
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=bdc1e2302ce57f6763c50d03bf987261f34f1d2b
Log:
Adding test for bug #63462
Bugs:
https://bugs.php.net/63462
Changed paths:
A tests/classes/bug63462.phpt
Diff:
diff --git a/tests/classes/bug63462.phpt b/tests/classes/bug63462.phpt
new file mode 100644
index 0000000..dc5edbd
--- /dev/null
+++ b/tests/classes/bug63462.phpt
@@ -0,0 +1,71 @@
+--TEST--
+Test script to verify that magic methods should be called only once when accessing an unset
property.
+--CREDITS--
+Marco Pivetta <ocramius@gmail.com>
+--XFAIL--
+Bug 63462 is not yet fixed
+--FILE--
+<?php
+class Test {
+ public $publicProperty;
+ protected $protectedProperty;
+ private $privateProperty;
+
+ public function __construct() {
+ unset(
+ $this->publicProperty,
+ $this->protectedProperty,
+ $this->privateProperty
+ );
+ }
+
+ function __get($name) {
+ echo '__get ' . $name . "\n";
+ return $this->$name;
+ }
+
+ function __set($name, $value) {
+ echo '__set ' . $name . "\n";
+ $this->$name = $value;
+ }
+
+ function __isset($name) {
+ echo '__isset ' . $name . "\n";
+ return isset($this->$name);
+ }
+}
+
+$test = new Test();
+
+$test->nonExisting;
+$test->publicProperty;
+$test->protectedProperty;
+$test->privateProperty;
+isset($test->nonExisting);
+isset($test->publicProperty);
+isset($test->protectedProperty);
+isset($test->privateProperty);
+$test->nonExisting = 'value';
+$test->publicProperty = 'value';
+$test->protectedProperty = 'value';
+$test->privateProperty = 'value';
+
+?>
+
+--EXPECTF--
+__get nonExisting
+Notice: Undefined index: nonExisting in %__set__get_006.php on line %d
+__get publicProperty
+Notice: Undefined index: publicProperty in %__set__get_006.php on line %d
+__get protectedProperty
+Notice: Undefined index: protectedProperty in %__set__get_006.php on line %d
+__get privateProperty
+Notice: Undefined index: privateProperty in %__set__get_006.php on line %d
+__isset nonExisting
+__isset publicProperty
+__isset protectedProperty
+__isset privateProperty
+__set nonExisting
+__set publicProperty
+__set protectedProperty
+__set privateProperty