RDee 0.6 → 0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ChangeLog +6 -0
- data/README.md +56 -9
- data/features/environment_variable.feature +5 -0
- data/features/mobile_remote.feature +23 -23
- data/features/remote_browsers.feature +1 -1
- data/features/step_definitions/rdee_steps.rb +47 -5
- data/features/support/pages/cheezyworld.rb +1 -1
- data/lib/rdee/additional_options.rb +3 -3
- data/lib/rdee/browser_factory.rb +6 -4
- data/lib/rdee/desired_capabilities.rb +25 -1
- data/lib/rdee/mobile_capabilities.rb +15 -0
- data/lib/rdee/mobile_devices.rb +13 -3
- data/lib/rdee/target_parser.rb +2 -7
- data/lib/rdee/version.rb +1 -1
- data/spec/lib/moble_targets_spec.rb +55 -0
- data/spec/lib/rd_spec.rb +8 -8
- data/spec/lib/target_parser_spec.rb +0 -20
- data/spec/lib/targets_spec.rb +0 -49
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ba156a4bf434b0f37306a71ecf82fddf138ceedf
|
4
|
+
data.tar.gz: 0ef24619d7cb972a0d4dc9a5533d5d0c7bc16435
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9285bcec378656ba74345a5b90ec92fe61ecbbbeff4ce5e34b4a3ccdb18b1a89688985bda52b48130f08c0e077397e18097538683c633778c2b18ab566ed84de
|
7
|
+
data.tar.gz: 05455af04a594cbae645ba4ce47e4bf5ff56824e5b44b46209fd0879537e47f169109a30e9af941fffbf24bece81d4529ab611d2c7ca4689e0c7aeeb5429b300
|
data/ChangeLog
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
=== Release 0.7 / 23 March 2017
|
2
|
+
* Enhancements
|
3
|
+
* Full support for all iOS devices
|
4
|
+
* Ability to set additional ios capabilities via configuration
|
5
|
+
* renamed iphone_options to ios_options
|
6
|
+
|
1
7
|
=== Release 0.6 / 1 March 2017
|
2
8
|
* Enhancements
|
3
9
|
* Added support for Sierra
|
data/README.md
CHANGED
@@ -11,9 +11,9 @@ can select browsers that are running on your local machine or on a Selenium Grid
|
|
11
11
|
you select a browser is by calling one of the following methods:
|
12
12
|
|
13
13
|
````ruby
|
14
|
-
RDee.selenium_browser(target = :
|
14
|
+
RDee.selenium_browser(target = :chrome, options = {})
|
15
15
|
# or
|
16
|
-
RDee.watir_browser(target = :
|
16
|
+
RDee.watir_browser(target = :chrome, options = {})
|
17
17
|
````
|
18
18
|
|
19
19
|
These methods take two optional parameters. The first is the target browser. The second
|
@@ -49,16 +49,22 @@ firefox30_win8
|
|
49
49
|
````
|
50
50
|
|
51
51
|
The first part of the target determines what browser to use. At the current time you can
|
52
|
-
specify `firefox`, `chrome`, `ie`, `safari`, `phantomjs` or `
|
52
|
+
specify `firefox`, `chrome`, `ie`, `safari`, `phantomjs` or `ios`. In the near future we will be supporting more
|
53
53
|
mobile platforms so stay tuned.
|
54
54
|
|
55
55
|
Immediately following the browser is the version. This is optional and if you do not specify
|
56
56
|
it will select whatever version is available. It is up to you to make sure that the browser
|
57
57
|
and version combination are valid.
|
58
58
|
|
59
|
+
For mobile the version is the version of the OS you require replacing the
|
60
|
+
dot with an underscore. For example, `:ios10_2` will use iOS 10.2. You will
|
61
|
+
provide the additional information like the device type as additional
|
62
|
+
values. See below.
|
63
|
+
|
59
64
|
Following the version there is an underscore followed by the host os. This value is also
|
60
65
|
optional. Currently the following host os values are available:
|
61
66
|
|
67
|
+
|
62
68
|
| host | description |
|
63
69
|
| --- | --- |
|
64
70
|
| win10 | Windows 10 |
|
@@ -72,12 +78,7 @@ optional. Currently the following host os values are available:
|
|
72
78
|
| el_capitan | OS X 10.11 |
|
73
79
|
| sierra | macOS 10.12 |
|
74
80
|
| linux | Linux |
|
75
|
-
|
|
76
|
-
| ios61 | 'OS X 10.8' |
|
77
|
-
| ios70 | 'OS X 10.9' |
|
78
|
-
| ios71 | 'OS X 10.9' |
|
79
|
-
| ios80 | 'OS X 10.10' |
|
80
|
-
| ios81 | 'OS X 10.10' |
|
81
|
+
| ios | 'iOS' |
|
81
82
|
|
82
83
|
The host os value is typically used when running the tests on a Selenium Grid. It is up to
|
83
84
|
you to ensure that the host and requested browser combination exist on your grid.
|
@@ -98,9 +99,55 @@ RDee.configure do | config |
|
|
98
99
|
config.firefox_options = { :switches => %w[--disable-popups]}
|
99
100
|
config.ie_options = { :switches => %w[--disable-popups]}
|
100
101
|
config.safari_options = { :switches => %w[--disable-popups]}
|
102
|
+
config.ios_options = { :switches => %w[--disable-popups]}
|
103
|
+
end
|
104
|
+
````
|
105
|
+
|
106
|
+
### Mobile Specific Additional Settings
|
107
|
+
Mobile is more complex that the standard desktop browsers. In order to get everything
|
108
|
+
to work properly on a mobile platform you will need to provide some additional information.
|
109
|
+
Here is an example:
|
110
|
+
|
111
|
+
````ruby
|
112
|
+
mobile_capabilities = {
|
113
|
+
appiumVersion: '1.6.3',
|
114
|
+
deviceName: 'iPhone Simulator',
|
115
|
+
deviceOrientation: 'portrait'
|
116
|
+
}
|
117
|
+
RDee.watir_browser(target = :ios10_2, desired_capabilities: mobile_capabilities)
|
118
|
+
````
|
119
|
+
|
120
|
+
Another way to specify these additional capabilities is to specify them in the configure
|
121
|
+
block like this:
|
122
|
+
|
123
|
+
````ruby
|
124
|
+
RDee.configure do | config |
|
125
|
+
config.url = 'http://path.to.selenium.grid/wd/hub'
|
126
|
+
config.ios_capabilities = {
|
127
|
+
appiumVersion: '1.6.3',
|
128
|
+
deviceName: 'iPhone Simulator',
|
129
|
+
deviceOrientation: 'portrait'
|
130
|
+
}
|
101
131
|
end
|
102
132
|
````
|
103
133
|
|
134
|
+
Using the config allows us to set the values via environment variables without changing code.
|
135
|
+
|
136
|
+
````ruby
|
137
|
+
RDee.configure do | config |
|
138
|
+
config.url = 'http://path.to.selenium.grid/wd/hub'
|
139
|
+
config.ios_capabilities = {
|
140
|
+
appiumVersion: ENV['appiumVersion'],
|
141
|
+
deviceName: ENV['deviceName'],
|
142
|
+
deviceOrientation: ENV['deviceOrientation']
|
143
|
+
}
|
144
|
+
end
|
145
|
+
````
|
146
|
+
|
147
|
+
|
148
|
+
To see what options you should use please look at the
|
149
|
+
[Sauce Labs Configurator](https://wiki.saucelabs.com/display/DOCS/Platform+Configurator#/).
|
150
|
+
|
104
151
|
|
105
152
|
## Installation
|
106
153
|
|
@@ -38,3 +38,8 @@ Feature: RDee should work well with browsers when target is set via environment
|
|
38
38
|
Then I should be able to perform a google search for cheezyworld
|
39
39
|
And I should be able to close the connection
|
40
40
|
|
41
|
+
@chrome
|
42
|
+
Scenario: Using switches that are passed to the browser
|
43
|
+
When I set switches via configuration and use a Watir browser
|
44
|
+
Then I should be able to perform a google search for cheezyworld
|
45
|
+
And I should be able to close the connection
|
@@ -2,42 +2,42 @@ Feature: RDee should work well with mobile devices on a remote selenium grid
|
|
2
2
|
|
3
3
|
@mobile
|
4
4
|
Scenario: Creating an iPhone browser on ios 8.1
|
5
|
-
When I establish a
|
5
|
+
When I establish a mobile browser for ios8_1 on the remote machine using Watir
|
6
6
|
And I go to the cheezyworld site
|
7
|
-
And I select the
|
8
|
-
Then I should see the text
|
7
|
+
And I select the first title link
|
8
|
+
Then I should see the text from the first heading
|
9
9
|
|
10
10
|
@mobile
|
11
|
-
Scenario: Creating an iPhone browser on ios
|
12
|
-
When I establish a
|
11
|
+
Scenario: Creating an iPhone browser on ios 10.0
|
12
|
+
When I establish a mobile browser for ios10_0 on the remote machine using Watir
|
13
13
|
And I go to the cheezyworld site
|
14
|
-
And I select the
|
15
|
-
Then I should see the text
|
14
|
+
And I select the first title link
|
15
|
+
Then I should see the text from the first heading
|
16
16
|
|
17
17
|
@mobile
|
18
|
-
Scenario: Creating an iPhone browser on ios
|
19
|
-
When I establish a
|
18
|
+
Scenario: Creating an iPhone browser on ios 8.2
|
19
|
+
When I establish a mobile browser for ios8_2 on the remote machine using Watir
|
20
20
|
And I go to the cheezyworld site
|
21
|
-
And I select the
|
22
|
-
Then I should see the text
|
21
|
+
And I select the first title link
|
22
|
+
Then I should see the text from the first heading
|
23
23
|
|
24
24
|
@mobile
|
25
|
-
Scenario: Creating an iPhone browser on ios
|
26
|
-
When I establish a
|
25
|
+
Scenario: Creating an iPhone browser on ios 9.0
|
26
|
+
When I establish a mobile browser for ios9_0 on the remote machine using Selenium
|
27
27
|
And I go to the cheezyworld site
|
28
|
-
And I select the
|
29
|
-
Then I should see the text
|
28
|
+
And I select the first title link
|
29
|
+
Then I should see the text from the first heading
|
30
30
|
|
31
31
|
@mobile
|
32
|
-
Scenario: Creating an iPhone browser on ios
|
33
|
-
When I establish a
|
32
|
+
Scenario: Creating an iPhone browser on ios 10.2
|
33
|
+
When I establish a mobile browser for ios10_2 on the remote machine using Watir
|
34
34
|
And I go to the cheezyworld site
|
35
|
-
And I select the
|
36
|
-
Then I should see the text
|
35
|
+
And I select the first title link
|
36
|
+
Then I should see the text from the first heading
|
37
37
|
|
38
38
|
@mobile
|
39
|
-
Scenario: Creating an iPhone browser
|
40
|
-
When I
|
39
|
+
Scenario: Creating an iPhone browser using RDee configuration
|
40
|
+
When I use RDee configuration to establish an ios10_2 mobile browser
|
41
41
|
And I go to the cheezyworld site
|
42
|
-
And I select the
|
43
|
-
Then I should see the text
|
42
|
+
And I select the first title link
|
43
|
+
Then I should see the text from the first heading
|
@@ -50,7 +50,7 @@ Feature: RDee should work well with browsers on a remote selenium grid
|
|
50
50
|
|
51
51
|
@chrome
|
52
52
|
Scenario: Creating a browser on Mountain Lion
|
53
|
-
When I establish a
|
53
|
+
When I establish a chrome32_sierra browser on the remote machine using Watir
|
54
54
|
Then I should be able to perform a google search for cheezyworld
|
55
55
|
And I should be able to close the connection
|
56
56
|
|
@@ -8,9 +8,33 @@ When(/^I establish a (.+) browser with a variable using (.+)$/) do |browser, pla
|
|
8
8
|
ENV.delete 'RDEE_BROWSER'
|
9
9
|
end
|
10
10
|
|
11
|
-
When(/^I
|
11
|
+
When(/^I use RDee configuration to establish an (.+) mobile browser$/) do |browser|
|
12
|
+
RDee.configure do |config|
|
13
|
+
config.url = 'http://rdee:730071ad-7331-4d65-bd56-ec3ebfdd8232@ondemand.saucelabs.com:80/wd/hub'
|
14
|
+
config.ios_capabilities = {
|
15
|
+
appiumVersion: '1.6.3',
|
16
|
+
deviceName: 'iPhone Simulator',
|
17
|
+
deviceOrientation: 'portrait'
|
18
|
+
}
|
19
|
+
@browser = RDee.watir_browser(browser.to_sym)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
When(/^I establish an? (.+) browser on the remote machine using (.+)$/) do |browser, platform|
|
24
|
+
@browser = RDee.send "#{platform.downcase}_browser",
|
25
|
+
browser.to_sym,
|
26
|
+
url: 'http://rdee:730071ad-7331-4d65-bd56-ec3ebfdd8232@ondemand.saucelabs.com:80/wd/hub'
|
27
|
+
end
|
28
|
+
|
29
|
+
When(/^I establish an? mobile browser for (.+) on the remote machine using (.+)$/) do |browser, platform|
|
30
|
+
mobile_options = {
|
31
|
+
appiumVersion: '1.6.3',
|
32
|
+
deviceName: 'iPhone Simulator',
|
33
|
+
deviceOrientation: 'portrait'
|
34
|
+
}
|
12
35
|
@browser = RDee.send "#{platform.downcase}_browser",
|
13
36
|
browser.to_sym,
|
37
|
+
desired_capabilities: mobile_options,
|
14
38
|
url: 'http://rdee:730071ad-7331-4d65-bd56-ec3ebfdd8232@ondemand.saucelabs.com:80/wd/hub'
|
15
39
|
end
|
16
40
|
|
@@ -31,10 +55,28 @@ When(/^I go to the cheezyworld site$/) do
|
|
31
55
|
visit CheezyWorld
|
32
56
|
end
|
33
57
|
|
34
|
-
When(/^I select the transformations link$/) do
|
35
|
-
on(CheezyWorld).transformations_element.click
|
36
|
-
end
|
37
|
-
|
38
58
|
Then(/^I should see the text "(.*?)"$/) do |message|
|
39
59
|
expect(@current_page.text).to include message
|
40
60
|
end
|
61
|
+
|
62
|
+
|
63
|
+
And(/^I select the first title link$/) do
|
64
|
+
on(CheezyWorld) do |page|
|
65
|
+
@first_heading = page.first_heading_element.text
|
66
|
+
page.first_heading_element.click
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
Then(/^I should see the text from the first heading$/) do
|
71
|
+
on(CheezyWorld) do |page|
|
72
|
+
expect(page.text).to include @first_heading
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
When(/^I set switches via configuration and use a Watir browser$/) do
|
77
|
+
ENV['RDEE_BROWSER'] = 'chrome'
|
78
|
+
RDee.configure do |config|
|
79
|
+
config.chrome_options = { :switches => %w[--disable-extensions]}
|
80
|
+
end
|
81
|
+
@browser = RDee.watir_browser
|
82
|
+
end
|
@@ -7,7 +7,7 @@ module RDee
|
|
7
7
|
options.merge!(firefox_options) if need_firefox_options? target
|
8
8
|
options.merge!(ie_options) if need_ie_optons? target
|
9
9
|
options.merge!(safari_options) if need_safari_options? target
|
10
|
-
options.merge!(
|
10
|
+
options.merge!(ios_options) if need_ios_options? target
|
11
11
|
options
|
12
12
|
end
|
13
13
|
|
@@ -27,8 +27,8 @@ module RDee
|
|
27
27
|
not safari_options.nil? and target.to_s.include? 'safari'
|
28
28
|
end
|
29
29
|
|
30
|
-
def
|
31
|
-
not
|
30
|
+
def need_ios_options?(target)
|
31
|
+
not ios_options.nil? and target.to_s.include? 'ios'
|
32
32
|
end
|
33
33
|
|
34
34
|
end
|
data/lib/rdee/browser_factory.rb
CHANGED
@@ -6,14 +6,16 @@ require_relative 'additional_options'
|
|
6
6
|
module RDee
|
7
7
|
class ConnectionError < StandardError
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
class BrowserFactory
|
11
11
|
include TargetParser
|
12
12
|
include DesiredCapabilities
|
13
13
|
include AdditionalOptions
|
14
14
|
|
15
|
-
attr_accessor :url, :persistent_http
|
16
|
-
:
|
15
|
+
attr_accessor :url, :persistent_http
|
16
|
+
attr_accessor :chrome_options, :firefox_options, :ie_options,
|
17
|
+
:safari_options, :ios_options
|
18
|
+
attr_accessor :ios_capabilities
|
17
19
|
|
18
20
|
def watir_browser(target, options)
|
19
21
|
platform, options = platform_and_options(target, options)
|
@@ -54,7 +56,7 @@ module RDee
|
|
54
56
|
end
|
55
57
|
|
56
58
|
def platform_and_options(target, options)
|
57
|
-
target = ENV['RDEE_BROWSER'].to_sym if ENV['RDEE_BROWSER']
|
59
|
+
target = ENV['RDEE_BROWSER'].to_sym if ENV['RDEE_BROWSER']
|
58
60
|
platform, version, host = parse(target)
|
59
61
|
options.merge! additional_options_for target
|
60
62
|
options[:url] = url unless url.nil?
|
@@ -1,14 +1,38 @@
|
|
1
|
+
require_relative 'mobile_capabilities'
|
2
|
+
|
1
3
|
module RDee
|
2
4
|
module DesiredCapabilities
|
5
|
+
include MobileDevices
|
6
|
+
include MobileCapabilities
|
3
7
|
|
4
8
|
def capabilities(platform, version, host, existing_capabilities)
|
9
|
+
existing_capabilities = {} unless existing_capabilities
|
10
|
+
return mobile_capabilities(platform, version, existing_capabilities) if mobile?(platform)
|
11
|
+
browser_capabilities(platform, version, host, existing_capabilities)
|
12
|
+
end
|
13
|
+
|
14
|
+
def browser_capabilities(platform, version, host, existing_capabilities)
|
5
15
|
capabilities = Selenium::WebDriver::Remote::Capabilities.send platform
|
6
16
|
capabilities.version = version unless version.nil?
|
7
17
|
capabilities.platform = host unless host.nil?
|
8
|
-
|
18
|
+
existing_capabilities.each do |key, value|
|
19
|
+
capabilities[key] = value
|
20
|
+
end
|
9
21
|
capabilities
|
10
22
|
end
|
11
23
|
|
24
|
+
def mobile_capabilities(platform, version, existing_capabilities)
|
25
|
+
existing_capabilities.merge!(additional_capabilities_for(platform))
|
26
|
+
capabilities = Selenium::WebDriver::Remote::Capabilities
|
27
|
+
.new({
|
28
|
+
platformVersion: version,
|
29
|
+
platformName: mobile_platform[platform],
|
30
|
+
browserName: mobile_browsers[platform],
|
31
|
+
platform: :mac,
|
32
|
+
javascript_enabled: true
|
33
|
+
}.merge(existing_capabilities))
|
34
|
+
|
35
|
+
end
|
12
36
|
|
13
37
|
end
|
14
38
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require_relative 'mobile_devices'
|
2
|
+
|
3
|
+
module RDee
|
4
|
+
module MobileCapabilities
|
5
|
+
include MobileDevices
|
6
|
+
|
7
|
+
def additional_capabilities_for(target)
|
8
|
+
caps = {}
|
9
|
+
caps.merge!(ios_capabilities) if mobile_platform[target].eql?('iOS') and ios_capabilities
|
10
|
+
caps
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
data/lib/rdee/mobile_devices.rb
CHANGED
@@ -8,9 +8,19 @@ module RDee
|
|
8
8
|
|
9
9
|
|
10
10
|
def mobile_targets
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
mobile_browsers.keys
|
12
|
+
end
|
13
|
+
|
14
|
+
def mobile_browsers
|
15
|
+
@mobile_browsers ||= {
|
16
|
+
ios: 'Safari'
|
17
|
+
}
|
18
|
+
end
|
19
|
+
|
20
|
+
def mobile_platform
|
21
|
+
@mobile_platform ||= {
|
22
|
+
ios: 'iOS'
|
23
|
+
}
|
14
24
|
end
|
15
25
|
|
16
26
|
end
|
data/lib/rdee/target_parser.rb
CHANGED
@@ -38,7 +38,7 @@ module RDee
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def mobile_version(value)
|
41
|
-
value.to_s.
|
41
|
+
value.to_s.match(/[a-z]+(\d+\_*\d*)/)[1].gsub('_', '.')
|
42
42
|
end
|
43
43
|
|
44
44
|
def host_lookup
|
@@ -54,12 +54,7 @@ module RDee
|
|
54
54
|
el_capitan: 'OS X 10.11',
|
55
55
|
sierra: 'macOS 10.12',
|
56
56
|
linux: 'Linux',
|
57
|
-
|
58
|
-
ios61: 'OS X 10.8',
|
59
|
-
ios70: 'OS X 10.9',
|
60
|
-
ios71: 'OS X 10.9',
|
61
|
-
ios80: 'OS X 10.10',
|
62
|
-
ios81: 'OS X 10.10'
|
57
|
+
ios: 'iOS'
|
63
58
|
}
|
64
59
|
end
|
65
60
|
|
data/lib/rdee/version.rb
CHANGED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Mobile targets' do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
allow(Watir::Browser).to receive(:new)
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:capabilities) { Selenium::WebDriver::Remote::Capabilities }
|
10
|
+
|
11
|
+
context "when using iOS" do
|
12
|
+
|
13
|
+
let(:caps) {
|
14
|
+
{
|
15
|
+
platformVersion: '1.0',
|
16
|
+
platformName: 'iOS',
|
17
|
+
browserName: 'Safari',
|
18
|
+
platform: :mac,
|
19
|
+
javascript_enabled: true
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
it 'includes iOS 9.3' do
|
24
|
+
caps[:platformVersion] = '9.3'
|
25
|
+
expect(capabilities).to receive(:new).with(caps)
|
26
|
+
RDee.watir_browser :ios9_3, url: 'http://blah'
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'includes iOS 10.2' do
|
30
|
+
caps[:platformVersion] = '10.2'
|
31
|
+
expect(capabilities).to receive(:new).with(caps)
|
32
|
+
RDee.watir_browser :ios10_2, url: 'http://blah'
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should allow additional capabilities to be pass in via configuration' do
|
36
|
+
ios_capabilities = {
|
37
|
+
appiumVersion: '1.6.3',
|
38
|
+
deviceName: 'iPhone Simulator',
|
39
|
+
deviceOrientation: 'portrait'
|
40
|
+
}
|
41
|
+
RDee.configure do |config|
|
42
|
+
config.url = 'http://blah'
|
43
|
+
config.ios_capabilities = ios_capabilities
|
44
|
+
end
|
45
|
+
caps[:platformVersion] = '10.2'
|
46
|
+
expect(capabilities).to receive(:new).with(caps.merge(ios_capabilities))
|
47
|
+
RDee.watir_browser :ios10_2
|
48
|
+
RDee.configure do |config|
|
49
|
+
config.url = nil
|
50
|
+
config.ios_capabilities = nil
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
data/spec/lib/rd_spec.rb
CHANGED
@@ -172,25 +172,25 @@ describe RDee do
|
|
172
172
|
end
|
173
173
|
end
|
174
174
|
|
175
|
-
it "should allow users to add additional options for
|
175
|
+
it "should allow users to add additional options for ios by configuration" do
|
176
176
|
RDee.configure do |config|
|
177
|
-
config.
|
177
|
+
config.ios_options = {ios_options: 'option'}
|
178
178
|
end
|
179
|
-
expect(watir_browser).to receive(:new).with(:
|
180
|
-
RDee.watir_browser(:
|
179
|
+
expect(watir_browser).to receive(:new).with(:ios, ios_options: 'option')
|
180
|
+
RDee.watir_browser(:ios8_0)
|
181
181
|
RDee.configure do |config|
|
182
|
-
config.
|
182
|
+
config.ios_options = nil
|
183
183
|
end
|
184
184
|
end
|
185
185
|
|
186
|
-
it "
|
186
|
+
it "should not add ios_options when not using ios" do
|
187
187
|
RDee.configure do |config|
|
188
|
-
config.
|
188
|
+
config.ios_options = {ios_options: 'option'}
|
189
189
|
end
|
190
190
|
expect(watir_browser).to receive(:new).with(:firefox)
|
191
191
|
RDee.watir_browser(:firefox)
|
192
192
|
RDee.configure do |config|
|
193
|
-
config.
|
193
|
+
config.ios_options = nil
|
194
194
|
end
|
195
195
|
end
|
196
196
|
|
@@ -71,26 +71,6 @@ describe RDee::TargetParser do
|
|
71
71
|
expect(host).to eql 'Linux'
|
72
72
|
end
|
73
73
|
|
74
|
-
it "should parse ios60 for iphone" do
|
75
|
-
target, version, host = parser.parse(:iphone_ios60)
|
76
|
-
expect(host).to eql 'OS X 10.8'
|
77
|
-
end
|
78
|
-
|
79
|
-
it "should parse ios70 for iphone" do
|
80
|
-
target, version, host = parser.parse(:iphone_ios70)
|
81
|
-
expect(host).to eql 'OS X 10.9'
|
82
|
-
end
|
83
|
-
|
84
|
-
it "should parse ios71 for iphone" do
|
85
|
-
target, version, host = parser.parse(:iphone_ios71)
|
86
|
-
expect(host).to eql 'OS X 10.9'
|
87
|
-
end
|
88
|
-
|
89
|
-
it "should parse ios61 for iphone" do
|
90
|
-
target, version, host = parser.parse(:iphone_ios61)
|
91
|
-
expect(host).to eql 'OS X 10.8'
|
92
|
-
end
|
93
|
-
|
94
74
|
it "should cleanly handle an invalid host" do
|
95
75
|
target, version, host = parser.parse(:firefox30_foobar)
|
96
76
|
expect(host).to be_nil
|
data/spec/lib/targets_spec.rb
CHANGED
@@ -177,55 +177,6 @@ describe "Supported browser combinations" do
|
|
177
177
|
end
|
178
178
|
end
|
179
179
|
|
180
|
-
context "for iPhone" do
|
181
|
-
|
182
|
-
before(:each) do
|
183
|
-
allow(capabilities).to receive(:iphone).and_return(desired_capabilities)
|
184
|
-
end
|
185
|
-
|
186
|
-
it "includes iPhone with ios 6.0" do
|
187
|
-
expect(desired_capabilities).to receive(:version=).with('6.0')
|
188
|
-
expect(desired_capabilities).to receive(:platform=).with('OS X 10.8')
|
189
|
-
expect(watir_browser).to receive(:new).with(:remote, url: 'http://blah', desired_capabilities: anything())
|
190
|
-
RDee.watir_browser :iphone_ios60, url: 'http://blah'
|
191
|
-
end
|
192
|
-
|
193
|
-
it "includes iPhone with ios 6.1" do
|
194
|
-
expect(desired_capabilities).to receive(:version=).with('6.1')
|
195
|
-
expect(desired_capabilities).to receive(:platform=).with('OS X 10.8')
|
196
|
-
expect(watir_browser).to receive(:new).with(:remote, url: 'http://blah', desired_capabilities: anything())
|
197
|
-
RDee.watir_browser :iphone_ios61, url: 'http://blah'
|
198
|
-
end
|
199
|
-
|
200
|
-
it "includes iPhone with ios 7.0" do
|
201
|
-
expect(desired_capabilities).to receive(:version=).with('7.0')
|
202
|
-
expect(desired_capabilities).to receive(:platform=).with('OS X 10.9')
|
203
|
-
expect(watir_browser).to receive(:new).with(:remote, url: 'http://blah', desired_capabilities: anything())
|
204
|
-
RDee.watir_browser :iphone_ios70, url: 'http://blah'
|
205
|
-
end
|
206
|
-
|
207
|
-
it "includes iPhone with ios 7.1" do
|
208
|
-
expect(desired_capabilities).to receive(:version=).with('7.1')
|
209
|
-
expect(desired_capabilities).to receive(:platform=).with('OS X 10.9')
|
210
|
-
expect(watir_browser).to receive(:new).with(:remote, url: 'http://blah', desired_capabilities: anything())
|
211
|
-
RDee.watir_browser :iphone_ios71, url: 'http://blah'
|
212
|
-
end
|
213
|
-
|
214
|
-
it "includes iPhone with ios 8.0" do
|
215
|
-
expect(desired_capabilities).to receive(:version=).with('8.0')
|
216
|
-
expect(desired_capabilities).to receive(:platform=).with('OS X 10.10')
|
217
|
-
expect(watir_browser).to receive(:new).with(:remote, url: 'http://blah', desired_capabilities: anything())
|
218
|
-
RDee.watir_browser :iphone_ios80, url: 'http://blah'
|
219
|
-
end
|
220
|
-
|
221
|
-
it "includes iPhone with ios 8.1" do
|
222
|
-
expect(desired_capabilities).to receive(:version=).with('8.1')
|
223
|
-
expect(desired_capabilities).to receive(:platform=).with('OS X 10.10')
|
224
|
-
expect(watir_browser).to receive(:new).with(:remote, url: 'http://blah', desired_capabilities: anything())
|
225
|
-
RDee.watir_browser :iphone_ios81, url: 'http://blah'
|
226
|
-
end
|
227
|
-
end
|
228
|
-
|
229
180
|
context "for hosts" do
|
230
181
|
before(:each) do
|
231
182
|
allow(capabilities).to receive(:firefox).and_return(desired_capabilities)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: RDee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.7'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeffrey S. Morgan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: watir
|
@@ -137,10 +137,12 @@ files:
|
|
137
137
|
- lib/rdee/additional_options.rb
|
138
138
|
- lib/rdee/browser_factory.rb
|
139
139
|
- lib/rdee/desired_capabilities.rb
|
140
|
+
- lib/rdee/mobile_capabilities.rb
|
140
141
|
- lib/rdee/mobile_devices.rb
|
141
142
|
- lib/rdee/target_parser.rb
|
142
143
|
- lib/rdee/version.rb
|
143
144
|
- rdee.gemspec
|
145
|
+
- spec/lib/moble_targets_spec.rb
|
144
146
|
- spec/lib/rd_spec.rb
|
145
147
|
- spec/lib/target_parser_spec.rb
|
146
148
|
- spec/lib/targets_spec.rb
|
@@ -165,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
165
167
|
version: '0'
|
166
168
|
requirements: []
|
167
169
|
rubyforge_project:
|
168
|
-
rubygems_version: 2.
|
170
|
+
rubygems_version: 2.6.11
|
169
171
|
signing_key:
|
170
172
|
specification_version: 4
|
171
173
|
summary: Dynamically create a connection for Selenium or Watir.
|
@@ -178,6 +180,7 @@ test_files:
|
|
178
180
|
- features/support/env.rb
|
179
181
|
- features/support/pages/cheezyworld.rb
|
180
182
|
- features/support/pages/google_search.rb
|
183
|
+
- spec/lib/moble_targets_spec.rb
|
181
184
|
- spec/lib/rd_spec.rb
|
182
185
|
- spec/lib/target_parser_spec.rb
|
183
186
|
- spec/lib/targets_spec.rb
|