jpmobile 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
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