helly Wed Feb 5 18:07:24 2003 EDT Added files: /php4/tests/classes private_001.phpt private_002.phpt private_003.phpt private_003b.phpt private_004.phpt private_004b.phpt private_005.phpt private_005b.phpt private_006.phpt private_006b.phpt private_007.phpt private_007b.phpt protected_001.phpt protected_001b.phpt protected_002.phpt visibility_000a.phpt visibility_000b.phpt visibility_000c.phpt visibility_001a.phpt visibility_001b.phpt visibility_001c.phpt visibility_002a.phpt visibility_002b.phpt visibility_002c.phpt visibility_003a.phpt visibility_003b.phpt visibility_003c.phpt visibility_004a.phpt visibility_004b.phpt visibility_004c.phpt Log: Add PPP method tests
Index: php4/tests/classes/private_001.phpt +++ php4/tests/classes/private_001.phpt --TEST-- A private method can only be called inside the class --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php
class pass { private static function show() { echo "Call show()\n"; } public static function do_show() { pass::show(); } } pass::do_show(); pass::show(); echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Call show() Fatal error: Call to private method pass::show() from context '' in %s on line %d Index: php4/tests/classes/private_002.phpt +++ php4/tests/classes/private_002.phpt --TEST-- A private method cannot be called in another class --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class pass { private static function show() { echo "Call pass::show()\n"; } public static function do_show() { pass::show(); } } pass::do_show(); class fail { public static function show() { echo "Call fail::show()\n"; pass::show(); } } fail::show(); echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Call pass::show() Call fail::show() Fatal error: Call to private method pass::show() from context 'fail' in %s on line %d Index: php4/tests/classes/private_003.phpt +++ php4/tests/classes/private_003.phpt --TEST-- A private method cannot be called in a derived class --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php ini_set("error_reporting",2039); class pass { private static function show() { echo "Call show()\n"; } protected static function good() { pass::show(); } } class fail extends pass { static function ok() { pass::good(); } static function not_ok() { pass::show(); } } fail::ok(); fail::not_ok(); // calling a private function echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Call show() Fatal error: Call to private method pass::show() from context 'fail' in %s on line %d Index: php4/tests/classes/private_003b.phpt +++ php4/tests/classes/private_003b.phpt --TEST-- A private method cannot be called in a derived class --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class pass { private function show() { echo "Call show()\n"; } protected function good() { $this->show(); } } class fail extends pass { public function ok() { $this->good(); } public function not_ok() { $this->show(); } } $t = new fail(); $t->ok(); $t->not_ok(); // calling a private function echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Call show() Fatal error: Call to private method pass::show() from context 'fail' in %s on line %d Index: php4/tests/classes/private_004.phpt +++ php4/tests/classes/private_004.phpt --TEST-- A private method cannot be called in a derived class --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class pass { private static function show() { echo "Call show()\n"; } public static function do_show() { pass::show(); } } class fail extends pass { static function do_show() { fail::show(); } } pass::do_show(); fail::do_show(); echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Call show() Fatal error: Call to private method pass::show() from context 'fail' in %s on line %d Index: php4/tests/classes/private_004b.phpt +++ php4/tests/classes/private_004b.phpt --TEST-- A private method cannot be called in a derived class --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class pass { private function show() { echo "Call show()\n"; } public function do_show() { $this->show(); } } class fail extends pass { function do_show() { $this->show(); } } $t = new pass(); $t->do_show(); $t2 = new fail(); $t2->do_show(); echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Call show() Fatal error: Call to private method pass::show() from context 'fail' in %s on line %d Index: php4/tests/classes/private_005.phpt +++ php4/tests/classes/private_005.phpt --TEST-- A private method cannot be called in a derived class --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class pass { private static function show() { echo "Call show()\n"; } public static function do_show() { pass::show(); } } class fail extends pass { static function do_show() { pass::show(); } } pass::do_show(); fail::do_show(); echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Call show() Fatal error: Call to private method pass::show() from context 'fail' in %s on line %d Index: php4/tests/classes/private_005b.phpt +++ php4/tests/classes/private_005b.phpt --TEST-- A private method cannot be called in a derived class --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class pass { private function show() { echo "Call show()\n"; } public function do_show() { $this->show(); } } class fail extends pass { function do_show() { $this->show(); } } $t = new pass(); $t->do_show(); $t2 = new fail(); $t2->do_show(); echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Call show() Fatal error: Call to private method pass::show() from context 'fail' in %s on line %d Index: php4/tests/classes/private_006.phpt +++ php4/tests/classes/private_006.phpt --TEST-- A private method can be overwritten in a second derived class --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class first { private static function show() { echo "Call show()\n"; } public static function do_show() { first::show(); } } first::do_show(); class second extends first { } second::do_show(); class third extends second { } third::do_show(); class fail extends third { static function show() { // cannot be redeclared echo "Call show()\n"; } } echo "Done\n"; ?> --EXPECTF-- Call show() Call show() Call show() Done Index: php4/tests/classes/private_006b.phpt +++ php4/tests/classes/private_006b.phpt --TEST-- A private method can be overwritten in a second derived class --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class first { private function show() { echo "Call show()\n"; } public function do_show() { $this->show(); } } $t1 = new first(); $t1->do_show(); class second extends first { } //$t2 = new second(); //$t2->do_show(); class third extends second { private function show() { echo "Call show()\n"; } } $t3 = new third(); $t3->do_show(); echo "Done\n"; ?> --EXPECTF-- Call show() Call show() Done Index: php4/tests/classes/private_007.phpt +++ php4/tests/classes/private_007.phpt --TEST-- A derived class does not know about privates of ancestors --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class Bar { public static function pub() { Bar::priv(); } private static function priv() { echo "Bar::priv()\n"; } } class Foo extends Bar { public static function priv() { echo "Foo::priv()\n"; } } Foo::pub(); Foo::priv(); echo "Done\n"; ?> --EXPECTF-- Bar::priv() Foo::priv() Done Index: php4/tests/classes/private_007b.phpt +++ php4/tests/classes/private_007b.phpt --TEST-- A derived class does not know about privates of ancestors --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class Bar { public function pub() { $this->priv(); } private function priv() { echo "Bar::priv()\n"; } } class Foo extends Bar { public function priv() { echo "Foo::priv()\n"; } } $obj = new Foo(); $obj->pub(); $obj->priv(); echo "Done\n"; ?> --EXPECTF-- Bar::priv() Foo::priv() Done Index: php4/tests/classes/protected_001.phpt +++ php4/tests/classes/protected_001.phpt --TEST-- A protected method can only be called inside the class --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class pass { protected static function fail() { echo "Call fail()\n"; } public static function good() { pass::fail(); } } pass::good(); pass::fail();// must fail because we are calling from outside of class pass echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Call fail() Fatal error: Call to protected method pass::fail() from context '' in %s on line %d Index: php4/tests/classes/protected_001b.phpt +++ php4/tests/classes/protected_001b.phpt --TEST-- A protected method can only be called inside the class --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class pass { protected function fail() { echo "Call fail()\n"; } public function good() { $this->fail(); } } $t = new pass(); $t->good(); $t->fail();// must fail because we are calling from outside of class pass echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Call fail() Fatal error: Call to protected method pass::fail() from context '' in %s on line %d Index: php4/tests/classes/protected_002.phpt +++ php4/tests/classes/protected_002.phpt --TEST-- A protected method cannot be called in another class --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class pass { protected static function show() { echo "Call pass::show()\n"; } public static function do_show() { pass::show(); } } pass::do_show(); class fail { public static function show() { echo "Call fail::show()\n"; pass::show(); } } fail::show(); echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Call pass::show() Call fail::show() Fatal error: Call to protected method pass::show() from context 'fail' in %s on line %d Index: php4/tests/classes/visibility_000a.phpt +++ php4/tests/classes/visibility_000a.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { protected function f0() {} } echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Fatal error: Access level to fail::f0() must be public (as in class same) in %s on line %d Index: php4/tests/classes/visibility_000b.phpt +++ php4/tests/classes/visibility_000b.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { private function f0() {} } echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Fatal error: Access level to fail::f0() must be public (as in class same) in %s on line %d Index: php4/tests/classes/visibility_000c.phpt +++ php4/tests/classes/visibility_000c.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { function f0() {} } echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Done Index: php4/tests/classes/visibility_001a.phpt +++ php4/tests/classes/visibility_001a.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { protected function f1() {} } echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Fatal error: Access level to fail::f1() must be public (as in class same) in %s on line %d Index: php4/tests/classes/visibility_001b.phpt +++ php4/tests/classes/visibility_001b.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { private function f1() {} } echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Fatal error: Access level to fail::f1() must be public (as in class same) in %s on line %d Index: php4/tests/classes/visibility_001c.phpt +++ php4/tests/classes/visibility_001c.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { function f1() {} } echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Done Index: php4/tests/classes/visibility_002a.phpt +++ php4/tests/classes/visibility_002a.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { protected function f2() {} } echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Fatal error: Access level to fail::f2() must be public (as in class same) in %s on line %d Index: php4/tests/classes/visibility_002b.phpt +++ php4/tests/classes/visibility_002b.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { private function f2() {} } echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Fatal error: Access level to fail::f2() must be public (as in class same) in %s on line %d Index: php4/tests/classes/visibility_002c.phpt +++ php4/tests/classes/visibility_002c.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { function f2() {} } echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Done Index: php4/tests/classes/visibility_003a.phpt +++ php4/tests/classes/visibility_003a.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { public function f3() {} } echo "Done\n"; ?> --EXPECTF-- Done Index: php4/tests/classes/visibility_003b.phpt +++ php4/tests/classes/visibility_003b.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { private function f3() {} } echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Fatal error: Access level to fail::f3() must be protected (as in class same) or weaker in %s on line %d Index: php4/tests/classes/visibility_003c.phpt +++ php4/tests/classes/visibility_003c.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { function f3() {} } echo "Done\n"; ?> --EXPECTF-- Done Index: php4/tests/classes/visibility_004a.phpt +++ php4/tests/classes/visibility_004a.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { public function f4() {} } echo "Done\n"; ?> --EXPECTF-- Done Index: php4/tests/classes/visibility_004b.phpt +++ php4/tests/classes/visibility_004b.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { protected function f4() {} } echo "Done\n"; // shouldn't be displayed ?> --EXPECTF-- Done Index: php4/tests/classes/visibility_004c.phpt +++ php4/tests/classes/visibility_004c.phpt --TEST-- A redeclared method must have the same or higher visibility --SKIPIF-- <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> --FILE-- <?php class father { function f0() {} function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class same extends father { // overload fn with same visibility function f0() {} public function f1() {} public function f2() {} protected function f3() {} private function f4() {} } class fail extends same { function f4() {} } echo "Done\n"; ?> --EXPECTF-- Done
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php