jpmobile 4.1.1 → 4.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|