1 # -*- mode: perl; coding: utf-8 -*-
2 # $Id: 02_ClientInfo.t,v 1.3 2008-08-05 14:08:25 morimoto Exp $
3 # $Source: /home/ishikawa/work/keitairc/tmp/keitairc/t/02_ClientInfo.t,v $
4 # Copyright (c) 2003-2008 Jun Morimoto <morimoto@mrmt.net>
5 # This program is covered by the GNU General Public License 2
8 use Test::More 'no_plan';
10 use lib "$FindBin::Bin/../lib";
16 use_ok('Keitairc::ClientInfo');
19 can_ok('Keitairc::ClientInfo',
20 qw/new user_agent is_ezweb is_docomo is_ipod is_softbank
21 is_emobile is_emobile_mobilebrowser is_emobile_openbrowser
22 is_mobile softbank_serial docomo_foma_icc docomo_imodeid
23 au_subscriber_id emobile_userid serial_key cookie_available/);
27 my $header = new HTTP::Headers;
28 my $subscriber_id = '05098765432101_gd.ezweb.ne.jp';
30 'user-agent' => 'KDDI-SN3B UP.Browser/6.2.0.13.1.5 (GUI) MMP/2.0',
31 'x-up-subno' => $subscriber_id,
32 'x-up-devcap-cc' => '1',
33 'x-up-devcap-qvga' => '1',
34 'accept' => 'application/x-kddi-ezmusic,application/x-kddi-playlist,application/x-kmcs-form-data,application/x-kddi-karrange,application/x-pobox,application/x-tar,application/x-up-download,application/x-www-form-urlencoded,application/x-kcf-license,application/x-kddi-htmlmail,application/x-kddi-drm,application/vnd.KDDI-vpimlist,application/vnd.KDDI-setsynctime,application/vnd.KDDI-verror,application/vnd.syncml+wbxml,text/x-vmessage,image/bci,text/x-vcalendar,text/vcard,application/x-kddi-kcf,application/x-kddi-auc,text/x-vnote,application/x-kddi-mcx,text/x-vcard, application/octet-stream,application/vnd.phonecom.mmc-xml,application/vnd.uplanet.bearer-choice-wbxml,application/vnd.wap.wmlc;type=4365,application/vnd.wap.xhtml+xml,application/xhtml+xml;profile="http://www.wapforum.org/xhtml",image/bmp,image/gif,image/jpeg,image/png,image/vnd.wap.wbmp,image/x-up-wpng,multipart/mixed,multipart/related,text/css,text/html,text/plain,text/vnd.wap.wml;type=4365,application/x-shockwave-flash,audio/vnd.qcelp,application/x-smaf,application/vnd.yamaha.hv-script,application/x-mpeg,video/3gpp2,audio/3gpp2,video/3gpp,audio/3gpp,text/x-hdml,*/*',
35 'x-up-devcap-max-pdu' => '131072',
36 'x-up-devcap-screenpixels' => '240,368',
37 'accept-language' => 'ja-jp',
38 'x-up-devcap-iscolor' => '1',
39 'x-up-devcap-screendepth' => '16,RGB565',
40 'accept-charset' => 'shift_jis,*',
41 'x-up-devcap-multimedia' => 'A300961123302120',
42 'via' => '1.1 wb48proxy03.ezweb.ne.jp',
43 'x-up-devcap-screenchars' => '28,20',
44 'x-up-devcap-softkeysize' => '6',
45 'x-up-devcap-titlebar' => '0'
48 my $request = new HTTP::Request('GET', 'http://example.com', $header);
49 my $ci = new Keitairc::ClientInfo($request);
50 ok($ci, 'new Keitairc::ClientInfo (au)');
51 ok($ci->user_agent(), 'au user_agent()');
52 ok($ci->is_mobile(), 'au is_mobile()');
53 ok($ci->is_ezweb(), 'au is_ezweb()');
54 ok(!$ci->is_docomo(), 'au is_docomo()');
55 ok(!$ci->is_ipod(), 'au is_ipod()');
56 ok(!$ci->is_softbank(), 'au is_softbank()');
57 ok(!$ci->is_emobile(), 'au is_emobile()');
58 ok(!$ci->is_emobile_mobilebrowser(), 'au is_emobile_mobilebrowser()');
59 ok(!$ci->is_emobile_openbrowser(), 'au is_emobile_openbrowser()');
60 ok(!$ci->softbank_serial(), 'au softbank_serial()');
61 ok(!$ci->docomo_foma_icc(), 'au docomo_foma_icc()');
62 ok(!$ci->docomo_imodeid(), 'au docomo_imodeid()');
63 is($ci->au_subscriber_id(), $subscriber_id, 'au au_subscriber_id()');
64 ok(!$ci->emobile_userid(), 'au emobile_userid()');
65 is($ci->serial_key(), $subscriber_id, 'au serial_key()');
66 ok($ci->cookie_available(), 'au cookie_available()');
71 my $icc = 'icc9876543210234567890F';
72 my $ua = 'DoCoMo/2.0 P703imyu(c100;TB;W30H15;ser123498761234567;icc9876543210234567890F)';
73 my $imodeid = '1234567';
74 my $header = new HTTP::Headers;
77 'x_dcmguid' => $imodeid,
80 my $request = new HTTP::Request('GET', 'http://example.com', $header);
81 my $ci = new Keitairc::ClientInfo($request);
82 ok($ci, 'new Keitairc::ClientInfo (NTT DoCoMo FOMA)');
83 ok($ci->user_agent(), 'NTT DoCoMo FOMA user_agent()');
84 ok($ci->is_mobile(), 'NTT DoCoMo FOMA is_mobile()');
85 ok(!$ci->is_ezweb(), 'NTT DoCoMo FOMA is_ezweb()');
86 ok($ci->is_docomo(), 'NTT DoCoMo FOMA is_docomo()');
87 ok(!$ci->is_ipod(), 'NTT DoCoMo FOMA is_ipod()');
88 ok(!$ci->is_softbank(), 'NTT DoCoMo FOMA is_softbank()');
89 ok(!$ci->is_emobile(), 'NTT DoCoMo FOMA is_emobile()');
90 ok(!$ci->is_emobile_mobilebrowser(), 'NTT DoCoMo FOMA is_emobile_mobilebrowser()');
91 ok(!$ci->is_emobile_openbrowser(), 'NTT DoCoMo FOMA is_emobile_openbrowser()');
92 ok(!$ci->softbank_serial(), 'NTT DoCoMo FOMA softbank_serial()');
93 is($ci->docomo_foma_icc(), $icc, 'NTT DoCoMo FOMA docomo_foma_icc()');
94 is($ci->docomo_imodeid(), $imodeid, 'NTT DoCoMo FOMA docomo_imodeid()');
95 ok(!$ci->au_subscriber_id(), 'NTT DoCoMo FOMA au_subscriber_id()');
96 ok(!$ci->emobile_userid(), 'NTT DoCoMo FOMA emobile_userid()');
97 ok(!$ci->serial_key(), 'NTT DoCoMo FOMA serial_key()');
98 ok(!$ci->cookie_available(), 'NTT DoCoMo FOMA cookie_available()');
103 my $ua = 'SoftBank/1.0/913SH/SHJ001/SN123456789012345 Browser/NetFront/3.4 Profile/MIDP-2.0 Configuration/CLDC-1.1';
104 my $serial = 'SN123456789012345';
105 my $header = new HTTP::Headers;
110 my $request = new HTTP::Request('GET', 'http://example.com', $header);
111 my $ci = new Keitairc::ClientInfo($request);
112 ok($ci, 'new Keitairc::ClientInfo (SoftBank)');
113 ok($ci->user_agent(), 'SoftBank user_agent()');
114 ok($ci->is_mobile(), 'SoftBank is_mobile()');
115 ok(!$ci->is_ezweb(), 'SoftBank is_ezweb()');
116 ok(!$ci->is_docomo(), 'SoftBank is_docomo()');
117 ok(!$ci->is_ipod(), 'SoftBank is_ipod()');
118 ok($ci->is_softbank(), 'SoftBank is_softbank()');
119 ok(!$ci->is_emobile(), 'SoftBank is_emobile()');
120 ok(!$ci->is_emobile_mobilebrowser(), 'SoftBank is_emobile_mobilebrowser()');
121 ok(!$ci->is_emobile_openbrowser(), 'SoftBank is_emobile_openbrowser()');
122 is($ci->softbank_serial(), $serial, 'SoftBank softbank_serial()');
123 ok(!$ci->docomo_foma_icc(), 'SoftBank docomo_foma_icc()');
124 ok(!$ci->docomo_imodeid(), 'SoftBank docomo_imodeid()');
125 ok(!$ci->au_subscriber_id(), 'SoftBank au_subscriber_id()');
126 ok(!$ci->emobile_userid(), 'SoftBank emobile_userid()');
127 is($ci->serial_key(), $serial, 'SoftBank serial_key()');
128 ok($ci->cookie_available(), 'SoftBank cookie_available()');