actionpack 5.1.1 → 5.1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b14b6845502b6823e3bbf9cf71fb0845ca50277
4
- data.tar.gz: ec739a904ca759c84562fe50c3bb45e16423e8dc
3
+ metadata.gz: 10467f388931246ef3053f875b8c44ebd935da97
4
+ data.tar.gz: 45206486f362d56ae7faae72f28a596ca92889bb
5
5
  SHA512:
6
- metadata.gz: 3fe88ecd87b2e4a6317ea69f16b5d69a7c967463ce6fe3f0283691e7ba5f025a44837c6339b04dc55293789a645fecc82f1e1315a8c5b05ebafc7a9fd402dea9
7
- data.tar.gz: fd283a204da124f8b65c66b83d1f81a762f2e97ccd19b7d1953accd8c5a03df879f9c70fa28a50b05fbc8cb824cebf5b683b1e0ecaab09897bea80e3fa490f90
6
+ metadata.gz: 4986c5b6e6db28ce0178e992abdd1f03bb1bb6ee336911e7624631c3ec77f6e8a38f1a981f00086d8d6b0e81ca8be09988cfcd532dbd0a6b574d67aebaa870a5
7
+ data.tar.gz: 49416affd8c28220583f72787643b9aaa663ca9f37036a21eceecf73cfe38e56ed50bf7aa7e20e635633cf3ac61113965f4c92d4d9befb37e6a07a2559dfba37
data/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ ## Rails 5.1.2.rc1 (June 20, 2017) ##
2
+
3
+ * `driven_by` now registers poltergeist and capybara-webkit
4
+
5
+ If driver poltergeist or capybara-webkit is set for System Tests,
6
+ `driven_by` will register the driver and set additional options passed via
7
+ `:options` param.
8
+
9
+ Refer to drivers documentation to learn what options can be passed.
10
+
11
+ *Mario Chavez*
12
+
13
+ * AEAD encrypted cookies and sessions with GCM
14
+
15
+ ## Rails 5.1.1 (May 12, 2017) ##
16
+
17
+ * No changes.
18
+
19
+
1
20
  ## Rails 5.1.0 (April 27, 2017) ##
2
21
 
3
22
  * Raise exception when calling `to_h` and `to_hash` in an unpermitted Parameters.
@@ -13,7 +13,7 @@ module AbstractController
13
13
  path = controller_path.tr("/", ".")
14
14
  defaults = [:"#{path}#{key}"]
15
15
  defaults << options[:default] if options[:default]
16
- options[:default] = defaults
16
+ options[:default] = defaults.flatten
17
17
  key = "#{path}.#{action_name}#{key}"
18
18
  end
19
19
  I18n.translate(key, options)
@@ -74,7 +74,7 @@ module ActionDispatch
74
74
  PAIR_RE = %r{(#{KV_RE})=(#{KV_RE})}
75
75
  def filtered_query_string # :doc:
76
76
  query_string.gsub(PAIR_RE) do |_|
77
- parameter_filter.filter([[$1, $2]]).first.join("=")
77
+ parameter_filter.filter($1 => $2).first.join("=")
78
78
  end
79
79
  end
80
80
  end
@@ -54,7 +54,7 @@ module ActionDispatch
54
54
  end
55
55
 
56
56
  def call(original_params, parents = [])
57
- filtered_params = {}
57
+ filtered_params = original_params.class.new
58
58
 
59
59
  original_params.each do |key, value|
60
60
  parents.push(key) if deep_regexps
@@ -27,14 +27,18 @@ module ActionDispatch
27
27
  @tempfile = hash[:tempfile]
28
28
  raise(ArgumentError, ":tempfile is required") unless @tempfile
29
29
 
30
- @original_filename = hash[:filename]
31
- if @original_filename
30
+ if hash[:filename]
31
+ @original_filename = hash[:filename].dup
32
+
32
33
  begin
33
34
  @original_filename.encode!(Encoding::UTF_8)
34
35
  rescue EncodingError
35
36
  @original_filename.force_encoding(Encoding::UTF_8)
36
37
  end
38
+ else
39
+ @original_filename = nil
37
40
  end
41
+
38
42
  @content_type = hash[:type]
39
43
  @headers = hash[:head]
40
44
  end
@@ -67,13 +67,17 @@ module ActionDispatch
67
67
  # To use a headless driver, like Poltergeist, update your Gemfile to use
68
68
  # Poltergeist instead of Selenium and then declare the driver name in the
69
69
  # +application_system_test_case.rb+ file. In this case you would leave out the +:using+
70
- # option because the driver is headless.
70
+ # option because the driver is headless, but you can still use
71
+ # +:screen_size+ to change the size of the browser screen, also you can use
72
+ # +:options+ to pass options supported by the driver. Please refeer to your
73
+ # driver documentation to learn about supported options.
71
74
  #
72
75
  # require "test_helper"
73
76
  # require "capybara/poltergeist"
74
77
  #
75
78
  # class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
76
- # driven_by :poltergeist
79
+ # driven_by :poltergeist, screen_size: [1400, 1400], options:
80
+ # { js_errors: true }
77
81
  # end
78
82
  #
79
83
  # Because <tt>ActionDispatch::SystemTestCase</tt> is a shim between Capybara
@@ -9,23 +9,42 @@ module ActionDispatch
9
9
  end
10
10
 
11
11
  def use
12
- register if selenium?
12
+ register unless rack_test?
13
+
13
14
  setup
14
15
  end
15
16
 
16
17
  private
17
- def selenium?
18
- @name == :selenium
18
+ def rack_test?
19
+ @name == :rack_test
19
20
  end
20
21
 
21
22
  def register
22
23
  Capybara.register_driver @name do |app|
23
- Capybara::Selenium::Driver.new(app, { browser: @browser }.merge(@options)).tap do |driver|
24
- driver.browser.manage.window.size = Selenium::WebDriver::Dimension.new(*@screen_size)
24
+ case @name
25
+ when :selenium then register_selenium(app)
26
+ when :poltergeist then register_poltergeist(app)
27
+ when :webkit then register_webkit(app)
25
28
  end
26
29
  end
27
30
  end
28
31
 
32
+ def register_selenium(app)
33
+ Capybara::Selenium::Driver.new(app, { browser: @browser }.merge(@options)).tap do |driver|
34
+ driver.browser.manage.window.size = Selenium::WebDriver::Dimension.new(*@screen_size)
35
+ end
36
+ end
37
+
38
+ def register_poltergeist(app)
39
+ Capybara::Poltergeist::Driver.new(app, @options.merge(window_size: @screen_size))
40
+ end
41
+
42
+ def register_webkit(app)
43
+ Capybara::Webkit::Driver.new(app, Capybara::Webkit::Configuration.to_hash.merge(@options)).tap do |driver|
44
+ driver.resize_window(*@screen_size)
45
+ end
46
+ end
47
+
29
48
  def setup
30
49
  Capybara.current_driver = @name
31
50
  end
@@ -2,7 +2,12 @@ module ActionDispatch
2
2
  module SystemTesting
3
3
  module TestHelpers
4
4
  module SetupAndTeardown # :nodoc:
5
- DEFAULT_HOST = "127.0.0.1"
5
+ DEFAULT_HOST = "http://127.0.0.1"
6
+
7
+ def host!(host)
8
+ super
9
+ Capybara.app_host = host
10
+ end
6
11
 
7
12
  def before_setup
8
13
  host! DEFAULT_HOST
@@ -7,8 +7,8 @@ module ActionPack
7
7
  module VERSION
8
8
  MAJOR = 5
9
9
  MINOR = 1
10
- TINY = 1
11
- PRE = nil
10
+ TINY = 2
11
+ PRE = "rc1"
12
12
 
13
13
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
14
14
  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: 5.1.1
4
+ version: 5.1.2.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: 2017-05-12 00:00:00.000000000 Z
11
+ date: 2017-06-20 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: 5.1.1
19
+ version: 5.1.2.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: 5.1.1
26
+ version: 5.1.2.rc1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rack
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -92,28 +92,28 @@ dependencies:
92
92
  requirements:
93
93
  - - '='
94
94
  - !ruby/object:Gem::Version
95
- version: 5.1.1
95
+ version: 5.1.2.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: 5.1.1
102
+ version: 5.1.2.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: 5.1.1
109
+ version: 5.1.2.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: 5.1.1
116
+ version: 5.1.2.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
@@ -298,15 +298,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
298
298
  version: 2.2.2
299
299
  required_rubygems_version: !ruby/object:Gem::Requirement
300
300
  requirements:
301
- - - ">="
301
+ - - ">"
302
302
  - !ruby/object:Gem::Version
303
- version: '0'
303
+ version: 1.3.1
304
304
  requirements:
305
305
  - none
306
306
  rubyforge_project:
307
- rubygems_version: 2.6.10
307
+ rubygems_version: 2.6.12
308
308
  signing_key:
309
309
  specification_version: 4
310
310
  summary: Web-flow and rendering framework putting the VC in MVC (part of Rails).
311
311
  test_files: []
312
- has_rdoc: