| <?php | |
| require "tests.php"; | |
| // No new functions | |
| check::functions(array()); | |
| check::classes(array('Foo','A','A1','Bar','MyClass','MyClassT_i','ConstPtrClass')); | |
| // No new vars | |
| check::globals(array()); | |
| class PhpFoo extends Foo { | |
| function ping() { | |
| return "PhpFoo::ping()"; | |
| } | |
| } | |
| $a = new PhpFoo(); | |
| check::equal($a->ping(), "PhpFoo::ping()", "ping failed"); | |
| check::equal($a->pong(), "Foo::pong();PhpFoo::ping()", "pong failed"); | |
| $b = new Foo(); | |
| check::equal($b->ping(), "Foo::ping()", "ping failed"); | |
| check::equal($b->pong(), "Foo::pong();Foo::ping()", "pong failed"); | |
| $a = new A1(1); | |
| check::equal($a->rg(2), 2, "rg failed"); | |
| class PhpClass extends MyClass { | |
| function vmethod($b) { | |
| $b->x = $b->x + 31; | |
| return $b; | |
| } | |
| } | |
| $b = new Bar(3); | |
| $d = new MyClass(); | |
| $c = new PhpClass(); | |
| $cc = MyClass::get_self($c); | |
| $dd = MyClass::get_self($d); | |
| $bc = $cc->cmethod($b); | |
| $bd = $dd->cmethod($b); | |
| $cc->method($b); | |
| check::equal($bc->x, 34, "bc failed"); | |
| check::equal($bd->x, 16, "bd failed"); | |
| check::done(); |