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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ef6b7eca083c27f5dc45d9e81854697a175c706a
4
- data.tar.gz: 5f29a865c65c990681a69e5902dcdbfa99bf42e9
3
+ metadata.gz: ebfa0b02eb28f97547b5cfbdddd07cd6fe4340a5
4
+ data.tar.gz: 665d1e9598eaed543589057ca2ebbace6e0e0448
5
5
  SHA512:
6
- metadata.gz: 88a77a7c2c8c2f5c67d3d9ba1418c0b6a8d65568e77482f59841f57d574392c47d70ee38224b40f04749c916834e1a0c16ed629ac9d6b840b54c1867d5aff527
7
- data.tar.gz: 2f0e6a6de214e03ad8e6866e88ae40c4136adf9302e3d574e054e52afd432fb280f5cb02a544fed2989b6f443e3497057777173b07a27b55d00a89552955b879
6
+ metadata.gz: da3d4026092a697e09d2817dc7d2116bba3b1dadf01421483fa7e8d06aad03e38b4e5b3769bf8454bd4f8e297ac564077e538ff05a29af6e7c091926c357c879
7
+ data.tar.gz: a5512aec12f716e47000854cbca511d98a8663ffab9196a855f3946c8897047b0a8209a95bd68db207b00bd326474030c198c3a250255ad33b2ae6255bee4d80
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ === Version 7.4 / 2016-1-6
2
+ * Enhancements
3
+ * Added support for iPad Pro and iPhone 6/6s (Thanks samnissen)
4
+
1
5
  === Version 7.3 / 2015-7-14 (Thanks samnissen)
2
6
  * Enhancements
3
7
  * Allow users to override the browser screensize
@@ -1,4 +1,16 @@
1
- :iphone:
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
- :iphone6plus:
10
- :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"
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
- :iphone6:
18
- :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"
31
+ :iphone6s:
32
+ <<: *iphone_default
33
+ :iphone6plus:
34
+ <<: *iphone_default
19
35
  :portrait:
20
- :width: 375
21
- :height: 559
36
+ :width: 414
37
+ :height: 628
22
38
  :landscape:
23
- :width: 667
24
- :height: 375
39
+ :width: 736
40
+ :height: 414
41
+ :iphone6:
42
+ <<: *iphone_default
25
43
  :iphone5s:
26
- :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"
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
- :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"
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/9537.53"
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 eq("about:blank")
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.3"
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.3'
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: 2015-07-14 00:00:00.000000000 Z
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: