Test::MobileAgent 0.06

Songmuさんが「カッとなってHTTP::MobileAgent::Plugin::SmartPhoneをCPANに上げた」とのことなので、こちらもとりあえず対応版をアップしておきました。SYNOPSISにはこんな使い方を載せてありますが、実際にはテスト用にUAを改竄することで、アプリがUAごとに正しくリダイレクトするか、正しいページを出力してくれているかをテストするときとかに使うモノです。

use strict;
use warnings;
use Test::More;
use Test::MobileAgent ':all';
use HTTP::MobileAgent;

{
  local %ENV;
  test_mobile_agent('iphone');

  my $ua = HTTP::MobileAgent->new;
  ok $ua->is_smartphone;
  ok $ua->is_iphone;
}

HTTP::MobileAgentを使っていない環境でも、以下のようなコードを書けばUAを偽装したリクエストをつくれます。Plack::Testなどとあわせて使えば効果的かと。

use strict;
use warnings;
use HTTP::Request;
use Test::MobileAgent ':all';

local %ENV;
my $headers = test_mobile_agent_headers('iphone');
my $req = HTTP::Request->new(GET => '/hello', $headers);

現状ひとまずスマホ部分は全部::SmartPhoneに突っ込んでありますが、この辺は(既存のHTTP::MobileAgentがそうしているように)将来的にUA一覧を持たせるようになったら分割するとおもいます。