jpmobile 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (163) hide show
  1. data/.gitignore +6 -0
  2. data/{test/rails/rails_root/vendor/plugins/jpmobile/MIT-LICENSE → MIT-LICENSE} +0 -0
  3. data/README.rdoc +16 -6
  4. data/Rakefile +14 -0
  5. data/VERSION.yml +4 -0
  6. data/init.rb +3 -0
  7. data/install.rb +1 -0
  8. data/jpmobile.gemspec +299 -0
  9. data/lib/jpmobile.rb +0 -2
  10. data/lib/jpmobile/emoticon.rb +16 -2
  11. data/lib/jpmobile/emoticon/z_combine.rb +17 -4
  12. data/lib/jpmobile/filter.rb +2 -3
  13. data/lib/jpmobile/mobile/abstract_mobile.rb +6 -0
  14. data/lib/jpmobile/mobile/docomo.rb +24 -1
  15. data/lib/jpmobile/mobile/z_ip_addresses_au.rb +3 -2
  16. data/lib/jpmobile/mobile/z_ip_addresses_docomo.rb +4 -1
  17. data/lib/jpmobile/request_with_mobile.rb +4 -1
  18. data/{test/rails/rails_root/vendor/plugins/jpmobile/spec → spec}/spec.opts +0 -0
  19. data/spec/spec_helper.rb +36 -0
  20. data/spec/unit/detect_by_email_spec.rb +31 -0
  21. data/{test/rails/rails_root/vendor/plugins/jpmobile/spec → spec}/unit/detect_by_ua_spec.rb +11 -13
  22. data/spec/unit/is_carrier_spec.rb +93 -0
  23. data/spec/unit/spec_helper.rb +5 -0
  24. data/spec/unit/util_spec.rb +30 -0
  25. data/spec/unit/valid_ip_spec.rb +60 -0
  26. data/{test/rails/rails_root/vendor/plugins/jpmobile/tasks → tasks}/jpmobile_tasks.rake +3 -3
  27. data/test/legacy/autoload_test.rb +2 -1
  28. data/test/legacy/docomo_test.rb +39 -0
  29. data/test/legacy/emoticon_functional_test.rb +21 -19
  30. data/test/legacy/emoticon_test.rb +12 -12
  31. data/test/legacy/filter_test.rb +10 -8
  32. data/test/legacy/helper.rb +32 -3
  33. data/test/legacy/softbank_test.rb +2 -0
  34. data/test/rails/.gitignore +1 -0
  35. data/test/rails/overrides/app/controllers/filter_controller.rb +10 -0
  36. data/test/rails/overrides/spec/controllers/docomo_guid_spec.rb +2 -0
  37. data/test/rails/overrides/spec/controllers/docomo_spec.rb +2 -0
  38. data/test/rails/overrides/spec/controllers/emobile_spec.rb +2 -0
  39. data/test/rails/overrides/spec/controllers/filter_spec.rb +8 -7
  40. data/test/rails/overrides/spec/controllers/pc_spec.rb +2 -0
  41. data/test/rails/overrides/spec/controllers/softbank_emulator_spec.rb +2 -0
  42. data/test/rails/overrides/spec/controllers/template_path_spec.rb +2 -0
  43. data/test/rails/overrides/spec/controllers/trans_sid_spec.rb +1 -0
  44. data/test/rails/overrides/spec/helpers/helpers_spec.rb +2 -0
  45. data/test/rails/overrides/spec/spec_helper.rb +15 -0
  46. data/test/rails/rails_root/app/controllers/filter_controller.rb +0 -23
  47. data/test/rails/rails_root/app/controllers/mobile_spec_controller.rb +1 -1
  48. data/test/rails/rails_root/app/controllers/template_path_controller.rb +3 -0
  49. data/test/rails/rails_root/app/helpers/application_helper.rb +0 -1
  50. data/test/rails/rails_root/config/boot.rb +13 -110
  51. data/test/rails/rails_root/config/environment.rb +4 -41
  52. data/test/rails/rails_root/config/environments/development.rb +22 -13
  53. data/test/rails/rails_root/config/environments/production.rb +41 -20
  54. data/test/rails/rails_root/config/environments/test.rb +35 -28
  55. data/test/rails/rails_root/config/initializers/backtrace_silencers.rb +2 -2
  56. data/test/rails/rails_root/config/initializers/inflections.rb +1 -1
  57. data/test/rails/rails_root/config/initializers/session_store.rb +2 -15
  58. data/test/rails/rails_root/config/routes.rb +6 -42
  59. data/test/rails/rails_root/db/schema.rb +24 -7
  60. data/test/rails/rails_root/db/seeds.rb +2 -2
  61. data/test/rails/rails_root/spec/helpers/helpers_spec.rb +4 -2
  62. data/test/rails/rails_root/spec/spec_helper.rb +19 -35
  63. data/test/rails/rails_root/test/performance/browsing_test.rb +2 -2
  64. data/test/rails/rails_root/test/test_helper.rb +2 -27
  65. data/test/rails/rails_root/vendor/plugins/jpmobile/init.rb +1 -1
  66. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile.rb +39 -25
  67. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/docomo_guid.rb +2 -1
  68. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/email.rb +3 -4
  69. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon.rb +24 -8
  70. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/conversion_table.rb +10 -9
  71. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/z_combine.rb +17 -4
  72. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/filter.rb +43 -136
  73. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/helpers.rb +5 -18
  74. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_controller.rb +24 -16
  75. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_view.rb +42 -85
  76. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/abstract_mobile.rb +25 -2
  77. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/au.rb +28 -3
  78. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/display.rb +29 -26
  79. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/docomo.rb +60 -11
  80. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/softbank.rb +16 -41
  81. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/willcom.rb +1 -10
  82. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/z_ip_addresses_au.rb +3 -2
  83. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/z_ip_addresses_docomo.rb +4 -1
  84. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/position.rb +4 -3
  85. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/request_with_mobile.rb +14 -13
  86. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/trans_sid.rb +52 -35
  87. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/util.rb +68 -0
  88. data/test/rails/rails_root/vendor/plugins/jpmobile/spec/spec_helper.rb +3 -2
  89. data/test/rails/rails_root/vendor/plugins/jpmobile/spec/unit/detect_by_email_spec.rb +21 -27
  90. data/test/rails/rails_root/vendor/plugins/jpmobile/spec/unit/is_carrier_spec.rb +56 -84
  91. data/test/rails/rails_root/vendor/plugins/jpmobile/spec/unit/spec_helper.rb +1 -2
  92. data/test/rails/rails_root/vendor/plugins/jpmobile/spec/unit/util_spec.rb +8 -2
  93. data/test/rails/rails_root/vendor/plugins/jpmobile/spec/unit/valid_ip_spec.rb +43 -52
  94. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/disabled_update_display_info_docomo.rb +0 -0
  95. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/update_ip_addresses_au.rb +0 -0
  96. data/tools/emoji/genregexp.rb +47 -0
  97. metadata +348 -253
  98. data/test/rails/rails_root/README +0 -243
  99. data/test/rails/rails_root/Rakefile +0 -10
  100. data/test/rails/rails_root/app/controllers/docomo_guid_controller.rb +0 -13
  101. data/test/rails/rails_root/app/controllers/trans_sid_controller.rb +0 -28
  102. data/test/rails/rails_root/app/views/filter/index.html.erb +0 -0
  103. data/test/rails/rails_root/app/views/hankaku_filter/index.html.erb +0 -0
  104. data/test/rails/rails_root/app/views/template_path/_partial.html.erb +0 -1
  105. data/test/rails/rails_root/app/views/template_path/_partial_mobile.html.erb +0 -1
  106. data/test/rails/rails_root/app/views/template_path/_partial_mobile_docomo.html.erb +0 -1
  107. data/test/rails/rails_root/app/views/template_path/index.html.erb +0 -1
  108. data/test/rails/rails_root/app/views/template_path/index_mobile.html.erb +0 -1
  109. data/test/rails/rails_root/app/views/template_path/index_mobile_docomo.html.erb +0 -1
  110. data/test/rails/rails_root/app/views/template_path/partial.html.erb +0 -2
  111. data/test/rails/rails_root/config/database.yml +0 -22
  112. data/test/rails/rails_root/config/initializers/new_rails_defaults.rb +0 -21
  113. data/test/rails/rails_root/config/locales/en.yml +0 -5
  114. data/test/rails/rails_root/db/development.sqlite3 +0 -0
  115. data/test/rails/rails_root/db/test.sqlite3 +0 -0
  116. data/test/rails/rails_root/doc/README_FOR_APP +0 -2
  117. data/test/rails/rails_root/lib/tasks/rspec.rake +0 -165
  118. data/test/rails/rails_root/log/development.log +0 -38
  119. data/test/rails/rails_root/log/production.log +0 -0
  120. data/test/rails/rails_root/log/server.log +0 -0
  121. data/test/rails/rails_root/log/test.log +0 -451
  122. data/test/rails/rails_root/public/404.html +0 -30
  123. data/test/rails/rails_root/public/422.html +0 -30
  124. data/test/rails/rails_root/public/500.html +0 -30
  125. data/test/rails/rails_root/public/favicon.ico +0 -0
  126. data/test/rails/rails_root/public/images/rails.png +0 -0
  127. data/test/rails/rails_root/public/index.html +0 -275
  128. data/test/rails/rails_root/public/javascripts/application.js +0 -2
  129. data/test/rails/rails_root/public/javascripts/controls.js +0 -963
  130. data/test/rails/rails_root/public/javascripts/dragdrop.js +0 -973
  131. data/test/rails/rails_root/public/javascripts/effects.js +0 -1128
  132. data/test/rails/rails_root/public/javascripts/prototype.js +0 -4320
  133. data/test/rails/rails_root/public/robots.txt +0 -5
  134. data/test/rails/rails_root/script/about +0 -4
  135. data/test/rails/rails_root/script/console +0 -3
  136. data/test/rails/rails_root/script/dbconsole +0 -3
  137. data/test/rails/rails_root/script/destroy +0 -3
  138. data/test/rails/rails_root/script/generate +0 -3
  139. data/test/rails/rails_root/script/performance/benchmarker +0 -3
  140. data/test/rails/rails_root/script/performance/profiler +0 -3
  141. data/test/rails/rails_root/script/plugin +0 -3
  142. data/test/rails/rails_root/script/runner +0 -3
  143. data/test/rails/rails_root/script/server +0 -3
  144. data/test/rails/rails_root/spec/controllers/docomo_guid_spec.rb +0 -77
  145. data/test/rails/rails_root/spec/controllers/docomo_spec.rb +0 -28
  146. data/test/rails/rails_root/spec/controllers/emobile_spec.rb +0 -35
  147. data/test/rails/rails_root/spec/controllers/filter_spec.rb +0 -157
  148. data/test/rails/rails_root/spec/controllers/pc_spec.rb +0 -11
  149. data/test/rails/rails_root/spec/controllers/softbank_emulator_spec.rb +0 -40
  150. data/test/rails/rails_root/spec/controllers/template_path_spec.rb +0 -115
  151. data/test/rails/rails_root/spec/controllers/trans_sid_spec.rb +0 -99
  152. data/test/rails/rails_root/spec/rcov.opts +0 -2
  153. data/test/rails/rails_root/spec/rspec.rake +0 -165
  154. data/test/rails/rails_root/spec/spec.opts +0 -4
  155. data/test/rails/rails_root/vendor/plugins/jpmobile/CHANGELOG +0 -7
  156. data/test/rails/rails_root/vendor/plugins/jpmobile/README.rdoc +0 -239
  157. data/test/rails/rails_root/vendor/plugins/jpmobile/Rakefile +0 -116
  158. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_request.rb +0 -5
  159. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/auth.rb +0 -55
  160. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/combined_logger.rb +0 -54
  161. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/request.rb +0 -7
  162. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/trans_sid.rb +0 -14
  163. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/version.rb +0 -9
@@ -1,5 +0,0 @@
1
- # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2
- #
3
- # To ban all spiders from the entire site uncomment the next two lines:
4
- # User-Agent: *
5
- # Disallow: /
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.expand_path('../../config/boot', __FILE__)
3
- $LOAD_PATH.unshift "#{RAILTIES_PATH}/builtin/rails_info"
4
- require 'commands/about'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.expand_path('../../config/boot', __FILE__)
3
- require 'commands/console'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.expand_path('../../config/boot', __FILE__)
3
- require 'commands/dbconsole'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.expand_path('../../config/boot', __FILE__)
3
- require 'commands/destroy'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.expand_path('../../config/boot', __FILE__)
3
- require 'commands/generate'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.expand_path('../../../config/boot', __FILE__)
3
- require 'commands/performance/benchmarker'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.expand_path('../../../config/boot', __FILE__)
3
- require 'commands/performance/profiler'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.expand_path('../../config/boot', __FILE__)
3
- require 'commands/plugin'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.expand_path('../../config/boot', __FILE__)
3
- require 'commands/runner'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.expand_path('../../config/boot', __FILE__)
3
- require 'commands/server'
@@ -1,77 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe "docomo_guid が起動しないとき", :shared => true do
4
- it "で link_to の自動書き換えが行われない" do
5
- get :link
6
- response.body.should =~ %r{^<a href="/.+?/link">linkto</a>$}
7
- end
8
- end
9
-
10
- describe "docomo_guid が起動するとき", :shared => true do
11
- it "で link_to の自動書き換えが行われる" do
12
- get :link
13
- response.body.should =~ %r{^<a href="/.+?/link\?guid=ON">linkto</a>$}
14
- end
15
- end
16
-
17
- describe DocomoGuidBaseController, "という docomo_guid が有効になっていないコントローラ" do
18
- controller_name :docomo_guid_base
19
- it "の docomo_guid_mode は nil" do
20
- controller.docomo_guid_mode.should be_nil
21
- end
22
- it_should_behave_like "docomo_guid が起動しないとき"
23
- end
24
-
25
- describe DocomoGuidAlwaysController, "という docomo_guid :always が指定されているコントローラ" do
26
- controller_name :docomo_guid_always
27
- it "の trans_sid_mode は :always" do
28
- controller.docomo_guid_mode.should == :always
29
- end
30
- it_should_behave_like "docomo_guid が起動するとき"
31
- end
32
-
33
- describe DocomoGuidDocomoController, "という docomo_guid :docomo が指定されているコントローラ" do
34
- controller_name :docomo_guid_docomo
35
- it "の docomo_guid_mode は :docomo" do
36
- controller.docomo_guid_mode.should == :docomo
37
- end
38
- end
39
-
40
- def describe_mobile_with_ua(user_agent, &block)
41
- describe("trans_sid :docomo が指定されているコントローラに #{user_agent} からアクセスしたとき") do
42
- controller_name :docomo_guid_docomo
43
- before do
44
- request.user_agent = user_agent
45
- end
46
- instance_eval(&block)
47
- end
48
- end
49
-
50
- describe_mobile_with_ua "DoCoMo/2.0 SH902i(c100;TB;W24H12)" do
51
- it_should_behave_like "docomo_guid が起動するとき"
52
- end
53
-
54
- describe_mobile_with_ua "J-PHONE/3.0/V301D" do
55
- it_should_behave_like "docomo_guid が起動しないとき"
56
- end
57
-
58
- describe_mobile_with_ua "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0" do
59
- it_should_behave_like "docomo_guid が起動しないとき"
60
- end
61
-
62
- describe_mobile_with_ua "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1" do
63
- it_should_behave_like "docomo_guid が起動しないとき"
64
- end
65
-
66
- describe_mobile_with_ua "Vodafone/1.0/V903T/TJ001 Browser/VF-Browser/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 Ext-J-Profile/JSCL-1.2.2 Ext-V-Profile/VSCL-2.0.0" do
67
- it_should_behave_like "docomo_guid が起動しないとき"
68
- end
69
-
70
- describe_mobile_with_ua "DoCoMo/1.0/N505i/c20/TB/W20H10 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)" do
71
- it_should_behave_like "docomo_guid が起動しないとき"
72
- end
73
-
74
-
75
- describe_mobile_with_ua "DoCoMo/2.0/SO502i (compatible; Y!J-SRD/1.0; http://help.yahoo.co.jp/help/jp/search/indexing/indexing-27.html)" do
76
- it_should_behave_like "docomo_guid が起動しないとき"
77
- end
@@ -1,28 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe "DoCoMo SH902i からのアクセス" do
4
- before do
5
- request.user_agent = "DoCoMo/2.0 SH902i(c100;TB;W24H12)"
6
- end
7
- controller_name :mobile_spec
8
- it "request.mobile は Docomo のインスタンスであるべき" do
9
- request.mobile.should be_an_instance_of(Jpmobile::Mobile::Docomo)
10
- end
11
- it "request.mobile? は true であるべき" do
12
- request.mobile?.should be_true
13
- end
14
- end
15
-
16
- describe "DoCoMo SH902i からguid付きのアクセス" do
17
- controller_name :mobile_spec
18
- before do
19
- request.user_agent = "DoCoMo/2.0 SH902i(c100;TB;W24H12)"
20
- request.env['HTTP_X_DCMGUID'] = "000000a"
21
- end
22
- it "guidを正しく取得できること" do
23
- request.mobile.guid.should == "000000a"
24
- end
25
- it "ident_subscriberでも正しく取得できること" do
26
- request.mobile.ident_subscriber.should == "000000a"
27
- end
28
- end
@@ -1,35 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe "H11T モバイルブラウザからのアクセス", :behaviour_type=>:controller do
4
- before do
5
- request.user_agent = "emobile/1.0.0 (H11T; like Gecko; Wireless) NetFront/3.4"
6
- request.env['HTTP_X_EM_UID'] = "u00000000000000000"
7
- request.env['REMOTE_ADDR'] = "117.55.1.232"
8
- end
9
- controller_name :mobile_spec
10
- it "request.mobile は Emobile のインスタンスであること" do
11
- request.mobile.should be_an_instance_of(Jpmobile::Mobile::Emobile)
12
- end
13
- it "request.mobile? は true であること" do
14
- request.mobile?.should be_true
15
- end
16
- it "のsubscribe番号を取得できること" do
17
- request.mobile.ident_subscriber.should == "u00000000000000000"
18
- end
19
- it "のIPアドレス空間を正しく検証できること" do
20
- request.mobile.valid_ip?.should be_true
21
- end
22
- end
23
-
24
- describe "S11HT からのアクセス", :behaviour_type=>:controller do
25
- before do
26
- request.user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.7) S11HT"
27
- end
28
- controller_name :mobile_spec
29
- it "request.mobile は Emobile のインスタンスであること" do
30
- request.mobile.should be_an_instance_of(Jpmobile::Mobile::Emobile)
31
- end
32
- it "request.mobile? は true であること" do
33
- request.mobile?.should be_true
34
- end
35
- end
@@ -1,157 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe "文字コードフィルタが動作しているとき", :shared => true do
4
- it "はhtml以外は変換しないこと" do
5
- get :rawdata
6
- response.charset.should be_nil
7
- response.body.should == "アブラカダブラ"
8
- end
9
- it "response.bodyが空のときは文字コードを変更しないこと" do
10
- get :empty
11
- response.charset.should_not == "Shift_JIS"
12
- end
13
- end
14
-
15
- describe "Shift_JISで通信する端末との通信", :shared => true do
16
- it "はShift_JISで携帯に送出されること" do
17
- get :abracadabra_utf8
18
- response.body.should == "アブラカダブラ".tosjis
19
- response.charset.should == "Shift_JIS"
20
- end
21
- it "はxhtmlでもShift_JISで携帯に送出されること" do
22
- get :abracadabra_xhtml_utf8
23
- response.body.should == "アブラカダブラ".tosjis
24
- response.charset.should == "Shift_JIS"
25
- end
26
- it "はShift_JISで渡されたパラメタがparamsにUTF-8に変換されて格納されること" do
27
- get :index, :q => "アブラカダブラ".tosjis
28
- assigns[:q].should == "アブラカダブラ"
29
- end
30
- it "は半角カナのparamsを変換しないこと" do
31
- get :index, :q => "\261\314\336\327\266\300\336\314\336\327" # アブラカダブラ半角,SJIS
32
- assigns[:q].should == "アブラカダブラ"
33
- end
34
- it_should_behave_like "文字コードフィルタが動作しているとき"
35
- end
36
-
37
- describe "UTF-8で通信する端末との通信", :shared => true do
38
- it "はUTF-8で携帯に送出されること" do
39
- get :abracadabra_utf8
40
- response.body.should == "アブラカダブラ"
41
- response.charset.should == "utf-8"
42
- end
43
- it "はxhtmlでもUTF-8で携帯に送出されること" do
44
- get :abracadabra_xhtml_utf8
45
- response.body.should == "アブラカダブラ"
46
- response.charset.should == "utf-8"
47
- end
48
- it "はparamsにUTF-8のまま格納されること" do
49
- get :index, :q => "アブラカダブラ"
50
- assigns[:q].should == "アブラカダブラ"
51
- end
52
- it "は半角カナのparamsを変換しないこと" do
53
- get :index, :q => "アブラカダブラ"
54
- assigns[:q].should == "アブラカダブラ"
55
- end
56
- it_should_behave_like "文字コードフィルタが動作しているとき"
57
- end
58
-
59
- describe "Shift_JISで通信する端末との通信(半角変換付き)", :shared => true do
60
- it "は半角に変換されShift_JISで携帯に送出されること" do
61
- get :abracadabra_utf8
62
- response.body.should == "\261\314\336\327\266\300\336\314\336\327" # アブラカダブラ半角,SJIS
63
- response.charset.should == "Shift_JIS"
64
- end
65
- it "はShift_JISで渡されたパラメタがparamsにUTF-8に変換されて格納されること" do
66
- get :index, :q => "アブラカダブラ".tosjis
67
- assigns[:q].should == "アブラカダブラ"
68
- end
69
- it "は半角Shift_JISで渡されたパラメタがparamsに全角UTF-8に変換されて格納されること" do
70
- get :index, :q => "\261\314\336\327\266\300\336\314\336\327" # アブラカダブラ半角,SJIS
71
- assigns[:q].should == "アブラカダブラ"
72
- end
73
- it_should_behave_like "文字コードフィルタが動作しているとき"
74
- end
75
-
76
- describe "UTF-8で通信する端末との通信(半角変換付き)", :shared => true do
77
- it "はUTF-8半角で携帯に送出されること" do
78
- get :abracadabra_utf8
79
- response.body.should == "アブラカダブラ"
80
- response.charset.should == "utf-8"
81
- end
82
- it "はparamsにUTF-8のまま格納されること" do
83
- get :index, :q => "アブラカダブラ"
84
- assigns[:q].should == "アブラカダブラ"
85
- end
86
- it "は半角で渡されたparamsを全角に変換して格納すること" do
87
- get :index, :q => "アブラカダブラ"
88
- assigns[:q].should == "アブラカダブラ"
89
- end
90
- it_should_behave_like "文字コードフィルタが動作しているとき"
91
- end
92
-
93
- #
94
- # PCからのアクセス
95
- #
96
- describe FilterController, "PCからのアクセス" do
97
- it_should_behave_like "UTF-8で通信する端末との通信"
98
- end
99
-
100
- describe HankakuFilterController, "PCからのアクセス" do
101
- it_should_behave_like "UTF-8で通信する端末との通信"
102
- end
103
-
104
- #
105
- # 携帯からのアクセス
106
- #
107
- describe FilterController, "DoCoMo SH902i からのアクセス" do
108
- before do
109
- request.user_agent = "DoCoMo/2.0 SH902i(c100;TB;W24H12)"
110
- end
111
- it_should_behave_like "Shift_JISで通信する端末との通信"
112
- end
113
-
114
- describe FilterController, "au CA32 からのアクセス" do
115
- before do
116
- request.user_agent = "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0"
117
- end
118
- it_should_behave_like "Shift_JISで通信する端末との通信"
119
- end
120
-
121
- describe FilterController, "J-PHONE V401SH からのアクセス" do
122
- before do
123
- request.user_agent = "J-PHONE/3.0/V401SH"
124
- end
125
- it_should_behave_like "Shift_JISで通信する端末との通信"
126
- end
127
-
128
- describe FilterController, "Vodafone V903T からのアクセス" do
129
- before do
130
- request.user_agent = "Vodafone/1.0/V903T/TJ001 Browser/VF-Browser/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 Ext-J-Profile/JSCL-1.2.2 Ext-V-Profile/VSCL-2.0.0"
131
- end
132
- it_should_behave_like "UTF-8で通信する端末との通信"
133
- end
134
-
135
- describe FilterController, "SoftBank 910T からのアクセス" do
136
- before do
137
- request.user_agent = "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1"
138
- end
139
- it_should_behave_like "UTF-8で通信する端末との通信"
140
- end
141
-
142
- #
143
- # 半角フィルタ
144
- #
145
- describe HankakuFilterController, "DoCoMo SH902i からのアクセス" do
146
- before do
147
- request.user_agent = "DoCoMo/2.0 SH902i(c100;TB;W24H12)"
148
- end
149
- it_should_behave_like "Shift_JISで通信する端末との通信(半角変換付き)"
150
- end
151
-
152
- describe HankakuFilterController, "SoftBank 910T からのアクセス" do
153
- before do
154
- request.user_agent = "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1"
155
- end
156
- it_should_behave_like "UTF-8で通信する端末との通信(半角変換付き)"
157
- end
@@ -1,11 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe "PCからのアクセスの場合", :behaviour_type=>:controller do
4
- controller_name :mobile_spec
5
- it "request.mobile は nil であるべき" do
6
- request.mobile.should be_nil
7
- end
8
- it "request.mobile? は false であるべき" do
9
- request.mobile?.should be_false
10
- end
11
- end
@@ -1,40 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe "携帯電話からのアクセス", :shared => true do
4
- it "request.mobile? は true であること" do
5
- request.mobile?.should be_true
6
- end
7
- end
8
-
9
- describe "Softbank Emulator からのアクセスのとき", :behaviour_type=>:controller do
10
- before do
11
- request.user_agent = "Semulator"
12
- end
13
- controller_name :mobile_spec
14
- it "request.mobile は Softbank のインスタンスであること" do
15
- request.mobile.should be_an_instance_of(Jpmobile::Mobile::Softbank)
16
- end
17
- it_should_behave_like "携帯電話からのアクセス"
18
- end
19
-
20
- describe "Vodafone Emulator からのアクセスのとき", :behaviour_type=>:controller do
21
- before do
22
- request.user_agent = "Vemulator"
23
- end
24
- controller_name :mobile_spec
25
- it "request.mobile は Vodafone のインスタンスであること" do
26
- request.mobile.should be_an_instance_of(Jpmobile::Mobile::Vodafone)
27
- end
28
- it_should_behave_like "携帯電話からのアクセス"
29
- end
30
-
31
- describe "J-PHONE Emulator からのアクセスのとき", :behaviour_type=>:controller do
32
- before do
33
- request.user_agent = "J-EMULATOR"
34
- end
35
- controller_name :mobile_spec
36
- it "request.mobile は Jphone のインスタンスであること" do
37
- request.mobile.should be_an_instance_of(Jpmobile::Mobile::Jphone)
38
- end
39
- it_should_behave_like "携帯電話からのアクセス"
40
- end
@@ -1,115 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- #
4
- # 携帯からのアクセス
5
- #
6
- describe TemplatePathController, "DoCoMo SH902i からのアクセス" do
7
- before do
8
- request.user_agent = "DoCoMo/2.0 SH902i(c100;TB;W24H12)"
9
- get :index
10
- end
11
-
12
- it 'テンプレートの探索順が正しいこと' do
13
- response.template.mobile_template_candidates.should == [ 'mobile_docomo', 'mobile' ]
14
- end
15
- end
16
-
17
- describe TemplatePathController, "au CA32 からのアクセス" do
18
- before do
19
- request.user_agent = "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0"
20
- get :index
21
- end
22
- it 'テンプレートの探索順が正しいこと' do
23
- response.template.mobile_template_candidates.should == [ 'mobile_au', 'mobile' ]
24
- end
25
- end
26
-
27
- describe TemplatePathController, "J-PHONE V401SH からのアクセス" do
28
- before do
29
- request.user_agent = "J-PHONE/3.0/V401SH"
30
- get :index
31
- end
32
- it 'テンプレートの探索順が正しいこと' do
33
- response.template.mobile_template_candidates.should == [ 'mobile_jphone', 'mobile_vodafone', 'mobile_softbank', 'mobile' ]
34
- end
35
- end
36
-
37
- describe TemplatePathController, "Vodafone V903T からのアクセス" do
38
- before do
39
- request.user_agent = "Vodafone/1.0/V903T/TJ001 Browser/VF-Browser/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 Ext-J-Profile/JSCL-1.2.2 Ext-V-Profile/VSCL-2.0.0"
40
- get :index
41
- end
42
- it 'テンプレートの探索順が正しいこと' do
43
- response.template.mobile_template_candidates.should == [ 'mobile_vodafone', 'mobile_softbank', 'mobile' ]
44
- end
45
- end
46
-
47
- describe TemplatePathController, "SoftBank 910T からのアクセス" do
48
- before do
49
- request.user_agent = "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1"
50
- get :index
51
- end
52
- it 'テンプレートの探索順が正しいこと' do
53
- response.template.mobile_template_candidates.should == [ 'mobile_softbank', 'mobile' ]
54
- end
55
- end
56
-
57
- describe TemplatePathController, "integrated_views" do
58
- integrate_views
59
- describe "index" do
60
- context "PCからのアクセスの場合" do
61
- before do
62
- get :index
63
- end
64
- it 'index.html.erbが使用されること' do
65
- response.should have_tag("h1", "index.html.erb")
66
- end
67
- end
68
- context "DoCoMoからのアクセスの場合" do
69
- before do
70
- request.user_agent = "DoCoMo/2.0 SH902i(c100;TB;W24H12)"
71
- get :index
72
- end
73
- it 'index_mobile_docomo.html.erbが使用されること' do
74
- response.should have_tag("h1", "index_mobile_docomo.html.erb")
75
- end
76
- end
77
- context "SoftBankからのアクセスの場合" do
78
- before do
79
- request.user_agent = "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1"
80
- get :index
81
- end
82
- it 'index_mobile.html.erbが使用されること' do
83
- response.should have_tag("h1", "index_mobile.html.erb")
84
- end
85
- end
86
- end
87
- describe "partial" do
88
- context "PCからのアクセスの場合" do
89
- before do
90
- get :partial
91
- end
92
- it '_partial.html.erbが使用されること' do
93
- response.should have_tag("h2", "_partial.html.erb")
94
- end
95
- end
96
- context "DoCoMoからのアクセスの場合" do
97
- before do
98
- request.user_agent = "DoCoMo/2.0 SH902i(c100;TB;W24H12)"
99
- get :partial
100
- end
101
- it '_partial_mobile_docomo.html.erbが使用されること' do
102
- response.should have_tag("h2", "_partial_mobile_docomo.html.erb")
103
- end
104
- end
105
- context "SoftBankからのアクセスの場合" do
106
- before do
107
- request.user_agent = "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1"
108
- get :partial
109
- end
110
- it '_partial_mobile.html.erbが使用されること' do
111
- response.should have_tag("h2", "_partial_mobile.html.erb")
112
- end
113
- end
114
- end
115
- end