Apache-SWIT
view release on metacpan or search on metacpan
lib/Apache/SWIT/Test.pm view on Meta::CPAN
use strict;
use warnings FATAL => 'all';
package Apache::SWIT::Test::Mechanize;
use base 'WWW::Mechanize';
use Encode::Guess;
sub reload {
my $self = shift;
$self->get($self->uri);
}
sub redirect_ok {
my $self = shift;
return $self->max_redirect ? $self->SUPER::redirect_ok(@_) : undef;
}
package Apache2::Request;
sub new { return $_[1]; }
package Apache::SWIT::Test;
use base 'Class::Accessor', 'Class::Data::Inheritable';
use Apache::SWIT::Maker::Conversions;
use Apache::SWIT::Test::Utils;
use Apache::SWIT::Test::Request;
use HTML::Tested::Test;
use Test::More;
use Carp;
use Data::Dumper;
use File::Slurp;
use Apache::TestRequest;
use Encode;
use Apache::SWIT;
BEGIN {
no strict 'refs';
no warnings 'redefine';
*{ "Apache::SWIT::swit_die" } = sub {
my ($class, $msg, $r, @more) = @_;
confess "$msg with request:\n" . $r->as_string . "and more:\n"
. join("\n", map { Dumper($_) } @more);
};
}
__PACKAGE__->mk_accessors(qw(mech session redirect_request));
__PACKAGE__->mk_classdata('root_location');
sub _Do_Startup {
package main;
local $0 = shift;
do $0 or Carp::confess "# Unable to do $0\: $@";
}
=head1 METHODS
=cut
sub do_startup {
_Do_Startup("blib/conf/startup.pl");
_Do_Startup("blib/conf/do_swit_startups.pl");
}
sub new {
my ($class, $args) = @_;
$args ||= {};
if ($ENV{SWIT_HAS_APACHE}) {
$args->{mech} = Apache::SWIT::Test::Mechanize->new;
}
$args->{session} = $args->{session_class}->new;
my $self = $class->SUPER::new($args);
$self->root_location("") unless $self->root_location;
$self->_setup_session(Apache::SWIT::Test::Request->new({
uri => $self->root_location . "/" }), url_to_make => "");
return $self;
}
sub new_guitest {
my $self = shift()->new(@_);
if ($self->mech) {
$ENV{MOZ_NO_REMOTE} = 1;
use IO::CaptureOutput qw(capture);
{
local $SIG{__WARN__} = sub {};
eval "require X11::GUITest";
die "Unable to use X11::GUITest: $@" if $@;
X11::GUITest::InitGUITest();
}
capture(sub {
eval "use Mozilla::Mechanize::GUITester";
});
( run in 2.159 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )