webdriver-user-agent 7.3 → 7.4

Sign up to get free protection for your applications and to get access to all the features.
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: