# 02-live.t
#
# Test suite for WWW::Velib
# Try a real connection
#
# copyright (C) 2007 David Landgren
use strict;
use Test::More tests => 11;
use WWW::Velib;
use WWW::Velib::Map;
my $Unchanged = 'The scalar remains the same';
$_ = $Unchanged;
SKIP: {
my $login = $ENV{PERL_TESTING_WWW_VELIB_LOGIN};
my $pin = $ENV{PERL_TESTING_WWW_VELIB_PIN};
skip 'PERL_TESTING_WWW_VELIB_* environment variables not set, see README', 7
unless defined $login and defined $pin;
my ($v, $err);
eval {$v = WWW::Velib->new( login => $login, pin => $pin, cache_dir => '.' )};
$err = $@;
is($err,'', 'new() succeeded');
is(ref($v), 'WWW::Velib', 'instantiated a live object');
cmp_ok(length($v->{html}{myaccount}), '>', 0, 'have some content');
like($v->end_date, qr{\A\d{2}/\d{2}/\d{4}\Z}, 'have a date');
cmp_ok($v->remain, '>', 0, 'account expires in more than 1 day');
eval {$v->get_month};
$err = $@;
is($err,'', 'get_month() succeeded');
cmp_ok(length($v->{html}{month}), '>', 0,
'got some content for the trips of the month');
}
my $map = WWW::Velib::Map->new;
is(ref($map),'WWW::Velib::Map', 'instantiated a WWW::Velib::Map');
my $file;
do {
$file = join '.', "test.map", time, $$, rand(9999);
} while (-f $file); # vague race condition possible
$map->save($file);
ok( -f $file, 'dumped local cache of map');
my $m2 = WWW::Velib::Map->new(file => $file);
is(ref($m2),'WWW::Velib::Map', 'instantiated a cached WWW::Velib::Map');
is( $_, $Unchanged, $Unchanged );