quke 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: dd7aa28081edfc9cce4400842782f1c8e853a1b7
4
- data.tar.gz: d99e4eacf100a69a276323a80617c15d8534fdb7
2
+ SHA256:
3
+ metadata.gz: 5b2936d4f14ba229cb09e51e452e38e7bec283d4f451cff78c6e1bdd7db14753
4
+ data.tar.gz: 23fac38b040117047d0153a53d015e91d7f17d74a55884f7b0dd1efd1b8af597
5
5
  SHA512:
6
- metadata.gz: cea424d7ee59455d0496808b0b7c6e442984f37db9c834b8c06e75d24c11b6d1414a007fa83a1f988c7e3f1c5c395a880d102912c14b64140ca209f395819ece
7
- data.tar.gz: 3d41f20f1c49d414f44f0bd573b8540bcfae9bdecfd4dc1e974cad8d6751f75569e075a52799df4045e13072deb1cf249a12d1c3ab19cb8de0b23b7b3c3a26d6
6
+ metadata.gz: 1444e484da2cbaca94f551a75dcae882b909762cf090d653edd8cbf0bf1161ad6d6c6a5ceadd41f1cdddd8d4744d601b723a64610288cc76f678a555b9cd8081
7
+ data.tar.gz: c061de8ca68f54f5063264182e2a340f6f8f0819f47c3e991e6e97cdfaf3e2daf11d8662f9ad402277c97099ced4a1f7b58ef0e7d3212b4f10a98f7880308502
@@ -96,63 +96,88 @@ proxy:
96
96
  # Please see https://www.browserstack.com/automate/capabilities for more details
97
97
  browserstack:
98
98
  # To run your tests with browserstack you must provide a username and auth_key
99
- # as a minimum
99
+ # as a minimum.
100
+ # If you don't want to put these credentials in the config file (because you
101
+ # want to commit it to source control), Quke will also check for the existance
102
+ # of the environment variables BROWSERSTACK_USERNAME and BROWSERSTACK_AUTH_KEY
100
103
  username: jdoe
101
104
  auth_key: 123456789ABCDE
102
105
 
103
- # Keep track of all your automated tests using the build and project
104
- # capabilities. Group your tests into builds, and builds further into projects
105
- build: 'Version 1'
106
- project: 'Adding browserstack support'
107
-
108
- # Allows you to specify an identifier for the test run.
109
- # If you intend to repeat a test this might not be that applicable, but in the
110
- # case of one off tests it might be useful
111
- name: 'Testing google search'
112
-
113
- # MOBILE testing
114
- # The docs are a little confusing but essentially if you want to test against
115
- # mobile devices you need to define 1 set of capabilities, and if desktop
116
- # another
117
- # -----
118
- # OS you want to test. Accepted values are MAC, WIN8, XP, WINDOWS, ANY, ANDROID
119
- # Browserstack default is ANY
120
- platform: MAC
121
- # Browser you want to test. Accepted values firefox, chrome, internet explorer,
122
- # safari, opera, iPad, iPhone, android. Browserstack default is chrome
123
- browserName: iPhone
124
- # Browser version you want to test. See the docs for the full list of available
125
- # versions. Browserstack default is latest stable version of browser selected
126
- version: '49'
127
- # Device you want to test on. See the docs for the full list of available.
128
- device: 'iPhone 5'
129
-
130
- # DESKTOP testing
131
- # -----
132
- # OS you want to test. Accepted values are WINDOWS, OS X. If both OS and
133
- # platform are set, OS will take precedence
134
- os: WINDOWS
135
- # OS version you want to test. Accepted values are
136
- # Windows: XP, 7, 8, 8.1 and 10
137
- # OS X: Snow Leopard, Lion, Mountain Lion, Mavericks, Yosemite, El Capitan
138
- os_version: '8.1'
139
- # Browser you want to test. Accepted values are Firefox, Safari, IE, Chrome,
140
- # Opera
141
- browser: chrome
142
- # Browser version you want to test. See the docs for the full list of
143
- # available versions
144
- browser_version: '49'
145
- # Set the resolution of VM before beginning of your test.
146
- # See docs https://www.browserstack.com/automate/capabilities for full list of
147
- # accepted values, as it is also OS dependent
148
- resolution: '1024x768'
149
-
150
- # To avoid invalid certificate errors while testing set acceptSslCerts to true
151
- acceptSslCerts: true
152
-
153
- # Required if you want to generate screenshots at various steps in your test.
154
- # Browserstack default is false
155
- debug: true
156
- # Required if you want to enable video recording during your test.
157
- # Browserstack default is true
158
- video: true
106
+ # Anything set under capabilities will be passed directly by Quke to
107
+ # browserstack as means of configuring the test.
108
+ # So the config keys (e.g. build, project, name) you set should match a real
109
+ # browserstack capability, and the value exist in the range it expects. See
110
+ # for further reference on browserstack capabilities
111
+ # https://www.browserstack.com/automate/capabilities
112
+ # https://www.browserstack.com/automate/ruby#configure-capabilities
113
+ capabilities:
114
+ # Keep track of all your automated tests using the build and project
115
+ # capabilities. Group your tests into builds, and builds further into
116
+ # projects
117
+ project: 'Adding browserstack support'
118
+ build: 'Version 1'
119
+ # Allows you to specify an identifier for the test run.
120
+ # If you intend to repeat a test this might not be that applicable, but in
121
+ # the case of one off tests it might be useful
122
+ name: 'Testing google search'
123
+
124
+ # To avoid invalid certificate errors while testing set acceptSslCerts to
125
+ # true. This is not listed on the general capabilities page but is here
126
+ # https://www.browserstack.com/automate/ruby#self-signed-certificates
127
+ acceptSslCerts: true
128
+ # Required if you want to generate screenshots at various steps in your test
129
+ # test. Browserstack default is false
130
+ browserstack.debug: true
131
+ # Required if you want to enable video recording during your test.
132
+ # Browserstack default is true
133
+ browserstack.video: true
134
+ # Another setting not listed, setting the following will prevent any values
135
+ # you pass in, for example when filling in a form, from appearing in the
136
+ # logs. General use case is to prevent passwords being exposed, but beware
137
+ # that all input will be masked in the logs if set.
138
+ browserstack.maskSendKeys: true
139
+
140
+ # MOBILE testing and DESKTOP testing are essentially diametric; you set one
141
+ # or the other but not both. Some examples seem to put logic in place to
142
+ # test the options passed in and then set the capabilities accordingly,
143
+ # however Browserstack handles this and has what will happen documented
144
+ # https://www.browserstack.com/automate/capabilities#capabilities-parameter-override
145
+ #
146
+ # MOBILE testing
147
+ # The docs are a little confusing but essentially if you want to test against
148
+ # mobile devices you need to define 1 set of capabilities, and if desktop
149
+ # another
150
+ # -----
151
+ # OS you want to test. Accepted values are MAC, WIN8, XP, WINDOWS, ANY,
152
+ # ANDROID. Browserstack default is ANY
153
+ platform: MAC
154
+ # Browser you want to test. Accepted values firefox, chrome, internet
155
+ # explorer,safari, opera, iPad, iPhone, android. Browserstack default is
156
+ # chrome
157
+ browserName: iPhone
158
+ # Browser version you want to test. See the docs for the full list of
159
+ # available versions. Browserstack default is latest stable version of
160
+ # browser selected
161
+ version: '49'
162
+ # Device you want to test on. See the docs for the full list of available.
163
+ device: 'iPhone 5'
164
+ #
165
+ # DESKTOP testing
166
+ # -----
167
+ # OS you want to test. Accepted values are WINDOWS, OS X. If both OS and
168
+ # platform are set, OS will take precedence
169
+ os: WINDOWS
170
+ # OS version you want to test. Accepted values are
171
+ # Windows: XP, 7, 8, 8.1 and 10
172
+ # OS X: Snow Leopard, Lion, Mountain Lion, Mavericks, Yosemite, El Capitan
173
+ os_version: '8.1'
174
+ # Browser you want to test. Accepted values are Firefox, Safari, IE, Chrome,
175
+ # Opera
176
+ browser: chrome
177
+ # Browser version you want to test. See the docs for the full list of
178
+ # available versions
179
+ browser_version: '49'
180
+ # Set the resolution of VM before beginning of your test.
181
+ # See docs https://www.browserstack.com/automate/capabilities for full list
182
+ # of accepted values, as it is also OS dependent
183
+ resolution: '1024x768'
@@ -1,11 +1,16 @@
1
1
  # Change Log
2
2
 
3
- ## [Unreleased](https://github.com/DEFRA/quke/tree/HEAD)
3
+ ## [v0.3.2](https://github.com/DEFRA/quke/tree/v0.3.2) (2017-06-12)
4
+ [Full Changelog](https://github.com/DEFRA/quke/compare/v0.3.1...v0.3.2)
4
5
 
5
- [Full Changelog](https://github.com/DEFRA/quke/compare/v0.3.1...HEAD)
6
+ **Closed issues:**
7
+
8
+ - Enable ability to override driver settings [\#58](https://github.com/DEFRA/quke/issues/58)
6
9
 
7
10
  **Merged pull requests:**
8
11
 
12
+ - Add option to override js\_errors for phantomjs [\#65](https://github.com/DEFRA/quke/pull/65) ([Cruikshanks](https://github.com/Cruikshanks))
13
+ - \[ci skip\] Updating CHANGELOG.md [\#63](https://github.com/DEFRA/quke/pull/63) ([Cruikshanks](https://github.com/Cruikshanks))
9
14
  - Update version number \(forgot during last change!\) [\#62](https://github.com/DEFRA/quke/pull/62) ([Cruikshanks](https://github.com/Cruikshanks))
10
15
 
11
16
  ## [v0.3.1](https://github.com/DEFRA/quke/tree/v0.3.1) (2017-06-12)
@@ -129,7 +129,7 @@ module Quke #:nodoc:
129
129
  @data['javascript_errors']
130
130
  end
131
131
 
132
- # Return the hash of +browserstack+ options.
132
+ # Return the hash of all +browserstack+ options.
133
133
  #
134
134
  # If you select the browserstack driver, there are a number of options you
135
135
  # can pass through to setup your browserstack tests, username and auth_key
@@ -156,7 +156,7 @@ module Quke #:nodoc:
156
156
  # It is mainly used when determining whether to apply proxy server settings
157
157
  # to the different drivers when registering them with Capybara.
158
158
  def use_proxy?
159
- proxy['host'] == '' ? false : true
159
+ proxy['host'] != ''
160
160
  end
161
161
 
162
162
  def custom
@@ -180,6 +180,7 @@ module Quke #:nodoc:
180
180
 
181
181
  # rubocop:disable Metrics/AbcSize
182
182
  # rubocop:disable Metrics/CyclomaticComplexity
183
+ # rubocop:disable Metrics/MethodLength
183
184
  # rubocop:disable Metrics/PerceivedComplexity
184
185
  def default_data!(data)
185
186
  data.merge(
@@ -196,29 +197,27 @@ module Quke #:nodoc:
196
197
  # will be 'true', so we flip it back to 'false' with !.
197
198
  # Else the condition fails and we get 'false', which when flipped gives
198
199
  # us 'true', which is what we want the default value to be
200
+ # rubocop:disable Style/InverseMethods
199
201
  'javascript_errors' => !(data['javascript_errors'].to_s.downcase.strip == 'false'),
202
+ # rubocop:enable Style/InverseMethods
200
203
  'custom' => (data['custom'] || nil)
201
204
  )
202
205
  end
203
206
  # rubocop:enable Metrics/AbcSize
204
207
  # rubocop:enable Metrics/CyclomaticComplexity
208
+ # rubocop:enable Metrics/MethodLength
205
209
  # rubocop:enable Metrics/PerceivedComplexity
206
210
 
207
- # rubocop:disable Metrics/MethodLength
211
+ # rubocop:disable Metrics/CyclomaticComplexity
208
212
  def browserstack_data(data)
209
213
  data = {} if data.nil?
210
214
  data.merge(
211
- 'username' => (ENV['BROWSERSTACK_USERNAME'] ||
212
- data['username'] ||
213
- ''
214
- ),
215
- 'auth_key' => (ENV['BROWSERSTACK_AUTH_KEY'] ||
216
- data['auth_key'] ||
217
- ''
218
- )
215
+ 'username' => (ENV['BROWSERSTACK_USERNAME'] || data['username'] || ''),
216
+ 'auth_key' => (ENV['BROWSERSTACK_AUTH_KEY'] || data['auth_key'] || ''),
217
+ 'capabilities' => data['capabilities'] || {}
219
218
  )
220
219
  end
221
- # rubocop:enable Metrics/MethodLength
220
+ # rubocop:enable Metrics/CyclomaticComplexity
222
221
 
223
222
  def proxy_data(data)
224
223
  data = {} if data.nil?
@@ -268,46 +268,20 @@ module Quke #:nodoc:
268
268
  # For further reference on browserstack capabilities
269
269
  # https://www.browserstack.com/automate/capabilities
270
270
  # https://www.browserstack.com/automate/ruby#configure-capabilities
271
- # rubocop:disable Metrics/MethodLength
272
- # rubocop:disable Metrics/AbcSize
273
271
  def browserstack
272
+ # Documentation and the code for this class can be found here
273
+ # http://www.rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium/WebDriver/Remote/Capabilities
274
+ # https://github.com/SeleniumHQ/selenium/blob/master/rb/lib/selenium/webdriver/remote/capabilities.rb
274
275
  capabilities = Selenium::WebDriver::Remote::Capabilities.new
275
276
 
276
- capabilities['build'] = config.browserstack['build']
277
- capabilities['project'] = config.browserstack['project']
278
- capabilities['name'] = config.browserstack['name']
279
-
280
- # This and the following section are essentially diametric; you set one
281
- # or the other but not both. Some examples seem to put logic in place to
282
- # test the options passed in and then set the capabilities accordingly,
283
- # however Browserstack handles this and has what will happen documented
284
- # https://www.browserstack.com/automate/capabilities#capabilities-parameter-override
285
- capabilities['platform'] = config.browserstack['platform']
286
- capabilities['browserName'] = config.browserstack['browserName']
287
- capabilities['version'] = config.browserstack['version']
288
- capabilities['device'] = config.browserstack['device']
289
-
290
- capabilities['os'] = config.browserstack['os']
291
- capabilities['os_version'] = config.browserstack['os_version']
292
- capabilities['browser'] = config.browserstack['browser']
293
- capabilities['browser_version'] = config.browserstack['browser_version']
294
- capabilities['resolution'] = config.browserstack['resolution']
295
- # -----
277
+ browserstack_capabilities = config.browserstack['capabilities']
296
278
 
297
- # This is not listed on the general capabilities page but is here
298
- # https://www.browserstack.com/automate/ruby#self-signed-certificates
299
- capabilities['acceptSslCerts'] = config.browserstack['acceptSslCerts']
279
+ browserstack_capabilities.each do |key, value|
280
+ capabilities[key] = value
281
+ end
300
282
 
301
- capabilities['browserstack.debug'] = config.browserstack['debug']
302
- capabilities['browserstack.video'] = config.browserstack['video']
303
-
304
- # At this point Quke does not support local testing so we specifically
305
- # tell Browserstack we're not doing this
306
- capabilities['browserstack.local'] = 'false'
307
283
  capabilities
308
284
  end
309
- # rubocop:enable Metrics/AbcSize
310
- # rubocop:enable Metrics/MethodLength
311
285
 
312
286
  end
313
287
 
@@ -1,3 +1,3 @@
1
1
  module Quke #:nodoc:
2
- VERSION = '0.3.2'.freeze
2
+ VERSION = '0.4.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quke
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alan Cruikshanks
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-12 00:00:00.000000000 Z
11
+ date: 2017-12-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber
@@ -279,7 +279,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
279
  version: '0'
280
280
  requirements: []
281
281
  rubyforge_project:
282
- rubygems_version: 2.4.5
282
+ rubygems_version: 2.7.3
283
283
  signing_key:
284
284
  specification_version: 4
285
285
  summary: A gem to simplify creating acceptance tests using Cucumber