From 1eecc23bbee2fc1c7f372ec5cf92d3d8c1f83abc Mon Sep 17 00:00:00 2001 From: franck cuny Date: Thu, 25 Jun 2009 15:36:19 +0200 Subject: move tests --- t/tests/Test/MooseX/UserAgent.pm | 110 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 t/tests/Test/MooseX/UserAgent.pm (limited to 't/tests/Test') diff --git a/t/tests/Test/MooseX/UserAgent.pm b/t/tests/Test/MooseX/UserAgent.pm new file mode 100644 index 0000000..0c5a630 --- /dev/null +++ b/t/tests/Test/MooseX/UserAgent.pm @@ -0,0 +1,110 @@ +package Test::MooseX::UserAgent; + +use strict; +use warnings; +use base 'Test::Class'; +use Test::Exception; +use Test::More; +use Cache::MemoryCache; + +{ + + package Test::UserAgent; + use Moose; + with qw/MooseX::UserAgent/; + has useragent_conf => ( + isa => 'HashRef', + is => 'rw', + default => sub { + return { + name => 'Mozilla/5.0 (compatible; LWP; RTGI; http://rtgi.fr/)', + mail => 'bot@rtgi.fr', + timeout => 30, + cache => { use_cache => 0, }, + max_size => 3000000, + }; + } + ); + 1; +} +{ + + package Test::UserAgent::Async; + use Moose; + with qw/MooseX::UserAgent::Async/; + has useragent_conf => ( + isa => 'HashRef', + is => 'rw', + default => sub { + return { + name => 'Mozilla/5.0 (compatible; Async; RTGI; http://rtgi.fr/)', + mail => 'bot@rtgi.fr', + timeout => 30, + cache => { use_cache => 0, }, + max_size => 3000000, + }; + } + ); + 1; +} + +sub cache { + my $cache = new Cache::MemoryCache( + { + 'namespace' => 'testua', + 'default_expires_in' => 600 + } + ); + return $cache; +} + +my @ua_roles = (qw/Test::UserAgent Test::UserAgent::Async/); + +sub fetch : Tests(14) { + my $test = shift; + + my $url = 'http://lumberjaph.net/blog'; + + foreach my $ua (@ua_roles) { + can_ok $ua, 'fetch'; + ok my $obj = $ua->new(), '... object is created'; + ok my $res = $obj->fetch($url), '... fetch url'; + is $res->code, "200", "... fetch is a success"; + like $res->content, qr/lumberjaph/, "... and content is good"; + + # test with cache + $obj = $ua->new( + useragent_conf => { + name => 'Mozilla/5.0 (compatible; Async; RTGI; http://rtgi.fr/)', + cache => { + use_cache => 1, + namespace => 'testua', + } + }, + ua_cache => $test->cache, + ); + $res = $obj->fetch($url); + is $res->code, "200", "... fetch is a success"; + + # now data should be in cache + my $ref = $obj->ua_cache->get($url); + ok defined $ref, "... url is now in cache"; + } +} + +sub get_content : Tests(8) { + my $test = shift; + + foreach my $ua (@ua_roles) { + can_ok $ua, 'get_content'; + + ok my $obj = $ua->new(), ' ... object is created'; + my $url = 'http://google.com'; + my $res = $obj->fetch($url); + is $res->code, "200", "... fetch is a success"; + my $content = $obj->get_content($res); + like $content, qr/google/, "... and content is good"; + } +} + +1; -- cgit 1.4.1