selenium-connect 3.2.0 → 3.3.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.
- data/CHANGELOG.md +6 -0
- data/README.md +10 -3
- data/lib/selenium_connect/configuration.rb +38 -4
- data/lib/selenium_connect/runners/saucelabs.rb +1 -5
- data/selenium-connect.gemspec +2 -2
- data/spec/support/example.yaml +6 -2
- data/spec/unit/lib/selenium_connect/configuration_spec.rb +37 -0
- metadata +5 -5
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
#3.3.0 (2013-07-24)
|
2
|
+
updated configuration to support any sauce config and set default sauce selenium version
|
3
|
+
|
4
|
+
- Bumped version to 3.3.0 to prepare for release.
|
5
|
+
- updated the configuration object to support passing any arbitrary sauce configuration parameter while also supporting the original configurations for backwards compatibility, also setting a default selenium server version
|
6
|
+
|
1
7
|
#3.2.0 (2013-07-15)
|
2
8
|
added better error handling to the sauce api calls and improved naming convention for job assets
|
3
9
|
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#selenium-connect 3.
|
1
|
+
#selenium-connect 3.3.0 (2013-07-24)
|
2
2
|
|
3
3
|
[](http://badge.fury.io/rb/selenium-connect) [](https://travis-ci.org/arrgyle/selenium-connect) [](https://codeclimate.com/github/arrgyle/selenium-connect) [](https://coveralls.io/r/arrgyle/selenium-connect?branch=develop)
|
4
4
|
|
@@ -85,12 +85,19 @@ profile_path:
|
|
85
85
|
profile_name:
|
86
86
|
|
87
87
|
# Saucelabs
|
88
|
-
os:
|
89
88
|
sauce_username: 'test_user_name'
|
90
89
|
sauce_api_key:
|
90
|
+
api_timeout: #how many seconds we should try to get the assets (default 10)
|
91
|
+
os:
|
91
92
|
browser_version:
|
92
93
|
description: #sauce job/test description
|
93
|
-
|
94
|
+
# set any sauce options below, they will override those above
|
95
|
+
sauce_opts:
|
96
|
+
selenium_version: #default is 2.33.0
|
97
|
+
os:
|
98
|
+
browser_version:
|
99
|
+
job_name: #sauce job/test description
|
100
|
+
|
94
101
|
```
|
95
102
|
|
96
103
|
You can pass parameters into the new config object like:
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# Encoding: utf-8
|
2
2
|
|
3
3
|
require 'yaml'
|
4
|
+
require 'ostruct'
|
4
5
|
|
5
6
|
# selenium connect
|
6
7
|
class SeleniumConnect
|
@@ -12,20 +13,30 @@ class SeleniumConnect
|
|
12
13
|
:background, :log, :jar
|
13
14
|
|
14
15
|
# Browsers
|
15
|
-
attr_accessor :
|
16
|
-
:profile_path, :profile_name
|
16
|
+
attr_accessor :browser_path, :profile_path, :profile_name
|
17
17
|
|
18
18
|
# SauceLabs
|
19
|
-
attr_accessor :sauce_username, :sauce_api_key,
|
20
|
-
|
19
|
+
attr_accessor :sauce_username, :sauce_api_key, :api_timeout
|
20
|
+
|
21
|
+
attr_reader :sauce_opts, :browser, :description, :os, :browser_version
|
21
22
|
|
22
23
|
def initialize(opts = {})
|
23
24
|
@host = 'localhost'
|
24
25
|
@port = 4444
|
25
26
|
@browser = 'firefox'
|
27
|
+
@sauce_opts = OpenStruct.new
|
28
|
+
@sauce_opts.selenium_version = '2.33.0'
|
26
29
|
populate_with_hash opts unless opts.empty?
|
27
30
|
end
|
28
31
|
|
32
|
+
# TODO eventually roll all sauce options under this node
|
33
|
+
# and deprecate setting them at the top level
|
34
|
+
def sauce_opts=(opts = {})
|
35
|
+
opts.each do |key, value|
|
36
|
+
@sauce_opts.send("#{key}=", value) unless value.nil?
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
29
40
|
def populate_with_hash(hash)
|
30
41
|
hash.each do |key, value|
|
31
42
|
begin
|
@@ -40,6 +51,29 @@ class SeleniumConnect
|
|
40
51
|
populate_with_hash YAML.load_file file
|
41
52
|
end
|
42
53
|
|
54
|
+
# The below methods are setters for the explicitly defined sauce and browser
|
55
|
+
# options, the is support future refactoring to a strutted config
|
56
|
+
# but maintains compatability for now.
|
57
|
+
def os=(os)
|
58
|
+
@os = os
|
59
|
+
@sauce_opts.os = os
|
60
|
+
end
|
61
|
+
|
62
|
+
def browser_version=(browser_version)
|
63
|
+
@browser_version = browser_version
|
64
|
+
@sauce_opts.browser_version = browser_version if @sauce_opts.browser_version.nil?
|
65
|
+
end
|
66
|
+
|
67
|
+
def description=(description)
|
68
|
+
@description = description
|
69
|
+
@sauce_opts.job_name = description if @sauce_opts.job_name.nil?
|
70
|
+
end
|
71
|
+
|
72
|
+
def browser=(browser)
|
73
|
+
@browser = browser
|
74
|
+
@sauce_opts.browser = browser if @sauce_opts.browser.nil?
|
75
|
+
end
|
76
|
+
|
43
77
|
alias_method :config_file=, :populate_with_yaml
|
44
78
|
|
45
79
|
end # Configuration
|
@@ -27,11 +27,7 @@ class SeleniumConnect
|
|
27
27
|
|
28
28
|
def init_browser
|
29
29
|
get_credentials
|
30
|
-
Sauce::Selenium2.new(
|
31
|
-
os: config.os,
|
32
|
-
browser: config.browser,
|
33
|
-
browser_version: config.browser_version,
|
34
|
-
job_name: config.description })
|
30
|
+
Sauce::Selenium2.new(config.sauce_opts.marshal_dump)
|
35
31
|
end
|
36
32
|
|
37
33
|
end # Saucelabs
|
data/selenium-connect.gemspec
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'selenium-connect'
|
3
|
-
s.version = '3.
|
3
|
+
s.version = '3.3.0'
|
4
4
|
s.platform = Gem::Platform::RUBY
|
5
5
|
s.authors = ['Dave Haeffner', 'Jason Fox']
|
6
6
|
s.email = ['dave@arrgyle.com', 'jason@arrgyle.com']
|
7
7
|
s.homepage = 'https://github.com/arrgyle/selenium-connect'
|
8
8
|
s.summary = 'A stupid simple way to run your Selenium tests on localhost, against a Selenium Grid, or in the cloud (e.g. SauceLabs).'
|
9
|
-
s.description = '
|
9
|
+
s.description = 'updated configuration to support any sauce config and set default sauce selenium version'
|
10
10
|
s.license = 'MIT'
|
11
11
|
|
12
12
|
s.files = `git ls-files`.split($/)
|
data/spec/support/example.yaml
CHANGED
@@ -45,4 +45,41 @@ describe SeleniumConnect::Configuration do
|
|
45
45
|
@configuration.port.should eq 4444
|
46
46
|
@configuration.browser.should eq 'firefox'
|
47
47
|
end
|
48
|
+
|
49
|
+
it 'should allow for an arbitrary hash of sauce configuration' do
|
50
|
+
@configuration.populate_with_hash sauce_opts: { record_video: true, capture_html: true }
|
51
|
+
@configuration.sauce_opts.record_video.should be_true
|
52
|
+
@configuration.sauce_opts.capture_html.should be_true
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'should use selenium version 2.33.0 version by default for sauce' do
|
56
|
+
@configuration.sauce_opts.selenium_version.should eq '2.33.0'
|
57
|
+
end
|
58
|
+
|
59
|
+
# the goal here is to allow internal refactoring to use the new configuration pattern
|
60
|
+
# to support deprecating the top level configs later
|
61
|
+
it 'should merge the explicitly configured sauce options into the strut' do
|
62
|
+
os = 'Linux'
|
63
|
+
browser_version = '10'
|
64
|
+
browser = 'chrome'
|
65
|
+
description = 'test'
|
66
|
+
@configuration.populate_with_hash os: os, browser_version: browser_version, browser: browser, description: description
|
67
|
+
@configuration.sauce_opts.os.should eq os
|
68
|
+
@configuration.sauce_opts.browser.should eq browser
|
69
|
+
@configuration.sauce_opts.browser_version.should eq browser_version
|
70
|
+
@configuration.sauce_opts.job_name.should eq description
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'should take the sauce_opts as priority' do
|
74
|
+
@configuration.populate_with_hash sauce_opts: { browser: 'ie', job_name: 'cool' }, browser: 'chrome', description: 'other'
|
75
|
+
@configuration.sauce_opts.browser.should eq 'ie'
|
76
|
+
@configuration.description.should eq 'other'
|
77
|
+
@configuration.sauce_opts.job_name.should eq 'cool'
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should use the description as the job name if no job name is specified' do
|
81
|
+
@configuration.populate_with_hash description: 'other'
|
82
|
+
@configuration.description.should eq 'other'
|
83
|
+
@configuration.sauce_opts.job_name.should eq 'other'
|
84
|
+
end
|
48
85
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: selenium-connect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-07-
|
13
|
+
date: 2013-07-24 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: selenium-webdriver
|
@@ -140,8 +140,8 @@ dependencies:
|
|
140
140
|
- - ~>
|
141
141
|
- !ruby/object:Gem::Version
|
142
142
|
version: 0.6.7
|
143
|
-
description:
|
144
|
-
|
143
|
+
description: updated configuration to support any sauce config and set default sauce
|
144
|
+
selenium version
|
145
145
|
email:
|
146
146
|
- dave@arrgyle.com
|
147
147
|
- jason@arrgyle.com
|
@@ -222,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
222
222
|
version: '0'
|
223
223
|
segments:
|
224
224
|
- 0
|
225
|
-
hash: -
|
225
|
+
hash: -3401162280561917445
|
226
226
|
requirements: []
|
227
227
|
rubyforge_project:
|
228
228
|
rubygems_version: 1.8.25
|