selenium-emulated_features 1.0.0 → 2.0.0
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/Gemfile.lock +12 -9
- data/{LICENSE.md → LICENSE} +0 -0
- data/README.md +15 -8
- data/Rakefile +26 -13
- data/lib/selenium/emulated_features.rb +5 -3
- data/lib/selenium/emulated_features/response_code.rb +17 -1
- data/lib/selenium/emulated_features/response_headers.rb +39 -5
- data/selenium-emulated_features.gemspec +5 -7
- data/spec/response_code_spec.rb +36 -3
- data/spec/response_headers_spec.rb +46 -3
- metadata +5 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8fb917f4dbc8b5389e5f57b3e2db6941f3b3226
|
4
|
+
data.tar.gz: 5988bca1966cd32f007c3354bd15952f52603be2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b59514ac827dca1e72a80ecc9b395c49ad8213224f5f131e068090b68bd7d79ed95c79d72cc58adc22c779cc398036d11b33ff3b802f287931384287005888f
|
7
|
+
data.tar.gz: da988ccd383efad982afa8c97767f0ffce289f5acc80b538ac1fee2b09b1d79c5e911dd375174864f13a4a91ab48c03a4b7d733adb722bff6d4c9597adaf284d
|
data/Gemfile.lock
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
selenium-emulated_features (0.0
|
4
|
+
selenium-emulated_features (2.0.0)
|
5
|
+
selenium-webdriver (~> 2.44)
|
5
6
|
|
6
7
|
GEM
|
7
8
|
remote: https://rubygems.org/
|
8
9
|
specs:
|
9
|
-
childprocess (0.5.
|
10
|
+
childprocess (0.5.6)
|
10
11
|
ffi (~> 1.0, >= 1.0.11)
|
11
12
|
diff-lcs (1.2.5)
|
12
|
-
ffi (1.9.
|
13
|
-
multi_json (1.
|
13
|
+
ffi (1.9.8)
|
14
|
+
multi_json (1.11.1)
|
14
15
|
rack (1.6.0)
|
15
16
|
rack-protection (1.5.3)
|
16
17
|
rack
|
@@ -28,7 +29,7 @@ GEM
|
|
28
29
|
rspec-support (~> 3.2.0)
|
29
30
|
rspec-support (3.2.1)
|
30
31
|
rubyzip (1.1.7)
|
31
|
-
selenium-webdriver (2.
|
32
|
+
selenium-webdriver (2.46.2)
|
32
33
|
childprocess (~> 0.5)
|
33
34
|
multi_json (~> 1.0)
|
34
35
|
rubyzip (~> 1.0)
|
@@ -38,13 +39,15 @@ GEM
|
|
38
39
|
rack-protection (~> 1.4)
|
39
40
|
tilt (~> 1.3, >= 1.3.4)
|
40
41
|
tilt (1.4.1)
|
41
|
-
websocket (1.2.
|
42
|
+
websocket (1.2.2)
|
42
43
|
|
43
44
|
PLATFORMS
|
44
45
|
ruby
|
45
46
|
|
46
47
|
DEPENDENCIES
|
47
|
-
rspec (~> 3.1
|
48
|
+
rspec (~> 3.1)
|
48
49
|
selenium-emulated_features!
|
49
|
-
|
50
|
-
|
50
|
+
sinatra (~> 1.4)
|
51
|
+
|
52
|
+
BUNDLED WITH
|
53
|
+
1.10.2
|
data/{LICENSE.md → LICENSE}
RENAMED
File without changes
|
data/README.md
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
# selenium-emulated_features
|
2
|
-
Adds HTTP status code and response headers emulation to
|
2
|
+
Adds HTTP status code and response headers emulation to Selenium drivers.
|
3
3
|
|
4
4
|
## Installation
|
5
|
-
|
5
|
+
Install with Bundler by adding the following line to your `Gemfile`:
|
6
6
|
|
7
7
|
```
|
8
|
-
|
8
|
+
gem "selenium-emulated_features", "~> 2.0"
|
9
9
|
```
|
10
|
-
|
11
|
-
Via Bundler:
|
10
|
+
Or install via RubyGems:
|
12
11
|
|
13
12
|
```
|
14
|
-
gem
|
13
|
+
% gem install selenium-emulated_features
|
15
14
|
```
|
16
15
|
|
17
16
|
## Usage
|
@@ -26,11 +25,19 @@ driver.response_code # => 404
|
|
26
25
|
driver.response_headers # => {...}
|
27
26
|
```
|
28
27
|
|
29
|
-
|
28
|
+
`nil` is returned if the URI is not reachable or an error occurs:
|
30
29
|
|
31
30
|
```ruby
|
32
31
|
driver.navigate.to("https://example.foobar")
|
33
32
|
|
34
33
|
driver.response_code # => nil
|
35
34
|
driver.response_headers # => nil
|
36
|
-
```
|
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
|
+
```
|
data/Rakefile
CHANGED
@@ -1,24 +1,30 @@
|
|
1
|
+
require "thread"
|
1
2
|
require "rspec/core/rake_task"
|
2
3
|
require_relative "support/test_app"
|
3
4
|
|
4
5
|
namespace :spec do
|
5
6
|
desc "Run examples for the Chrome driver"
|
6
|
-
RSpec::Core::RakeTask.new chrome: [:
|
7
|
+
RSpec::Core::RakeTask.new chrome: [:test_app] do |task|
|
7
8
|
task.rspec_opts = %w(--tag chrome)
|
8
9
|
end
|
9
10
|
|
10
11
|
desc "Run examples for the Firefox Driver"
|
11
|
-
RSpec::Core::RakeTask.new firefox: [:
|
12
|
+
RSpec::Core::RakeTask.new firefox: [:test_app] do |task|
|
12
13
|
task.rspec_opts = %w(--tag firefox)
|
13
14
|
end
|
14
15
|
|
15
16
|
desc "Run examples for the Safari Driver"
|
16
|
-
RSpec::Core::RakeTask.new safari: [:
|
17
|
+
RSpec::Core::RakeTask.new safari: [:test_app] do |task|
|
17
18
|
task.rspec_opts = %w(--tag safari)
|
18
19
|
end
|
20
|
+
|
21
|
+
desc "Run examples for the PhantomJS Driver"
|
22
|
+
RSpec::Core::RakeTask.new phantomjs: [:test_app] do |task|
|
23
|
+
task.rspec_opts = %w(--tag phantomjs)
|
24
|
+
end
|
19
25
|
end
|
20
26
|
|
21
|
-
RSpec::Core::RakeTask.new spec: [:
|
27
|
+
RSpec::Core::RakeTask.new spec: [:test_app]
|
22
28
|
|
23
29
|
Rake::Task[:spec].enhance { Rake::Task[:stop_test_app].invoke }
|
24
30
|
|
@@ -27,14 +33,21 @@ task :build do
|
|
27
33
|
sh "gem build selenium-emulated_features.gemspec --verbose"
|
28
34
|
end
|
29
35
|
|
30
|
-
task :
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
36
|
+
task :test_app do
|
37
|
+
mutex = Mutex.new
|
38
|
+
cvar = ConditionVariable.new
|
39
|
+
|
40
|
+
@server_thread ||= Thread.new do
|
41
|
+
Rack::Handler::WEBrick.run(
|
42
|
+
TestApp,
|
43
|
+
Port: 9876,
|
44
|
+
BindAddress: "localhost",
|
45
|
+
Logger: WEBrick::Log.new("/dev/null"),
|
46
|
+
AccessLog: [],
|
47
|
+
:StartCallback => Proc.new { cvar.signal }
|
48
|
+
)
|
49
|
+
end
|
37
50
|
|
38
|
-
|
39
|
-
|
51
|
+
mutex.lock
|
52
|
+
cvar.wait(mutex)
|
40
53
|
end
|
@@ -5,19 +5,21 @@ require "emulated_features/response_headers"
|
|
5
5
|
|
6
6
|
module Selenium
|
7
7
|
module EmulatedFeatures
|
8
|
+
VERSION = "2.0.0"
|
8
9
|
|
9
|
-
|
10
|
+
class Error < StandardError; end
|
10
11
|
|
12
|
+
class << self
|
13
|
+
attr_accessor :raise_exceptions
|
14
|
+
end
|
11
15
|
end
|
12
16
|
end
|
13
17
|
|
14
18
|
module Selenium
|
15
19
|
module WebDriver
|
16
20
|
class Driver
|
17
|
-
|
18
21
|
include EmulatedFeatures::ResponseCode
|
19
22
|
include EmulatedFeatures::ResponseHeaders
|
20
|
-
|
21
23
|
end
|
22
24
|
end
|
23
25
|
end
|
@@ -2,7 +2,7 @@ module Selenium
|
|
2
2
|
module EmulatedFeatures
|
3
3
|
module ResponseCode
|
4
4
|
def response_code
|
5
|
-
execute_script <<-js
|
5
|
+
dom_str = execute_script <<-js
|
6
6
|
if(document.SEF && document.SEF.request) {
|
7
7
|
return document.SEF.request.status;
|
8
8
|
}
|
@@ -31,6 +31,22 @@ module Selenium
|
|
31
31
|
document.SEF.request.send(null);
|
32
32
|
return document.SEF.request.status;
|
33
33
|
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
|
34
50
|
end
|
35
51
|
end
|
36
52
|
end
|
@@ -2,12 +2,29 @@ module Selenium
|
|
2
2
|
module EmulatedFeatures
|
3
3
|
module ResponseHeaders
|
4
4
|
def response_headers
|
5
|
-
|
5
|
+
dom_str = execute_script <<-js
|
6
6
|
if(document.SEF && document.SEF.request) {
|
7
7
|
return document.SEF.request.getAllResponseHeaders();
|
8
8
|
}
|
9
9
|
|
10
|
-
|
10
|
+
var baseURI = document.baseURI;
|
11
|
+
|
12
|
+
/* Firefox */
|
13
|
+
if(/about:neterror/.test(baseURI)) {
|
14
|
+
return null;
|
15
|
+
}
|
16
|
+
|
17
|
+
/* Safari */
|
18
|
+
if(/Safari.app/.test(baseURI)) {
|
19
|
+
return null;
|
20
|
+
}
|
21
|
+
|
22
|
+
/* Chrome */
|
23
|
+
if(/chromewebdata/.test(baseURI)) {
|
24
|
+
return null;
|
25
|
+
}
|
26
|
+
|
27
|
+
document.SEF = {};
|
11
28
|
document.SEF.request = new XMLHttpRequest();
|
12
29
|
|
13
30
|
document.SEF.request.open("GET", document.location, false);
|
@@ -15,11 +32,28 @@ module Selenium
|
|
15
32
|
return document.SEF.request.getAllResponseHeaders();
|
16
33
|
js
|
17
34
|
|
18
|
-
|
35
|
+
if !dom_str
|
36
|
+
if Selenium::EmulatedFeatures.raise_exceptions
|
37
|
+
raise Selenium::EmulatedFeatures::Error
|
38
|
+
else
|
39
|
+
return nil
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
dom_str.split("\n").inject({}) do |headers, line|
|
19
44
|
field, value = line.split(": ")
|
20
|
-
headers.merge({ field => [value.strip] })
|
45
|
+
headers.merge({ field.downcase => [value.strip] })
|
46
|
+
end
|
47
|
+
|
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
|
21
56
|
end
|
22
|
-
end
|
23
57
|
end
|
24
58
|
end
|
25
59
|
end
|
@@ -1,12 +1,10 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "selenium-emulated_features"
|
3
|
-
s.version = "
|
4
|
-
s.date = "2015-02-24"
|
3
|
+
s.version = "2.0.0"
|
5
4
|
|
6
5
|
s.summary = <<-summary
|
7
|
-
HTTP status code and response headers emulation
|
6
|
+
Adds HTTP status code and response headers emulation to Selenium drivers
|
8
7
|
summary
|
9
|
-
s.description = s.summary
|
10
8
|
|
11
9
|
s.authors = ["Dominic Bauer"]
|
12
10
|
s.email = "bauerdominic@gmail.com"
|
@@ -17,8 +15,8 @@ Gem::Specification.new do |s|
|
|
17
15
|
s.homepage = "https://github.com/bauerd/selenium-emulated_features"
|
18
16
|
s.license = "MIT"
|
19
17
|
|
20
|
-
s.add_dependency "selenium-webdriver", "~> 2.44"
|
18
|
+
s.add_dependency "selenium-webdriver", "~> 2.44"
|
21
19
|
|
22
|
-
s.add_development_dependency "rspec", "~> 3.1"
|
23
|
-
s.add_development_dependency "sinatra", "~> 1.4"
|
20
|
+
s.add_development_dependency "rspec", "~> 3.1"
|
21
|
+
s.add_development_dependency "sinatra", "~> 1.4"
|
24
22
|
end
|
data/spec/response_code_spec.rb
CHANGED
@@ -7,16 +7,44 @@ describe Selenium::EmulatedFeatures::ResponseCode do
|
|
7
7
|
after { driver.quit }
|
8
8
|
|
9
9
|
it "returns the HTTP response code" do
|
10
|
-
driver.navigate.to "http://0.0.0.0:
|
10
|
+
driver.navigate.to "http://0.0.0.0:9876/status_code/404"
|
11
11
|
expect(driver.response_code).to be 404
|
12
12
|
end
|
13
13
|
|
14
|
+
it "works for successive requests" do
|
15
|
+
driver.navigate.to "http://0.0.0.0:9876/status_code/200"
|
16
|
+
expect(driver.response_code).to be 200
|
17
|
+
|
18
|
+
driver.navigate.to "http://0.0.0.0:9876/status_code/418"
|
19
|
+
expect(driver.response_code).to be 418
|
20
|
+
end
|
21
|
+
|
14
22
|
context "when server is unreachable" do
|
15
|
-
|
16
|
-
|
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
|
17
29
|
|
30
|
+
it "still works for successive requests" do
|
18
31
|
driver.navigate.to "http://example.foobar"
|
19
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
|
20
48
|
end
|
21
49
|
end
|
22
50
|
end
|
@@ -39,4 +67,9 @@ describe Selenium::EmulatedFeatures::ResponseCode do
|
|
39
67
|
end
|
40
68
|
end
|
41
69
|
|
70
|
+
describe "PhantomJS driver", phantomjs: true do
|
71
|
+
it_behaves_like "a WebDriver that responds to #response_code" do
|
72
|
+
subject(:driver) { Selenium::WebDriver.for(:phantomjs) }
|
73
|
+
end
|
74
|
+
end
|
42
75
|
end
|
@@ -7,9 +7,47 @@ describe Selenium::EmulatedFeatures::ResponseHeaders do
|
|
7
7
|
after { driver.quit }
|
8
8
|
|
9
9
|
it "returns the HTTP response headers" do
|
10
|
-
driver.navigate.to "http://0.0.0.0:
|
11
|
-
expect(driver.response_headers["
|
12
|
-
expect(driver.response_headers["
|
10
|
+
driver.navigate.to "http://0.0.0.0:9876/response_headers"
|
11
|
+
expect(driver.response_headers["foo"]).to eq ["Bar"]
|
12
|
+
expect(driver.response_headers["alpha"]).to eq ["Beta"]
|
13
|
+
end
|
14
|
+
|
15
|
+
it "works for successive requests" do
|
16
|
+
driver.navigate.to "http://0.0.0.0:9876/status_code/200"
|
17
|
+
headers_a = driver.response_headers
|
18
|
+
|
19
|
+
driver.navigate.to "http://0.0.0.0:9876/response_headers"
|
20
|
+
headers_b = driver.response_headers
|
21
|
+
|
22
|
+
expect(headers_a).not_to eq headers_b
|
23
|
+
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
|
13
51
|
end
|
14
52
|
end
|
15
53
|
|
@@ -31,4 +69,9 @@ describe Selenium::EmulatedFeatures::ResponseHeaders do
|
|
31
69
|
end
|
32
70
|
end
|
33
71
|
|
72
|
+
describe "PhantomJS driver", phantomjs: true do
|
73
|
+
it_behaves_like "a WebDriver that responds to #response_headers" do
|
74
|
+
subject(:driver) { Selenium::WebDriver.for(:phantomjs) }
|
75
|
+
end
|
76
|
+
end
|
34
77
|
end
|
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:
|
4
|
+
version: 2.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: 2015-
|
11
|
+
date: 2015-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: selenium-webdriver
|
@@ -17,9 +17,6 @@ dependencies:
|
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '2.44'
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 2.44.0
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,9 +24,6 @@ dependencies:
|
|
27
24
|
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '2.44'
|
30
|
-
- - ">="
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 2.44.0
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: rspec
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -37,9 +31,6 @@ dependencies:
|
|
37
31
|
- - "~>"
|
38
32
|
- !ruby/object:Gem::Version
|
39
33
|
version: '3.1'
|
40
|
-
- - ">="
|
41
|
-
- !ruby/object:Gem::Version
|
42
|
-
version: 3.1.0
|
43
34
|
type: :development
|
44
35
|
prerelease: false
|
45
36
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -47,9 +38,6 @@ dependencies:
|
|
47
38
|
- - "~>"
|
48
39
|
- !ruby/object:Gem::Version
|
49
40
|
version: '3.1'
|
50
|
-
- - ">="
|
51
|
-
- !ruby/object:Gem::Version
|
52
|
-
version: 3.1.0
|
53
41
|
- !ruby/object:Gem::Dependency
|
54
42
|
name: sinatra
|
55
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -57,9 +45,6 @@ dependencies:
|
|
57
45
|
- - "~>"
|
58
46
|
- !ruby/object:Gem::Version
|
59
47
|
version: '1.4'
|
60
|
-
- - ">="
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 1.4.5
|
63
48
|
type: :development
|
64
49
|
prerelease: false
|
65
50
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -67,10 +52,7 @@ dependencies:
|
|
67
52
|
- - "~>"
|
68
53
|
- !ruby/object:Gem::Version
|
69
54
|
version: '1.4'
|
70
|
-
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version: 1.4.5
|
73
|
-
description: HTTP status code and response headers emulation for Selenium drivers
|
55
|
+
description:
|
74
56
|
email: bauerdominic@gmail.com
|
75
57
|
executables: []
|
76
58
|
extensions: []
|
@@ -80,7 +62,7 @@ files:
|
|
80
62
|
- ".rspec"
|
81
63
|
- Gemfile
|
82
64
|
- Gemfile.lock
|
83
|
-
- LICENSE
|
65
|
+
- LICENSE
|
84
66
|
- README.md
|
85
67
|
- Rakefile
|
86
68
|
- lib/selenium/emulated_features.rb
|
@@ -113,7 +95,7 @@ rubyforge_project:
|
|
113
95
|
rubygems_version: 2.2.2
|
114
96
|
signing_key:
|
115
97
|
specification_version: 4
|
116
|
-
summary: HTTP status code and response headers emulation
|
98
|
+
summary: Adds HTTP status code and response headers emulation to Selenium drivers
|
117
99
|
test_files:
|
118
100
|
- spec/response_code_spec.rb
|
119
101
|
- spec/response_headers_spec.rb
|