Finance-Bank-Bankwest
view release on metacpan or search on metacpan
t/Bankwest-Session.t
t/Bankwest-SessionFromLogin.t
t/Bankwest-Transaction.t
t/Bankwest.t
t/author-critic.t
t/author-pod-spell.t
t/author-test-eol.t
t/fixtures/acct-balances.html
t/fixtures/google.html
t/fixtures/logged-out.html
t/fixtures/login-bad-credentials.html
t/fixtures/login-no-credentials.html
t/fixtures/login-subsequent-login.html
t/fixtures/login-then-acct-balances.html
t/fixtures/login-then-bad-credentials.html
t/fixtures/login-then-no-credentials.html
t/fixtures/login-then-service-message.html
t/fixtures/login-timeout.html
t/fixtures/login.html
t/fixtures/service-message.html
t/fixtures/txn-export.csv
t/fixtures/txn-search-bad-acct-from-date-to-date.html
t/fixtures/txn-search-bad-acct.html
t/fixtures/txn-search-bad-dates.html
t/fixtures/txn-search-bad-from-date.html
t/fixtures/txn-search-bad-to-date.html
lib/Finance/Bank/Bankwest/Error/NotLoggedIn/SubsequentLogin.pm view on Meta::CPAN
This module is part of distribution Finance-Bank-Bankwest v1.2.8.
This distribution's version numbering follows the conventions defined at L<semver.org|http://semver.org/>.
=head1 DESCRIPTION
This exception may be thrown on calls to various methods of
L<Finance::Bank::Bankwest::Session> when the Bankwest Online Banking
session has been terminated due to another session being established
with the same credentials.
=head1 SEE ALSO
=over 4
=item *
L<Finance::Bank::Bankwest::Error::NotLoggedIn>
lib/Finance/Bank/Bankwest/Parser/Login.pm view on Meta::CPAN
This module is part of distribution Finance-Bank-Bankwest v1.2.8.
This distribution's version numbering follows the conventions defined at L<semver.org|http://semver.org/>.
=head1 DESCRIPTION
This module holds the logic for identifying an L<HTTP::Response> object
as a Bankwest Online Banking login web page, and throwing appropriate
exceptions when the page indicates that something has gone wrong (e.g.
session timeout, subsequent login, bad credentials).
This module always throws an exception regardless of the content of the
response, on the basis that being presented with a login page during a
session is almost always a bad thing. In the one foreseeable case when
a login page is good--logging in--the caller can simply catch the
exception and proceed as normal.
=head1 SEE ALSO
lib/Finance/Bank/Bankwest/SessionFromLogin.pm view on Meta::CPAN
=head2 pan
The Personal Access Number (PAN). Required.
=head2 access_code
The access code associated with the provided PAN. Required.
=head2 session
If login with the provided credentials is successful, a
L<Finance::Bank::Bankwest::Session> instance.
May throw one of the following exceptions on failure:
=over 4
=item L<Finance::Bank::Bankwest::Error::NotLoggedIn::BadCredentials>
if the remote server rejects the supplied PAN/access code combination.
t/Bankwest-Parser-Login.t view on Meta::CPAN
use Test::Routine::Util;
use Test::More;
run_tests(
undef,
't::lib::Test::Parser' => {
parser => 'Login',
test_fail => {
'login-timeout' => 'NotLoggedIn::Timeout',
'login-bad-credentials' => 'NotLoggedIn::BadCredentials',
'login-no-credentials' => 'NotLoggedIn::BadCredentials',
'login-subsequent-login' => 'NotLoggedIn::SubsequentLogin',
'login' => 'NotLoggedIn::UnknownReason',
},
},
);
done_testing;
t/Bankwest-SessionFromLogin.t view on Meta::CPAN
};
test 'fail if session passed in constructor' => sub {
dies_ok { Finance::Bank::Bankwest::SessionFromLogin->new(
pan => 'irrelevant',
access_code => 'irrelevant',
session => 'something',
); } 'constructor must not accept a session';
};
test 'fail correctly if bad credentials supplied' => sub {
my $self = shift;
my $sfl = Finance::Bank::Bankwest::SessionFromLogin->new(
pan => 'irrelevant',
access_code => 'irrelevant',
login_uri => $self->uri_for('login-then-bad-credentials'),
);
throws_ok
{ $sfl->session }
'Finance::Bank::Bankwest::Error::NotLoggedIn::BadCredentials';
};
test 'fail correctly if no credentials supplied' => sub {
my $self = shift;
my $sfl = Finance::Bank::Bankwest::SessionFromLogin->new(
pan => 'irrelevant',
access_code => 'irrelevant',
login_uri => $self->uri_for('login-then-no-credentials'),
);
throws_ok
{ $sfl->session }
'Finance::Bank::Bankwest::Error::NotLoggedIn::BadCredentials';
};
test 'fail on Google' => sub {
my $self = shift;
my $sfl = Finance::Bank::Bankwest::SessionFromLogin->new(
pan => 'irrelevant',
t/fixtures/login-then-bad-credentials.html view on Meta::CPAN
<div id="contentColumn" class="single">
<!--[if !IE]> START .home_leftColumn <![endif]-->
<div class="home_leftColumn">
<div class="liteAnchor">
<a href="ribLite.aspx" class="liteAnchorIcon">
<img class="liteAnchor" src="Resources/Images/mobile.png" />
</a><a href="ribLite.aspx"><span style="vertical-align: top; font-size: small;">mobile
version</span> </a>
</div>
<div>
<form name="Form1" method="get" action="login-bad-credentials.html" id="Form1" autocomplete="off" class="fn_inlineValidation">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="XXX" />
</div>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['Form1'];
if (!theForm) {
t/fixtures/login-then-no-credentials.html view on Meta::CPAN
<div id="contentColumn" class="single">
<!--[if !IE]> START .home_leftColumn <![endif]-->
<div class="home_leftColumn">
<div class="liteAnchor">
<a href="ribLite.aspx" class="liteAnchorIcon">
<img class="liteAnchor" src="Resources/Images/mobile.png" />
</a><a href="ribLite.aspx"><span style="vertical-align: top; font-size: small;">mobile
version</span> </a>
</div>
<div>
<form name="Form1" method="get" action="login-no-credentials.html" id="Form1" autocomplete="off" class="fn_inlineValidation">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="XXX" />
</div>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['Form1'];
if (!theForm) {
( run in 0.273 second using v1.01-cache-2.11-cpan-4d50c553e7e )