webdriver-user-agent 7.4 → 7.5

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
- SHA1:
3
- metadata.gz: ebfa0b02eb28f97547b5cfbdddd07cd6fe4340a5
4
- data.tar.gz: 665d1e9598eaed543589057ca2ebbace6e0e0448
2
+ SHA256:
3
+ metadata.gz: 9260c1a33a202278f16eadeb8c2e3e925e28896eccf6aaf778bc127460e4dbd2
4
+ data.tar.gz: 70e9b164502d0c04e60c8391e8c6b8164ea6259846cecbe29212353cbf3d45cd
5
5
  SHA512:
6
- metadata.gz: da3d4026092a697e09d2817dc7d2116bba3b1dadf01421483fa7e8d06aad03e38b4e5b3769bf8454bd4f8e297ac564077e538ff05a29af6e7c091926c357c879
7
- data.tar.gz: a5512aec12f716e47000854cbca511d98a8663ffab9196a855f3946c8897047b0a8209a95bd68db207b00bd326474030c198c3a250255ad33b2ae6255bee4d80
6
+ metadata.gz: e81485d6bf53586daae8c220ce77a8795bf576744eb19e6f6a45951f2dfea4079faadbc86ef540a8a939af0d240c35d9b5c460a719d089453e40ee2102d74736
7
+ data.tar.gz: 25524c3865c8a54ce01f3c62d46c214fa33b6f1475aea1f5321268ab5c003796f0d40a807efcd16e8198bef8b02f3cfbeffbcf909842cb12162c0f7997621297
@@ -1 +1 @@
1
- ruby-2.2.1
1
+ ruby-2.4.1
data/ChangeLog CHANGED
@@ -1,3 +1,11 @@
1
+ === Version 7.5 / 2017-8-22
2
+ * Enhancements
3
+ * Added support for modern iPhone and iPad sizes
4
+ * Added support for driving Safari and Safari Technology Preview
5
+ * Updated to use new Watir namespace
6
+ * Updated to Ruby 2.4.1
7
+ * Updated Chrome and Firefox options configuration to use new Selenium syntax
8
+
1
9
  === Version 7.4 / 2016-1-6
2
10
  * Enhancements
3
11
  * Added support for iPad Pro and iPhone 6/6s (Thanks samnissen)
@@ -17,4 +25,3 @@
17
25
  === Version 7.1 / 2014-3-2
18
26
  * Enhancements
19
27
  * Added ipad 7 device support (Thanks Matthwe Fleeger)
20
-
data/README.md CHANGED
@@ -25,6 +25,7 @@ provides a UserAgent.driver method to return a new web-driver with user agent an
25
25
  * :browser
26
26
  * :firefox (default)
27
27
  * :chrome
28
+ * :safari
28
29
  * :agent
29
30
  * :iphone (default)
30
31
  * :ipad
@@ -51,9 +52,9 @@ provides a UserAgent.driver method to return a new web-driver with user agent an
51
52
  driver.execute_script('return navigator.userAgent')
52
53
  # random agent like "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.2) Gecko/20010726 Netscape6/6.1"
53
54
 
54
- ### Example using watir-webdriver
55
+ ### Example using watir
55
56
 
56
- require 'watir-webdriver'
57
+ require 'watir'
57
58
  require 'webdriver-user-agent'
58
59
  driver = Webdriver::UserAgent.driver(:browser => :chrome, :agent => :iphone, :orientation => :landscape)
59
60
  browser = Watir::Browser.new(driver)
@@ -11,44 +11,59 @@
11
11
  :width: 1366
12
12
  :height: 768
13
13
  :iphone_default: &iphone_default
14
- :user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12B435 Safari/600.1.4"
14
+ :user_agent: "Mozilla/5.0 (iPhone; CPU iPhone OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1"
15
15
  :portrait:
16
16
  :width: 375
17
- :height: 559
17
+ :height: 635
18
18
  :landscape:
19
- :width: 667
19
+ :width: 724
20
20
  :height: 375
21
- :iphone:
21
+ :iphone: &iphone
22
22
  <<: *iphone_default
23
- :iphone6splus:
23
+ :iphonex:
24
+ <<: *iphone_default
25
+ :iphone8plus: &iphone8plus
24
26
  <<: *iphone_default
25
27
  :portrait:
26
28
  :width: 414
27
- :height: 628
29
+ :height: 622
28
30
  :landscape:
29
31
  :width: 736
30
32
  :height: 414
31
- :iphone6s:
32
- <<: *iphone_default
33
- :iphone6plus:
33
+ :iphone8: &iphone8
34
34
  <<: *iphone_default
35
35
  :portrait:
36
- :width: 414
37
- :height: 628
36
+ :width: 375
37
+ :height: 553
38
38
  :landscape:
39
- :width: 736
40
- :height: 414
39
+ :width: 667
40
+ :height: 375
41
+ :iphone7plus:
42
+ <<: *iphone8plus
43
+ :iphone7:
44
+ <<: *iphone8
45
+ :portrait:
46
+ :iphone6splus:
47
+ <<: *iphone8plus
48
+ :iphone6s:
49
+ <<: *iphone8
50
+ :iphone6plus:
51
+ <<: *iphone8plus
41
52
  :iphone6:
42
- <<: *iphone_default
43
- :iphone5s:
53
+ <<: *iphone8
54
+ :iphone5s: &iphone5s
44
55
  <<: *iphone_default
45
56
  :portrait:
46
57
  :width: 320
47
- :height: 460
58
+ :height: 454
48
59
  :landscape:
49
60
  :width: 568
50
- :height: 212
51
- :iphone4s:
61
+ :height: 320
62
+ :iphonese:
63
+ <<: *iphone5s
64
+ :iphone5:
65
+ <<: *iphone5s
66
+ :iphone4s: &iphone4s
52
67
  <<: *iphone_default
53
68
  :portrait:
54
69
  :width: 320
@@ -56,22 +71,44 @@
56
71
  :landscape:
57
72
  :width: 480
58
73
  :height: 196
59
- :ipad:
60
- :user_agent: "Mozilla/5.0(iPad; U; CPU OS 8_1_1 like Mac OS X) AppleWebKit/600.14 (KHTML, like Gecko) Version/8.0 Mobile/12B435 Safari/600.1.4"
74
+ :iphone4:
75
+ <<: *iphone4s
76
+ :ipad: &ipad
77
+ :user_agent: "Mozilla/5.0 (iPad; CPU OS 11_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.0 Mobile/15E148 Safari/604.1"
61
78
  :portrait:
62
79
  :width: 768
63
- :height: 960
80
+ :height: 954
64
81
  :landscape:
65
82
  :width: 1024
66
- :height: 704
67
- :ipad_pro:
68
- :user_agent: "Mozilla/5.0 (iPad; CPU OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B137 Safari/601.1"
83
+ :height: 698
84
+ :ipad_default:
85
+ <<: *ipad
86
+ :ipad_pro: &ipad_pro
87
+ <<: *ipad
69
88
  :portrait:
70
89
  :width: 1024
71
- :height: 1302
90
+ :height: 1296
72
91
  :landscape:
73
92
  :width: 1366
74
- :height: 960
93
+ :height: 954
94
+ :ipad_pro_12:
95
+ <<: *ipad_pro
96
+ :ipad_pro_10:
97
+ <<: *ipad
98
+ :portrait:
99
+ :width: 834
100
+ :height: 1042
101
+ :landscape:
102
+ :width: 1112
103
+ :height: 764
104
+ :ipad_pro_9:
105
+ <<: *ipad
106
+ :portrait:
107
+ :width: 768
108
+ :height: 954
109
+ :landscape:
110
+ :width: 1024
111
+ :height: 698
75
112
  :android_phone:
76
113
  :user_agent: "Mozilla/5.0 (Linux; U; Android 4.0.1; en-us; sdk Build/ICS_MR0) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"
77
114
  :portrait:
@@ -2,6 +2,9 @@ require 'facets/hash/except'
2
2
 
3
3
  module Webdriver
4
4
  module UserAgent
5
+
6
+ MINIMUM_MACOS_VERSION_NUMBER = 12
7
+
5
8
  class BrowserOptions
6
9
 
7
10
  def initialize(opts, user_agent_string)
@@ -9,9 +12,10 @@ module Webdriver
9
12
  options[:browser] ||= :firefox
10
13
  options[:agent] ||= :iphone
11
14
  options[:orientation] ||= :portrait
12
-
15
+ set_preview_option(options[:safari_technology_preview]) if (@options[:browser] == :safari)
16
+
13
17
  options[:viewport_width], options[:viewport_height] = parse_viewport_sizes(options[:viewport_width], options[:viewport_height])
14
-
18
+
15
19
  initialize_for_browser(user_agent_string)
16
20
  end
17
21
 
@@ -32,25 +36,68 @@ module Webdriver
32
36
  @options ||= {}
33
37
  end
34
38
 
39
+ def set_preview_option(opt)
40
+ @stp = opt
41
+ @stp = false unless @stp.is_a?(TrueClass)
42
+ end
43
+
35
44
  def initialize_for_browser(user_agent_string)
36
45
  case options[:browser]
37
46
  when :firefox
38
- options[:profile] ||= Selenium::WebDriver::Firefox::Profile.new
39
- options[:profile]['general.useragent.override'] = user_agent_string
47
+ profile ||= Selenium::WebDriver::Firefox::Profile.new
48
+ profile['general.useragent.override'] = user_agent_string
49
+
50
+ options[:options] ||= Selenium::WebDriver::Firefox::Options.new
51
+ options[:options].profile = profile
40
52
  when :chrome
41
- options[:switches] ||= []
42
- options[:switches] << "--user-agent=#{user_agent_string}"
53
+ options[:options] ||= Selenium::WebDriver::Chrome::Options.new
54
+ options[:options].add_argument "--user-agent=#{user_agent_string}"
55
+ when :safari
56
+ change_safari_user_agent_string(user_agent_string)
57
+ options
43
58
  else
44
- raise "WebDriver UserAgent currently only supports :firefox and :chrome."
59
+ raise "WebDriver UserAgent currently only supports :chrome, :firefox and :safari."
45
60
  end
46
-
47
61
  end
48
-
62
+
49
63
  def parse_viewport_sizes(width, height)
50
64
  return ["0","0"] unless "#{width}".to_i > 0 && "#{height}".to_i > 0
51
-
65
+
52
66
  ["#{width}", "#{height}"]
53
67
  end
68
+
69
+ def change_safari_user_agent_string(user_agent_string)
70
+ raise "Safari requires a Mac" unless OS.mac?
71
+
72
+ ua = "\\\"#{user_agent_string}\\\"" # escape for shell quoting
73
+ if @stp
74
+ Selenium::WebDriver::Safari.technology_preview!
75
+ cmd = "defaults write com.apple.SafariTechnologyPreview CustomUserAgent \"#{ua}\""
76
+ else
77
+ cmd = "defaults write com.apple.Safari CustomUserAgent \"#{ua}\""
78
+ end
79
+
80
+ output = `#{cmd}`
81
+
82
+ error_message = "Unable to execute '#{cmd}'. "
83
+ error_message += "Error message reported: '#{output}'"
84
+ error_message += "Please execute the command manually and correct any errors."
85
+
86
+ raise error_message unless $?.success?
87
+ end
88
+
89
+ # Require a Mac at version 12 (Sierra) or greater
90
+ def require_mac_version
91
+ raise "Safari requires a Mac" unless OS.mac?
92
+ raise "Selenium only works with Safari on Sierra or newer" unless valid_mac_version?
93
+ end
94
+
95
+ def valid_mac_version?
96
+ version = "#{`defaults read loginwindow SystemVersionStampAsString`}"
97
+ version_number = "#{version.split(".")[1]}"
98
+ version_number.to_i >= MINIMUM_MACOS_VERSION_NUMBER
99
+ end
100
+
54
101
  end
55
102
  end
56
103
  end
@@ -1,4 +1,5 @@
1
1
  require 'json'
2
+ require 'os'
2
3
  require 'selenium-webdriver'
3
4
  require 'webdriver-user-agent/browser_options'
4
5
  require 'webdriver-user-agent/devices'
@@ -14,18 +15,22 @@ module Webdriver
14
15
  user_agent_string ||= agent_string_for opts[:agent]
15
16
  options = BrowserOptions.new(opts, user_agent_string)
16
17
  build_driver_using options
18
+ ensure
19
+ if safari?(opts)
20
+ case
21
+ when opts[:safari_technology_preview].is_a?(TrueClass)
22
+ `defaults delete com.apple.SafariTechnologyPreview CustomUserAgent`
23
+ else
24
+ `defaults delete com.apple.Safari CustomUserAgent`
25
+ end
26
+ end
17
27
  end
18
28
 
19
29
  private
20
30
 
21
31
  def resize_inner_window(driver, width, height)
22
- if driver.browser == :firefox or :chrome
23
- driver.execute_script("window.open(#{driver.current_url.to_json},'_blank');")
24
- driver.close
25
- driver.switch_to.window driver.window_handles.first
26
- end
27
32
  target_size = Selenium::WebDriver::Dimension.new(width.to_i, height.to_i)
28
- driver.manage.window.size = target_size
33
+ driver.manage.window.resize_to target_size.width, target_size.height
29
34
  end
30
35
 
31
36
  def build_driver_using(options)
@@ -36,6 +41,9 @@ module Webdriver
36
41
  driver
37
42
  end
38
43
 
44
+ def safari?(o = {})
45
+ o[:browser] == :safari
46
+ end
39
47
  end
40
48
  end
41
49
  end
@@ -4,15 +4,18 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
4
  $LOAD_PATH.unshift(File.dirname(__FILE__))
5
5
  require 'webdriver-user-agent'
6
6
  require 'selenium-webdriver'
7
- require 'watir-webdriver'
7
+ require 'watir'
8
8
 
9
- CHROMEBROWSER_UICHROME_HEIGHT = 72
10
- CHROMEBROWSER_UI_MINIMUM_HEIGHT = 200
11
- FIREFOXBROWSER_UICHROME_HEIGHT = 79
9
+ CHROMEBROWSER_UICHROME_HEIGHT = 114
10
+ CHROMEBROWSER_UICHROME_HEIGHT_TALL = 41
11
+ CHROMEBROWSER_UI_MINIMUM_HEIGHT = 158
12
+ FIREFOXBROWSER_UICHROME_HEIGHT = 74
13
+ SAFARIBROWSER_UICHROME_HEIGHT = 38
12
14
 
13
15
  describe "webdriver user agent" do
14
16
  after :each do
15
- @driver.quit if @driver
17
+ @browser.close if @browser rescue nil
18
+ @driver.quit if @driver rescue nil
16
19
  end
17
20
 
18
21
  # window.innerWidth and window.innerHeight
@@ -25,7 +28,16 @@ describe "webdriver user agent" do
25
28
  expect(@driver.browser).to eq(:firefox)
26
29
  expect(@driver.execute_script('return navigator.userAgent')).to include 'iPhone'
27
30
  expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(375)
28
- expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(559 - FIREFOXBROWSER_UICHROME_HEIGHT)
31
+ expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(635 - FIREFOXBROWSER_UICHROME_HEIGHT)
32
+ end
33
+
34
+ it "can create a new webdriver driver using safari and iphone 6 plus, and landscape" do
35
+ @driver = Webdriver::UserAgent.driver(:browser => :safari, :agent => :iphone6plus, :orientation => :landscape)
36
+ expect(@driver.browser).to eq(:safari)
37
+
38
+ expect(@driver.execute_script('return navigator.userAgent')).to include 'iPhone'
39
+ expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(736)
40
+ expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(414 - SAFARIBROWSER_UICHROME_HEIGHT)
29
41
  end
30
42
 
31
43
  it "can create a new webdriver driver using chrome and iphone 6 plus (landscape)" do
@@ -37,16 +49,16 @@ describe "webdriver user agent" do
37
49
  end
38
50
 
39
51
  it "can create a new webdriver driver using chrome and iPad (landscape)" do
40
- @driver = Webdriver::UserAgent.driver(:browser => :chrome, :agent => :iPad, :orientation => :landscape)
52
+ @driver = Webdriver::UserAgent.driver(:browser => :chrome, :agent => :ipad, :orientation => :landscape)
41
53
  expect(@driver.browser).to eq(:chrome)
42
54
  expect(@driver.execute_script('return navigator.userAgent')).to include 'iPad'
43
55
  expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(1024)
44
- expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(704 - CHROMEBROWSER_UICHROME_HEIGHT)
56
+ expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(698 - CHROMEBROWSER_UICHROME_HEIGHT)
45
57
  end
46
58
 
47
59
  it "can create a new webdriver driver using chrome and iPad Pro (portrait)" do
48
60
  # Testing the height will fail if your monitor is not tall enough.
49
- # For instance, a 15" MacBook Pro cannot be.
61
+ # For instance, a 15" MacBook Pro at default scaled resolution cannot be.
50
62
  # This will determine if your monitor is tall enough.
51
63
  # Optionally, you can override with an environment variable:
52
64
  # `I_HAVE_A_TALL_MONITOR=true rspec spec/this_file.rb`
@@ -86,7 +98,7 @@ describe "webdriver user agent" do
86
98
  expect(@driver.browser).to eq(:chrome)
87
99
  expect(@driver.execute_script('return navigator.userAgent')).to include 'Android'
88
100
  expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(768)
89
- expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(873 - CHROMEBROWSER_UICHROME_HEIGHT)
101
+ expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(873 - CHROMEBROWSER_UICHROME_HEIGHT_TALL)
90
102
  end
91
103
 
92
104
  it "can create a new webdriver driver using firefox and desktop (landscape)" do
@@ -116,11 +128,14 @@ describe "webdriver user agent" do
116
128
  it "can create a new webdriver driver using an existing firefox profile" do
117
129
  profile = Selenium::WebDriver::Firefox::Profile.new
118
130
  profile['browser.startup.homepage'] = "data:text/html,<title>hello</title>"
119
- @driver = Webdriver::UserAgent.driver(:browser => :firefox, :profile => profile)
131
+ options = Selenium::WebDriver::Firefox::Options.new
132
+ options.profile = profile
133
+ @driver = Webdriver::UserAgent.driver(:browser => :firefox, options: options)
134
+
120
135
  expect(@driver.browser).to eq(:firefox)
121
136
  expect(@driver.execute_script('return navigator.userAgent')).to include 'iPhone'
122
137
  expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(375)
123
- expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(559 - FIREFOXBROWSER_UICHROME_HEIGHT)
138
+ expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(635 - FIREFOXBROWSER_UICHROME_HEIGHT)
124
139
  end
125
140
 
126
141
  it "can create a new webdriver driver using firefox and user-specified user agent" do
@@ -141,15 +156,16 @@ describe "webdriver user agent" do
141
156
  end
142
157
 
143
158
  it "can create a new webdriver driver, handling for nonsense height and widths" do
144
- @driver = Webdriver::UserAgent.driver(:viewport_width => "abc", :agent => :iphone6)
159
+ @driver = Webdriver::UserAgent.driver(:viewport_width => "abc", :agent => :iphone8)
145
160
  expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(375)
146
- expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(559 - FIREFOXBROWSER_UICHROME_HEIGHT)
161
+ expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(553 - FIREFOXBROWSER_UICHROME_HEIGHT)
147
162
  end
148
163
 
149
164
  it "can allow using selenium driver for watir browser" do
150
165
  @driver = Webdriver::UserAgent.driver(:browser => :firefox, :agent => :iphone, :orientation => :portrait)
151
166
  @browser = Watir::Browser.new @driver
152
- expect(@browser.url).to include("mozilla.org")
167
+ expect(@browser).to be_a(Watir::Browser)
168
+ expect(@browser.url).to be_a(String)
153
169
  end
154
170
 
155
171
  end
@@ -1,8 +1,8 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  Gem::Specification.new do |gem|
4
- gem.authors = ["Alister Scott", "Jeff Morgan"]
5
- gem.email = ["alister.scott@gmail.com", "jeff.morgan@leandog.com"]
4
+ gem.authors = ["Alister Scott", "Jeff Morgan", "Sandeep Singh", "Sam Nissen"]
5
+ gem.email = ["alister.scott@gmail.com", "jeff.morgan@leandog.com", "sandeepnagra@gmail.com", "scnissen@gmail.com"]
6
6
  gem.description = %q{A helper gem to emulate populate device user agents and resolutions when using webdriver}
7
7
  gem.summary = %q{A helper gem to emulate populate device user agents and resolutions when using webdriver}
8
8
  gem.homepage = "https://github.com/alisterscott/webdriver-user-agent"
@@ -12,14 +12,15 @@ Gem::Specification.new do |gem|
12
12
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
13
13
  gem.name = "webdriver-user-agent"
14
14
  gem.require_paths = ["lib"]
15
- gem.version = "7.4"
15
+ gem.version = "7.5"
16
16
  gem.requirements << 'chromedriver, v2.20'
17
17
  # chromedriver v2.19 causes
18
18
  # Selenium::WebDriver::Error::NoSuchDriverError: no such session errors
19
- gem.add_dependency 'selenium-webdriver'
19
+ gem.add_dependency 'selenium-webdriver', '>= 3.4.0'
20
+ gem.add_dependency 'os'
20
21
  gem.add_dependency 'facets'
21
22
  gem.add_dependency 'json'
22
23
  gem.add_dependency 'psych'
23
24
  gem.add_development_dependency 'rspec'
24
- gem.add_development_dependency 'watir-webdriver'
25
+ gem.add_development_dependency 'watir'
25
26
  end
metadata CHANGED
@@ -1,18 +1,34 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webdriver-user-agent
3
3
  version: !ruby/object:Gem::Version
4
- version: '7.4'
4
+ version: '7.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alister Scott
8
8
  - Jeff Morgan
9
+ - Sandeep Singh
10
+ - Sam Nissen
9
11
  autorequire:
10
12
  bindir: bin
11
13
  cert_chain: []
12
- date: 2016-01-06 00:00:00.000000000 Z
14
+ date: 2018-08-21 00:00:00.000000000 Z
13
15
  dependencies:
14
16
  - !ruby/object:Gem::Dependency
15
17
  name: selenium-webdriver
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 3.4.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 3.4.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: os
16
32
  requirement: !ruby/object:Gem::Requirement
17
33
  requirements:
18
34
  - - ">="
@@ -82,7 +98,7 @@ dependencies:
82
98
  - !ruby/object:Gem::Version
83
99
  version: '0'
84
100
  - !ruby/object:Gem::Dependency
85
- name: watir-webdriver
101
+ name: watir
86
102
  requirement: !ruby/object:Gem::Requirement
87
103
  requirements:
88
104
  - - ">="
@@ -100,6 +116,8 @@ description: A helper gem to emulate populate device user agents and resolutions
100
116
  email:
101
117
  - alister.scott@gmail.com
102
118
  - jeff.morgan@leandog.com
119
+ - sandeepnagra@gmail.com
120
+ - scnissen@gmail.com
103
121
  executables: []
104
122
  extensions: []
105
123
  extra_rdoc_files: []
@@ -143,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
143
161
  requirements:
144
162
  - chromedriver, v2.20
145
163
  rubyforge_project:
146
- rubygems_version: 2.4.6
164
+ rubygems_version: 2.7.7
147
165
  signing_key:
148
166
  specification_version: 4
149
167
  summary: A helper gem to emulate populate device user agents and resolutions when