actionpack 6.0.0.beta1 → 6.0.1.rc1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of actionpack might be problematic. Click here for more details.

Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +125 -13
  3. data/README.rdoc +2 -1
  4. data/lib/abstract_controller/caching/fragments.rb +0 -1
  5. data/lib/abstract_controller/translation.rb +1 -0
  6. data/lib/action_controller.rb +4 -1
  7. data/lib/action_controller/metal.rb +3 -3
  8. data/lib/action_controller/metal/basic_implicit_render.rb +1 -1
  9. data/lib/action_controller/metal/etag_with_template_digest.rb +1 -1
  10. data/lib/action_controller/metal/exceptions.rb +2 -2
  11. data/lib/action_controller/metal/force_ssl.rb +1 -2
  12. data/lib/action_controller/metal/helpers.rb +2 -2
  13. data/lib/action_controller/metal/implicit_render.rb +2 -2
  14. data/lib/action_controller/metal/live.rb +2 -2
  15. data/lib/action_controller/metal/mime_responds.rb +1 -1
  16. data/lib/action_controller/metal/params_wrapper.rb +2 -2
  17. data/lib/action_controller/metal/redirecting.rb +6 -27
  18. data/lib/action_controller/metal/renderers.rb +4 -4
  19. data/lib/action_controller/metal/rendering.rb +1 -1
  20. data/lib/action_controller/metal/request_forgery_protection.rb +2 -2
  21. data/lib/action_controller/metal/strong_parameters.rb +6 -12
  22. data/lib/action_controller/renderer.rb +2 -2
  23. data/lib/action_controller/template_assertions.rb +1 -1
  24. data/lib/action_controller/test_case.rb +3 -2
  25. data/lib/action_dispatch.rb +1 -1
  26. data/lib/action_dispatch/http/content_security_policy.rb +20 -9
  27. data/lib/action_dispatch/http/mime_negotiation.rb +5 -0
  28. data/lib/action_dispatch/http/mime_type.rb +13 -1
  29. data/lib/action_dispatch/http/response.rb +27 -7
  30. data/lib/action_dispatch/http/upload.rb +4 -1
  31. data/lib/action_dispatch/journey/formatter.rb +1 -1
  32. data/lib/action_dispatch/journey/path/pattern.rb +6 -1
  33. data/lib/action_dispatch/journey/route.rb +5 -4
  34. data/lib/action_dispatch/journey/routes.rb +0 -1
  35. data/lib/action_dispatch/middleware/actionable_exceptions.rb +39 -0
  36. data/lib/action_dispatch/middleware/cookies.rb +9 -10
  37. data/lib/action_dispatch/middleware/debug_exceptions.rb +8 -2
  38. data/lib/action_dispatch/middleware/debug_view.rb +19 -1
  39. data/lib/action_dispatch/middleware/exception_wrapper.rb +15 -10
  40. data/lib/action_dispatch/middleware/host_authorization.rb +2 -2
  41. data/lib/action_dispatch/middleware/public_exceptions.rb +6 -2
  42. data/lib/action_dispatch/middleware/remote_ip.rb +3 -3
  43. data/lib/action_dispatch/middleware/session/cookie_store.rb +4 -3
  44. data/lib/action_dispatch/middleware/show_exceptions.rb +1 -1
  45. data/lib/action_dispatch/middleware/stack.rb +34 -2
  46. data/lib/action_dispatch/middleware/templates/rescues/_actions.html.erb +13 -0
  47. data/lib/action_dispatch/middleware/templates/rescues/_actions.text.erb +0 -0
  48. data/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb +3 -1
  49. data/lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb +1 -1
  50. data/lib/action_dispatch/middleware/templates/rescues/blocked_host.html.erb +2 -2
  51. data/lib/action_dispatch/middleware/templates/rescues/blocked_host.text.erb +2 -2
  52. data/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb +6 -2
  53. data/lib/action_dispatch/middleware/templates/rescues/diagnostics.text.erb +1 -1
  54. data/lib/action_dispatch/middleware/templates/rescues/invalid_statement.html.erb +4 -1
  55. data/lib/action_dispatch/middleware/templates/rescues/invalid_statement.text.erb +3 -1
  56. data/lib/action_dispatch/middleware/templates/rescues/layout.erb +4 -0
  57. data/lib/action_dispatch/railtie.rb +6 -2
  58. data/lib/action_dispatch/routing.rb +18 -18
  59. data/lib/action_dispatch/routing/mapper.rb +26 -11
  60. data/lib/action_dispatch/routing/route_set.rb +13 -15
  61. data/lib/action_dispatch/system_test_case.rb +43 -5
  62. data/lib/action_dispatch/system_testing/browser.rb +38 -7
  63. data/lib/action_dispatch/system_testing/driver.rb +10 -1
  64. data/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb +3 -2
  65. data/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb +7 -6
  66. data/lib/action_dispatch/testing/assertions.rb +1 -1
  67. data/lib/action_dispatch/testing/assertions/routing.rb +8 -1
  68. data/lib/action_dispatch/testing/integration.rb +2 -2
  69. data/lib/action_dispatch/testing/request_encoder.rb +2 -2
  70. data/lib/action_dispatch/testing/test_response.rb +1 -1
  71. data/lib/action_pack/gem_version.rb +2 -2
  72. metadata +20 -15
  73. data/lib/action_dispatch/system_testing/test_helpers/undef_methods.rb +0 -26
@@ -3,11 +3,14 @@
3
3
  module ActionDispatch
4
4
  module SystemTesting
5
5
  class Driver # :nodoc:
6
- def initialize(name, **options)
6
+ def initialize(name, **options, &capabilities)
7
7
  @name = name
8
8
  @browser = Browser.new(options[:using])
9
9
  @screen_size = options[:screen_size]
10
10
  @options = options[:options]
11
+ @capabilities = capabilities
12
+
13
+ @browser.preload
11
14
  end
12
15
 
13
16
  def use
@@ -22,6 +25,8 @@ module ActionDispatch
22
25
  end
23
26
 
24
27
  def register
28
+ define_browser_capabilities(@browser.capabilities)
29
+
25
30
  Capybara.register_driver @name do |app|
26
31
  case @name
27
32
  when :selenium then register_selenium(app)
@@ -31,6 +36,10 @@ module ActionDispatch
31
36
  end
32
37
  end
33
38
 
39
+ def define_browser_capabilities(capabilities)
40
+ @capabilities.call(capabilities) if @capabilities
41
+ end
42
+
34
43
  def browser_options
35
44
  @options.merge(options: @browser.options).compact
36
45
  end
@@ -20,7 +20,7 @@ module ActionDispatch
20
20
  # * [+inline+] Display the screenshot in the terminal using the
21
21
  # iTerm image protocol (https://iterm2.com/documentation-images.html).
22
22
  # * [+artifact+] Display the screenshot in the terminal, using the terminal
23
- # artifact format (https://buildkite.github.io/terminal/inline-images/).
23
+ # artifact format (https://buildkite.github.io/terminal-to-html/inline-images/).
24
24
  def take_screenshot
25
25
  save_image
26
26
  puts display_image
@@ -39,7 +39,8 @@ module ActionDispatch
39
39
 
40
40
  private
41
41
  def image_name
42
- failed? ? "failures_#{method_name}" : method_name
42
+ name = method_name[0...225]
43
+ failed? ? "failures_#{name}" : name
43
44
  end
44
45
 
45
46
  def image_path
@@ -7,7 +7,6 @@ module ActionDispatch
7
7
  DEFAULT_HOST = "http://127.0.0.1"
8
8
 
9
9
  def host!(host)
10
- super
11
10
  Capybara.app_host = host
12
11
  end
13
12
 
@@ -16,12 +15,14 @@ module ActionDispatch
16
15
  super
17
16
  end
18
17
 
18
+ def before_teardown
19
+ take_failed_screenshot
20
+ ensure
21
+ super
22
+ end
23
+
19
24
  def after_teardown
20
- begin
21
- take_failed_screenshot
22
- ensure
23
- Capybara.reset_sessions!
24
- end
25
+ Capybara.reset_sessions!
25
26
  ensure
26
27
  super
27
28
  end
@@ -14,7 +14,7 @@ module ActionDispatch
14
14
  include Rails::Dom::Testing::Assertions
15
15
 
16
16
  def html_document
17
- @html_document ||= if @response.content_type.to_s.end_with?("xml")
17
+ @html_document ||= if @response.media_type.to_s.end_with?("xml")
18
18
  Nokogiri::XML::Document.parse(@response.body)
19
19
  else
20
20
  Nokogiri::HTML::Document.parse(@response.body)
@@ -160,9 +160,16 @@ module ActionDispatch
160
160
  @controller.singleton_class.include(_routes.url_helpers)
161
161
 
162
162
  if @controller.respond_to? :view_context_class
163
- @controller.view_context_class = Class.new(@controller.view_context_class) do
163
+ view_context_class = Class.new(@controller.view_context_class) do
164
164
  include _routes.url_helpers
165
165
  end
166
+
167
+ custom_view_context = Module.new {
168
+ define_method(:view_context_class) do
169
+ view_context_class
170
+ end
171
+ }
172
+ @controller.extend(custom_view_context)
166
173
  end
167
174
  end
168
175
  yield @routes
@@ -194,7 +194,7 @@ module ActionDispatch
194
194
  # Adds request headers characteristic of XMLHttpRequest e.g. HTTP_X_REQUESTED_WITH.
195
195
  # The headers will be merged into the Rack env hash.
196
196
  # - +as+: Used for encoding the request with different content type.
197
- # Supports `:json` by default and will set the approriate request headers.
197
+ # Supports `:json` by default and will set the appropriate request headers.
198
198
  # The headers will be merged into the Rack env hash.
199
199
  #
200
200
  # This method is rarely used directly. Use +#get+, +#post+, or other standard
@@ -335,7 +335,7 @@ module ActionDispatch
335
335
  klass = APP_SESSIONS[app] ||= Class.new(Integration::Session) {
336
336
  # If the app is a Rails app, make url_helpers available on the session.
337
337
  # This makes app.url_for and app.foo_path available in the console.
338
- if app.respond_to?(:routes)
338
+ if app.respond_to?(:routes) && app.routes.is_a?(ActionDispatch::Routing::RouteSet)
339
339
  include app.routes.url_helpers
340
340
  include app.routes.mounted_helpers
341
341
  end
@@ -38,8 +38,8 @@ module ActionDispatch
38
38
  end
39
39
 
40
40
  def self.parser(content_type)
41
- mime = Mime::Type.lookup(content_type)
42
- encoder(mime ? mime.ref : nil).response_parser
41
+ type = Mime::Type.lookup(content_type).ref if content_type
42
+ encoder(type).response_parser
43
43
  end
44
44
 
45
45
  def self.encoder(name)
@@ -19,7 +19,7 @@ module ActionDispatch
19
19
  end
20
20
 
21
21
  def response_parser
22
- @response_parser ||= RequestEncoder.parser(content_type)
22
+ @response_parser ||= RequestEncoder.parser(media_type)
23
23
  end
24
24
  end
25
25
  end
@@ -9,8 +9,8 @@ module ActionPack
9
9
  module VERSION
10
10
  MAJOR = 6
11
11
  MINOR = 0
12
- TINY = 0
13
- PRE = "beta1"
12
+ TINY = 1
13
+ PRE = "rc1"
14
14
 
15
15
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
16
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionpack
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0.beta1
4
+ version: 6.0.1.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-18 00:00:00.000000000 Z
11
+ date: 2019-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 6.0.0.beta1
19
+ version: 6.0.1.rc1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 6.0.0.beta1
26
+ version: 6.0.1.rc1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rack
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -61,7 +61,7 @@ dependencies:
61
61
  version: '1.0'
62
62
  - - ">="
63
63
  - !ruby/object:Gem::Version
64
- version: 1.0.2
64
+ version: 1.2.0
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
@@ -71,7 +71,7 @@ dependencies:
71
71
  version: '1.0'
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: 1.0.2
74
+ version: 1.2.0
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: rails-dom-testing
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -92,28 +92,28 @@ dependencies:
92
92
  requirements:
93
93
  - - '='
94
94
  - !ruby/object:Gem::Version
95
- version: 6.0.0.beta1
95
+ version: 6.0.1.rc1
96
96
  type: :runtime
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - '='
101
101
  - !ruby/object:Gem::Version
102
- version: 6.0.0.beta1
102
+ version: 6.0.1.rc1
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: activemodel
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - '='
108
108
  - !ruby/object:Gem::Version
109
- version: 6.0.0.beta1
109
+ version: 6.0.1.rc1
110
110
  type: :development
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - '='
115
115
  - !ruby/object:Gem::Version
116
- version: 6.0.0.beta1
116
+ version: 6.0.1.rc1
117
117
  description: Web apps on Rails. Simple, battle-tested conventions for building and
118
118
  testing MVC web applications. Works with any Rack-compatible server.
119
119
  email: david@loudthinking.com
@@ -220,6 +220,7 @@ files:
220
220
  - lib/action_dispatch/journey/visualizer/fsm.css
221
221
  - lib/action_dispatch/journey/visualizer/fsm.js
222
222
  - lib/action_dispatch/journey/visualizer/index.html.erb
223
+ - lib/action_dispatch/middleware/actionable_exceptions.rb
223
224
  - lib/action_dispatch/middleware/callbacks.rb
224
225
  - lib/action_dispatch/middleware/cookies.rb
225
226
  - lib/action_dispatch/middleware/debug_exceptions.rb
@@ -241,6 +242,8 @@ files:
241
242
  - lib/action_dispatch/middleware/ssl.rb
242
243
  - lib/action_dispatch/middleware/stack.rb
243
244
  - lib/action_dispatch/middleware/static.rb
245
+ - lib/action_dispatch/middleware/templates/rescues/_actions.html.erb
246
+ - lib/action_dispatch/middleware/templates/rescues/_actions.text.erb
244
247
  - lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
245
248
  - lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb
246
249
  - lib/action_dispatch/middleware/templates/rescues/_source.html.erb
@@ -284,7 +287,6 @@ files:
284
287
  - lib/action_dispatch/system_testing/server.rb
285
288
  - lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb
286
289
  - lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb
287
- - lib/action_dispatch/system_testing/test_helpers/undef_methods.rb
288
290
  - lib/action_dispatch/testing/assertion_response.rb
289
291
  - lib/action_dispatch/testing/assertions.rb
290
292
  - lib/action_dispatch/testing/assertions/response.rb
@@ -297,12 +299,15 @@ files:
297
299
  - lib/action_pack.rb
298
300
  - lib/action_pack/gem_version.rb
299
301
  - lib/action_pack/version.rb
300
- homepage: http://rubyonrails.org
302
+ homepage: https://rubyonrails.org
301
303
  licenses:
302
304
  - MIT
303
305
  metadata:
304
- source_code_uri: https://github.com/rails/rails/tree/v6.0.0.beta1/actionpack
305
- changelog_uri: https://github.com/rails/rails/blob/v6.0.0.beta1/actionpack/CHANGELOG.md
306
+ bug_tracker_uri: https://github.com/rails/rails/issues
307
+ changelog_uri: https://github.com/rails/rails/blob/v6.0.1.rc1/actionpack/CHANGELOG.md
308
+ documentation_uri: https://api.rubyonrails.org/v6.0.1.rc1/
309
+ mailing_list_uri: https://groups.google.com/forum/#!forum/rubyonrails-talk
310
+ source_code_uri: https://github.com/rails/rails/tree/v6.0.1.rc1/actionpack
306
311
  post_install_message:
307
312
  rdoc_options: []
308
313
  require_paths:
@@ -319,7 +324,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
319
324
  version: 1.3.1
320
325
  requirements:
321
326
  - none
322
- rubygems_version: 3.0.1
327
+ rubygems_version: 3.0.3
323
328
  signing_key:
324
329
  specification_version: 4
325
330
  summary: Web-flow and rendering framework putting the VC in MVC (part of Rails).
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActionDispatch
4
- module SystemTesting
5
- module TestHelpers
6
- module UndefMethods # :nodoc:
7
- extend ActiveSupport::Concern
8
- included do
9
- METHODS = %i(get post put patch delete).freeze
10
-
11
- METHODS.each do |verb|
12
- undef_method verb
13
- end
14
-
15
- def method_missing(method, *args, &block)
16
- if METHODS.include?(method)
17
- raise NoMethodError, "System tests cannot make direct requests via ##{method}; use #visit and #click_on instead. See http://www.rubydoc.info/github/teamcapybara/capybara/master#The_DSL for more information."
18
- else
19
- super
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end