diff options
author | Marcus Boerger <helly@php.net> | 2003-07-01 18:34:42 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2003-07-01 18:34:42 +0000 |
commit | c31e49e4cb9bb754c0f42a1e126a996d0a36e84c (patch) | |
tree | 633a007fa0d03d2cca8fc2edbbfc14bd84cc5bc3 /tests | |
parent | d531dee3909af20c4326d91f16ee9e7b97bcb067 (diff) | |
download | php-git-c31e49e4cb9bb754c0f42a1e126a996d0a36e84c.tar.gz |
Add tests for static members
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/classes/factory_and_singleton_001.phpt | 101 | ||||
-rwxr-xr-x | tests/classes/factory_and_singleton_002.phpt | 98 | ||||
-rwxr-xr-x | tests/classes/factory_and_singleton_003.phpt | 18 |
3 files changed, 217 insertions, 0 deletions
diff --git a/tests/classes/factory_and_singleton_001.phpt b/tests/classes/factory_and_singleton_001.phpt new file mode 100755 index 0000000000..70fa020a49 --- /dev/null +++ b/tests/classes/factory_and_singleton_001.phpt @@ -0,0 +1,101 @@ +--TEST-- +ZE2 factory and singleton, test 1 +--SKIPIF-- +<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> +--FILE-- +<?php +class test { + protected $x; + + static private $test = NULL; + static private $cnt = 0; + + static function factory($x) { + if (test::$test) { + return test::$test; + } else { + test::$test = new test($x); + return test::$test; + } + } + + protected function __construct($x) { + test::$cnt++; + $this->x = $x; + } + + static function destroy() { + test::$test = NULL; + } + + protected function __destruct() { + test::$cnt--; + } + + public function get() { + return $this->x; + } + + static public function getX() { + if (test::$test) { + return test::$test->x; + } else { + return NULL; + } + } + + static public function count() { + return test::$cnt; + } +} + +echo "Access static members\n"; +var_dump(test::getX()); +var_dump(test::count()); + +echo "Create x and y\n"; +$x = test::factory(1); +$y = test::factory(2); +var_dump(test::getX()); +var_dump(test::count()); +var_dump($x->get()); +var_dump($y->get()); + +echo "Destruct x\n"; +$x = NULL; +var_dump(test::getX()); +var_dump(test::count()); +var_dump($y->get()); + +echo "Destruct y\n"; +$y = NULL; +var_dump(test::getX()); +var_dump(test::count()); + +echo "Destruct static\n"; +test::destroy(); +var_dump(test::getX()); +var_dump(test::count()); + +echo "Done\n"; +?> +--EXPECT-- +Access static members +NULL +int(0) +Create x and y +int(1) +int(1) +int(1) +int(1) +Destruct x +int(1) +int(1) +int(1) +Destruct y +int(1) +int(1) +Destruct static +NULL +int(0) +Done diff --git a/tests/classes/factory_and_singleton_002.phpt b/tests/classes/factory_and_singleton_002.phpt new file mode 100755 index 0000000000..0c63aed900 --- /dev/null +++ b/tests/classes/factory_and_singleton_002.phpt @@ -0,0 +1,98 @@ +--TEST-- +ZE2 factory and singleton, test 2 +--SKIPIF-- +<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> +--FILE-- +<?php +class test { + protected $x; + + static private $test = NULL; + static private $cnt = 0; + + static function factory($x) { + if (test::$test) { + return test::$test; + } else { + test::$test = new test($x); + return test::$test; + } + } + + protected function __construct($x) { + test::$cnt++; + $this->x = $x; + } + + static function destroy() { + test::$test = NULL; + } + + protected function __destruct() { + test::$cnt--; + } + + public function get() { + return $this->x; + } + + static public function getX() { + if (test::$test) { + return test::$test->x; + } else { + return NULL; + } + } + + static public function count() { + return test::$cnt; + } +} + +echo "Access static members\n"; +var_dump(test::getX()); +var_dump(test::count()); + +echo "Create x and y\n"; +$x = test::factory(1); +$y = test::factory(2); +var_dump(test::getX()); +var_dump(test::count()); +var_dump($x->get()); +var_dump($y->get()); + +echo "Destruct x\n"; +$x = NULL; +var_dump(test::getX()); +var_dump(test::count()); +var_dump($y->get()); + +echo "Destruct y\n"; +$y = NULL; +var_dump(test::getX()); +var_dump(test::count()); + +//echo "Destruct static\n"; +//test::destroy(); +//var_dump(test::getX()); +//var_dump(test::count()); + +echo "Done\n"; +?> +--EXPECT-- +Access static members +NULL +int(0) +Create x and y +int(1) +int(1) +int(1) +int(1) +Destruct x +int(1) +int(1) +int(1) +Destruct y +int(1) +int(1) +Done diff --git a/tests/classes/factory_and_singleton_003.phpt b/tests/classes/factory_and_singleton_003.phpt new file mode 100755 index 0000000000..d5fc00491b --- /dev/null +++ b/tests/classes/factory_and_singleton_003.phpt @@ -0,0 +1,18 @@ +--TEST-- +ZE2 factory and singleton, test 3 +--SKIPIF-- +<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> +--FILE-- +<?php +class test { + + protected function __construct($x) { + } +} + +$obj = new test; + +echo "Done\n"; +?> +--EXPECTF-- +Fatal error: Call to protected constructor from context '' %sfactory_and_singleton_003.php on line %d |