ndr_dev_support 5.3.1 → 5.4.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b32ca66c67616b510c163688cba811b0d36efbe7be719904506a24f1d754cbb5
4
- data.tar.gz: 585a6c3671608cfa789e37bdc4e977eec4aa86a7c310702719a02c7072086e2f
3
+ metadata.gz: d0e0d87efe5b091c6083e781b712ebb2d20613d292f6593264b45cd7faa4d990
4
+ data.tar.gz: 77405caeed1891584a713451456df807bb3bcee98fae5c144f09d202ec2e4db5
5
5
  SHA512:
6
- metadata.gz: a29f607a772393ec1a7237d7b8992d50c14ed2704387c35d930823733b26279b09b49e72e5970566c78d05cde6b15ec40b5b35974224c9db0a8c2023dc123730
7
- data.tar.gz: 8a359e64301b814f14a04341942fadae35e0675a9dcc6d179cb1ec9c3f91009213b712f6a6186d899929fb829889839d2b2745ef3727f910beeb2268c1986663
6
+ metadata.gz: 2537e824771e6abbac152b2f2c1006613c9ec52582d65b0665040d9f81ddfe0a5407d7ac191b5e9ce2b5de7bde3b3362206d8cd4abd2deeac40c09e8175804a3
7
+ data.tar.gz: 24d97bdfa01f28f8da310c28282cabf2dcb5172b2a0ad39b9f8230467a05660929b4723d7780163ace34e5f25388126a864ebcdba183bf5c9d7003e4f2baee48
data/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  ## [Unreleased]
2
2
  *no unreleased changes*
3
3
 
4
+ ## 5.4.0 / 2019-05-30
5
+ ### Added
6
+ * Introduce `show_me_the_cookies` into the integration testing DSL
7
+
8
+ ### Fixed
9
+ * Use command line args to prevent headless Chrome hanging
10
+
4
11
  ## 5.3.1 / 2019-05-20
5
12
  ### Fixed
6
13
  * Use `webdrivers` gem for Selenium WebDriver managements.
data/code_safety.yml CHANGED
@@ -19,7 +19,7 @@ file safety:
19
19
  CHANGELOG.md:
20
20
  comments:
21
21
  reviewed_by: josh.pencheon
22
- safe_revision: b87abcd1e7a0a02efbab463f7f992bbdb4b1a958
22
+ safe_revision: ca4471b6dbd4f8ef72574738f66f7f523721218c
23
23
  CODE_OF_CONDUCT.md:
24
24
  comments:
25
25
  reviewed_by: timgentry
@@ -115,27 +115,27 @@ file safety:
115
115
  lib/ndr_dev_support/integration_testing/drivers/chrome.rb:
116
116
  comments:
117
117
  reviewed_by: josh.pencheon
118
- safe_revision: 1ecf54219c77969066a142a42b694e805d69f8b4
118
+ safe_revision: f1a32b1f2d1851b87a883dbf8620aa0e921e436c
119
119
  lib/ndr_dev_support/integration_testing/drivers/chrome_headless.rb:
120
120
  comments:
121
121
  reviewed_by: josh.pencheon
122
- safe_revision: 1ecf54219c77969066a142a42b694e805d69f8b4
122
+ safe_revision: f1a32b1f2d1851b87a883dbf8620aa0e921e436c
123
123
  lib/ndr_dev_support/integration_testing/drivers/firefox.rb:
124
124
  comments:
125
125
  reviewed_by: josh.pencheon
126
- safe_revision: e0b3871607c649565330d6e62740ffd860930338
126
+ safe_revision: f1a32b1f2d1851b87a883dbf8620aa0e921e436c
127
127
  lib/ndr_dev_support/integration_testing/drivers/poltergeist.rb:
128
128
  comments:
129
129
  reviewed_by: josh.pencheon
130
- safe_revision: e0b3871607c649565330d6e62740ffd860930338
130
+ safe_revision: f1a32b1f2d1851b87a883dbf8620aa0e921e436c
131
131
  lib/ndr_dev_support/integration_testing/drivers/switchable.rb:
132
132
  comments:
133
133
  reviewed_by: josh.pencheon
134
- safe_revision: e0b3871607c649565330d6e62740ffd860930338
134
+ safe_revision: f1a32b1f2d1851b87a883dbf8620aa0e921e436c
135
135
  lib/ndr_dev_support/integration_testing/dsl.rb:
136
136
  comments:
137
137
  reviewed_by: josh.pencheon
138
- safe_revision: d347807124f115b337162646b524c42f59a0559e
138
+ safe_revision: f1a32b1f2d1851b87a883dbf8620aa0e921e436c
139
139
  lib/ndr_dev_support/rake_ci/brakeman_helper.rb:
140
140
  comments:
141
141
  reviewed_by: josh.pencheon
@@ -203,7 +203,7 @@ file safety:
203
203
  lib/ndr_dev_support/version.rb:
204
204
  comments:
205
205
  reviewed_by: josh.pencheon
206
- safe_revision: b87abcd1e7a0a02efbab463f7f992bbdb4b1a958
206
+ safe_revision: ca4471b6dbd4f8ef72574738f66f7f523721218c
207
207
  lib/tasks/audit_code.rake:
208
208
  comments: Identical to the version reviewed by josh.pencheon when contained within
209
209
  ndr_support
@@ -276,7 +276,7 @@ file safety:
276
276
  ndr_dev_support.gemspec:
277
277
  comments:
278
278
  reviewed_by: josh.pencheon
279
- safe_revision: 1ecf54219c77969066a142a42b694e805d69f8b4
279
+ safe_revision: f1a32b1f2d1851b87a883dbf8620aa0e921e436c
280
280
  test/daemon/ci_server_test.rb:
281
281
  comments:
282
282
  reviewed_by: josh.pencheon
@@ -1,4 +1,5 @@
1
1
  require 'selenium-webdriver'
2
+ require 'show_me_the_cookies'
2
3
 
3
4
  Capybara.register_driver(:chrome) do |app|
4
5
  Capybara::Selenium::Driver.new app, browser: :chrome
@@ -7,3 +8,5 @@ end
7
8
  Capybara::Screenshot.register_driver(:chrome) do |driver, path|
8
9
  driver.browser.save_screenshot(path)
9
10
  end
11
+
12
+ ShowMeTheCookies.register_adapter(:chrome, ShowMeTheCookies::SeleniumChrome)
@@ -1,8 +1,15 @@
1
1
  require 'selenium-webdriver'
2
+ require 'show_me_the_cookies'
2
3
 
3
4
  Capybara.register_driver(:chrome_headless) do |app|
4
5
  capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
5
- 'chromeOptions' => { args: %w[headless disable-gpu] }
6
+ chromeOptions: {
7
+ args: %w[
8
+ headless disable-gpu no-sandbox
9
+ --window-size=1920,1080
10
+ --enable-features=NetworkService,NetworkServiceInProcess
11
+ ]
12
+ }
6
13
  )
7
14
 
8
15
  Capybara::Selenium::Driver.new(
@@ -15,3 +22,5 @@ end
15
22
  Capybara::Screenshot.register_driver(:chrome_headless) do |driver, path|
16
23
  driver.browser.save_screenshot(path)
17
24
  end
25
+
26
+ ShowMeTheCookies.register_adapter(:chrome_headless, ShowMeTheCookies::SeleniumChrome)
@@ -1,4 +1,5 @@
1
1
  require 'selenium-webdriver'
2
+ require 'show_me_the_cookies'
2
3
 
3
4
  Capybara.register_driver(:firefox) do |app|
4
5
  Capybara::Selenium::Driver.new app, browser: :firefox
@@ -7,3 +8,5 @@ end
7
8
  Capybara::Screenshot.register_driver(:firefox) do |driver, path|
8
9
  driver.browser.save_screenshot(path)
9
10
  end
11
+
12
+ ShowMeTheCookies.register_adapter(:firefox, ShowMeTheCookies::Selenium)
@@ -1,5 +1,6 @@
1
1
  # The driver for PhantomJS is poltergeist:
2
2
  require 'capybara/poltergeist'
3
+ require 'show_me_the_cookies'
3
4
 
4
5
  Capybara.register_driver(:poltergeist) do |app|
5
6
  options = { phantomjs_options: ['--proxy-type=none'], timeout: 60 }
@@ -13,3 +14,5 @@ Capybara::Screenshot.register_driver(:poltergeist) do |driver, path|
13
14
  # Take full-height screenshots, rather than just capturing the viewport:
14
15
  driver.render(path, full: true)
15
16
  end
17
+
18
+ ShowMeTheCookies.register_adapter(:poltergeist, ShowMeTheCookies::Poltergeist)
@@ -1,21 +1,32 @@
1
- # A meta-driver that allows the driver to be set using the `INTEGRATION_DRIVER`
2
- # environment variable (e.g. for a CI matrix), assuming that driver has been pre-registered
3
- # with Capybara.
1
+ require 'show_me_the_cookies'
4
2
 
5
- # Although the aim is to move to Chrome headless, we keep poltergeist as the default
6
- # driver for now. For motivation behind not changing immediately, see the "Differences
7
- # between Poltergeist and Selenium" section of:
8
- #
9
- # https://about.gitlab.com/2017/12/19/moving-to-headless-chrome/
10
- #
11
- Capybara.register_driver(:switchable) do |app|
12
- choice = ENV.fetch('INTEGRATION_DRIVER', 'poltergeist').to_sym
3
+ module NdrDevSupport
4
+ module IntegrationTesting
5
+ module Drivers
6
+ # A meta-driver that allows the driver to be set using the `INTEGRATION_DRIVER`
7
+ # environment variable (e.g. for a CI matrix), assuming that driver has been pre-registered
8
+ # with Capybara.
13
9
 
14
- Capybara.drivers.fetch(choice).call(app)
15
- end
10
+ # Although the aim is to move to Chrome headless, we keep poltergeist as the default
11
+ # driver for now. For motivation behind not changing immediately, see the "Differences
12
+ # between Poltergeist and Selenium" section of:
13
+ #
14
+ # https://about.gitlab.com/2017/12/19/moving-to-headless-chrome/
15
+ #
16
+ module Switchable
17
+ DEFAULT = :poltergeist
18
+ CONFIGURED = ENV.fetch('INTEGRATION_DRIVER', DEFAULT).to_sym
19
+
20
+ Capybara.register_driver(:switchable) do |app|
21
+ Capybara.drivers.fetch(CONFIGURED).call(app)
22
+ end
16
23
 
17
- Capybara::Screenshot.register_driver(:switchable) do |driver, path|
18
- choice = ENV.fetch('INTEGRATION_DRIVER', 'poltergeist').to_sym
24
+ Capybara::Screenshot.register_driver(:switchable) do |driver, path|
25
+ Capybara::Screenshot.registered_drivers.fetch(CONFIGURED).call(driver, path)
26
+ end
19
27
 
20
- Capybara::Screenshot.registered_drivers.fetch(choice).call(driver, path)
28
+ ShowMeTheCookies.register_adapter(:switchable, ShowMeTheCookies.adapters.fetch(CONFIGURED))
29
+ end
30
+ end
31
+ end
21
32
  end
@@ -1,20 +1,25 @@
1
1
  require 'capybara/rails'
2
+ require 'show_me_the_cookies'
2
3
 
3
4
  module NdrDevSupport
4
5
  module IntegrationTesting
5
6
  # Additional integration testing DSL:
6
7
  module DSL
7
- # Instruct the headless browser to clear its session:
8
+ include ShowMeTheCookies
9
+
10
+ # Instruct the browser to clear its session:
8
11
  def clear_headless_session!
9
12
  page.driver.reset!
10
13
  end
11
14
 
12
- # Get the headless browser to delete all of the cookies
15
+ # Get the browser to delete all of the cookies
13
16
  # for the current page without resetting:
14
17
  def delete_all_cookies!
15
- page.driver.cookies.each_key do |name|
16
- page.driver.remove_cookie(name)
17
- end
18
+ ActiveSupport::Deprecation.warn(<<~MSG)
19
+ `delete_all_cookies!` is deprecated in favour of `expire_cookies`
20
+ MSG
21
+
22
+ expire_cookies
18
23
  end
19
24
 
20
25
  # Wrap up interacting with modals. The assumption is that the modal
@@ -2,5 +2,5 @@
2
2
  # This defines the NdrDevSupport version. If you change it, rebuild and commit the gem.
3
3
  # Use "rake build" to build the gem, see rake -T for all bundler rake tasks (and our own).
4
4
  module NdrDevSupport
5
- VERSION = '5.3.1'.freeze
5
+ VERSION = '5.4.0'.freeze
6
6
  end
@@ -33,10 +33,11 @@ Gem::Specification.new do |spec|
33
33
  spec.add_dependency 'unicode-display_width', '>= 1.3.3'
34
34
 
35
35
  # Integration test dependencies:
36
- spec.add_dependency 'capybara'
36
+ spec.add_dependency 'capybara', '>= 3.20'
37
37
  spec.add_dependency 'capybara-screenshot'
38
38
  spec.add_dependency 'poltergeist', '>= 1.8.0'
39
39
  spec.add_dependency 'selenium-webdriver'
40
+ spec.add_dependency 'show_me_the_cookies'
40
41
  spec.add_dependency 'webdrivers', '>= 3.9'
41
42
 
42
43
  # CI server dependencies:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ndr_dev_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.3.1
4
+ version: 5.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - NCRS Development Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-20 00:00:00.000000000 Z
11
+ date: 2019-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '3.20'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '3.20'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: capybara-screenshot
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: show_me_the_cookies
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: webdrivers
155
169
  requirement: !ruby/object:Gem::Requirement