jpmobile 0.1.3 → 0.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.
Files changed (166) hide show
  1. data/Gemfile +10 -8
  2. data/README.rdoc +1 -1
  3. data/Rakefile +13 -5
  4. data/VERSION.yml +1 -1
  5. data/lib/jpmobile/helpers.rb +1 -1
  6. data/lib/jpmobile/rack/filter.rb +2 -7
  7. data/lib/tasks/jpmobile_tasks.rake +1 -1
  8. data/spec/rack/jpmobile/emoticon_spec.rb +17 -9
  9. data/spec/rack/jpmobile/filter_spec.rb +92 -18
  10. data/spec/rack_helper.rb +2 -0
  11. data/spec/spec_helper.rb +0 -26
  12. data/test/rails/overrides/spec/helpers/helpers_spec.rb +1 -1
  13. data/test/rails/rails_root/app/controllers/application_controller.rb +5 -0
  14. data/test/rails/rails_root/app/controllers/docomo_guid_always_controller.rb +3 -0
  15. data/test/rails/rails_root/app/controllers/docomo_guid_base_controller.rb +5 -0
  16. data/test/rails/rails_root/app/controllers/docomo_guid_docomo_controller.rb +3 -0
  17. data/test/rails/rails_root/app/controllers/filter_controller.rb +3 -0
  18. data/test/rails/rails_root/app/controllers/filter_controller_base.rb +25 -0
  19. data/test/rails/rails_root/app/controllers/hankaku_filter_controller.rb +3 -0
  20. data/test/rails/rails_root/app/controllers/hankaku_input_filter_controller.rb +7 -0
  21. data/test/rails/rails_root/app/controllers/links_controller.rb +28 -0
  22. data/test/rails/rails_root/app/controllers/mobile_spec_controller.rb +5 -0
  23. data/test/rails/rails_root/app/controllers/template_path_controller.rb +9 -0
  24. data/test/rails/rails_root/app/controllers/trans_sid_always_and_session_off_controller.rb +4 -0
  25. data/test/rails/rails_root/app/controllers/trans_sid_always_controller.rb +3 -0
  26. data/test/rails/rails_root/app/controllers/trans_sid_base_controller.rb +40 -0
  27. data/test/rails/rails_root/app/controllers/trans_sid_metal_controller.rb +15 -0
  28. data/test/rails/rails_root/app/controllers/trans_sid_mobile_controller.rb +3 -0
  29. data/test/rails/rails_root/app/controllers/trans_sid_none_controller.rb +3 -0
  30. data/test/rails/rails_root/app/helpers/application_helper.rb +2 -0
  31. data/test/rails/rails_root/app/models/user.rb +2 -0
  32. data/test/rails/rails_root/autotest/discover.rb +2 -0
  33. data/test/rails/rails_root/config/application.rb +42 -0
  34. data/test/rails/rails_root/config/boot.rb +13 -0
  35. data/test/rails/rails_root/config/environment.rb +5 -0
  36. data/test/rails/rails_root/config/environments/development.rb +26 -0
  37. data/test/rails/rails_root/config/environments/production.rb +49 -0
  38. data/test/rails/rails_root/config/environments/test.rb +35 -0
  39. data/test/rails/rails_root/config/initializers/backtrace_silencers.rb +7 -0
  40. data/test/rails/rails_root/config/initializers/inflections.rb +10 -0
  41. data/test/rails/rails_root/config/initializers/jpmobile_generator.rb +2 -0
  42. data/test/rails/rails_root/config/initializers/mime_types.rb +5 -0
  43. data/test/rails/rails_root/config/initializers/secret_token.rb +7 -0
  44. data/test/rails/rails_root/config/initializers/session_store.rb +2 -0
  45. data/test/rails/rails_root/config/routes.rb +7 -0
  46. data/test/rails/rails_root/db/migrate/001_add_sessions_table.rb +16 -0
  47. data/test/rails/rails_root/db/migrate/20100824062306_create_users.rb +13 -0
  48. data/test/rails/rails_root/db/schema.rb +31 -0
  49. data/test/rails/rails_root/db/seeds.rb +7 -0
  50. data/test/rails/rails_root/spec/helpers/helpers_spec.rb +15 -0
  51. data/test/rails/rails_root/spec/requests/docomo_guid_spec.rb +102 -0
  52. data/test/rails/rails_root/spec/requests/docomo_spec.rb +33 -0
  53. data/test/rails/rails_root/spec/requests/emobile_spec.rb +53 -0
  54. data/test/rails/rails_root/spec/requests/filter_spec.rb +221 -0
  55. data/test/rails/rails_root/spec/requests/helpers_spec.rb +187 -0
  56. data/test/rails/rails_root/spec/requests/pc_spec.rb +22 -0
  57. data/test/rails/rails_root/spec/requests/softbank_emulator_spec.rb +21 -0
  58. data/test/rails/rails_root/spec/requests/template_path_spec.rb +234 -0
  59. data/test/rails/rails_root/spec/requests/trans_sid_spec.rb +207 -0
  60. data/test/rails/rails_root/spec/spec_helper.rb +32 -0
  61. data/test/rails/rails_root/test/performance/browsing_test.rb +9 -0
  62. data/test/rails/rails_root/test/test_helper.rb +13 -0
  63. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile-ipaddresses.rb +18 -0
  64. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/abstract_ip_addresses.rb +23 -0
  65. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/au.rb +40 -0
  66. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/docomo.rb +22 -0
  67. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/emobile.rb +15 -0
  68. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/softbank.rb +20 -0
  69. data/test/rails/rails_root/vendor/plugins/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/willcom.rb +158 -0
  70. data/test/rails/rails_root/vendor/plugins/jpmobile-terminfo/lib/jpmobile-terminfo.rb +9 -0
  71. data/test/rails/rails_root/vendor/plugins/jpmobile-terminfo/lib/jpmobile/mobile/terminfo.rb +62 -0
  72. data/test/rails/rails_root/vendor/plugins/jpmobile-terminfo/lib/jpmobile/mobile/terminfo/docomo.rb +739 -0
  73. data/test/rails/rails_root/vendor/plugins/jpmobile-terminfo/spec/spec_helper.rb +2 -0
  74. data/test/rails/rails_root/vendor/plugins/jpmobile-terminfo/spec/terminfo_spec.rb +54 -0
  75. data/test/rails/rails_root/vendor/plugins/jpmobile/init.rb +3 -0
  76. data/test/rails/rails_root/vendor/plugins/jpmobile/install.rb +1 -0
  77. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile.rb +56 -0
  78. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/datum_conv.rb +72 -0
  79. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/docomo_guid.rb +43 -0
  80. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/email.rb +18 -0
  81. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon.rb +141 -0
  82. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/au.rb +1287 -0
  83. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/conversion_table.rb +3909 -0
  84. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/docomo.rb +255 -0
  85. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/softbank.rb +477 -0
  86. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/emoticon/z_combine.rb +33 -0
  87. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/encoding.rb +29 -0
  88. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/filter.rb +113 -0
  89. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/helpers.rb +174 -0
  90. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_controller.rb +31 -0
  91. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/hook_action_view.rb +87 -0
  92. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/abstract_mobile.rb +99 -0
  93. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/android.rb +10 -0
  94. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/au.rb +108 -0
  95. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/ddipocket.rb +12 -0
  96. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/docomo.rb +128 -0
  97. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/emobile.rb +16 -0
  98. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/iphone.rb +26 -0
  99. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/smart_phone.rb +21 -0
  100. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/softbank.rb +62 -0
  101. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/vodafone.rb +17 -0
  102. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/willcom.rb +28 -0
  103. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/mobile/windows_phone.rb +10 -0
  104. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/position.rb +68 -0
  105. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack.rb +49 -0
  106. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/filter.rb +50 -0
  107. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/mobile_carrier.rb +33 -0
  108. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rack/params_filter.rb +47 -0
  109. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/rails.rb +23 -0
  110. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/request_with_mobile.rb +45 -0
  111. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/trans_sid.rb +133 -0
  112. data/test/rails/rails_root/vendor/plugins/jpmobile/lib/jpmobile/util.rb +97 -0
  113. data/test/rails/rails_root/vendor/plugins/jpmobile/tmp/conversion-table.rb +2588 -0
  114. data/test/rails/rails_root/vendor/plugins/jpmobile/tmp/utf8_to_image.rb +1407 -0
  115. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/emoji/genregexp.rb +47 -0
  116. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/generate_au_emoticon_table.rb +34 -0
  117. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/generate_docomo_emoticon_table.rb +33 -0
  118. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/generate_emoticon_conversion_table.rb +107 -0
  119. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/generate_softbank_emoticon_table.rb +31 -0
  120. data/test/rails/rails_root/vendor/plugins/jpmobile/tools/list_gps_unsupported_au.rb +23 -0
  121. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile-ipaddresses.rb +18 -0
  122. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/abstract_ip_addresses.rb +23 -0
  123. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/au.rb +40 -0
  124. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/docomo.rb +22 -0
  125. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/emobile.rb +15 -0
  126. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/softbank.rb +20 -0
  127. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-ipaddresses/lib/jpmobile/mobile/ip_addresses/willcom.rb +158 -0
  128. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-terminfo/lib/jpmobile-terminfo.rb +9 -0
  129. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-terminfo/lib/jpmobile/mobile/terminfo.rb +62 -0
  130. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-terminfo/lib/jpmobile/mobile/terminfo/docomo.rb +739 -0
  131. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-terminfo/spec/spec_helper.rb +2 -0
  132. data/test/rails/rails_root/vendor/plugins/jpmobile/vendor/jpmobile-terminfo/spec/terminfo_spec.rb +54 -0
  133. metadata +368 -75
  134. data/.rspec +0 -5
  135. data/jpmobile.gemspec +0 -237
  136. data/test/rails/.gitignore +0 -1
  137. data/test/rails/overrides/.rspec +0 -5
  138. data/test/rails/overrides/Gemfile +0 -33
  139. data/test/rails/overrides/app/views/filter/index.html.erb +0 -0
  140. data/test/rails/overrides/app/views/hankaku_filter/index.html.erb +0 -0
  141. data/test/rails/overrides/app/views/hankaku_input_filter/index.html.erb +0 -0
  142. data/test/rails/overrides/app/views/hankaku_input_filter/index_xhtml.html.erb +0 -1
  143. data/test/rails/overrides/app/views/layouts/xhtml.html.erb +0 -12
  144. data/test/rails/overrides/app/views/links/au_gps.html.erb +0 -1
  145. data/test/rails/overrides/app/views/links/au_location.html.erb +0 -1
  146. data/test/rails/overrides/app/views/links/docomo_foma_gps.html.erb +0 -1
  147. data/test/rails/overrides/app/views/links/docomo_openiarea.html.erb +0 -1
  148. data/test/rails/overrides/app/views/links/docomo_utn.html.erb +0 -1
  149. data/test/rails/overrides/app/views/links/link.html.erb +0 -1
  150. data/test/rails/overrides/app/views/links/show_all.html.erb +0 -1
  151. data/test/rails/overrides/app/views/links/softbank_location.html.erb +0 -1
  152. data/test/rails/overrides/app/views/links/willcom_location.html.erb +0 -1
  153. data/test/rails/overrides/app/views/template_path/_partial.html.erb +0 -1
  154. data/test/rails/overrides/app/views/template_path/_partial_mobile.html.erb +0 -1
  155. data/test/rails/overrides/app/views/template_path/_partial_mobile_docomo.html.erb +0 -1
  156. data/test/rails/overrides/app/views/template_path/_partial_smart_phone.html.erb +0 -1
  157. data/test/rails/overrides/app/views/template_path/_partial_smart_phone_iphone.html.erb +0 -1
  158. data/test/rails/overrides/app/views/template_path/index.html.erb +0 -1
  159. data/test/rails/overrides/app/views/template_path/index_mobile.html.erb +0 -1
  160. data/test/rails/overrides/app/views/template_path/index_mobile_docomo.html.erb +0 -1
  161. data/test/rails/overrides/app/views/template_path/index_smart_phone.html.erb +0 -1
  162. data/test/rails/overrides/app/views/template_path/index_smart_phone_iphone.html.erb +0 -1
  163. data/test/rails/overrides/app/views/template_path/partial.html.erb +0 -2
  164. data/test/rails/overrides/app/views/template_path/show_mobile.html.erb +0 -1
  165. data/test/rails/overrides/app/views/template_path/show_mobile_docomo.html.erb +0 -1
  166. data/test/rails/overrides/spec/rcov.opts +0 -2
data/Gemfile CHANGED
@@ -1,10 +1,12 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- gem 'jeweler'
4
- gem 'rails', '>= 3.0.1'
5
- gem 'rspec', '>= 2.0.0'
6
- gem 'rspec-rails', '>= 2.0.0'
7
- gem 'webrat'
8
- gem 'geokit'
9
- gem 'sqlite3-ruby'
10
- gem 'hpricot'
3
+ group :development, :test do
4
+ gem 'jeweler'
5
+ gem 'rails', '>= 3.0.3'
6
+ gem 'rspec', '>= 2.3.0'
7
+ gem 'rspec-rails', '>= 2.3.0'
8
+ gem 'webrat'
9
+ gem 'geokit'
10
+ gem 'sqlite3-ruby'
11
+ gem 'hpricot'
12
+ end
data/README.rdoc CHANGED
@@ -25,7 +25,7 @@
25
25
  ==== IPアドレス検証が必要な場合
26
26
  % rails plugin install git://github.com/jpmobile/jpmobile-ipaddresses.git
27
27
  ==== ディスプレイ情報を取得する必要がある場合
28
- % rails plugin install git://github.com/jpmobile/jpmobile-ipaddresses.git
28
+ % rails plugin install git://github.com/jpmobile/jpmobile-terminfo.git
29
29
 
30
30
  === gemでインストールする場合
31
31
  % gem install jpmobile
data/Rakefile CHANGED
@@ -5,6 +5,7 @@ require 'rake/testtask'
5
5
  require 'rake/rdoctask'
6
6
  require 'fileutils'
7
7
  require 'pathname'
8
+ require 'git'
8
9
  include FileUtils
9
10
 
10
11
  begin
@@ -14,14 +15,21 @@ begin
14
15
  gem.summary = "A Rails plugin for Japanese mobile-phones"
15
16
  gem.description = "A Rails plugin for Japanese mobile-phones"
16
17
  gem.email = "dara@shidara.net"
17
- gem.homepage = "http://github.com/jpmobile/jpmobile"
18
+ gem.homepage = "http://jpmobile-rails.org"
18
19
  gem.authors = ["Yoji Shidara", "Shin-ichiro OGAWA"]
19
20
 
20
- gem.test_files.exclude 'test/rails/rails_root'
21
+ gem.files.exclude 'test'
22
+ gem.files.exclude 'spec'
21
23
 
22
- gem.add_development_dependency('rspec', '2.0.0.beta.17')
23
- gem.add_development_dependency('rspec-rails', '2.0.0.beta.17')
24
- gem.add_development_dependency('jeweler', '>=1.4.0')
24
+ gem.add_development_dependency('jeweler', '>=1.5.1')
25
+ gem.add_development_dependency('rspec', '>=2.3.0')
26
+ gem.add_development_dependency('rspec-rails', '>=2.3.0')
27
+ gem.add_development_dependency('webrat', '>=0.7.2')
28
+ gem.add_development_dependency('geokit', '>=1.5.0')
29
+ gem.add_development_dependency('sqlite3-ruby', '>=1.3.2')
30
+ gem.add_development_dependency('hpricot', '>=0.8.3')
31
+ gem.add_development_dependency('git', '>=1.2.5')
32
+ gem.add_development_dependency('rails', '>=3.0.3')
25
33
  end
26
34
  rescue LoadError
27
35
  puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 1
4
- :patch: 3
4
+ :patch: 4
5
5
  :build:
@@ -168,7 +168,7 @@ module Jpmobile
168
168
  private
169
169
  # 外部へのリンク
170
170
  def link_to_url(str, url)
171
- %{<a href="#{url}">#{str}</a>}.html_safe
171
+ %{<a href="#{html_escape(url)}">#{html_escape(str)}</a>}.html_safe
172
172
  end
173
173
  end
174
174
  end
@@ -13,13 +13,8 @@ module Jpmobile
13
13
 
14
14
  status, env, response = @app.call(env)
15
15
 
16
- if mobile
17
- if content_type = env['Content-Type']
18
- type, charset = content_type.split(/;\s*charset=/)
19
- else
20
- type = nil
21
- charset = nil
22
- end
16
+ if mobile and env['Content-Type'] =~ %r!text/html|application/xhtml\+xml!
17
+ type, charset = env['Content-Type'].split(/;\s*charset=/)
23
18
 
24
19
  body = response_to_body(response)
25
20
  body = body.gsub(/<input name="utf8" type="hidden" value="#{[0x2713].pack("U")}"[^>]*?>/, ' ')
@@ -39,7 +39,7 @@ namespace :test do
39
39
  task :rails, [:versions] do |t, args|
40
40
  rails_root = "test/rails/rails_root"
41
41
  relative_root = "../../../"
42
- rails_versions = args.versions.split("/") rescue ["3.0.2"]
42
+ rails_versions = args.versions.split("/") rescue ["3.0.x"]
43
43
 
44
44
  puts "Running tests in Rails #{rails_versions.join(', ')}"
45
45
 
@@ -19,7 +19,7 @@ describe "絵文字が" do
19
19
 
20
20
  context "PC のとき" do
21
21
  before(:each) do
22
- @res = Rack::MockRequest.env_for("/")
22
+ @res = Rack::MockRequest.env_for("/", 'Content-Type' => 'text/html; charset=utf-8')
23
23
  end
24
24
 
25
25
  it "docomo 絵文字が変換されないこと" do
@@ -48,7 +48,8 @@ describe "絵文字が" do
48
48
  before(:each) do
49
49
  @res = Rack::MockRequest.env_for(
50
50
  "/",
51
- 'HTTP_USER_AGENT' => "DoCoMo/2.0 SH902i(c100;TB;W24H12)")
51
+ 'HTTP_USER_AGENT' => "DoCoMo/2.0 SH902i(c100;TB;W24H12)",
52
+ 'Content-Type' => 'text/html; charset=utf-8')
52
53
  end
53
54
 
54
55
  it "docomo 絵文字が変換されること" do
@@ -84,7 +85,8 @@ describe "絵文字が" do
84
85
  res = Rack::MockRequest.env_for(
85
86
  "/?#{query_string}",
86
87
  "REQUEST_METHOD" => "GET",
87
- 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)')
88
+ 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)',
89
+ 'Content-Type' => 'text/html; charset=utf-8')
88
90
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::ParamsFilter.new(Jpmobile::Rack::Filter.new(RenderParamApp.new))).call(res)
89
91
  req = Rack::Request.new(res[1])
90
92
  req.params['q'].should == utf8("\xee\x98\xbe")
@@ -96,7 +98,8 @@ describe "絵文字が" do
96
98
  before(:each) do
97
99
  @res = Rack::MockRequest.env_for(
98
100
  "/",
99
- 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0")
101
+ 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
102
+ 'Content-Type' => 'text/html; charset=utf-8')
100
103
  end
101
104
 
102
105
  it "docomo 絵文字が変換されること" do
@@ -132,7 +135,8 @@ describe "絵文字が" do
132
135
  res = Rack::MockRequest.env_for(
133
136
  "/?#{query_string}",
134
137
  "REQUEST_METHOD" => "GET",
135
- 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0")
138
+ 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
139
+ 'Content-Type' => 'text/html; charset=utf-8')
136
140
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::ParamsFilter.new(Jpmobile::Rack::Filter.new(RenderParamApp.new))).call(res)
137
141
  req = Rack::Request.new(res[1])
138
142
  req.params['q'].should == [0xe488].pack("U")
@@ -144,7 +148,8 @@ describe "絵文字が" do
144
148
  before(:each) do
145
149
  @res = Rack::MockRequest.env_for(
146
150
  "/",
147
- 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1")
151
+ 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1",
152
+ 'Content-Type' => 'text/html; charset=utf-8')
148
153
  end
149
154
 
150
155
  it "docomo 絵文字が変換されること" do
@@ -177,7 +182,8 @@ describe "絵文字が" do
177
182
  res = Rack::MockRequest.env_for(
178
183
  "/?#{query_string}",
179
184
  "REQUEST_METHOD" => "GET",
180
- 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1")
185
+ 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1",
186
+ 'Content-Type' => 'text/html; charset=utf-8')
181
187
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::ParamsFilter.new(Jpmobile::Rack::Filter.new(RenderParamApp.new))).call(res)
182
188
  req = Rack::Request.new(res[1])
183
189
  req.params['q'].should == [0xf04a].pack("U")
@@ -189,7 +195,8 @@ describe "絵文字が" do
189
195
  before(:each) do
190
196
  @res = Rack::MockRequest.env_for(
191
197
  "/",
192
- 'HTTP_USER_AGENT' => "Vodafone/1.0/V705SH/SHJ001/SN000000000000000 Browser/VF-NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1")
198
+ 'HTTP_USER_AGENT' => "Vodafone/1.0/V705SH/SHJ001/SN000000000000000 Browser/VF-NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1",
199
+ 'Content-Type' => 'text/html; charset=utf-8')
193
200
  end
194
201
 
195
202
  it "softbank 絵文字が変換されること" do
@@ -205,7 +212,8 @@ describe "絵文字が" do
205
212
  res = Rack::MockRequest.env_for(
206
213
  "/?#{query_string}",
207
214
  "REQUEST_METHOD" => "GET",
208
- 'HTTP_USER_AGENT' => "Vodafone/1.0/V705SH/SHJ001/SN000000000000000 Browser/VF-NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1")
215
+ 'HTTP_USER_AGENT' => "Vodafone/1.0/V705SH/SHJ001/SN000000000000000 Browser/VF-NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1",
216
+ 'Content-Type' => 'text/html; charset=utf-8')
209
217
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::ParamsFilter.new(Jpmobile::Rack::Filter.new(RenderParamApp.new))).call(res)
210
218
  req = Rack::Request.new(res[1])
211
219
  req.params['q'].should == [0xf04a].pack("U")
@@ -16,11 +16,69 @@ describe Jpmobile::Rack::Filter do
16
16
  res = Rack::MockRequest.env_for(
17
17
  "/",
18
18
  "REQUEST_METHOD" => "GET",
19
- 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)')
19
+ 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)',
20
+ 'Content-Type' => 'text/html; charset=utf-8')
20
21
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8))).call(res)
21
22
  res[1]['Content-Type'].should == "text/html; charset=Shift_JIS"
22
23
  response_body(res).should == @sjis
23
24
  end
25
+
26
+ context "Content-Type" do
27
+ it "が application/xhtml+xml のときに変換されること" do
28
+ res = Rack::MockRequest.env_for(
29
+ "/",
30
+ "REQUEST_METHOD" => "GET",
31
+ 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)',
32
+ 'Content-Type' => 'application/xhtml+xml; charset=utf-8')
33
+ res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8))).call(res)
34
+ res[1]['Content-Type'].should == "application/xhtml+xml; charset=Shift_JIS"
35
+ response_body(res).should == @sjis
36
+ end
37
+
38
+ it "が application/xml のときに変換されないこと" do
39
+ res = Rack::MockRequest.env_for(
40
+ "/",
41
+ "REQUEST_METHOD" => "GET",
42
+ 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)',
43
+ 'Content-Type' => 'application/xml; charset=utf-8')
44
+ res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8))).call(res)
45
+ res[1]['Content-Type'].should == "application/xml; charset=utf-8"
46
+ response_body(res).should == @utf8
47
+ end
48
+
49
+ it "が image/jpeg のときに変換されないこと" do
50
+ res = Rack::MockRequest.env_for(
51
+ "/",
52
+ "REQUEST_METHOD" => "GET",
53
+ 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)',
54
+ 'Content-Type' => 'image/jpeg')
55
+ res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8))).call(res)
56
+ res[1]['Content-Type'].should == "image/jpeg"
57
+ response_body(res).should == @utf8
58
+ end
59
+
60
+ it "が application/octet-stream のときに変換されないこと" do
61
+ res = Rack::MockRequest.env_for(
62
+ "/",
63
+ "REQUEST_METHOD" => "GET",
64
+ 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)',
65
+ 'Content-Type' => 'application/octet-stream')
66
+ res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8))).call(res)
67
+ res[1]['Content-Type'].should == "application/octet-stream"
68
+ response_body(res).should == @utf8
69
+ end
70
+
71
+ it "が video/mpeg のときに変換されないこと" do
72
+ res = Rack::MockRequest.env_for(
73
+ "/",
74
+ "REQUEST_METHOD" => "GET",
75
+ 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)',
76
+ 'Content-Type' => 'video/mpeg')
77
+ res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8))).call(res)
78
+ res[1]['Content-Type'].should == "video/mpeg"
79
+ response_body(res).should == @utf8
80
+ end
81
+ end
24
82
  end
25
83
 
26
84
  context "au のとき" do
@@ -28,7 +86,8 @@ describe Jpmobile::Rack::Filter do
28
86
  res = Rack::MockRequest.env_for(
29
87
  "/",
30
88
  "REQUEST_METHOD" => "GET",
31
- 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0")
89
+ 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
90
+ 'Content-Type' => 'text/html; charset=utf-8')
32
91
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8))).call(res)
33
92
  res[1]['Content-Type'].should == "text/html; charset=Shift_JIS"
34
93
  response_body(res).should == @sjis
@@ -40,9 +99,10 @@ describe Jpmobile::Rack::Filter do
40
99
  res = Rack::MockRequest.env_for(
41
100
  "/",
42
101
  "REQUEST_METHOD" => "GET",
43
- 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1")
102
+ 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1",
103
+ 'Content-Type' => 'text/html; charset=utf-8')
44
104
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8))).call(res)
45
- res[1]['Content-Type'].should == "text/html"
105
+ res[1]['Content-Type'].should == "text/html; charset=utf-8"
46
106
  response_body(res).should == @utf8
47
107
  end
48
108
  end
@@ -51,7 +111,8 @@ describe Jpmobile::Rack::Filter do
51
111
  req = Rack::MockRequest.env_for(
52
112
  "/",
53
113
  "REQUEST_METHOD" => "GET",
54
- 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)')
114
+ 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)',
115
+ 'Content-Type' => 'text/html; charset=utf-8')
55
116
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new('<input name="utf8" type="hidden" value="&#x2713;" />'))).call(req)
56
117
  res[1]['Content-Type'].should == "text/html; charset=Shift_JIS"
57
118
  response_body(res).should == " "
@@ -65,7 +126,8 @@ describe Jpmobile::Rack::Filter do
65
126
  req = Rack::MockRequest.env_for(
66
127
  "/",
67
128
  "REQUEST_METHOD" => "GET",
68
- 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)')
129
+ 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)',
130
+ 'Content-Type' => 'text/html; charset=utf-8')
69
131
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new("<input name=\"utf8\" type=\"hidden\" value=\"#{[10003].pack("U")}\" />"))).call(req)
70
132
  res[1]['Content-Type'].should == "text/html; charset=Shift_JIS"
71
133
  response_body(res).should == " "
@@ -97,7 +159,8 @@ describe Jpmobile::Rack::Filter do
97
159
  res = Rack::MockRequest.env_for(
98
160
  "/",
99
161
  "REQUEST_METHOD" => "GET",
100
- 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)')
162
+ 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)',
163
+ 'Content-Type' => 'text/html; charset=utf-8')
101
164
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8 + @emoji_docomo_cr))).call(res)
102
165
  response_body(res).should == @sjis + @docomo_emoji
103
166
  end
@@ -106,7 +169,8 @@ describe Jpmobile::Rack::Filter do
106
169
  res = Rack::MockRequest.env_for(
107
170
  "/",
108
171
  "REQUEST_METHOD" => "GET",
109
- 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)')
172
+ 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)',
173
+ 'Content-Type' => 'text/html; charset=utf-8')
110
174
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8 + @emoji_docomo_utf8))).call(res)
111
175
  response_body(res).should == @sjis + @docomo_emoji
112
176
  end
@@ -115,7 +179,8 @@ describe Jpmobile::Rack::Filter do
115
179
  res = Rack::MockRequest.env_for(
116
180
  "/",
117
181
  "REQUEST_METHOD" => "GET",
118
- 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)')
182
+ 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)',
183
+ 'Content-Type' => 'text/html; charset=utf-8')
119
184
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8 + @emoji_au_utf8))).call(res)
120
185
  response_body(res).should == @sjis + @docomo_emoji
121
186
  end
@@ -124,7 +189,8 @@ describe Jpmobile::Rack::Filter do
124
189
  res = Rack::MockRequest.env_for(
125
190
  "/",
126
191
  "REQUEST_METHOD" => "GET",
127
- 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)')
192
+ 'HTTP_USER_AGENT' => 'DoCoMo/2.0 SH906i(c100;TB;W24H16)',
193
+ 'Content-Type' => 'text/html; charset=utf-8')
128
194
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8 + @emoji_softbank_utf8))).call(res)
129
195
  response_body(res).should == @sjis + @docomo_emoji
130
196
  end
@@ -135,7 +201,8 @@ describe Jpmobile::Rack::Filter do
135
201
  res = Rack::MockRequest.env_for(
136
202
  "/",
137
203
  "REQUEST_METHOD" => "GET",
138
- 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0")
204
+ 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
205
+ 'Content-Type' => 'text/html; charset=utf-8')
139
206
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8 + @emoji_au_cr))).call(res)
140
207
  response_body(res).should == @sjis + @au_emoji
141
208
  end
@@ -144,7 +211,8 @@ describe Jpmobile::Rack::Filter do
144
211
  res = Rack::MockRequest.env_for(
145
212
  "/",
146
213
  "REQUEST_METHOD" => "GET",
147
- 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0")
214
+ 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
215
+ 'Content-Type' => 'text/html; charset=utf-8')
148
216
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8 + @emoji_docomo_utf8))).call(res)
149
217
  response_body(res).should == @sjis + @au_emoji
150
218
  end
@@ -153,7 +221,8 @@ describe Jpmobile::Rack::Filter do
153
221
  res = Rack::MockRequest.env_for(
154
222
  "/",
155
223
  "REQUEST_METHOD" => "GET",
156
- 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0")
224
+ 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
225
+ 'Content-Type' => 'text/html; charset=utf-8')
157
226
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8 + @emoji_au_utf8))).call(res)
158
227
  response_body(res).should == @sjis + @au_emoji
159
228
  end
@@ -162,7 +231,8 @@ describe Jpmobile::Rack::Filter do
162
231
  res = Rack::MockRequest.env_for(
163
232
  "/",
164
233
  "REQUEST_METHOD" => "GET",
165
- 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0")
234
+ 'HTTP_USER_AGENT' => "KDDI-CA32 UP.Browser/6.2.0.7.3.129 (GUI) MMP/2.0",
235
+ 'Content-Type' => 'text/html; charset=utf-8')
166
236
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8 + @emoji_softbank_utf8))).call(res)
167
237
  response_body(res).should == @sjis + @au_emoji
168
238
  end
@@ -173,7 +243,8 @@ describe Jpmobile::Rack::Filter do
173
243
  res = Rack::MockRequest.env_for(
174
244
  "/",
175
245
  "REQUEST_METHOD" => "GET",
176
- 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1")
246
+ 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1",
247
+ 'Content-Type' => 'text/html; charset=utf-8')
177
248
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8 + @emoji_softbank_cr))).call(res)
178
249
  response_body(res).should == @utf8 + @softbank_emoji
179
250
  end
@@ -182,7 +253,8 @@ describe Jpmobile::Rack::Filter do
182
253
  res = Rack::MockRequest.env_for(
183
254
  "/",
184
255
  "REQUEST_METHOD" => "GET",
185
- 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1")
256
+ 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1",
257
+ 'Content-Type' => 'text/html; charset=utf-8')
186
258
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8 + @emoji_docomo_utf8))).call(res)
187
259
  response_body(res).should == @utf8 + @softbank_emoji
188
260
  end
@@ -191,7 +263,8 @@ describe Jpmobile::Rack::Filter do
191
263
  res = Rack::MockRequest.env_for(
192
264
  "/",
193
265
  "REQUEST_METHOD" => "GET",
194
- 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1")
266
+ 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1",
267
+ 'Content-Type' => 'text/html; charset=utf-8')
195
268
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8 + @emoji_au_utf8))).call(res)
196
269
  response_body(res).should == @utf8 + @softbank_emoji
197
270
  end
@@ -200,7 +273,8 @@ describe Jpmobile::Rack::Filter do
200
273
  res = Rack::MockRequest.env_for(
201
274
  "/",
202
275
  "REQUEST_METHOD" => "GET",
203
- 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1")
276
+ 'HTTP_USER_AGENT' => "SoftBank/1.0/910T/TJ001/SN000000000000000 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1",
277
+ 'Content-Type' => 'text/html; charset=utf-8')
204
278
  res = Jpmobile::Rack::MobileCarrier.new(Jpmobile::Rack::Filter.new(UnitApplication.new(@utf8 + @emoji_softbank_utf8))).call(res)
205
279
  response_body(res).should == @utf8 + @softbank_emoji
206
280
  end
data/spec/rack_helper.rb CHANGED
@@ -4,7 +4,9 @@ require 'rack/test'
4
4
  require 'rspec'
5
5
  require 'jpmobile'
6
6
  require 'jpmobile/rack'
7
+ require 'nkf'
7
8
  require 'pp' # for debug
9
+
8
10
  begin
9
11
  require File.dirname(__FILE__)+'/../vendor/jpmobile-ipaddresses/lib/jpmobile-ipaddresses'
10
12
  rescue LoadError
data/spec/spec_helper.rb CHANGED
@@ -4,8 +4,6 @@ unless RSpec.const_defined?(:Rails)
4
4
 
5
5
  # jpmobileの読み込み
6
6
  require 'rubygems'
7
- require 'action_controller'
8
- require 'action_mailer'
9
7
  require 'initializer'
10
8
  require dir+'/../lib/jpmobile'
11
9
  begin
@@ -20,29 +18,5 @@ unless RSpec.const_defined?(:Rails)
20
18
  puts "Terminal display information test requires jpmobile-terminfo module"
21
19
  end
22
20
 
23
- # set (dummy) RAILS_ROOT
24
- RAILS_ROOT=dir+"/.."
25
-
26
- # load RSpec on Rails
27
- rspec_base = dir + '/../vendor/plugins/rspec-rails/lib'
28
- $LOAD_PATH.unshift rspec_base
29
- ActiveSupport::Dependencies.load_paths.unshift rspec_base
30
- ActiveSupport::Dependencies.load_once_paths.unshift rspec_base
31
-
32
- # application.rb を先に読ませる
33
- $LOAD_PATH.unshift "#{dir}/../spec_resources/controllers"
34
- require 'application'
35
-
36
- # setup resources
37
- Dir[File.expand_path("#{dir}/../spec_resources/**/*.rb")].sort.each do |file|
38
- require file
39
- end
40
-
41
- # setup routes
42
- ActionController::Routing::Routes.draw do |map|
43
- map.connect ':controller/:action/:id.:format'
44
- map.connect ':controller/:action/:id'
45
- end
46
-
47
21
  require 'rspec/rails'
48
22
  end