The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#
# $Id: buffering.t,v 0.1 2001/04/22 17:57:04 ram Exp $
#
#  Copyright (c) 1998-2001, Raphael Manfredi
#  Copyright (c) 2000-2001, Christophe Dehaudt
#  
#  You may redistribute only under the terms of the Artistic License,
#  as specified in the README file that comes with the distribution.
#
# HISTORY
# $Log: buffering.t,v $
# Revision 0.1  2001/04/22 17:57:04  ram
# Baseline for first Alpha release.
#
# $EndLog$
#

use CGI::Test;
use File::Path;

require "t/code.pl";

print "1..10\n";

my $BASE = "http://server:18/cgi-bin";

my $ct = CGI::Test->make(
	-base_url	=> $BASE,
	-cgi_dir	=> "t/cgi",
);

my $dirs = [qw(t/logs t/sessions)];
mkpath $dirs;

my $page = $ct->GET("$BASE/config");
ok 1, !$page->is_error;

# With buffering, context is stored at the beginning.

my $form = $page->forms->[0];
my @widgets = $form->widget_list;
ok 2, $widgets[0]->name eq "_mxscreen_session";
ok 3, $widgets[1]->name eq "_mxscreen_token";

my $page2 = $ct->GET("$BASE/config_nobuf");
ok 4, !$page2->is_error;

# No buffering, context is emitted at the end.

my $form2 = $page2->forms->[0];
my @widgets2 = $form2->widget_list;
ok 5, $widgets2[-2]->name eq "_mxscreen_session";
ok 6, $widgets2[-1]->name eq "_mxscreen_token";

my $page3 = $ct->GET("$BASE/early_write");
ok 7, !$page->is_error;
ok 8, $page->raw_content !~ /EARLY PRINTING/;
ok 9, contains("t/logs/mx.out", "EARLY PRINTING");
ok 10, contains("t/logs/mx.err", "EARLY PRINTING");

rmtree $dirs;