special_sauce 0.1.0 → 0.2.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
  SHA1:
3
- metadata.gz: c861dcfea52c8836c7d645bd64f009a768a0e2b5
4
- data.tar.gz: e2c388db2f03e0e73a3cceb7d39828b9de71e03c
3
+ metadata.gz: 03137b3e4dcc6c8bc674f5ff2df06d2a44d3d51e
4
+ data.tar.gz: 70072679b00e5d88504415378bde5ab9c409944e
5
5
  SHA512:
6
- metadata.gz: 0889cc057466f6ebf0d2da9d269164dc6b7be2353389b632eead937a448bb90e06a0f51daa84336fd4e98f90c3995719935be7ed6457ced98ff31854cfafffe4
7
- data.tar.gz: cff53e4e149cef8a6e7511de099d54d3ed18bdf3e7a59009bab60125a2f76939e499b8563a474ce6337afb2efab0499d4998c5beb8a5dd5dae15ebc8d8f16cb6
6
+ metadata.gz: 2f3de8a1fb1cf790a2975b01365d52baf0797f9493622a07c7cdd6b715a49e43e6850af9627d8672375abe3db07daa0e1aea561bcc302a4c6c4dbb5067f775f5
7
+ data.tar.gz: d359dea36ac55c5d09d92a24df1c55935bca71f0e8199f651be9d90770f5c116c31a600b28beb53081feeef450ae5b7e289493107988f259d6d841cbab1c9d2b
data/README.md CHANGED
@@ -3,17 +3,17 @@
3
3
  [![Build Status](https://travis-ci.org/nativestranger/special_sauce.svg?branch=master)](https://travis-ci.org/nativestranger/special_sauce)
4
4
 
5
5
 
6
- special_sauce makes it easy to run existing [capybara](https://github.com/teamcapybara/capybara) or [watir](https://github.com/watir/watir) based tests against [SauceLabs](https://saucelabs.com/) browsers.
6
+ special_sauce makes it easy to run existing [capybara](https://github.com/teamcapybara/capybara) or [watir](https://github.com/watir/watir) based (selenium) tests against [Sauce Labs](https://saucelabs.com/) browsers.
7
7
 
8
8
  ## Installation
9
9
 
10
10
  ```ruby
11
- gem 'special_sauce', git: 'https://github.com/nativestranger/special_sauce.git'
11
+ gem 'special_sauce', '0.2.0'
12
12
  ```
13
13
 
14
14
  ## Watir Example
15
15
 
16
- If the authentication ENV variables are set, `special_sauce` will try to setup a remote browser, otherwise default to chrome.
16
+ If the authentication ENV variables are set, `special_sauce` will try to set up a remote browser, otherwise default to chrome.
17
17
 
18
18
  ``` ruby
19
19
  @browser = SpecialSauce::Watir.browser || Watir::Browser.new(:chrome)
@@ -21,15 +21,21 @@ If the authentication ENV variables are set, `special_sauce` will try to setup a
21
21
 
22
22
  ## Capybara Example
23
23
 
24
- If the authentication ENV variables are set, `special_sauce` will try to setup a remote browser, otherwise use your capybara default.
24
+ If the authentication ENV variables are set, `special_sauce` will try to set up a remote browser and set the current drivers, otherwise use Chrome locally.
25
25
 
26
26
  ``` ruby
27
- @browser = SpecialSauce::Capybara.browser || Capybara.current_session
27
+ Capybara.register_driver :selenium_chrome do |app|
28
+ Capybara::Selenium::Driver.new(app, :browser => :chrome)
29
+ end
30
+
31
+ SpecialSauce::Capybara.setup_session || Capybara.current_driver = :selenium_chrome
28
32
  ```
29
33
 
30
34
  ## Environment Variables
31
35
 
32
- In order to create remote sessions with Sauce Labs, some environment variables must be set.
36
+ `special_sauce` relies on the following env vars to set up remote sessions with sauce labs.
37
+
38
+ You can set these explicitly or rely on the [Sauce OnDemand Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Sauce+OnDemand+Plugin) to set them in Jenkins builds.
33
39
 
34
40
  **Authentication Variables - Required**
35
41
 
@@ -38,40 +44,13 @@ In order to create remote sessions with Sauce Labs, some environment variables m
38
44
  | SAUCE_USER_NAME | your saucelabs username |
39
45
  | SAUCE_API_KEY | saucelabs api key for your username |
40
46
 
41
- **Optional**
42
-
43
- *The following 3 are set automatically when Jenkin's [Sauce OnDemand Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Sauce+OnDemand+Plugin) is configured to run against **one browser**.*
44
-
45
- | Environment Variable | Value |
46
- |---------- |:----------------------------------------:|
47
- | SELENIUM_BROWSER | browser name |
48
- | SELENIUM_VERSION | browser version |
49
- | SELENIUM_PLATFORM | operating system & version |
50
-
51
- OR
52
-
53
- *`SAUCE_ONDEMAND_BROWSERS` is set automatically when Jenkin's [Sauce OnDemand Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Sauce+OnDemand+Plugin) is configured to run against **multiple browsers**.*
54
-
55
- | Environment Variable | Value |
56
- |---------- |:----------------------------------------------:|
57
- | SAUCE_ONDEMAND_BROWSERS | JSON serialized array of browser capabilities |
58
- | CURRENT_BROWSER_ID | **Set this to choose the browser caps from `SAUCE_ONDEMAND_BROWSERS` that should be used. '0' will be the first in the array, '1' will be the second, etc.** |
59
-
60
47
  ## How Browser Capabilities are set.
61
48
 
62
- When calling `SpecialSauce::Watir.browser` or `SpecialSauce::Capybara.browser` without any arguments, `special_sauce` will use the environment variables above to determine browser capabilities.
49
+ When calling `SpecialSauce::Watir.browser` or `SpecialSauce::Capybara.setup_session` without any arguments, `special_sauce` will use env vars to determine browser capabilities.
63
50
 
64
- * When `SAUCE_ONDEMAND_BROWSERS` is absent, `SELENIUM_BROWSER`, `SELENIUM_VERSION`, and `SELENIUM_PLATFORM` is used.
65
-
66
- * When `SAUCE_ONDEMAND_BROWSERS` is present, the value is parsed into an array and the caps are set based on `CURRENT_BROWSER_ID`.
67
-
68
- ## Adding Browser Capabilities
69
- To add additional browser capabilities, use `plus_caps`:
51
+ You may set these explicitly [or rely on the Sauce OnDemand Plugin](docs/JENKINS_PLUGIN_ENV.md) to set them for you.
70
52
 
71
- ``` ruby
72
- additional_caps = { 'tunnel-identifier' => ENV['TRAVIS_JOB_NUMBER'] }
73
- @browser = SpecialSauce::Watir.browser(plus_caps: additional_caps)
74
- ```
53
+ **It is recommended you explicitly declare your browser capabilities with `using_caps`.**
75
54
 
76
55
  ## Overriding Browser Capabilities
77
56
  To override default browser capabilities, use `using_caps`:
@@ -83,6 +62,14 @@ custom_caps = { 'browserName' => 'internet explorer',
83
62
  @browser = SpecialSauce::Watir.browser(using_caps: custom_caps)
84
63
  ```
85
64
 
65
+ ## Adding Browser Capabilities
66
+ To add additional browser capabilities, use `plus_caps`:
67
+
68
+ ``` ruby
69
+ additional_caps = { 'tunnel-identifier' => ENV['TRAVIS_JOB_NUMBER'] }
70
+ SpecialSauce::Capybara.setup_session(plus_caps: additional_caps)
71
+ ```
72
+
86
73
  ## Sauce Labs Options
87
74
 
88
75
  See [Sauce Lab's Documentation](https://wiki.saucelabs.com/display/DOCS/Test+Configuration+Options) for more options such as test name, build number, and screen resolution.
@@ -94,12 +81,13 @@ additional_caps = { 'name' => 'my test name', 'screenResolution' => '1280x1024'
94
81
 
95
82
  ## [Tips for running against multiple browsers](docs/MULTIPLEBROWSERS.md)
96
83
 
84
+ ## [CHANGLELOG](docs/CHANGELOG.md)
85
+
97
86
  ## License
98
87
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
99
88
 
100
89
  # TODO
101
90
 
102
- * appraise more versions of ruby & versions of capybara & watir.
103
- * allow customization of ENV variables?
104
- * update description
105
- * add contributing version
91
+ * Appraise more versions of ruby & versions of capybara & watir.
92
+ * Allow customization of ENV variables?
93
+ * Add 'contributing' section.
@@ -2,7 +2,19 @@ module SpecialSauce
2
2
  class Capybara < SpecialSauce::Driver
3
3
 
4
4
  def self.current_session(options = {})
5
- puts "Sauce Labs auth ENV variables not set." && return unless auth?
5
+ Kernel.warn(
6
+ "SpecialSauce::Capybara#current_session is deprecated and will be removed in v1.0.0. Use 'setup_session' instead."
7
+ )
8
+ setup_session(options)
9
+ end
10
+
11
+ def self.setup_session(options = {})
12
+ unless auth?
13
+ Kernel.warn(
14
+ 'Sauce Labs auth ENV variables not set ... skipping SpecialSauce::Capybara.setup_session'
15
+ )
16
+ return
17
+ end
6
18
 
7
19
  ::Capybara.register_driver :special_sauce do |app|
8
20
  ::Capybara::Selenium::Driver.new(
@@ -14,6 +26,7 @@ module SpecialSauce
14
26
  end
15
27
 
16
28
  ::Capybara.current_driver = :special_sauce
29
+ ::Capybara.javascript_driver = :special_sauce
17
30
 
18
31
  ::Capybara.current_session
19
32
  end
@@ -1,3 +1,3 @@
1
1
  module SpecialSauce
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -2,7 +2,12 @@ module SpecialSauce
2
2
  class Watir < SpecialSauce::Driver
3
3
 
4
4
  def self.browser(options = {})
5
- puts "Sauce Labs auth ENV variables not set." && return unless auth?
5
+ unless auth?
6
+ Kernel.warn(
7
+ 'Sauce Labs auth ENV variables not set ... skipping SpecialSauce::Watir.browser'
8
+ )
9
+ return
10
+ end
6
11
 
7
12
  ::Watir::Browser.new(
8
13
  :remote,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: special_sauce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Arnold
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-16 00:00:00.000000000 Z
11
+ date: 2017-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails