jpmobile 4.2.5 → 5.0.0.beta1
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/.gitignore +1 -2
- data/jpmobile.gemspec +1 -2
- data/lib/jpmobile.rb +17 -7
- data/lib/jpmobile/configuration.rb +1 -1
- data/lib/jpmobile/encoding.rb +13 -19
- data/lib/jpmobile/{hook_action_controller.rb → fallback_view_selector.rb} +4 -6
- data/lib/jpmobile/filter.rb +13 -10
- data/lib/jpmobile/mobile/abstract_mobile.rb +2 -2
- data/lib/jpmobile/mobile/google_emoticon.rb +2 -2
- data/lib/jpmobile/mobile/smart_phone.rb +2 -2
- data/lib/jpmobile/mobile/unicode_emoticon.rb +2 -2
- data/lib/jpmobile/rack/filter.rb +36 -38
- data/lib/jpmobile/rack/mobile_carrier.rb +8 -10
- data/lib/jpmobile/rack/params_filter.rb +32 -34
- data/lib/jpmobile/rails.rb +17 -4
- data/lib/jpmobile/resolver.rb +2 -3
- data/lib/jpmobile/trans_sid.rb +58 -78
- data/lib/jpmobile/util.rb +0 -17
- data/lib/jpmobile/version.rb +1 -1
- data/lib/tasks/jpmobile_tasks.rake +31 -37
- data/spec/rack/jpmobile/android_spec.rb +2 -2
- data/spec/rack/jpmobile/au_spec.rb +17 -17
- data/spec/rack/jpmobile/black_berry_spec.rb +2 -2
- data/spec/rack/jpmobile/docomo_spec.rb +15 -15
- data/spec/rack/jpmobile/emoticon_spec.rb +57 -57
- data/spec/rack/jpmobile/filter_spec.rb +25 -25
- data/spec/rack/jpmobile/iphone_spec.rb +3 -3
- data/spec/rack/jpmobile/mobile_by_ua_spec.rb +3 -3
- data/spec/rack/jpmobile/params_filter_spec.rb +10 -10
- data/spec/rack/jpmobile/softbank_spec.rb +9 -9
- data/spec/rack/jpmobile/willcom_spec.rb +6 -6
- data/spec/rack/jpmobile/windows_phone.rb +2 -2
- data/spec/rack_helper.rb +0 -1
- data/spec/unit/mail_spec.rb +1 -10
- data/spec/unit/util_spec.rb +42 -56
- data/test/rails/overrides/Gemfile.jpmobile +5 -3
- data/test/rails/overrides/app/controllers/filter_controller.rb +0 -1
- data/test/rails/overrides/app/controllers/filter_controller_base.rb +14 -9
- data/test/rails/overrides/app/controllers/hankaku_input_filter_controller.rb +2 -2
- data/test/rails/overrides/app/controllers/trans_sid_metal_controller.rb +0 -1
- data/test/rails/overrides/app/views/filter/text_template.html.erb +1 -0
- data/test/rails/overrides/spec/controllers/mobile_spec_controller_spec.rb +3 -3
- data/test/rails/overrides/spec/controllers/trans_sid_controller_spec.rb +2 -2
- data/test/rails/overrides/spec/features/filter_spec.rb +10 -9
- data/test/rails/overrides/spec/helpers/helpers_spec.rb +5 -3
- 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 +4 -4
- data/test/rails/overrides/spec/requests/template_path_spec.rb +1 -1
- data/test/rails/overrides/spec/requests/trans_sid_spec.rb +7 -9
- metadata +12 -28
- data/lib/jpmobile/hook_action_dispatch.rb +0 -2
- data/lib/jpmobile/rack.rb +0 -14
data/lib/jpmobile/rails.rb
CHANGED
@@ -3,18 +3,31 @@ ActiveSupport.on_load(:action_controller) do
|
|
3
3
|
require 'jpmobile/docomo_guid'
|
4
4
|
require 'jpmobile/filter'
|
5
5
|
require 'jpmobile/helpers'
|
6
|
-
require 'jpmobile/hook_action_controller'
|
7
6
|
require 'jpmobile/hook_action_view'
|
8
7
|
require 'jpmobile/trans_sid'
|
9
8
|
require 'jpmobile/hook_test_request'
|
9
|
+
ActionDispatch::Request.send :prepend, Jpmobile::Encoding
|
10
|
+
ActionDispatch::Request.send :include, Jpmobile::RequestWithMobile
|
11
|
+
ActionController::Base.send :prepend, Jpmobile::FallbackViewSelector
|
12
|
+
ActionController::Base.send :prepend, Jpmobile::TransSidRedirecting
|
10
13
|
end
|
11
|
-
|
12
|
-
|
14
|
+
|
15
|
+
ActiveSupport.on_load(:after_initialize) do
|
16
|
+
case Rails.application.config.session_store.to_s
|
17
|
+
when "ActionDispatch::Session::MemCacheStore"
|
18
|
+
require 'jpmobile/session/mem_cache_store'
|
19
|
+
ActionDispatch::Session::MemCacheStore.send :prepend, Jpmobile::ParamsOverCookie
|
20
|
+
when "ActiveRecord::SessionStore"
|
21
|
+
require 'jpmobile/session/active_record_store'
|
22
|
+
ActionDispatch::Session::AbstractStore.send :prepend, Jpmobile::ParamsOverCookie
|
23
|
+
else
|
24
|
+
Rails.application.config.jpmobile.mount_session_store
|
25
|
+
end
|
13
26
|
end
|
14
27
|
|
15
28
|
ActiveSupport.on_load(:before_configuration) do
|
16
29
|
# MobileCarrierのみデフォルトで有効
|
17
|
-
config.middleware.
|
30
|
+
config.middleware.insert_after ActionDispatch::Flash, ::Jpmobile::MobileCarrier
|
18
31
|
|
19
32
|
module Rails
|
20
33
|
class Application
|
data/lib/jpmobile/resolver.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Jpmobile
|
2
2
|
class Resolver < ActionView::FileSystemResolver
|
3
3
|
EXTENSIONS = [:locale, :formats, :handlers, :mobile]
|
4
|
-
DEFAULT_PATTERN = ":prefix/:action{_:mobile,}{.:locale,}{.:formats,}{
|
4
|
+
DEFAULT_PATTERN = ":prefix/:action{_:mobile,}{.:locale,}{.:formats,}{.:handlers,}"
|
5
5
|
|
6
6
|
def initialize(path, pattern=nil)
|
7
7
|
raise ArgumentError, "path already is a Resolver class" if path.is_a?(Resolver)
|
@@ -11,12 +11,11 @@ module Jpmobile
|
|
11
11
|
|
12
12
|
private
|
13
13
|
|
14
|
-
def query(path, details, formats
|
14
|
+
def query(path, details, formats)
|
15
15
|
query = build_query(path, details)
|
16
16
|
|
17
17
|
begin
|
18
18
|
template_paths = find_template_paths query
|
19
|
-
template_paths = reject_files_external_to_app(template_paths) unless outside_app_allowed
|
20
19
|
rescue NoMethodError
|
21
20
|
self.class_eval do
|
22
21
|
def find_template_paths(query)
|
data/lib/jpmobile/trans_sid.rb
CHANGED
@@ -3,49 +3,69 @@
|
|
3
3
|
require 'active_support/version'
|
4
4
|
|
5
5
|
module Jpmobile
|
6
|
-
module
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
sid
|
18
|
-
end
|
19
|
-
alias_method_chain :extract_session_id, :jpmobile
|
20
|
-
end
|
6
|
+
module SessionID
|
7
|
+
require 'action_dispatch/middleware/session/abstract_store'
|
8
|
+
module_function
|
9
|
+
|
10
|
+
extend ActionDispatch::Session::Compatibility
|
11
|
+
end
|
12
|
+
|
13
|
+
module ParamsOverCookie
|
14
|
+
def extract_session_id(req)
|
15
|
+
if req.params[@key] and !@cookie_only
|
16
|
+
sid = req.params[@key]
|
21
17
|
end
|
18
|
+
sid ||= req.cookies[@key]
|
19
|
+
sid
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
module TransSid
|
24
|
+
def self.included(controller)
|
25
|
+
controller.after_action(:append_session_id_parameter)
|
26
|
+
end
|
27
|
+
|
28
|
+
protected
|
29
|
+
# URLにsession_idを追加する。
|
30
|
+
def default_url_options
|
31
|
+
result = super || {}.with_indifferent_access
|
32
|
+
return result unless request # for test process
|
33
|
+
return result unless apply_trans_sid?
|
34
|
+
return result.merge({session_key.to_sym => jpmobile_session_id})
|
22
35
|
end
|
23
36
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
ActionDispatch::Session::
|
29
|
-
when "ActiveRecord::SessionStore"
|
30
|
-
require 'jpmobile/session/active_record_store'
|
31
|
-
ActionDispatch::Session::AbstractStore.send :include, ParamsOverCookie
|
32
|
-
else
|
33
|
-
Rails.application.config.jpmobile.mount_session_store
|
37
|
+
private
|
38
|
+
# session_keyを返す。
|
39
|
+
def session_key
|
40
|
+
unless key = Rails.application.config.session_options.merge(request.session_options || {})[:key]
|
41
|
+
key = ActionDispatch::Session::AbstractStore::DEFAULT_OPTIONS[:key]
|
34
42
|
end
|
43
|
+
key
|
35
44
|
end
|
36
|
-
end
|
37
45
|
|
38
|
-
|
39
|
-
|
40
|
-
|
46
|
+
# session_idを返す
|
47
|
+
# rack 1.4 (rails3) request.session_options[:id]
|
48
|
+
# rack 1.5 (rails4) request.session.id
|
49
|
+
def jpmobile_session_id
|
50
|
+
request.session_options[:id] || request.session.id
|
51
|
+
end
|
41
52
|
|
42
|
-
|
53
|
+
# session_idを埋め込むためのhidden fieldを出力する。
|
54
|
+
def sid_hidden_field_tag
|
55
|
+
"<input type=\"hidden\" name=\"#{CGI::escapeHTML session_key}\" value=\"#{CGI::escapeHTML jpmobile_session_id}\" />"
|
56
|
+
end
|
57
|
+
|
58
|
+
# formにsession_idを追加する。
|
59
|
+
def append_session_id_parameter
|
60
|
+
return unless request # for test process
|
61
|
+
return unless apply_trans_sid?
|
62
|
+
return unless jpmobile_session_id
|
63
|
+
response.body = response.body.gsub(%r{(</form>)}i, sid_hidden_field_tag+'\1')
|
64
|
+
end
|
43
65
|
end
|
44
|
-
end
|
45
66
|
|
46
|
-
module
|
47
|
-
|
48
|
-
def redirect_to_with_jpmobile(options = {}, response_status = {})
|
67
|
+
module TransSidRedirecting
|
68
|
+
def redirect_to(options = {}, response_status = {})
|
49
69
|
if apply_trans_sid? and jpmobile_session_id
|
50
70
|
case options
|
51
71
|
when %r{^\w[\w+.-]*:.*}
|
@@ -71,18 +91,19 @@ module ActionController
|
|
71
91
|
end
|
72
92
|
end
|
73
93
|
|
74
|
-
|
94
|
+
super(options, response_status)
|
75
95
|
end
|
76
|
-
|
77
|
-
alias_method_chain :redirect_to, :jpmobile
|
78
96
|
end
|
97
|
+
end
|
79
98
|
|
99
|
+
module ActionController
|
80
100
|
class Metal #:nodoc:
|
81
101
|
class_attribute :trans_sid_mode
|
82
102
|
|
83
103
|
class << self
|
84
104
|
def trans_sid(mode = :mobile)
|
85
105
|
include Jpmobile::TransSid
|
106
|
+
|
86
107
|
self.trans_sid_mode = mode
|
87
108
|
end
|
88
109
|
end
|
@@ -108,44 +129,3 @@ module ActionController
|
|
108
129
|
end
|
109
130
|
end
|
110
131
|
end
|
111
|
-
|
112
|
-
module Jpmobile::TransSid #:nodoc:
|
113
|
-
def self.included(controller)
|
114
|
-
controller.after_action(:append_session_id_parameter)
|
115
|
-
end
|
116
|
-
|
117
|
-
protected
|
118
|
-
# URLにsession_idを追加する。
|
119
|
-
def default_url_options
|
120
|
-
result = super || {}.with_indifferent_access
|
121
|
-
return result unless request # for test process
|
122
|
-
return result unless apply_trans_sid?
|
123
|
-
return result.merge({session_key.to_sym => jpmobile_session_id})
|
124
|
-
end
|
125
|
-
|
126
|
-
private
|
127
|
-
# session_keyを返す。
|
128
|
-
def session_key
|
129
|
-
unless key = Rails.application.config.session_options.merge(request.session_options || {})[:key]
|
130
|
-
key = ActionDispatch::Session::AbstractStore::DEFAULT_OPTIONS[:key]
|
131
|
-
end
|
132
|
-
key
|
133
|
-
end
|
134
|
-
# session_idを返す
|
135
|
-
# rack 1.4 (rails3) request.session_options[:id]
|
136
|
-
# rack 1.5 (rails4) request.session.id
|
137
|
-
def jpmobile_session_id
|
138
|
-
request.session_options[:id] || request.session.id
|
139
|
-
end
|
140
|
-
# session_idを埋め込むためのhidden fieldを出力する。
|
141
|
-
def sid_hidden_field_tag
|
142
|
-
"<input type=\"hidden\" name=\"#{CGI::escapeHTML session_key}\" value=\"#{CGI::escapeHTML jpmobile_session_id}\" />"
|
143
|
-
end
|
144
|
-
# formにsession_idを追加する。
|
145
|
-
def append_session_id_parameter
|
146
|
-
return unless request # for test process
|
147
|
-
return unless apply_trans_sid?
|
148
|
-
return unless jpmobile_session_id
|
149
|
-
response.body = response.body.gsub(%r{(</form>)}i, sid_hidden_field_tag+'\1')
|
150
|
-
end
|
151
|
-
end
|
data/lib/jpmobile/util.rb
CHANGED
@@ -24,23 +24,6 @@ module Jpmobile
|
|
24
24
|
FULLWIDTH_HYPHEN_MINUS = [0xFF0D].pack("U")
|
25
25
|
|
26
26
|
module_function
|
27
|
-
def deep_apply(obj, &proc)
|
28
|
-
case obj
|
29
|
-
when Hash
|
30
|
-
obj.each_pair do |key, value|
|
31
|
-
obj[key] = deep_apply(value, &proc)
|
32
|
-
end
|
33
|
-
when Array
|
34
|
-
obj.collect!{|value| deep_apply(value, &proc)}
|
35
|
-
when String
|
36
|
-
obj = obj.to_param if obj.respond_to?(:to_param)
|
37
|
-
proc.call(obj)
|
38
|
-
else
|
39
|
-
# NilClass, TrueClass, FalseClass, Tempfile, StringIO, etc...
|
40
|
-
return obj
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
27
|
def deep_convert(obj, &proc)
|
45
28
|
case obj
|
46
29
|
when Hash
|
data/lib/jpmobile/version.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
1
2
|
# desc "Explaining what the task does"
|
2
3
|
# task :jpmobile do
|
3
4
|
# # Task goes here
|
@@ -18,28 +19,30 @@ begin
|
|
18
19
|
end
|
19
20
|
end
|
20
21
|
rescue LoadError
|
21
|
-
warn
|
22
|
+
warn "RSpec is not installed. Some tasks were skipped. please install rspec"
|
22
23
|
end
|
23
24
|
|
24
25
|
namespace :test do
|
25
|
-
desc
|
26
|
-
task :rails, [:skip] do |
|
27
|
-
rails_root
|
26
|
+
desc "Generate rails app and run jpmobile tests in the app"
|
27
|
+
task :rails, [:skip] do |t, args|
|
28
|
+
rails_root = "test/rails/rails_root"
|
29
|
+
relative_root = "../../../"
|
28
30
|
|
29
|
-
puts
|
30
|
-
skip = args.skip ==
|
31
|
+
puts "Running tests in Rails"
|
32
|
+
skip = args.skip == "true"
|
31
33
|
|
32
34
|
unless skip
|
33
35
|
# generate rails app
|
36
|
+
FileUtils.rm_rf("Gemfile.lock")
|
34
37
|
FileUtils.rm_rf(rails_root)
|
35
38
|
FileUtils.mkdir_p(rails_root)
|
36
|
-
`rails new #{rails_root} --skip-bundle`
|
39
|
+
`rails _5.0.0.beta1_ new #{rails_root} --skip-bundle`
|
37
40
|
end
|
38
41
|
|
39
42
|
# setup jpmobile
|
40
43
|
plugin_path = File.join(rails_root, 'vendor', 'jpmobile')
|
41
44
|
FileUtils.mkdir_p(plugin_path)
|
42
|
-
FileList[
|
45
|
+
FileList["*"].exclude("test").exclude("spec").exclude('vendor').each do |file|
|
43
46
|
FileUtils.cp_r(file, plugin_path)
|
44
47
|
end
|
45
48
|
|
@@ -47,37 +50,37 @@ namespace :test do
|
|
47
50
|
begin
|
48
51
|
plugin_path = File.join(rails_root, 'vendor', 'jpmobile-ipaddresses')
|
49
52
|
FileUtils.mkdir_p(plugin_path)
|
50
|
-
FileList[
|
53
|
+
FileList["vendor/jpmobile-ipaddresses/*"].exclude("test").each do |file|
|
51
54
|
FileUtils.cp_r(file, plugin_path)
|
52
55
|
end
|
53
56
|
rescue LoadError
|
54
|
-
puts
|
57
|
+
puts "IP Address test requires jpmobile-ipaddresses module"
|
55
58
|
end
|
56
59
|
|
57
60
|
# setup jpmobile-terminfo
|
58
61
|
begin
|
59
62
|
plugin_path = File.join(rails_root, 'vendor', 'jpmobile-terminfo')
|
60
63
|
FileUtils.mkdir_p(plugin_path)
|
61
|
-
FileList[
|
64
|
+
FileList["vendor/jpmobile-terminfo/*"].exclude("test").each do |file|
|
62
65
|
FileUtils.cp_r(file, plugin_path)
|
63
66
|
end
|
64
67
|
rescue LoadError
|
65
|
-
puts
|
68
|
+
puts "Terminal display information test requires jpmobile-terminfo module"
|
66
69
|
end
|
67
70
|
|
68
71
|
# setup activerecord-session_store
|
69
72
|
begin
|
70
73
|
plugin_path = File.join(rails_root, 'vendor', 'activerecord-session_store')
|
71
74
|
FileUtils.mkdir_p(plugin_path)
|
72
|
-
FileList[
|
75
|
+
FileList["../activerecord-session_store/*"].exclude("test").each do |file|
|
73
76
|
FileUtils.cp_r(file, plugin_path)
|
74
77
|
end
|
75
78
|
rescue LoadError
|
76
|
-
puts
|
79
|
+
puts "Terminal display information test requires jpmobile-terminfo module"
|
77
80
|
end
|
78
81
|
|
79
82
|
# setup tests
|
80
|
-
FileList[
|
83
|
+
FileList["test/rails/overrides/*"].each do |file|
|
81
84
|
FileUtils.cp_r(file, rails_root)
|
82
85
|
end
|
83
86
|
|
@@ -85,10 +88,10 @@ namespace :test do
|
|
85
88
|
# for cookie_only option
|
86
89
|
config_path = File.join(rails_root, 'config', 'initializers', 'session_store.rb')
|
87
90
|
File.open(config_path, 'w') do |file|
|
88
|
-
file.write <<-
|
89
|
-
|
90
|
-
|
91
|
-
|
91
|
+
file.write <<-END
|
92
|
+
Rails.application.config.session_store :active_record_store, :key => '_session_id'
|
93
|
+
Rails.application.config.session_options = {:cookie_only => false}
|
94
|
+
END
|
92
95
|
end
|
93
96
|
end
|
94
97
|
|
@@ -96,29 +99,20 @@ namespace :test do
|
|
96
99
|
# add gems for jpmobile spec
|
97
100
|
config_path = File.join(rails_root, 'Gemfile')
|
98
101
|
File.open(config_path, 'a+') do |file|
|
99
|
-
file.write <<-
|
100
|
-
|
101
|
-
|
102
|
+
file.write <<-END
|
103
|
+
instance_eval File.read(File.expand_path(__FILE__) + '.jpmobile')
|
104
|
+
END
|
102
105
|
end
|
103
106
|
end
|
104
107
|
|
105
108
|
# run tests in rails
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
ENV.update('RBENV_DIR' => nil)
|
112
|
-
|
113
|
-
system 'bundle install'
|
114
|
-
system 'bin/rake db:migrate RAILS_ENV=test' unless skip
|
115
|
-
system 'bin/rake spec'
|
116
|
-
|
117
|
-
ENV.replace(original_env)
|
118
|
-
end
|
119
|
-
end
|
109
|
+
cd rails_root
|
110
|
+
ruby "-S bundle install"
|
111
|
+
ruby "-S rake db:migrate RAILS_ENV=test" unless skip
|
112
|
+
ruby "-S rake spec"
|
113
|
+
# ruby "-S rspec -b --color spec/features/filter_spec.rb"
|
120
114
|
end
|
121
|
-
desc
|
115
|
+
desc "Run sinatra on jpmobile tests"
|
122
116
|
Rake::TestTask.new(:sinatra) do |t|
|
123
117
|
t.libs << 'lib'
|
124
118
|
t.libs << 'test/sinatra'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
require File.join(File.expand_path(File.dirname(__FILE__)), '../../rack_helper.rb')
|
3
3
|
|
4
|
-
describe Jpmobile::
|
4
|
+
describe Jpmobile::MobileCarrier, "android" do
|
5
5
|
include Rack::Test::Methods
|
6
6
|
|
7
7
|
context "端末種別で" do
|
@@ -9,7 +9,7 @@ describe Jpmobile::Rack::MobileCarrier, "android" do
|
|
9
9
|
res = Rack::MockRequest.env_for(
|
10
10
|
'http://jpmobile-rails.org/',
|
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
|
-
env = Jpmobile::
|
12
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
13
13
|
|
14
14
|
expect(env['rack.jpmobile'].class).to eq(Jpmobile::Mobile::Android)
|
15
15
|
expect(env['rack.jpmobile'].position).to be_nil
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
require File.join(File.expand_path(File.dirname(__FILE__)), '../../rack_helper.rb')
|
3
3
|
|
4
|
-
describe Jpmobile::
|
4
|
+
describe Jpmobile::MobileCarrier, "au" do
|
5
5
|
include Rack::Test::Methods
|
6
6
|
|
7
7
|
context "端末種別で" do
|
@@ -10,7 +10,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
10
10
|
'http://jpmobile-rails.org/',
|
11
11
|
'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
|
12
12
|
"HTTP_X_UP_SUBNO" => "00000000000000_mj.ezweb.ne.jp")
|
13
|
-
env = Jpmobile::
|
13
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
14
14
|
|
15
15
|
expect(env['rack.jpmobile'].class).to eq(Jpmobile::Mobile::Au)
|
16
16
|
expect(env['rack.jpmobile'].subno).to eq("00000000000000_mj.ezweb.ne.jp")
|
@@ -25,7 +25,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
25
25
|
res = Rack::MockRequest.env_for(
|
26
26
|
'http://jpmobile-rails.org/',
|
27
27
|
'HTTP_USER_AGENT' => "UP.Browser/3.04-KCTA UP.Link/3.4.5.9")
|
28
|
-
env = Jpmobile::
|
28
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
29
29
|
|
30
30
|
expect(env['rack.jpmobile'].class).to eq(Jpmobile::Mobile::Au)
|
31
31
|
end
|
@@ -37,7 +37,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
37
37
|
'http://jpmobile-rails.org/',
|
38
38
|
'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
|
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
|
-
env = Jpmobile::
|
40
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
41
41
|
|
42
42
|
expect(env['rack.jpmobile'].position.lat).to eq(43.07772)
|
43
43
|
expect(env['rack.jpmobile'].position.lon).to eq(141.34114)
|
@@ -48,7 +48,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
48
48
|
'http://jpmobile-rails.org/',
|
49
49
|
'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
|
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
|
-
env = Jpmobile::
|
51
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
52
52
|
|
53
53
|
expect(env['rack.jpmobile'].position.lat).to be_within(1e-7).of(43.08581944)
|
54
54
|
expect(env['rack.jpmobile'].position.lon).to be_within(1e-7).of(141.3405528)
|
@@ -59,7 +59,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
59
59
|
'http://jpmobile-rails.org/',
|
60
60
|
'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
|
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
|
-
env = Jpmobile::
|
62
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
63
63
|
|
64
64
|
expect(env['rack.jpmobile'].position.lat).to be_within(1e-4).of(43.07719289)
|
65
65
|
expect(env['rack.jpmobile'].position.lon).to be_within(1e-4).of(141.3389013)
|
@@ -70,7 +70,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
70
70
|
'http://jpmobile-rails.org/',
|
71
71
|
'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
|
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
|
-
env = Jpmobile::
|
73
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
74
74
|
|
75
75
|
expect(env['rack.jpmobile'].position.lat).to be_within(1e-4).of(43.07719289)
|
76
76
|
expect(env['rack.jpmobile'].position.lon).to be_within(1e-4).of(141.3389013)
|
@@ -81,7 +81,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
81
81
|
'http://jpmobile-rails.org/',
|
82
82
|
'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
|
83
83
|
"QUERY_STRING" => "datum=tokyo&unit=dms&lat=43.04.55.00&lon=141.20.50.75")
|
84
|
-
env = Jpmobile::
|
84
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
85
85
|
|
86
86
|
expect(env['rack.jpmobile'].position.lat).to be_within(1e-7).of(43.08194444)
|
87
87
|
expect(env['rack.jpmobile'].position.lon).to be_within(1e-7).of(141.3474306)
|
@@ -92,7 +92,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
92
92
|
'http://jpmobile-rails.org/',
|
93
93
|
'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
|
94
94
|
"QUERY_STRING" => "datum=tokyo&unit=dms&lat=43.04.55.00&lon=141.20.50.75")
|
95
|
-
env = Jpmobile::
|
95
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
96
96
|
|
97
97
|
expect(env['rack.jpmobile'].position.lat).to be_within(1e-7).of(43.08194444)
|
98
98
|
expect(env['rack.jpmobile'].position.lon).to be_within(1e-7).of(141.3474306)
|
@@ -103,7 +103,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
103
103
|
'http://jpmobile-rails.org/',
|
104
104
|
'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
|
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
|
-
env = Jpmobile::
|
106
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
107
107
|
|
108
108
|
expect(env['rack.jpmobile'].position.lat).to eq(43.07772)
|
109
109
|
expect(env['rack.jpmobile'].position.lon).to eq(141.34114)
|
@@ -118,7 +118,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
118
118
|
res = Rack::MockRequest.env_for(
|
119
119
|
'http://jpmobile-rails.org/',
|
120
120
|
'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0")
|
121
|
-
env = Jpmobile::
|
121
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
122
122
|
|
123
123
|
expect(env['rack.jpmobile'].device_id).to eq("CA32")
|
124
124
|
expect(env['rack.jpmobile'].supports_location?).to be_truthy
|
@@ -129,7 +129,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
129
129
|
res = Rack::MockRequest.env_for(
|
130
130
|
'http://jpmobile-rails.org/',
|
131
131
|
'HTTP_USER_AGENT' => "KDDI-SN26 UP.Browser/6.2.0.6.2 (GUI) MMP/2.0")
|
132
|
-
env = Jpmobile::
|
132
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
133
133
|
|
134
134
|
expect(env['rack.jpmobile'].device_id).to eq("SN26")
|
135
135
|
expect(env['rack.jpmobile'].supports_location?).to be_truthy
|
@@ -140,7 +140,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
140
140
|
res = Rack::MockRequest.env_for(
|
141
141
|
'http://jpmobile-rails.org/',
|
142
142
|
'HTTP_USER_AGENT' => "UP.Browser/3.04-KCTA UP.Link/3.4.5.9")
|
143
|
-
env = Jpmobile::
|
143
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
144
144
|
|
145
145
|
expect(env['rack.jpmobile'].device_id).to eq("KCTA")
|
146
146
|
expect(env['rack.jpmobile'].supports_location?).to be_falsey
|
@@ -155,7 +155,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
155
155
|
'http://jpmobile-rails.org/',
|
156
156
|
'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
|
157
157
|
"REMOTE_ADDR" => "210.230.128.225")
|
158
|
-
env = Jpmobile::
|
158
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
159
159
|
|
160
160
|
expect(env['rack.jpmobile'].valid_ip?).to be_truthy
|
161
161
|
end
|
@@ -165,7 +165,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
165
165
|
'http://jpmobile-rails.org/',
|
166
166
|
'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
|
167
167
|
"REMOTE_ADDR" => "127.0.0.1")
|
168
|
-
env = Jpmobile::
|
168
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
169
169
|
|
170
170
|
expect(env['rack.jpmobile'].valid_ip?).to be_falsey
|
171
171
|
end
|
@@ -179,7 +179,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
179
179
|
"HTTP_X_UP_DEVCAP_SCREENDEPTH" => "16,RGB565",
|
180
180
|
"HTTP_X_UP_DEVCAP_SCREENPIXELS" => "240,346",
|
181
181
|
"HTTP_X_UP_DEVCAP_ISCOLOR" => "1")
|
182
|
-
env = Jpmobile::
|
182
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
183
183
|
|
184
184
|
expect(env['rack.jpmobile'].display.width).to eq(240)
|
185
185
|
expect(env['rack.jpmobile'].display.height).to eq(346)
|
@@ -191,7 +191,7 @@ describe Jpmobile::Rack::MobileCarrier, "au" do
|
|
191
191
|
res = Rack::MockRequest.env_for(
|
192
192
|
'http://jpmobile-rails.org/',
|
193
193
|
'HTTP_USER_AGENT' => "KDDI-CA33 UP.Browser/6.2.0.10.4 (GUI) MMP/2.0")
|
194
|
-
env = Jpmobile::
|
194
|
+
env = Jpmobile::MobileCarrier.new(UnitApplication.new).call(res)[1]
|
195
195
|
|
196
196
|
expect(env['rack.jpmobile'].display.width).to be_nil
|
197
197
|
expect(env['rack.jpmobile'].display.height).to be_nil
|