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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +125 -13
- data/README.rdoc +2 -1
- data/lib/abstract_controller/caching/fragments.rb +0 -1
- data/lib/abstract_controller/translation.rb +1 -0
- data/lib/action_controller.rb +4 -1
- data/lib/action_controller/metal.rb +3 -3
- data/lib/action_controller/metal/basic_implicit_render.rb +1 -1
- data/lib/action_controller/metal/etag_with_template_digest.rb +1 -1
- data/lib/action_controller/metal/exceptions.rb +2 -2
- data/lib/action_controller/metal/force_ssl.rb +1 -2
- data/lib/action_controller/metal/helpers.rb +2 -2
- data/lib/action_controller/metal/implicit_render.rb +2 -2
- data/lib/action_controller/metal/live.rb +2 -2
- data/lib/action_controller/metal/mime_responds.rb +1 -1
- data/lib/action_controller/metal/params_wrapper.rb +2 -2
- data/lib/action_controller/metal/redirecting.rb +6 -27
- data/lib/action_controller/metal/renderers.rb +4 -4
- data/lib/action_controller/metal/rendering.rb +1 -1
- data/lib/action_controller/metal/request_forgery_protection.rb +2 -2
- data/lib/action_controller/metal/strong_parameters.rb +6 -12
- data/lib/action_controller/renderer.rb +2 -2
- data/lib/action_controller/template_assertions.rb +1 -1
- data/lib/action_controller/test_case.rb +3 -2
- data/lib/action_dispatch.rb +1 -1
- data/lib/action_dispatch/http/content_security_policy.rb +20 -9
- data/lib/action_dispatch/http/mime_negotiation.rb +5 -0
- data/lib/action_dispatch/http/mime_type.rb +13 -1
- data/lib/action_dispatch/http/response.rb +27 -7
- data/lib/action_dispatch/http/upload.rb +4 -1
- data/lib/action_dispatch/journey/formatter.rb +1 -1
- data/lib/action_dispatch/journey/path/pattern.rb +6 -1
- data/lib/action_dispatch/journey/route.rb +5 -4
- data/lib/action_dispatch/journey/routes.rb +0 -1
- data/lib/action_dispatch/middleware/actionable_exceptions.rb +39 -0
- data/lib/action_dispatch/middleware/cookies.rb +9 -10
- data/lib/action_dispatch/middleware/debug_exceptions.rb +8 -2
- data/lib/action_dispatch/middleware/debug_view.rb +19 -1
- data/lib/action_dispatch/middleware/exception_wrapper.rb +15 -10
- data/lib/action_dispatch/middleware/host_authorization.rb +2 -2
- data/lib/action_dispatch/middleware/public_exceptions.rb +6 -2
- data/lib/action_dispatch/middleware/remote_ip.rb +3 -3
- data/lib/action_dispatch/middleware/session/cookie_store.rb +4 -3
- data/lib/action_dispatch/middleware/show_exceptions.rb +1 -1
- data/lib/action_dispatch/middleware/stack.rb +34 -2
- data/lib/action_dispatch/middleware/templates/rescues/_actions.html.erb +13 -0
- data/lib/action_dispatch/middleware/templates/rescues/_actions.text.erb +0 -0
- data/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb +3 -1
- data/lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb +1 -1
- data/lib/action_dispatch/middleware/templates/rescues/blocked_host.html.erb +2 -2
- data/lib/action_dispatch/middleware/templates/rescues/blocked_host.text.erb +2 -2
- data/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb +6 -2
- data/lib/action_dispatch/middleware/templates/rescues/diagnostics.text.erb +1 -1
- data/lib/action_dispatch/middleware/templates/rescues/invalid_statement.html.erb +4 -1
- data/lib/action_dispatch/middleware/templates/rescues/invalid_statement.text.erb +3 -1
- data/lib/action_dispatch/middleware/templates/rescues/layout.erb +4 -0
- data/lib/action_dispatch/railtie.rb +6 -2
- data/lib/action_dispatch/routing.rb +18 -18
- data/lib/action_dispatch/routing/mapper.rb +26 -11
- data/lib/action_dispatch/routing/route_set.rb +13 -15
- data/lib/action_dispatch/system_test_case.rb +43 -5
- data/lib/action_dispatch/system_testing/browser.rb +38 -7
- data/lib/action_dispatch/system_testing/driver.rb +10 -1
- data/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rb +3 -2
- data/lib/action_dispatch/system_testing/test_helpers/setup_and_teardown.rb +7 -6
- data/lib/action_dispatch/testing/assertions.rb +1 -1
- data/lib/action_dispatch/testing/assertions/routing.rb +8 -1
- data/lib/action_dispatch/testing/integration.rb +2 -2
- data/lib/action_dispatch/testing/request_encoder.rb +2 -2
- data/lib/action_dispatch/testing/test_response.rb +1 -1
- data/lib/action_pack/gem_version.rb +2 -2
- metadata +20 -15
- 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
|
-
|
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
|
-
|
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.
|
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
|
-
|
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
|
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
|
-
|
42
|
-
encoder(
|
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)
|
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.
|
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-
|
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.
|
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.
|
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
|
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
|
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.
|
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.
|
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.
|
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.
|
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:
|
302
|
+
homepage: https://rubyonrails.org
|
301
303
|
licenses:
|
302
304
|
- MIT
|
303
305
|
metadata:
|
304
|
-
|
305
|
-
changelog_uri: https://github.com/rails/rails/blob/v6.0.
|
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.
|
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
|