| <?php |
| |
| require "tests.php"; |
| require "director_detect.php"; |
| |
| // No new functions |
| check::functions(array('foo_cloner','foo_get_value','foo_get_class','foo_just_do_it','bar_baseclass','bar_cloner','bar_get_value','bar_get_class','bar_just_do_it')); |
| // No new classes |
| check::classes(array('A','Foo','Bar')); |
| // now new vars |
| check::globals(array()); |
| |
| class MyBar extends Bar { |
| function __construct($val = 2) { |
| parent::__construct(); |
| $this->val = $val; |
| } |
| |
| function get_value() { |
| $this->val = $this->val + 1; |
| return $this->val; |
| } |
| |
| function get_class() { |
| $this->val = $this->val + 1; |
| return new A(); |
| } |
| |
| function just_do_it() { |
| $this->val = $this->val + 1; |
| } |
| |
| /* clone is a reserved keyword */ |
| function clone_() { |
| return new MyBar($this->val); |
| } |
| } |
| |
| $b = new MyBar(); |
| |
| $f = $b->baseclass(); |
| |
| $v = $f->get_value(); |
| $a = $f->get_class(); |
| $f->just_do_it(); |
| |
| $c = $b->clone_(); |
| $vc = $c->get_value(); |
| |
| check::equal($v, 3, "f: Bad virtual detection"); |
| check::equal($b->val, 5, "b: Bad virtual detection"); |
| check::equal($vc, 6, "c: Bad virtual detection"); |
| |
| check::done(); |
| ?> |