selenium-emulated_features 2.0.1 → 3.0.0

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: 88fa8eee73799af9ca8ddf6c97f41157640a17ff
4
- data.tar.gz: f7e0a077e7a42db82e19d71f26b4089d5131e062
3
+ metadata.gz: ef19fa900178d7666dc5d52df3ecc90186a8f10b
4
+ data.tar.gz: 8714840b86268008cbb4bb72be7ccdcb72489c03
5
5
  SHA512:
6
- metadata.gz: bdc0506bea01be5709183e9e0d9cd7e0e204875160e1bef3b13b8c0c56cd41726f3dbb8a08e66b76bc69fed0f9bdbcfb538d07032519d8c4400ae8d786bbbc33
7
- data.tar.gz: cb98128b311e630a984f9b506d0adc72c70be085a60f62a7787bffa773bffe3a6470d32ee8764d6301b4ed63086f0cf8db7a732677cc0a74bb7a3924e1f4f7f8
6
+ metadata.gz: 99d0b8b457066eac833610b54d066cd94b6016904e77800faab76e1222647a0e72bd26530fbcfa8bb03849e18f1d72c1bc08669d4018d5a26809d52aba513d49
7
+ data.tar.gz: dc5eb77e6b255e5322ba16d7fa622b4fb34761cd996cb72eb04bf99d662b408bd597ea7759a5077efc0761b128148154ab2f8d8405003dbd11b8d3e48bc0f62b
@@ -1,16 +1,16 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- selenium-emulated_features (2.0.0)
4
+ selenium-emulated_features (3.0.0)
5
5
  selenium-webdriver (~> 3.0)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- childprocess (0.5.9)
10
+ childprocess (0.7.0)
11
11
  ffi (~> 1.0, >= 1.0.11)
12
12
  diff-lcs (1.2.5)
13
- ffi (1.9.14)
13
+ ffi (1.9.18)
14
14
  rack (1.6.0)
15
15
  rack-protection (1.5.3)
16
16
  rack
@@ -27,17 +27,15 @@ GEM
27
27
  diff-lcs (>= 1.2.0, < 2.0)
28
28
  rspec-support (~> 3.2.0)
29
29
  rspec-support (3.2.1)
30
- rubyzip (1.2.0)
31
- selenium-webdriver (3.0.3)
30
+ rubyzip (1.2.1)
31
+ selenium-webdriver (3.4.3)
32
32
  childprocess (~> 0.5)
33
33
  rubyzip (~> 1.0)
34
- websocket (~> 1.0)
35
34
  sinatra (1.4.5)
36
35
  rack (~> 1.4)
37
36
  rack-protection (~> 1.4)
38
37
  tilt (~> 1.3, >= 1.3.4)
39
38
  tilt (1.4.1)
40
- websocket (1.2.3)
41
39
 
42
40
  PLATFORMS
43
41
  ruby
@@ -48,4 +46,4 @@ DEPENDENCIES
48
46
  sinatra (~> 1.4)
49
47
 
50
48
  BUNDLED WITH
51
- 1.12.5
49
+ 1.14.6
data/README.md CHANGED
@@ -1,11 +1,22 @@
1
1
  # selenium-emulated_features
2
2
  Adds HTTP status code and response headers emulation to Selenium drivers.
3
3
 
4
+ Latest release tested on OS X 10.12.3 with:
5
+
6
+ | Browser | Driver |
7
+ | ------------------- |:------------------------:|
8
+ | Chrome 60.0.3112.40 | ChromeDriver 2.30.477690 |
9
+ | Safari 10.0.3 | built-in safaridriver |
10
+ | Firefox 54.0 | -- |
11
+ | PhantomJS 2.2.1 | -- |
12
+
13
+ __Note:__ Ensure _Develop > Allow Remote Automation_ is enabled in Safari!
14
+
4
15
  ## Installation
5
16
  Install with Bundler by adding the following line to your `Gemfile`:
6
17
 
7
18
  ```
8
- gem "selenium-emulated_features", "~> 2.0"
19
+ gem "selenium-emulated_features", "~> 3.0"
9
20
  ```
10
21
  Or install via RubyGems:
11
22
 
@@ -25,19 +36,4 @@ driver.response_code # => 404
25
36
  driver.response_headers # => {...}
26
37
  ```
27
38
 
28
- `nil` is returned if the URI is not reachable or an error occurs:
29
-
30
- ```ruby
31
- driver.navigate.to("https://example.foobar")
32
-
33
- driver.response_code # => nil
34
- driver.response_headers # => nil
35
- ```
36
-
37
- If you want an exception to be raised instead:
38
-
39
- ```ruby
40
- Selenium::EmulatedFeatures.raise_exceptions = true
41
- driver.navigate.to("https://example.foobar")
42
- driver.response_code # => Selenium::EmulatedFeatures::Error
43
- ```
39
+ `nil` is returned if the URI is not reachable or an error occurs.
@@ -5,13 +5,7 @@ require "emulated_features/response_headers"
5
5
 
6
6
  module Selenium
7
7
  module EmulatedFeatures
8
- VERSION = "2.0.1"
9
-
10
- class Error < StandardError; end
11
-
12
- class << self
13
- attr_accessor :raise_exceptions
14
- end
8
+ VERSION = "3.0.0"
15
9
  end
16
10
  end
17
11
 
@@ -2,52 +2,33 @@ module Selenium
2
2
  module EmulatedFeatures
3
3
  module ResponseCode
4
4
  def response_code
5
- dom_str = execute_script <<-js
6
- if(document.SEF && document.SEF.request) {
7
- return document.SEF.request.status;
5
+ execute_script <<-js
6
+ if(document.__SEF__ && document.__SEF__.request) {
7
+ return document.__SEF__.request.status;
8
8
  }
9
9
 
10
10
  var baseURI = document.baseURI;
11
11
 
12
12
  /* Firefox */
13
- if(/about:neterror/.test(baseURI)) {
14
- return null;
15
- }
13
+ if (/about:neterror/.test(baseURI)) return null;
16
14
 
17
15
  /* Safari */
18
- if(/Safari.app/.test(baseURI)) {
19
- return null;
20
- }
16
+ if (/Safari.app/.test(baseURI)) return null;
21
17
 
22
18
  /* Chrome */
23
- if(/chromewebdata/.test(baseURI)) {
24
- return null;
25
- }
19
+ if (/chromewebdata/.test(baseURI)) return null;
26
20
 
27
- document.SEF = {}
28
- document.SEF.request = new XMLHttpRequest();
21
+ document.__SEF__ = {}
22
+ document.__SEF__.request = new XMLHttpRequest();
29
23
 
30
- document.SEF.request.open("GET", document.location, false);
31
- document.SEF.request.send(null);
32
- return document.SEF.request.status;
24
+ document.__SEF__.request.open("GET", document.location, false);
25
+ document.__SEF__.request.send(null);
26
+ return document.__SEF__.request.status;
33
27
  js
34
-
35
- return dom_str if dom_str
36
-
37
- if Selenium::EmulatedFeatures.raise_exceptions
38
- raise Selenium::EmulatedFeatures::Error
39
- else
40
- nil
41
- end
42
-
43
- # PhantomJS
44
- rescue Selenium::WebDriver::Error::UnknownError
45
- if Selenium::EmulatedFeatures.raise_exceptions
46
- raise Selenium::EmulatedFeatures::Error
47
- else
48
- nil
49
- end
50
28
  end
29
+
30
+ rescue
31
+ nil
51
32
  end
52
33
  end
53
34
  end
@@ -3,57 +3,39 @@ module Selenium
3
3
  module ResponseHeaders
4
4
  def response_headers
5
5
  dom_str = execute_script <<-js
6
- if(document.SEF && document.SEF.request) {
7
- return document.SEF.request.getAllResponseHeaders();
6
+ if(document.__SEF__ && document.__SEF__.request) {
7
+ return document.__SEF__.request.getAllResponseHeaders();
8
8
  }
9
9
 
10
10
  var baseURI = document.baseURI;
11
11
 
12
12
  /* Firefox */
13
- if(/about:neterror/.test(baseURI)) {
14
- return null;
15
- }
13
+ if (/about:neterror/.test(baseURI)) return null;
16
14
 
17
15
  /* Safari */
18
- if(/Safari.app/.test(baseURI)) {
19
- return null;
20
- }
16
+ if (/Safari.app/.test(baseURI)) return null;
21
17
 
22
18
  /* Chrome */
23
- if(/chromewebdata/.test(baseURI)) {
24
- return null;
25
- }
19
+ if (/chromewebdata/.test(baseURI)) return null;
26
20
 
27
- document.SEF = {};
28
- document.SEF.request = new XMLHttpRequest();
21
+ document.__SEF__ = {};
22
+ document.__SEF__.request = new XMLHttpRequest();
29
23
 
30
- document.SEF.request.open("GET", document.location, false);
31
- document.SEF.request.send(null);
32
- return document.SEF.request.getAllResponseHeaders();
24
+ document.__SEF__.request.open("GET", document.location, false);
25
+ document.__SEF__.request.send(null);
26
+ return document.__SEF__.request.getAllResponseHeaders();
33
27
  js
34
28
 
35
- if !dom_str
36
- if Selenium::EmulatedFeatures.raise_exceptions
37
- raise Selenium::EmulatedFeatures::Error
38
- else
39
- return nil
40
- end
41
- end
29
+ return nil unless dom_str
42
30
 
43
31
  dom_str.split("\n").inject({}) do |headers, line|
44
32
  field, value = line.split(": ")
45
33
  headers.merge({ field.downcase => [value.strip] })
46
34
  end
47
35
 
48
- # PhantomJS, Firefox
49
- rescue Selenium::WebDriver::Error::UnknownError,
50
- Selenium::WebDriver::Error::JavascriptError
51
- if Selenium::EmulatedFeatures.raise_exceptions
52
- raise Selenium::EmulatedFeatures::Error
53
- else
54
- nil
55
- end
56
- end
36
+ rescue
37
+ nil
38
+ end
57
39
  end
58
40
  end
59
41
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "selenium-emulated_features"
3
- s.version = "2.0.1"
3
+ s.version = "3.0.0"
4
4
 
5
5
  s.summary = <<-summary
6
6
  Adds HTTP status code and response headers emulation to Selenium drivers
@@ -2,7 +2,6 @@ require "selenium-webdriver"
2
2
  require "selenium/emulated_features"
3
3
 
4
4
  describe Selenium::EmulatedFeatures::ResponseCode do
5
-
6
5
  shared_examples "a WebDriver that responds to #response_code" do
7
6
  after { driver.quit }
8
7
 
@@ -18,35 +17,6 @@ describe Selenium::EmulatedFeatures::ResponseCode do
18
17
  driver.navigate.to "http://0.0.0.0:9876/status_code/418"
19
18
  expect(driver.response_code).to be 418
20
19
  end
21
-
22
- context "when server is unreachable" do
23
- before { skip if driver.browser == :safari }
24
-
25
- it "returns nil" do
26
- driver.navigate.to "http://example.foobar"
27
- expect(driver.response_code).to be nil
28
- end
29
-
30
- it "still works for successive requests" do
31
- driver.navigate.to "http://example.foobar"
32
- expect(driver.response_code).to be nil
33
-
34
- driver.navigate.to "http://0.0.0.0:9876/status_code/418"
35
- expect(driver.response_code).to be 418
36
- end
37
-
38
- context "with exceptions enabled" do
39
- before { Selenium::EmulatedFeatures.raise_exceptions = true }
40
- after { Selenium::EmulatedFeatures.raise_exceptions = false }
41
-
42
- it "raises an exception" do
43
- expect {
44
- driver.navigate.to "http://example.foobar"
45
- puts driver.response_code.class
46
- }.to raise_error Selenium::EmulatedFeatures::Error
47
- end
48
- end
49
- end
50
20
  end
51
21
 
52
22
  describe "Firefox driver", firefox: true do
@@ -2,7 +2,6 @@ require "selenium-webdriver"
2
2
  require "selenium/emulated_features"
3
3
 
4
4
  describe Selenium::EmulatedFeatures::ResponseHeaders do
5
-
6
5
  shared_examples "a WebDriver that responds to #response_headers" do
7
6
  after { driver.quit }
8
7
 
@@ -21,34 +20,6 @@ describe Selenium::EmulatedFeatures::ResponseHeaders do
21
20
 
22
21
  expect(headers_a).not_to eq headers_b
23
22
  end
24
-
25
- context "when server is unreachable" do
26
- before { skip if driver.browser == :safari }
27
-
28
- it "returns nil" do
29
- driver.navigate.to "http://example.foobar"
30
- expect(driver.response_headers).to be nil
31
- end
32
-
33
- it "still works for successive requests" do
34
- driver.navigate.to "http://example.foobar"
35
- driver.navigate.to "http://0.0.0.0:9876/response_headers"
36
- expect(driver.response_headers["foo"]).to eq ["Bar"]
37
- expect(driver.response_headers["alpha"]).to eq ["Beta"]
38
- end
39
-
40
- context "with exceptions enabled" do
41
- before { Selenium::EmulatedFeatures.raise_exceptions = true }
42
- after { Selenium::EmulatedFeatures.raise_exceptions = false }
43
-
44
- it "raises an exception" do
45
- expect {
46
- driver.navigate.to "http://example.foobar"
47
- driver.response_headers
48
- }.to raise_error Selenium::EmulatedFeatures::Error
49
- end
50
- end
51
- end
52
23
  end
53
24
 
54
25
  describe "Firefox driver", firefox: true do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium-emulated_features
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominic Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-11 00:00:00.000000000 Z
11
+ date: 2017-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -99,4 +99,3 @@ summary: Adds HTTP status code and response headers emulation to Selenium driver
99
99
  test_files:
100
100
  - spec/response_code_spec.rb
101
101
  - spec/response_headers_spec.rb
102
- has_rdoc: