package TestApp; use Catalyst qw( MobileAgent ); use Test::More tests => 6; sub foo : Global { my ( $self, $c ) = @_; my $mobile_agent = $c->req->mobile_agent; my $class = $c->req->params->{ class }; isa_ok $mobile_agent, $class, "$class check."; my $carrier = $c->req->params->{ carrier }; like $mobile_agent->carrier_longname, qr/^$carrier$/; } __PACKAGE__->setup(); package main; use Catalyst::Test 'TestApp'; use HTTP::Headers; use HTTP::Request::Common; my @Tests = ( { class => 'HTTP::MobileAgent::DoCoMo', user_agent => 'DoCoMo/2.0 N2001(c10;ser0123456789abcde;icc01234567890123456789)', carrier => 'DoCoMo', }, { class => 'HTTP::MobileAgent::EZweb', user_agent => 'KDDI-TS21 UP.Browser/6.0.2.276 (GUI) MMP/1.1', carrier => 'EZweb', }, { class => 'HTTP::MobileAgent::JPhone', user_agent => 'SoftBank/1.0/910T/TJ001 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1', carrier => '(Vodafone|SoftBank)', }, ); for my $Test ( @Tests ) { my $request = GET( '/foo?class=' . $Test->{ class } . '&carrier=' . $Test->{ carrier }, 'User-Agent' => $Test->{ user_agent }, ); request( $request ); }