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

Reply via email to