webdriver-user-agent 7.3 → 7.4
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 +4 -4
- data/ChangeLog +4 -0
- data/lib/device-info/devices.yaml +38 -12
- data/spec/webdriver-user-agent_spec.rb +51 -26
- data/webdriver-user-agent.gemspec +4 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ebfa0b02eb28f97547b5cfbdddd07cd6fe4340a5
|
4
|
+
data.tar.gz: 665d1e9598eaed543589057ca2ebbace6e0e0448
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da3d4026092a697e09d2817dc7d2116bba3b1dadf01421483fa7e8d06aad03e38b4e5b3769bf8454bd4f8e297ac564077e538ff05a29af6e7c091926c357c879
|
7
|
+
data.tar.gz: a5512aec12f716e47000854cbca511d98a8663ffab9196a855f3946c8897047b0a8209a95bd68db207b00bd326474030c198c3a250255ad33b2ae6255bee4d80
|
data/ChangeLog
CHANGED
@@ -1,4 +1,16 @@
|
|
1
|
-
|
1
|
+
# Desktop size sources
|
2
|
+
# http://www.hobo-web.co.uk/best-screen-size/
|
3
|
+
# https://en.wikipedia.org/wiki/Display_resolution#Common_display_resolutions
|
4
|
+
# http://www.w3schools.com/browsers/browsers_display.asp
|
5
|
+
:desktop:
|
6
|
+
:user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/600.8.9 (KHTML, like Gecko) Version/8.0.8 Safari/600.8.9"
|
7
|
+
:portrait:
|
8
|
+
:width: 768
|
9
|
+
:height: 1024
|
10
|
+
:landscape:
|
11
|
+
:width: 1366
|
12
|
+
:height: 768
|
13
|
+
:iphone_default: &iphone_default
|
2
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"
|
3
15
|
:portrait:
|
4
16
|
:width: 375
|
@@ -6,24 +18,30 @@
|
|
6
18
|
:landscape:
|
7
19
|
:width: 667
|
8
20
|
:height: 375
|
9
|
-
:
|
10
|
-
|
21
|
+
:iphone:
|
22
|
+
<<: *iphone_default
|
23
|
+
:iphone6splus:
|
24
|
+
<<: *iphone_default
|
11
25
|
:portrait:
|
12
26
|
:width: 414
|
13
27
|
:height: 628
|
14
28
|
:landscape:
|
15
29
|
:width: 736
|
16
30
|
:height: 414
|
17
|
-
:
|
18
|
-
|
31
|
+
:iphone6s:
|
32
|
+
<<: *iphone_default
|
33
|
+
:iphone6plus:
|
34
|
+
<<: *iphone_default
|
19
35
|
:portrait:
|
20
|
-
:width:
|
21
|
-
:height:
|
36
|
+
:width: 414
|
37
|
+
:height: 628
|
22
38
|
:landscape:
|
23
|
-
:width:
|
24
|
-
:height:
|
39
|
+
:width: 736
|
40
|
+
:height: 414
|
41
|
+
:iphone6:
|
42
|
+
<<: *iphone_default
|
25
43
|
:iphone5s:
|
26
|
-
|
44
|
+
<<: *iphone_default
|
27
45
|
:portrait:
|
28
46
|
:width: 320
|
29
47
|
:height: 460
|
@@ -31,7 +49,7 @@
|
|
31
49
|
:width: 568
|
32
50
|
:height: 212
|
33
51
|
:iphone4s:
|
34
|
-
|
52
|
+
<<: *iphone_default
|
35
53
|
:portrait:
|
36
54
|
:width: 320
|
37
55
|
:height: 356
|
@@ -39,13 +57,21 @@
|
|
39
57
|
:width: 480
|
40
58
|
:height: 196
|
41
59
|
:ipad:
|
42
|
-
: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/
|
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"
|
43
61
|
:portrait:
|
44
62
|
:width: 768
|
45
63
|
:height: 960
|
46
64
|
:landscape:
|
47
65
|
:width: 1024
|
48
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"
|
69
|
+
:portrait:
|
70
|
+
:width: 1024
|
71
|
+
:height: 1302
|
72
|
+
:landscape:
|
73
|
+
:width: 1366
|
74
|
+
:height: 960
|
49
75
|
:android_phone:
|
50
76
|
: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"
|
51
77
|
:portrait:
|
@@ -14,9 +14,9 @@ describe "webdriver user agent" do
|
|
14
14
|
after :each do
|
15
15
|
@driver.quit if @driver
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
# window.innerWidth and window.innerHeight
|
19
|
-
# do not accurately provide
|
19
|
+
# do not accurately provide
|
20
20
|
# browser widths and heights
|
21
21
|
# http://stackoverflow.com/a/8876069/1651458
|
22
22
|
|
@@ -24,7 +24,7 @@ describe "webdriver user agent" do
|
|
24
24
|
@driver = Webdriver::UserAgent.driver
|
25
25
|
expect(@driver.browser).to eq(:firefox)
|
26
26
|
expect(@driver.execute_script('return navigator.userAgent')).to include 'iPhone'
|
27
|
-
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(375)
|
27
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(375)
|
28
28
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(559 - FIREFOXBROWSER_UICHROME_HEIGHT)
|
29
29
|
end
|
30
30
|
|
@@ -40,20 +40,45 @@ describe "webdriver user agent" do
|
|
40
40
|
@driver = Webdriver::UserAgent.driver(:browser => :chrome, :agent => :iPad, :orientation => :landscape)
|
41
41
|
expect(@driver.browser).to eq(:chrome)
|
42
42
|
expect(@driver.execute_script('return navigator.userAgent')).to include 'iPad'
|
43
|
-
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(1024)
|
43
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(1024)
|
44
44
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(704 - CHROMEBROWSER_UICHROME_HEIGHT)
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
|
+
it "can create a new webdriver driver using chrome and iPad Pro (portrait)" do
|
48
|
+
# Testing the height will fail if your monitor is not tall enough.
|
49
|
+
# For instance, a 15" MacBook Pro cannot be.
|
50
|
+
# This will determine if your monitor is tall enough.
|
51
|
+
# Optionally, you can override with an environment variable:
|
52
|
+
# `I_HAVE_A_TALL_MONITOR=true rspec spec/this_file.rb`
|
53
|
+
width = 800; height = 1302
|
54
|
+
@driver = Webdriver::UserAgent.driver(:viewport_width => "#{width}", :viewport_height => height, :agent => :desktop)
|
55
|
+
browser_max_height = @driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')
|
56
|
+
@you_have_a_tall_monitor = (browser_max_height > (1302 - CHROMEBROWSER_UICHROME_HEIGHT))
|
57
|
+
@you_have_a_tall_monitor = true if ("#{ENV['I_HAVE_A_TALL_MONITOR']}".downcase == 'true')
|
58
|
+
@driver.quit if @driver
|
59
|
+
# Back to your regularly scheduled test.
|
60
|
+
|
61
|
+
@driver = Webdriver::UserAgent.driver(:browser => :chrome, :agent => :ipad_pro, :orientation => :portrait)
|
62
|
+
expect(@driver.browser).to eq(:chrome)
|
63
|
+
expect(@driver.execute_script('return navigator.userAgent')).to include 'iPad'
|
64
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(1024)
|
65
|
+
|
66
|
+
# See above
|
67
|
+
if @you_have_a_tall_monitor
|
68
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(1302 - CHROMEBROWSER_UICHROME_HEIGHT)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
47
72
|
it "can create a new webdriver driver using firefox and android phone (landscape)" do
|
48
73
|
@driver = Webdriver::UserAgent.driver(:browser => :chrome, :agent => :android_phone, :orientation => :landscape)
|
49
74
|
expect(@driver.browser).to eq(:chrome)
|
50
75
|
expect(@driver.execute_script('return navigator.userAgent')).to include 'Android'
|
51
|
-
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(480)
|
52
|
-
|
76
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(480)
|
77
|
+
|
53
78
|
# Chrome is apparently setting some kind of minimum height
|
54
79
|
# As seen on Chrome v42 on OS X Yosimite
|
55
80
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(CHROMEBROWSER_UI_MINIMUM_HEIGHT)
|
56
|
-
|
81
|
+
|
57
82
|
end
|
58
83
|
|
59
84
|
it "can create a new webdriver driver using chrome and android tablet (portrait)" do
|
@@ -64,11 +89,19 @@ describe "webdriver user agent" do
|
|
64
89
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(873 - CHROMEBROWSER_UICHROME_HEIGHT)
|
65
90
|
end
|
66
91
|
|
92
|
+
it "can create a new webdriver driver using firefox and desktop (landscape)" do
|
93
|
+
@driver = Webdriver::UserAgent.driver(:browser => :firefox, :agent => :desktop, :orientation => :landscape)
|
94
|
+
expect(@driver.browser).to eq(:firefox)
|
95
|
+
expect(@driver.execute_script('return navigator.userAgent')).to include 'Mac OS X'
|
96
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(1366)
|
97
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(768 - FIREFOXBROWSER_UICHROME_HEIGHT)
|
98
|
+
end
|
99
|
+
|
67
100
|
it "can create a new webdriver driver using firefox and random user agent" do
|
68
101
|
@driver = Webdriver::UserAgent.driver(:agent => :random)
|
69
102
|
expect(@driver.browser).to eq(:firefox)
|
70
103
|
expect(@driver.execute_script('return navigator.userAgent')).not_to be_nil
|
71
|
-
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).not_to eq(320)
|
104
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).not_to eq(320)
|
72
105
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).not_to eq(356 - FIREFOXBROWSER_UICHROME_HEIGHT)
|
73
106
|
end
|
74
107
|
|
@@ -76,7 +109,7 @@ describe "webdriver user agent" do
|
|
76
109
|
@driver = Webdriver::UserAgent.driver(:browser => :chrome, :agent => :random)
|
77
110
|
expect(@driver.browser).to eq(:chrome)
|
78
111
|
expect(@driver.execute_script('return navigator.userAgent')).not_to be_nil
|
79
|
-
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).not_to eq(320)
|
112
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).not_to eq(320)
|
80
113
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).not_to eq(356 - CHROMEBROWSER_UICHROME_HEIGHT)
|
81
114
|
end
|
82
115
|
|
@@ -86,45 +119,37 @@ describe "webdriver user agent" do
|
|
86
119
|
@driver = Webdriver::UserAgent.driver(:browser => :firefox, :profile => profile)
|
87
120
|
expect(@driver.browser).to eq(:firefox)
|
88
121
|
expect(@driver.execute_script('return navigator.userAgent')).to include 'iPhone'
|
89
|
-
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(375)
|
122
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(375)
|
90
123
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(559 - FIREFOXBROWSER_UICHROME_HEIGHT)
|
91
|
-
expect(@driver.title).to eq('hello')
|
92
124
|
end
|
93
|
-
|
125
|
+
|
94
126
|
it "can create a new webdriver driver using firefox and user-specified user agent" do
|
95
127
|
@driver = Webdriver::UserAgent.driver(:user_agent_string => "Mozilla/4.0 (compatible; MSIE 5.5b1; Mac_PowerPC)")
|
96
128
|
expect(@driver.browser).to eq(:firefox)
|
97
129
|
expect(@driver.execute_script('return navigator.userAgent')).to include 'Mac_PowerPC'
|
98
|
-
|
130
|
+
|
99
131
|
@browser = Watir::Browser.new @driver
|
100
|
-
expect(@browser.url).to eq("about:blank")
|
101
132
|
end
|
102
|
-
|
133
|
+
|
103
134
|
it "can create a new webdriver driver using firefox and user-specified viewport sizes (string or int)" do
|
104
135
|
width = 800
|
105
136
|
height = 600
|
106
|
-
|
137
|
+
|
107
138
|
@driver = Webdriver::UserAgent.driver(:viewport_width => "#{width}", :viewport_height => height, :agent => :iphone6)
|
108
139
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(800)
|
109
140
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(600 - FIREFOXBROWSER_UICHROME_HEIGHT)
|
110
|
-
|
111
|
-
@browser = Watir::Browser.new @driver
|
112
|
-
expect(@browser.url).to eq("about:blank")
|
113
141
|
end
|
114
|
-
|
142
|
+
|
115
143
|
it "can create a new webdriver driver, handling for nonsense height and widths" do
|
116
144
|
@driver = Webdriver::UserAgent.driver(:viewport_width => "abc", :agent => :iphone6)
|
117
|
-
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(375)
|
145
|
+
expect(@driver.execute_script('return Math.max(document.documentElement.clientWidth, window.innerWidth || 0)')).to eq(375)
|
118
146
|
expect(@driver.execute_script('return Math.max(document.documentElement.clientHeight, window.innerHeight || 0)')).to eq(559 - FIREFOXBROWSER_UICHROME_HEIGHT)
|
119
|
-
|
120
|
-
@browser = Watir::Browser.new @driver
|
121
|
-
expect(@browser.url).to eq("about:blank")
|
122
147
|
end
|
123
148
|
|
124
149
|
it "can allow using selenium driver for watir browser" do
|
125
150
|
@driver = Webdriver::UserAgent.driver(:browser => :firefox, :agent => :iphone, :orientation => :portrait)
|
126
151
|
@browser = Watir::Browser.new @driver
|
127
|
-
expect(@browser.url).to
|
152
|
+
expect(@browser.url).to include("mozilla.org")
|
128
153
|
end
|
129
154
|
|
130
155
|
end
|
@@ -12,7 +12,10 @@ 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.
|
15
|
+
gem.version = "7.4"
|
16
|
+
gem.requirements << 'chromedriver, v2.20'
|
17
|
+
# chromedriver v2.19 causes
|
18
|
+
# Selenium::WebDriver::Error::NoSuchDriverError: no such session errors
|
16
19
|
gem.add_dependency 'selenium-webdriver'
|
17
20
|
gem.add_dependency 'facets'
|
18
21
|
gem.add_dependency 'json'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webdriver-user-agent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '7.
|
4
|
+
version: '7.4'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alister Scott
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-01-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: selenium-webdriver
|
@@ -140,7 +140,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
140
|
- - ">="
|
141
141
|
- !ruby/object:Gem::Version
|
142
142
|
version: '0'
|
143
|
-
requirements:
|
143
|
+
requirements:
|
144
|
+
- chromedriver, v2.20
|
144
145
|
rubyforge_project:
|
145
146
|
rubygems_version: 2.4.6
|
146
147
|
signing_key:
|