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