]> granicus.if.org Git - php/commitdiff
This commit was manufactured by cvs2svn to create branch 'PHP_5_0'.
authorSVN Migration <svn@php.net>
Mon, 27 Sep 2004 22:23:32 +0000 (22:23 +0000)
committerSVN Migration <svn@php.net>
Mon, 27 Sep 2004 22:23:32 +0000 (22:23 +0000)
ext/reflection/tests/001.phpt [new file with mode: 0755]
ext/reflection/tests/002.phpt [new file with mode: 0755]

diff --git a/ext/reflection/tests/001.phpt b/ext/reflection/tests/001.phpt
new file mode 100755 (executable)
index 0000000..f68afc9
--- /dev/null
@@ -0,0 +1,89 @@
+--TEST--
+Reflection inheritance
+--FILE--
+<?php
+
+class ReflectionClassEx extends ReflectionClass
+{
+       public $bla;
+
+       function getMethodNames()
+       {
+               $res = array();
+               foreach($this->getMethods() as $m)
+               {
+                       $res[] = $m->class . '::' . $m->name;
+               }
+               return $res;
+       }
+}
+
+$r = new ReflectionClassEx('ReflectionClassEx');
+
+$exp = array (
+  'UMLClass::__clone',
+  'UMLClass::export',
+  'UMLClass::__construct',
+  'UMLClass::__toString',
+  'UMLClass::getName',
+  'UMLClass::isInternal',
+  'UMLClass::isUserDefined',
+  'UMLClass::isInstantiable',
+  'UMLClass::getFileName',
+  'UMLClass::getStartLine',
+  'UMLClass::getEndLine',
+  'UMLClass::getDocComment',
+  'UMLClass::getConstructor',
+  'UMLClass::getMethod',
+  'UMLClass::getMethods',
+  'UMLClass::getProperty',
+  'UMLClass::getProperties',
+  'UMLClass::getConstants',
+  'UMLClass::getConstant',
+  'UMLClass::getInterfaces',
+  'UMLClass::isInterface',
+  'UMLClass::isAbstract',
+  'UMLClass::isFinal',
+  'UMLClass::getModifiers',
+  'UMLClass::isInstance',
+  'UMLClass::newInstance',
+  'UMLClass::getParentClass',
+  'UMLClass::isSubclassOf',
+  'UMLClass::getStaticProperties',
+  'UMLClass::getDefaultProperties',
+  'UMLClass::isIterateable',
+  'UMLClass::implementsInterface',
+  'UMLClass::getExtension',
+  'UMLClass::getExtensionName');
+
+$miss = array();
+
+$res = $r->getMethodNames();
+
+foreach($exp as $m)
+{
+       if (!in_array($m, $exp))
+       {
+               $miss[] = $m;
+       }
+}
+
+var_dump($miss);
+
+$props = array_keys(get_class_vars('ReflectionClassEx'));
+sort($props);
+var_dump($props);
+var_dump($r->name);
+?>
+===DONE===
+--EXPECT--
+array(0) {
+}
+array(2) {
+  [0]=>
+  string(3) "bla"
+  [1]=>
+  string(4) "name"
+}
+string(17) "ReflectionClassEx"
+===DONE===
diff --git a/ext/reflection/tests/002.phpt b/ext/reflection/tests/002.phpt
new file mode 100755 (executable)
index 0000000..195aeb2
--- /dev/null
@@ -0,0 +1,63 @@
+--TEST--
+Reflection properties are read only
+--FILE--
+<?php
+
+class ReflectionMethodEx extends ReflectionMethod
+{
+       public $foo = "xyz";
+       
+       function __construct($c,$m)
+       {
+               echo __METHOD__ . "\n";
+               parent::__construct($c,$m);
+       }
+}
+
+$r = new ReflectionMethodEx('ReflectionMethodEx','getName');
+
+var_dump($r->class);
+var_dump($r->name);
+var_dump($r->foo);
+@var_dump($r->bar);
+
+try
+{
+       $r->class = 'bullshit';
+}
+catch(ReflectionException $e)
+{
+       echo $e->getMessage() . "\n";
+}
+try
+{
+$r->name = 'bullshit';
+}
+catch(ReflectionException $e)
+{
+       echo $e->getMessage() . "\n";
+}
+
+$r->foo = 'bar';
+$r->bar = 'baz';
+
+var_dump($r->class);
+var_dump($r->name);
+var_dump($r->foo);
+var_dump($r->bar);
+
+?>
+===DONE===
+--EXPECTF--
+ReflectionMethodEx::__construct
+string(18) "ReflectionMethodEx"
+string(7) "getName"
+string(3) "xyz"
+NULL
+Cannot set read-only property ReflectionMethodEx::$class
+Cannot set read-only property ReflectionMethodEx::$name
+string(18) "ReflectionMethodEx"
+string(7) "getName"
+string(3) "bar"
+string(3) "baz"
+===DONE===