]> granicus.if.org Git - php/commitdiff
- Add new test
authorMarcus Boerger <helly@php.net>
Sun, 27 Feb 2005 22:25:11 +0000 (22:25 +0000)
committerMarcus Boerger <helly@php.net>
Sun, 27 Feb 2005 22:25:11 +0000 (22:25 +0000)
ext/reflection/tests/006.phpt [new file with mode: 0755]

diff --git a/ext/reflection/tests/006.phpt b/ext/reflection/tests/006.phpt
new file mode 100755 (executable)
index 0000000..89c4387
--- /dev/null
@@ -0,0 +1,103 @@
+--TEST--
+ReflectionClass::[gs]etStaticPropertyValue
+--FILE--
+<?php
+
+/* ReflectionClass cannot touch protected or private static properties */
+
+/* ReflectionClass cannot create or delete static properties */
+
+Class Test
+{
+       static public    $pub = 'pub';
+       static protected $pro = 'pro';
+       static private   $pri = 'pri';
+       
+       static function testing()
+       {
+               $ref = new ReflectionClass('Test');
+
+               foreach(array('pub', 'pro', 'pri') as $name)
+               {
+                       try
+                       {
+                               var_dump($ref->getStaticPropertyValue($name));
+                               var_dump($ref->getStaticPropertyValue($name));
+                               $ref->setStaticPropertyValue($name, 'updated');
+                               var_dump($ref->getStaticPropertyValue($name));
+                       }
+                       catch(Exception $e)
+                       {
+                               echo "EXCEPTION\n";
+                       }
+               }
+       }
+}
+
+Class TestDerived extends Test
+{
+//     static public    $pub = 'pub';
+//     static protected $pro = 'pro';
+       static private   $pri = 'pri';
+
+       static function testing()
+       {
+               $ref = new ReflectionClass('Test');
+
+               foreach(array('pub', 'pro', 'pri') as $name)
+               {
+                       try
+                       {
+                               var_dump($ref->getStaticPropertyValue($name));
+                               var_dump($ref->getStaticPropertyValue($name));
+                               $ref->setStaticPropertyValue($name, 'updated');
+                               var_dump($ref->getStaticPropertyValue($name));
+                       }
+                       catch(Exception $e)
+                       {
+                               echo "EXCEPTION\n";
+                       }
+               }
+       }
+}
+
+$ref = new ReflectionClass('Test');
+
+foreach(array('pub', 'pro', 'pri') as $name)
+{
+       try
+       {
+               var_dump($ref->getStaticPropertyValue($name));
+               var_dump($ref->getStaticPropertyValue($name));
+               $ref->setStaticPropertyValue($name, 'updated');
+               var_dump($ref->getStaticPropertyValue($name));
+       }
+       catch(Exception $e)
+       {
+               echo "EXCEPTION\n";
+       }
+}
+
+Test::testing();
+TestDerived::testing();
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECT--
+string(3) "pub"
+string(3) "pub"
+string(7) "updated"
+EXCEPTION
+EXCEPTION
+string(7) "updated"
+string(7) "updated"
+string(7) "updated"
+EXCEPTION
+EXCEPTION
+string(7) "updated"
+string(7) "updated"
+string(7) "updated"
+EXCEPTION
+EXCEPTION
+===DONE===