jpmobile 4.1.1 → 4.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/jpmobile.gemspec +2 -0
- data/lib/jpmobile/emoticon.rb +3 -3
- data/lib/jpmobile/filter.rb +1 -1
- data/lib/jpmobile/mail.rb +3 -3
- data/lib/jpmobile/mobile/abstract_mobile.rb +5 -2
- data/lib/jpmobile/resolver.rb +17 -1
- data/lib/jpmobile/version.rb +1 -1
- data/lib/tasks/jpmobile_tasks.rake +5 -11
- data/spec/rack/jpmobile/android_spec.rb +4 -4
- data/spec/rack/jpmobile/au_spec.rb +46 -46
- data/spec/rack/jpmobile/black_berry_spec.rb +4 -4
- data/spec/rack/jpmobile/docomo_spec.rb +52 -52
- data/spec/rack/jpmobile/emoticon_spec.rb +67 -67
- data/spec/rack/jpmobile/filter_spec.rb +36 -36
- data/spec/rack/jpmobile/iphone_spec.rb +5 -5
- data/spec/rack/jpmobile/mobile_by_ua_spec.rb +2 -2
- data/spec/rack/jpmobile/params_filter_spec.rb +30 -30
- data/spec/rack/jpmobile/softbank_spec.rb +39 -39
- data/spec/rack/jpmobile/willcom_spec.rb +12 -12
- data/spec/rack/jpmobile/windows_phone.rb +4 -4
- data/spec/unit/decorated_mail_spec.rb +3 -3
- data/spec/unit/email_spec.rb +6 -6
- data/spec/unit/emoticon_spec.rb +33 -33
- data/spec/unit/encoding_spec.rb +14 -14
- data/spec/unit/is_carrier_spec.rb +1 -1
- data/spec/unit/mail_spec.rb +63 -63
- data/spec/unit/mobile/iphone_spec.rb +6 -6
- data/spec/unit/receive_mail_spec.rb +75 -75
- data/spec/unit/util_spec.rb +34 -34
- data/spec/unit/valid_ip_spec.rb +2 -2
- data/spec/unit/variants_spec.rb +40 -10
- data/test/rails/overrides/Gemfile +3 -3
- data/test/rails/overrides/spec/controllers/docomo_guid_spec.rb +6 -6
- data/test/rails/overrides/spec/controllers/helpers_spec.rb +22 -22
- data/test/rails/overrides/spec/controllers/mobile_spec_controller_spec.rb +19 -19
- data/test/rails/overrides/spec/controllers/template_path_spec.rb +8 -8
- data/test/rails/overrides/spec/controllers/trans_sid_controller_spec.rb +2 -2
- data/test/rails/overrides/spec/features/admin/top_spec.rb +3 -3
- data/test/rails/overrides/spec/features/filter_spec.rb +32 -32
- data/test/rails/overrides/spec/helpers/helpers_spec.rb +3 -3
- data/test/rails/overrides/spec/mailers/decorated_mailer_spec.rb +3 -3
- data/test/rails/overrides/spec/mailers/mobile_mailer_spec.rb +179 -179
- data/test/rails/overrides/spec/mailers/normal_mailer_spec.rb +7 -7
- data/test/rails/overrides/spec/requests/docomo_spec.rb +6 -6
- data/test/rails/overrides/spec/requests/emobile_spec.rb +6 -6
- data/test/rails/overrides/spec/requests/pc_spec.rb +3 -3
- data/test/rails/overrides/spec/requests/softbank_emulator_spec.rb +6 -6
- data/test/rails/overrides/spec/requests/template_path_spec.rb +24 -24
- data/test/rails/overrides/spec/requests/trans_sid_spec.rb +16 -16
- metadata +39 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c3144787e76be4d863f9196009d1e41b898d3562
|
4
|
+
data.tar.gz: 7b8a4479c9a57eefdba5c167ba322d6e23a8d8d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e028586f34450a8da47dfd7292886b2dab4b1d4745a2d49cdd7bf9a9f81891bd82572e15018968d0a2540d7c23429e92e471eab2558b543cc62fbf034f2dd659
|
7
|
+
data.tar.gz: cfcb93bb0eb1b8ba9dc4e73bbd77943c2d2eab47249c18afd1a15bffb9908df9c4c7bf81bf692c71c349a53210ccbf832f015fa8c88478d0e3ee22e120a0093d
|
data/jpmobile.gemspec
CHANGED
data/lib/jpmobile/emoticon.rb
CHANGED
@@ -159,11 +159,11 @@ module Jpmobile
|
|
159
159
|
# 変換先がUnicodeで指定されている。つまり対応する絵文字がある。
|
160
160
|
if sjis = UNICODE_TO_SJIS[converted]
|
161
161
|
if to_sjis
|
162
|
-
|
162
|
+
Jpmobile::Util.sjis([sjis].pack('n'))
|
163
163
|
else
|
164
164
|
[converted].pack("U")
|
165
165
|
end
|
166
|
-
elsif
|
166
|
+
elsif SOFTBANK_UNICODE_TO_WEBCODE[converted-0x1000]
|
167
167
|
[converted-0x1000].pack('U')
|
168
168
|
elsif converted == GETA_CODE
|
169
169
|
# PCで〓を表示する場合
|
@@ -295,7 +295,7 @@ module Jpmobile
|
|
295
295
|
@@pc_emoticon_image_path.chop if @@pc_emoticon_image_path.match(/\/$/)
|
296
296
|
|
297
297
|
return true
|
298
|
-
rescue
|
298
|
+
rescue
|
299
299
|
end
|
300
300
|
else
|
301
301
|
return true
|
data/lib/jpmobile/filter.rb
CHANGED
@@ -157,7 +157,7 @@ module Jpmobile
|
|
157
157
|
end
|
158
158
|
elsif element.node_name == "input" and ["submit", "reset", "button"].include?(element["type"])
|
159
159
|
# テキスト以外でもボタンの value は変換
|
160
|
-
element["value"] = filter(:
|
160
|
+
element["value"] = filter(:hankaku, element["value"])
|
161
161
|
elsif element.children.any?
|
162
162
|
# 子要素があれば再帰的に変換
|
163
163
|
element = convert_text_content(element)
|
data/lib/jpmobile/mail.rb
CHANGED
@@ -4,7 +4,7 @@ require 'mail'
|
|
4
4
|
module Mail
|
5
5
|
# encoding patch
|
6
6
|
Ruby19.class_eval do
|
7
|
-
def self.b_value_decode(str)
|
7
|
+
def self.b_value_decode(str, encoding = nil)
|
8
8
|
match = str.match(/\=\?(.+)?\?[Bb]\?(.+)?\?\=/m)
|
9
9
|
if match
|
10
10
|
encoding = match[1]
|
@@ -17,7 +17,7 @@ module Mail
|
|
17
17
|
end
|
18
18
|
|
19
19
|
# change encoding
|
20
|
-
def self.b_value_encode(str, encoding)
|
20
|
+
def self.b_value_encode(str, encoding = nil)
|
21
21
|
str = Jpmobile::Util.encode(str, encoding.to_s)
|
22
22
|
[Ruby19.encode_base64(str), encoding]
|
23
23
|
end
|
@@ -542,7 +542,7 @@ module Mail
|
|
542
542
|
rescue NoMethodError => ex
|
543
543
|
if ex.message.match(/undefined method `gsub' for nil:NilClass/)
|
544
544
|
name = unquote(tree.display_name.text_value.strip.to_s)
|
545
|
-
|
545
|
+
strip_all_comments(name.to_s)
|
546
546
|
else
|
547
547
|
raise ex
|
548
548
|
end
|
@@ -8,8 +8,11 @@ module Jpmobile::Mobile
|
|
8
8
|
MAIL_CHARSET = "ISO-2022-JP"
|
9
9
|
|
10
10
|
def initialize(env, request)
|
11
|
-
@env
|
12
|
-
@request
|
11
|
+
@env = env
|
12
|
+
@request = request
|
13
|
+
@_variants = nil
|
14
|
+
@_mail_variants = nil
|
15
|
+
@decorated = nil
|
13
16
|
end
|
14
17
|
|
15
18
|
# 対応するuser-agentの正規表現
|
data/lib/jpmobile/resolver.rb
CHANGED
@@ -14,7 +14,23 @@ module Jpmobile
|
|
14
14
|
def query(path, details, formats)
|
15
15
|
query = build_query(path, details)
|
16
16
|
|
17
|
-
|
17
|
+
begin
|
18
|
+
template_paths = find_template_paths query
|
19
|
+
rescue NoMethodError
|
20
|
+
self.class_eval do
|
21
|
+
def find_template_paths(query)
|
22
|
+
# deals with case-insensitive file systems.
|
23
|
+
sanitizer = Hash.new { |h,dir| h[dir] = Dir["#{dir}/*"] }
|
24
|
+
|
25
|
+
Dir[query].reject { |filename|
|
26
|
+
File.directory?(filename) ||
|
27
|
+
!sanitizer[File.dirname(filename)].include?(filename)
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
retry
|
33
|
+
end
|
18
34
|
|
19
35
|
template_paths.map { |template|
|
20
36
|
handler, format, variant = extract_handler_and_format_and_variant(template, formats)
|
data/lib/jpmobile/version.rb
CHANGED
@@ -10,18 +10,12 @@ begin
|
|
10
10
|
namespace :spec do
|
11
11
|
desc 'run unit testing (core test)'
|
12
12
|
RSpec::Core::RakeTask.new(:unit) do |t|
|
13
|
-
|
14
|
-
# t.spec_opts = File.read(File.join(spec_dir, 'spec.opts')).split
|
15
|
-
# t.spec_files = FileList[File.join(spec_dir, 'unit', '**', '*_spec.rb')]
|
16
|
-
t.pattern = "#{spec_dir}/unit/*_spec.rb"
|
13
|
+
t.pattern = 'spec/unit/**/*_spec.rb'
|
17
14
|
end
|
18
15
|
|
19
16
|
desc 'run rack testing'
|
20
17
|
RSpec::Core::RakeTask.new(:rack) do |t|
|
21
|
-
|
22
|
-
# t.spec_opts = File.read(File.join(spec_dir, 'spec.opts')).split
|
23
|
-
# t.spec_files = FileList[File.join(spec_dir, 'rack', '**', '*_spec.rb')]
|
24
|
-
t.pattern = "#{spec_dir}/rack/**/*_spec.rb"
|
18
|
+
t.pattern = 'spec/rack/**/*_spec.rb'
|
25
19
|
end
|
26
20
|
end
|
27
21
|
rescue LoadError
|
@@ -46,7 +40,7 @@ namespace :test do
|
|
46
40
|
end
|
47
41
|
|
48
42
|
# setup jpmobile
|
49
|
-
plugin_path = File.join(rails_root, '
|
43
|
+
plugin_path = File.join(rails_root, 'vendor', 'jpmobile')
|
50
44
|
FileUtils.mkdir_p(plugin_path)
|
51
45
|
FileList["*"].exclude("test").exclude("spec").exclude('vendor').each do |file|
|
52
46
|
FileUtils.cp_r(file, plugin_path)
|
@@ -54,7 +48,7 @@ namespace :test do
|
|
54
48
|
|
55
49
|
# setup jpmobile-ipaddresses
|
56
50
|
begin
|
57
|
-
plugin_path = File.join(rails_root, '
|
51
|
+
plugin_path = File.join(rails_root, 'vendor', 'jpmobile-ipaddresses')
|
58
52
|
FileUtils.mkdir_p(plugin_path)
|
59
53
|
FileList["vendor/jpmobile-ipaddresses/*"].exclude("test").each do |file|
|
60
54
|
FileUtils.cp_r(file, plugin_path)
|
@@ -65,7 +59,7 @@ namespace :test do
|
|
65
59
|
|
66
60
|
# setup jpmobile-terminfo
|
67
61
|
begin
|
68
|
-
plugin_path = File.join(rails_root, '
|
62
|
+
plugin_path = File.join(rails_root, 'vendor', 'jpmobile-terminfo')
|
69
63
|
FileUtils.mkdir_p(plugin_path)
|
70
64
|
FileList["vendor/jpmobile-terminfo/*"].exclude("test").each do |file|
|
71
65
|
FileUtils.cp_r(file, plugin_path)
|
@@ -11,10 +11,10 @@ describe Jpmobile::Rack::MobileCarrier, "android" do
|
|
11
11
|
'HTTP_USER_AGENT' => 'Mozilla/5.0 (Linux; U; Android 1.6; ja-jp; SonyEriccsonSO-01B Build/R1EA018) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1')
|
12
12
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
13
13
|
|
14
|
-
env['rack.jpmobile'].class.
|
15
|
-
env['rack.jpmobile'].position.
|
16
|
-
env['rack.jpmobile'].smart_phone
|
17
|
-
env['rack.jpmobile'].supports_cookie
|
14
|
+
expect(env['rack.jpmobile'].class).to eq(Jpmobile::Mobile::Android)
|
15
|
+
expect(env['rack.jpmobile'].position).to be_nil
|
16
|
+
expect(env['rack.jpmobile'].smart_phone?).to be_truthy
|
17
|
+
expect(env['rack.jpmobile'].supports_cookie?).to be_truthy
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
@@ -12,13 +12,13 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
12
12
|
"HTTP_X_UP_SUBNO" => "00000000000000_mj.ezweb.ne.jp")
|
13
13
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
14
14
|
|
15
|
-
env['rack.jpmobile'].class.
|
16
|
-
env['rack.jpmobile'].subno.
|
17
|
-
env['rack.jpmobile'].ident.
|
18
|
-
env['rack.jpmobile'].ident_subscriber.
|
15
|
+
expect(env['rack.jpmobile'].class).to eq(Jpmobile::Mobile::Au)
|
16
|
+
expect(env['rack.jpmobile'].subno).to eq("00000000000000_mj.ezweb.ne.jp")
|
17
|
+
expect(env['rack.jpmobile'].ident).to eq("00000000000000_mj.ezweb.ne.jp")
|
18
|
+
expect(env['rack.jpmobile'].ident_subscriber).to eq("00000000000000_mj.ezweb.ne.jp")
|
19
19
|
|
20
|
-
env['rack.jpmobile'].position.
|
21
|
-
env['rack.jpmobile'].supports_cookie
|
20
|
+
expect(env['rack.jpmobile'].position).to be_nil
|
21
|
+
expect(env['rack.jpmobile'].supports_cookie?).to be_truthy
|
22
22
|
end
|
23
23
|
|
24
24
|
it "TK22 で判別できること" do
|
@@ -27,7 +27,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
27
27
|
'HTTP_USER_AGENT' => "UP.Browser/3.04-KCTA UP.Link/3.4.5.9")
|
28
28
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
29
29
|
|
30
|
-
env['rack.jpmobile'].class.
|
30
|
+
expect(env['rack.jpmobile'].class).to eq(Jpmobile::Mobile::Au)
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -39,8 +39,8 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
39
39
|
"QUERY_STRING" => "ver=1&datum=0&unit=1&lat=%2b43.07772&lon=%2b141.34114&alt=64&time=20061016192415&smaj=69&smin=18&vert=21&majaa=115&fm=1")
|
40
40
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
41
41
|
|
42
|
-
env['rack.jpmobile'].position.lat.
|
43
|
-
env['rack.jpmobile'].position.lon.
|
42
|
+
expect(env['rack.jpmobile'].position.lat).to eq(43.07772)
|
43
|
+
expect(env['rack.jpmobile'].position.lon).to eq(141.34114)
|
44
44
|
end
|
45
45
|
|
46
46
|
it "緯度経度を取得できること(dms)" do
|
@@ -50,8 +50,8 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
50
50
|
"QUERY_STRING" => "ver=1&datum=0&unit=0&lat=%2b43.05.08.95&lon=%2b141.20.25.99&alt=155&time=20060521010328&smaj=76&smin=62&vert=65&majaa=49&fm=1")
|
51
51
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
52
52
|
|
53
|
-
env['rack.jpmobile'].position.lat.
|
54
|
-
env['rack.jpmobile'].position.lon.
|
53
|
+
expect(env['rack.jpmobile'].position.lat).to be_within(1e-7).of(43.08581944)
|
54
|
+
expect(env['rack.jpmobile'].position.lon).to be_within(1e-7).of(141.3405528)
|
55
55
|
end
|
56
56
|
|
57
57
|
it "緯度経度を取得できること(dgree_tokyo)" do
|
@@ -61,8 +61,8 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
61
61
|
"QUERY_STRING" => "ver=1&datum=1&unit=1&lat=%2b43.07475&lon=%2b141.34259&alt=8&time=20061017182825&smaj=113&smin=76&vert=72&majaa=108&fm=1")
|
62
62
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
63
63
|
|
64
|
-
env['rack.jpmobile'].position.lat.
|
65
|
-
env['rack.jpmobile'].position.lon.
|
64
|
+
expect(env['rack.jpmobile'].position.lat).to be_within(1e-4).of(43.07719289)
|
65
|
+
expect(env['rack.jpmobile'].position.lon).to be_within(1e-4).of(141.3389013)
|
66
66
|
end
|
67
67
|
|
68
68
|
it "緯度経度を取得できること(dgree_tokyo)" do
|
@@ -72,8 +72,8 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
72
72
|
"QUERY_STRING" => "ver=1&datum=1&unit=1&lat=%2b43.07475&lon=%2b141.34259&alt=8&time=20061017182825&smaj=113&smin=76&vert=72&majaa=108&fm=1")
|
73
73
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
74
74
|
|
75
|
-
env['rack.jpmobile'].position.lat.
|
76
|
-
env['rack.jpmobile'].position.lon.
|
75
|
+
expect(env['rack.jpmobile'].position.lat).to be_within(1e-4).of(43.07719289)
|
76
|
+
expect(env['rack.jpmobile'].position.lon).to be_within(1e-4).of(141.3389013)
|
77
77
|
end
|
78
78
|
|
79
79
|
it "緯度経度を取得できること(dms_tokyo)" do
|
@@ -83,8 +83,8 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
83
83
|
"QUERY_STRING" => "datum=tokyo&unit=dms&lat=43.04.55.00&lon=141.20.50.75")
|
84
84
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
85
85
|
|
86
|
-
env['rack.jpmobile'].position.lat.
|
87
|
-
env['rack.jpmobile'].position.lon.
|
86
|
+
expect(env['rack.jpmobile'].position.lat).to be_within(1e-7).of(43.08194444)
|
87
|
+
expect(env['rack.jpmobile'].position.lon).to be_within(1e-7).of(141.3474306)
|
88
88
|
end
|
89
89
|
|
90
90
|
it "緯度経度を取得できること(antenna)" do
|
@@ -94,8 +94,8 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
94
94
|
"QUERY_STRING" => "datum=tokyo&unit=dms&lat=43.04.55.00&lon=141.20.50.75")
|
95
95
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
96
96
|
|
97
|
-
env['rack.jpmobile'].position.lat.
|
98
|
-
env['rack.jpmobile'].position.lon.
|
97
|
+
expect(env['rack.jpmobile'].position.lat).to be_within(1e-7).of(43.08194444)
|
98
|
+
expect(env['rack.jpmobile'].position.lon).to be_within(1e-7).of(141.3474306)
|
99
99
|
end
|
100
100
|
|
101
101
|
it "GeoKit がある場合に取得できること" do
|
@@ -105,11 +105,11 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
105
105
|
"QUERY_STRING" => "ver=1&datum=0&unit=1&lat=%2b43.07772&lon=%2b141.34114&alt=64&time=20061016192415&smaj=69&smin=18&vert=21&majaa=115&fm=1")
|
106
106
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
107
107
|
|
108
|
-
env['rack.jpmobile'].position.lat.
|
109
|
-
env['rack.jpmobile'].position.lon.
|
110
|
-
env['rack.jpmobile'].position.ll.
|
108
|
+
expect(env['rack.jpmobile'].position.lat).to eq(43.07772)
|
109
|
+
expect(env['rack.jpmobile'].position.lon).to eq(141.34114)
|
110
|
+
expect(env['rack.jpmobile'].position.ll).to eq("43.07772,141.34114")
|
111
111
|
if env['rack.jpmobile'].position.respond_to?(:distance_to) # GeoKit method
|
112
|
-
env['rack.jpmobile'].position.distance_to(env['rack.jpmobile'].position).
|
112
|
+
expect(env['rack.jpmobile'].position.distance_to(env['rack.jpmobile'].position)).to eq(0)
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
@@ -120,9 +120,9 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
120
120
|
'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0")
|
121
121
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
122
122
|
|
123
|
-
env['rack.jpmobile'].device_id.
|
124
|
-
env['rack.jpmobile'].supports_location
|
125
|
-
env['rack.jpmobile'].supports_gps
|
123
|
+
expect(env['rack.jpmobile'].device_id).to eq("CA32")
|
124
|
+
expect(env['rack.jpmobile'].supports_location?).to be_truthy
|
125
|
+
expect(env['rack.jpmobile'].supports_gps?).to be_truthy
|
126
126
|
end
|
127
127
|
|
128
128
|
it "A1402S を判定できること" do
|
@@ -131,9 +131,9 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
131
131
|
'HTTP_USER_AGENT' => "KDDI-SN26 UP.Browser/6.2.0.6.2 (GUI) MMP/2.0")
|
132
132
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
133
133
|
|
134
|
-
env['rack.jpmobile'].device_id.
|
135
|
-
env['rack.jpmobile'].supports_location
|
136
|
-
env['rack.jpmobile'].supports_gps
|
134
|
+
expect(env['rack.jpmobile'].device_id).to eq("SN26")
|
135
|
+
expect(env['rack.jpmobile'].supports_location?).to be_truthy
|
136
|
+
expect(env['rack.jpmobile'].supports_gps?).to be_falsey
|
137
137
|
end
|
138
138
|
|
139
139
|
it "TK22 を判定できること" do
|
@@ -142,9 +142,9 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
142
142
|
'HTTP_USER_AGENT' => "UP.Browser/3.04-KCTA UP.Link/3.4.5.9")
|
143
143
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
144
144
|
|
145
|
-
env['rack.jpmobile'].device_id.
|
146
|
-
env['rack.jpmobile'].supports_location
|
147
|
-
env['rack.jpmobile'].supports_gps
|
145
|
+
expect(env['rack.jpmobile'].device_id).to eq("KCTA")
|
146
|
+
expect(env['rack.jpmobile'].supports_location?).to be_falsey
|
147
|
+
expect(env['rack.jpmobile'].supports_gps?).to be_falsey
|
148
148
|
end
|
149
149
|
end
|
150
150
|
end
|
@@ -157,7 +157,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
157
157
|
"REMOTE_ADDR" => "210.230.128.225")
|
158
158
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
159
159
|
|
160
|
-
env['rack.jpmobile'].valid_ip
|
160
|
+
expect(env['rack.jpmobile'].valid_ip?).to be_truthy
|
161
161
|
end
|
162
162
|
|
163
163
|
it "正しくないIPアドレス空間からのアクセスを判断できること" do
|
@@ -167,7 +167,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
167
167
|
"REMOTE_ADDR" => "127.0.0.1")
|
168
168
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
169
169
|
|
170
|
-
env['rack.jpmobile'].valid_ip
|
170
|
+
expect(env['rack.jpmobile'].valid_ip?).to be_falsey
|
171
171
|
end
|
172
172
|
end
|
173
173
|
|
@@ -181,10 +181,10 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
181
181
|
"HTTP_X_UP_DEVCAP_ISCOLOR" => "1")
|
182
182
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
183
183
|
|
184
|
-
env['rack.jpmobile'].display.width.
|
185
|
-
env['rack.jpmobile'].display.height.
|
186
|
-
env['rack.jpmobile'].display.color
|
187
|
-
env['rack.jpmobile'].display.colors.
|
184
|
+
expect(env['rack.jpmobile'].display.width).to eq(240)
|
185
|
+
expect(env['rack.jpmobile'].display.height).to eq(346)
|
186
|
+
expect(env['rack.jpmobile'].display.color?).to be_truthy
|
187
|
+
expect(env['rack.jpmobile'].display.colors).to eq(65536)
|
188
188
|
end
|
189
189
|
|
190
190
|
it "端末の画面情報が渡ってない場合に正しく動作すること" do
|
@@ -193,14 +193,14 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
193
193
|
'HTTP_USER_AGENT' => "KDDI-CA33 UP.Browser/6.2.0.10.4 (GUI) MMP/2.0")
|
194
194
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
195
195
|
|
196
|
-
env['rack.jpmobile'].display.width.
|
197
|
-
env['rack.jpmobile'].display.height.
|
198
|
-
env['rack.jpmobile'].display.browser_width.
|
199
|
-
env['rack.jpmobile'].display.browser_height.
|
200
|
-
env['rack.jpmobile'].display.physical_width.
|
201
|
-
env['rack.jpmobile'].display.physical_height.
|
202
|
-
env['rack.jpmobile'].display.color
|
203
|
-
env['rack.jpmobile'].display.colors.
|
196
|
+
expect(env['rack.jpmobile'].display.width).to be_nil
|
197
|
+
expect(env['rack.jpmobile'].display.height).to be_nil
|
198
|
+
expect(env['rack.jpmobile'].display.browser_width).to be_nil
|
199
|
+
expect(env['rack.jpmobile'].display.browser_height).to be_nil
|
200
|
+
expect(env['rack.jpmobile'].display.physical_width).to be_nil
|
201
|
+
expect(env['rack.jpmobile'].display.physical_height).to be_nil
|
202
|
+
expect(env['rack.jpmobile'].display.color?).to be_nil
|
203
|
+
expect(env['rack.jpmobile'].display.colors).to be_nil
|
204
204
|
end
|
205
205
|
end
|
206
206
|
end
|
@@ -11,10 +11,10 @@ describe Jpmobile::Rack::MobileCarrier, "Windows Phone" do
|
|
11
11
|
'HTTP_USER_AGENT' => 'BlackBerry9000/4.6.0.224 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/220')
|
12
12
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
13
13
|
|
14
|
-
env['rack.jpmobile'].class.
|
15
|
-
env['rack.jpmobile'].position.
|
16
|
-
env['rack.jpmobile'].smart_phone
|
17
|
-
env['rack.jpmobile'].supports_cookie
|
14
|
+
expect(env['rack.jpmobile'].class).to eq(Jpmobile::Mobile::BlackBerry)
|
15
|
+
expect(env['rack.jpmobile'].position).to be_nil
|
16
|
+
expect(env['rack.jpmobile'].smart_phone?).to be_truthy
|
17
|
+
expect(env['rack.jpmobile'].supports_cookie?).to be_truthy
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
@@ -13,25 +13,25 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
it "Jpmobile::Mobile::Docomo のインスタンスが env['rack.mobile'] にあること" do
|
16
|
-
@env['rack.jpmobile'].class.
|
16
|
+
expect(@env['rack.jpmobile'].class).to eq(Jpmobile::Mobile::Docomo)
|
17
17
|
end
|
18
18
|
|
19
19
|
it "#position などが nil になること" do
|
20
|
-
@env['rack.jpmobile'].position.
|
21
|
-
@env['rack.jpmobile'].areacode.
|
22
|
-
@env['rack.jpmobile'].serial_number.
|
23
|
-
@env['rack.jpmobile'].icc.
|
24
|
-
@env['rack.jpmobile'].ident.
|
25
|
-
@env['rack.jpmobile'].ident_device.
|
26
|
-
@env['rack.jpmobile'].ident_subscriber.
|
20
|
+
expect(@env['rack.jpmobile'].position).to be_nil
|
21
|
+
expect(@env['rack.jpmobile'].areacode).to be_nil
|
22
|
+
expect(@env['rack.jpmobile'].serial_number).to be_nil
|
23
|
+
expect(@env['rack.jpmobile'].icc).to be_nil
|
24
|
+
expect(@env['rack.jpmobile'].ident).to be_nil
|
25
|
+
expect(@env['rack.jpmobile'].ident_device).to be_nil
|
26
|
+
expect(@env['rack.jpmobile'].ident_subscriber).to be_nil
|
27
27
|
end
|
28
28
|
|
29
29
|
it "#supports_cookie? などが false になること" do
|
30
|
-
@env['rack.jpmobile'].supports_cookie
|
30
|
+
expect(@env['rack.jpmobile'].supports_cookie?).to be_falsey
|
31
31
|
end
|
32
32
|
|
33
33
|
it "#imode_browser_versionが1.0になること" do
|
34
|
-
@env['rack.jpmobile'].imode_browser_version.
|
34
|
+
expect(@env['rack.jpmobile'].imode_browser_version).to eq('1.0')
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -44,25 +44,25 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it "Jpmobile::Mobile::Docomo のインスタンスが env['rack.mobile'] にあること" do
|
47
|
-
@env['rack.jpmobile'].class.
|
47
|
+
expect(@env['rack.jpmobile'].class).to eq(Jpmobile::Mobile::Docomo)
|
48
48
|
end
|
49
49
|
|
50
50
|
it "#position などが nil になること" do
|
51
|
-
@env['rack.jpmobile'].position.
|
52
|
-
@env['rack.jpmobile'].areacode.
|
53
|
-
@env['rack.jpmobile'].serial_number.
|
54
|
-
@env['rack.jpmobile'].icc.
|
55
|
-
@env['rack.jpmobile'].ident.
|
56
|
-
@env['rack.jpmobile'].ident_device.
|
57
|
-
@env['rack.jpmobile'].ident_subscriber.
|
51
|
+
expect(@env['rack.jpmobile'].position).to be_nil
|
52
|
+
expect(@env['rack.jpmobile'].areacode).to be_nil
|
53
|
+
expect(@env['rack.jpmobile'].serial_number).to be_nil
|
54
|
+
expect(@env['rack.jpmobile'].icc).to be_nil
|
55
|
+
expect(@env['rack.jpmobile'].ident).to be_nil
|
56
|
+
expect(@env['rack.jpmobile'].ident_device).to be_nil
|
57
|
+
expect(@env['rack.jpmobile'].ident_subscriber).to be_nil
|
58
58
|
end
|
59
59
|
|
60
60
|
it "#supports_cookie? などが false になること" do
|
61
|
-
@env['rack.jpmobile'].supports_cookie
|
61
|
+
expect(@env['rack.jpmobile'].supports_cookie?).to be_falsey
|
62
62
|
end
|
63
63
|
|
64
64
|
it "#imode_browser_versionが1.0になること" do
|
65
|
-
@env['rack.jpmobile'].imode_browser_version.
|
65
|
+
expect(@env['rack.jpmobile'].imode_browser_version).to eq('1.0')
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
@@ -75,11 +75,11 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
75
75
|
end
|
76
76
|
|
77
77
|
it "#supports_cookie? が true になること" do
|
78
|
-
@env['rack.jpmobile'].supports_cookie
|
78
|
+
expect(@env['rack.jpmobile'].supports_cookie?).to be_truthy
|
79
79
|
end
|
80
80
|
|
81
81
|
it "#imode_browser_versionが2.0になること" do
|
82
|
-
@env['rack.jpmobile'].imode_browser_version.
|
82
|
+
expect(@env['rack.jpmobile'].imode_browser_version).to eq('2.0')
|
83
83
|
end
|
84
84
|
end
|
85
85
|
|
@@ -92,11 +92,11 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
92
92
|
end
|
93
93
|
|
94
94
|
it "#supports_cookie? が true になること" do
|
95
|
-
@env['rack.jpmobile'].supports_cookie
|
95
|
+
expect(@env['rack.jpmobile'].supports_cookie?).to be_truthy
|
96
96
|
end
|
97
97
|
|
98
98
|
it "#imode_browser_versionが2.0になること" do
|
99
|
-
@env['rack.jpmobile'].imode_browser_version.
|
99
|
+
expect(@env['rack.jpmobile'].imode_browser_version).to eq('2.0')
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
@@ -109,11 +109,11 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
109
109
|
end
|
110
110
|
|
111
111
|
it "#supports_cookie? が true になること" do
|
112
|
-
@env['rack.jpmobile'].supports_cookie
|
112
|
+
expect(@env['rack.jpmobile'].supports_cookie?).to be_truthy
|
113
113
|
end
|
114
114
|
|
115
115
|
it "#imode_browser_versionが2.0になること" do
|
116
|
-
@env['rack.jpmobile'].imode_browser_version.
|
116
|
+
expect(@env['rack.jpmobile'].imode_browser_version).to eq('2.0LE')
|
117
117
|
end
|
118
118
|
end
|
119
119
|
|
@@ -125,7 +125,7 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
125
125
|
"QUERY_STRING" => "AREACODE=00100&ACTN=OK")
|
126
126
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
127
127
|
|
128
|
-
env['rack.jpmobile'].areacode.
|
128
|
+
expect(env['rack.jpmobile'].areacode).to eq("00100")
|
129
129
|
end
|
130
130
|
|
131
131
|
it "位置情報も取得できること" do
|
@@ -135,10 +135,10 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
135
135
|
"QUERY_STRING" => "LAT=%2B35.00.35.600&LON=%2B135.41.35.600&GEO=wgs84&POSINFO=2&AREACODE=00100&ACTN=OK")
|
136
136
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
137
137
|
|
138
|
-
env['rack.jpmobile'].areacode.
|
138
|
+
expect(env['rack.jpmobile'].areacode).to eq("00100")
|
139
139
|
|
140
|
-
env['rack.jpmobile'].position.lat.
|
141
|
-
env['rack.jpmobile'].position.lon.
|
140
|
+
expect(env['rack.jpmobile'].position.lat).to be_within(1e-7).of(35.00988889)
|
141
|
+
expect(env['rack.jpmobile'].position.lon).to be_within(1e-7).of(135.6932222)
|
142
142
|
end
|
143
143
|
end
|
144
144
|
|
@@ -150,8 +150,8 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
150
150
|
"QUERY_STRING" => "lat=%2B35.00.35.600&lon=%2B135.41.35.600&geo=wgs84&x-acc=3")
|
151
151
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
152
152
|
|
153
|
-
env['rack.jpmobile'].position.lat.
|
154
|
-
env['rack.jpmobile'].position.lon.
|
153
|
+
expect(env['rack.jpmobile'].position.lat).to be_within(1e-7).of(35.00988889)
|
154
|
+
expect(env['rack.jpmobile'].position.lon).to be_within(1e-7).of(135.6932222)
|
155
155
|
end
|
156
156
|
|
157
157
|
# DoCoMo, 903i, GPS
|
@@ -164,8 +164,8 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
164
164
|
"QUERY_STRING" => "lat=%2B35.00.35.600&lon=%2B135.41.35.600&geo=WGS84&alt=%2B64.000&x-acc=1")
|
165
165
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
166
166
|
|
167
|
-
env['rack.jpmobile'].position.lat.
|
168
|
-
env['rack.jpmobile'].position.lon.
|
167
|
+
expect(env['rack.jpmobile'].position.lat).to be_within(1e-7).of(35.00988889)
|
168
|
+
expect(env['rack.jpmobile'].position.lon).to be_within(1e-7).of(135.6932222)
|
169
169
|
end
|
170
170
|
end
|
171
171
|
|
@@ -176,11 +176,11 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
176
176
|
'HTTP_USER_AGENT' => "DoCoMo/1.0/SO505iS/c20/TC/W30H16/serXXXXX000000")
|
177
177
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
178
178
|
|
179
|
-
env['rack.jpmobile'].serial_number.
|
180
|
-
env['rack.jpmobile'].ident.
|
181
|
-
env['rack.jpmobile'].icc.
|
182
|
-
env['rack.jpmobile'].ident_device.
|
183
|
-
env['rack.jpmobile'].ident_subscriber.
|
179
|
+
expect(env['rack.jpmobile'].serial_number).to eq("XXXXX000000")
|
180
|
+
expect(env['rack.jpmobile'].ident).to eq("XXXXX000000")
|
181
|
+
expect(env['rack.jpmobile'].icc).to be_nil
|
182
|
+
expect(env['rack.jpmobile'].ident_device).to eq("XXXXX000000")
|
183
|
+
expect(env['rack.jpmobile'].ident_subscriber).to be_nil
|
184
184
|
end
|
185
185
|
|
186
186
|
it "FOMA で取得できること" do
|
@@ -189,11 +189,11 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
189
189
|
'HTTP_USER_AGENT' => "DoCoMo/2.0 D902i(c100;TB;W23H16;ser999999999999999;icc0000000000000000000f)")
|
190
190
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
191
191
|
|
192
|
-
env['rack.jpmobile'].serial_number.
|
193
|
-
env['rack.jpmobile'].icc.
|
194
|
-
env['rack.jpmobile'].ident.
|
195
|
-
env['rack.jpmobile'].ident_device.
|
196
|
-
env['rack.jpmobile'].ident_subscriber.
|
192
|
+
expect(env['rack.jpmobile'].serial_number).to eq("999999999999999")
|
193
|
+
expect(env['rack.jpmobile'].icc).to eq("0000000000000000000f")
|
194
|
+
expect(env['rack.jpmobile'].ident).to eq("0000000000000000000f")
|
195
|
+
expect(env['rack.jpmobile'].ident_device).to eq("999999999999999")
|
196
|
+
expect(env['rack.jpmobile'].ident_subscriber).to eq("0000000000000000000f")
|
197
197
|
end
|
198
198
|
end
|
199
199
|
|
@@ -205,7 +205,7 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
205
205
|
"REMOTE_ADDR" => "210.153.84.1")
|
206
206
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
207
207
|
|
208
|
-
env['rack.jpmobile'].valid_ip
|
208
|
+
expect(env['rack.jpmobile'].valid_ip?).to be_truthy
|
209
209
|
end
|
210
210
|
|
211
211
|
it "正しくないIPアドレス空間からのアクセスを判断できること" do
|
@@ -215,7 +215,7 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
215
215
|
"REMOTE_ADDR" => "127.0.0.1")
|
216
216
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
217
217
|
|
218
|
-
env['rack.jpmobile'].valid_ip
|
218
|
+
expect(env['rack.jpmobile'].valid_ip?).to be_falsey
|
219
219
|
end
|
220
220
|
end
|
221
221
|
|
@@ -226,12 +226,12 @@ describe Jpmobile::Rack::MobileCarrier, "docomo" do
|
|
226
226
|
'HTTP_USER_AGENT' => "DoCoMo/1.0/SO506iC/c20/TB/W20H10")
|
227
227
|
env = Jpmobile::Rack::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
228
228
|
|
229
|
-
env['rack.jpmobile'].display.browser_width.
|
230
|
-
env['rack.jpmobile'].display.browser_height.
|
231
|
-
env['rack.jpmobile'].display.width.
|
232
|
-
env['rack.jpmobile'].display.height.
|
233
|
-
env['rack.jpmobile'].display.color
|
234
|
-
env['rack.jpmobile'].display.colors.
|
229
|
+
expect(env['rack.jpmobile'].display.browser_width).to eq(240)
|
230
|
+
expect(env['rack.jpmobile'].display.browser_height).to eq(256)
|
231
|
+
expect(env['rack.jpmobile'].display.width).to eq(240)
|
232
|
+
expect(env['rack.jpmobile'].display.height).to eq(256)
|
233
|
+
expect(env['rack.jpmobile'].display.color?).to be_truthy
|
234
|
+
expect(env['rack.jpmobile'].display.colors).to eq(262144)
|
235
235
|
end
|
236
236
|
end
|
237
237
|
end
|