#!/usr/bin/perl -w
use strict;
use FindBin;
use Test::More tests => 3;
use_ok("Finance::Bank::Postbank_de");
sub save_content {
my ($account,$name) = @_;
local *F;
my $filename = "$0-$name.html";
open F, "> $filename"
or diag "Couldn't dump current page to '$filename': $!";
binmode F;
print F $account->agent->content;
close F;
diag "Current page saved to '$filename'";
};
# Check that we have SSL installed :
SKIP: {
skip "Need SSL capability to access the website",2
unless LWP::Protocol::implementor('https');
my $account = Finance::Bank::Postbank_de->new(
login => '9999999999',
password => '11111',
status => sub {
shift;
diag join " ",@_
if ($_[0] eq "HTTP Code") and ($_[1] != 200);
},
);
# Get the login page:
my $status = $account->get_login_page(&Finance::Bank::Postbank_de::LOGIN);
# Check that we got a wellformed page back
SKIP: {
unless ($status == 200) {
diag $account->agent->res->as_string;
skip "Didn't get a connection to ".&Finance::Bank::Postbank_de::LOGIN."(LWP: $status)",2;
};
skip "Banking is unavailable due to maintenance", 4
if $account->maintenance;
$account->agent(undef);
# Check that all functions are available
for (keys %Finance::Banking::Postbank_de::functions) {
isn't undef,
$account->agent->find_link(text_regex => $Finance::Banking::Postbank_de::functions{ $_ }),
"Function '$_' available";
};
$status = $account->select_function("accountstatement");
unless ($status == 200) {
diag $account->agent->res->as_string;
skip "Couldn't get to account statement (LWP: $status)", 2;
};
ok($account->close_session(),"Closed session")
or save_content($account,"error-login-logout-close-session");
is($account->agent(),undef,"agent was discarded");
};
};