Annotation of embedaddon/php/Zend/tests/bug29210.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Bug #29210 (Function is_callable does not support private and protected methods)
                      3: --FILE--
                      4: <?php
                      5: class test_class {
                      6:    private function test_func1() {
                      7:         echo "test_func1\n";
                      8:    }
                      9:    protected function test_func2() {
                     10:         echo "test_func2\n";
                     11:    }
                     12:    static private function test_func3() {
                     13:         echo "test_func3\n";
                     14:    }
                     15:    static protected function test_func4() {
                     16:         echo "test_func4\n";
                     17:    }
                     18:    function test() {
                     19:      if (is_callable(array($this,'test_func1'))) {
                     20:             $this->test_func1();
                     21:      } else {
                     22:        echo "test_func1 isn't callable from inside\n";
                     23:      }
                     24:      if (is_callable(array($this,'test_func2'))) {
                     25:             $this->test_func2();
                     26:      } else {
                     27:        echo "test_func2 isn't callable from inside\n";
                     28:      }
                     29:      if (is_callable(array('test_class','test_func3'))) {
                     30:             test_class::test_func3();
                     31:      } else {
                     32:        echo "test_func3 isn't callable from inside\n";
                     33:      }
                     34:      if (is_callable(array('test_class','test_func4'))) {
                     35:             test_class::test_func4();
                     36:      } else {
                     37:        echo "test_func4 isn't callable from inside\n";
                     38:      }
                     39:    }
                     40: }
                     41: 
                     42: class foo extends test_class {
                     43:    function test() {
                     44:      if (is_callable(array($this,'test_func1'))) {
                     45:             $this->test_func1();
                     46:      } else {
                     47:        echo "test_func1 isn't callable from child\n";
                     48:      }
                     49:      if (is_callable(array($this,'test_func2'))) {
                     50:             $this->test_func2();
                     51:      } else {
                     52:        echo "test_func2 isn't callable from child\n";
                     53:      }
                     54:      if (is_callable(array('test_class','test_func3'))) {
                     55:             test_class::test_func3();
                     56:      } else {
                     57:        echo "test_func3 isn't callable from child\n";
                     58:      }
                     59:      if (is_callable(array('test_class','test_func4'))) {
                     60:             test_class::test_func4();
                     61:      } else {
                     62:        echo "test_func4 isn't callable from child\n";
                     63:      }
                     64:    }
                     65: }
                     66: 
                     67: $object = new test_class;
                     68: $object->test();
                     69: if (is_callable(array($object,'test_func1'))) {
                     70:        $object->test_func1();
                     71: } else {
                     72:   echo "test_func1 isn't callable from outside\n";
                     73: }
                     74: if (is_callable(array($object,'test_func2'))) {
                     75:        $object->test_func2();
                     76: } else {
                     77:   echo "test_func2 isn't callable from outside\n";
                     78: }
                     79: if (is_callable(array('test_class','test_func3'))) {
                     80:   test_class::test_func3();
                     81: } else {
                     82:   echo "test_func3 isn't callable from outside\n";
                     83: }
                     84: if (is_callable(array('test_class','test_func4'))) {
                     85:   test_class::test_func4();
                     86: } else {
                     87:   echo "test_func4 isn't callable from outside\n";
                     88: }
                     89: $object = new foo();
                     90: $object->test();
                     91: ?>
                     92: --EXPECTF--
                     93: test_func1
                     94: test_func2
                     95: test_func3
                     96: test_func4
                     97: test_func1 isn't callable from outside
                     98: test_func2 isn't callable from outside
                     99: test_func3 isn't callable from outside
                    100: test_func4 isn't callable from outside
                    101: test_func1 isn't callable from child
                    102: test_func2
                    103: test_func3 isn't callable from child
                    104: test_func4

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>