1
0
Fork 0
apache2/debian/perl-framework/t/php/construct.t
Daniel Baumann f56986e2d9
Adding debian version 2.4.63-1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 11:01:27 +02:00

66 lines
1.2 KiB
Perl

use strict;
use warnings FATAL => 'all';
use Apache::Test;
use Apache::TestRequest;
plan tests => 2, need_php4;
## testing PHP OO bug (#7515)
## php src:
## <?php
## class obj {
## function method() {}
## }
##
## function test($o_copy) {
## $o_copy->root->set_in_copied_o=TRUE;
## var_dump($o_copy);?><BR><?php }
##
## $o->root=new obj();
##
## ob_start();
## var_dump($o);
## $x=ob_get_contents();
## ob_end_clean();
##
## $o->root->method();
##
## ob_start();
## var_dump($o);
## $y=ob_get_contents();
## ob_end_clean();
##
## // $o->root->method() makes ob_get_contents() have a '&' in front of object
## // so this does not work.
## // echo ($x==$y) ? 'success':'failure';
##
## echo "x = $x";
## echo "y = $y";
## ?>
##
## output should be:
## x = object(stdClass)(1) {
## ["root"]=>
## object(obj)(0) {
## }
## }
## y = object(stdClass)(1) {
## ["root"]=>
## &object(obj)(0) {
## }
## }
my $result = GET_BODY "/php/construct.php";
## get rid of newlines to make compairon easier.
$result =~ s/\n//g;
my ($x, $y);
if ($result =~ /x = (.*)y = (.*)/) {
$x = $1;
$y = $2;
}
ok $x eq "object(stdClass)(1) { [\"root\"]=> object(obj)(0) { }}";
ok $y eq "object(stdClass)(1) { [\"root\"]=> &object(obj)(0) { }}";