OSDN Git Service

added can_ok()
[keitairc/keitairc.git] / t / 02_ClientInfo.t
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
6 use strict;
7 use warnings;
8 use Test::More 'no_plan';
9 use FindBin;
10 use lib "$FindBin::Bin/../lib";
11
12 use HTTP::Headers;
13 use HTTP::Request;
14
15 BEGIN {
16         use_ok('Keitairc::ClientInfo');
17 }
18
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/);
24
25 # au
26 {
27         my $header = new HTTP::Headers;
28         my $subscriber_id = '05098765432101_gd.ezweb.ne.jp';
29         $header->header(
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'
46                 );
47
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()');
67 }
68
69 # NTT DoCoMo FOMA
70 {
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;
75         $header->header(
76                 'user-agent' => $ua,
77                 'x_dcmguid' => $imodeid,
78                 );
79
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()');
99 }
100
101 # Softbank
102 {
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;
106         $header->header(
107                 'user-agent' => $ua,
108                 );
109
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()');
129 }
130
131 # TODO: test emobile