webdrivers 2.3.2 → 2.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: be63f40b8706535bc265158e0f481b2620886679
4
- data.tar.gz: 7f6f4c8584e86f1f7826ffaf24c596bcaa8e6f5d
3
+ metadata.gz: fcddb954704b678fab85d7ae639d1c093387e30a
4
+ data.tar.gz: 27c68403706b2b469a0e4d643318321a8a3dfc88
5
5
  SHA512:
6
- metadata.gz: bda8a2749978eda9c85b2e2f7373844f8a45764f4803cfa64211cae6b0e14c0d80fcfb9fa8055b89089a84ace9c0822055947845242a196e7dac0a0079b312af
7
- data.tar.gz: 9b7be7499c0807a35ddca73705d275dcd062427450b6bd3001f53030d4b6f8d3123e0c5e86a174aedd0a1f9bc5c02928db5da1813cf0bf6f371bdc85590dde2c
6
+ metadata.gz: 4a4562dc88f07adacffd0566765813ae34e9c58bdd75243e5f9dafe28b8759d2b01c7f3ae1f41dce39735a5e6c40c8032234ed1d8fa7198720ca38245a3567a3
7
+ data.tar.gz: 4fda0ac9518d6f57e8a55a620a467db14dd107deb5a08842975abc6c12eca71fc4c6c309f97ef1e5346f0d56ae2351c02bc8d4c60e8748a6ec1610a1fbe46211
data/CHANGELOG.md CHANGED
@@ -1,6 +1,14 @@
1
1
  Changelog
2
2
  ==========
3
3
 
4
+ 2.4.0 - 2016-12-18
5
+ ----------
6
+
7
+ * Update MicrosoftWebDriver version
8
+ * Use rubyzip gem instead of zip
9
+ * Bug fixes for download method
10
+
11
+
4
12
  2.3.2 - 2016-11-26
5
13
  ----------
6
14
 
data/README.md CHANGED
@@ -2,14 +2,20 @@
2
2
 
3
3
  [![Build status](https://api.travis-ci.org/titusfortner/webdrivers.svg)](https://travis-ci.org/titusfortner/webdrivers)
4
4
 
5
- Run Selenium tests more easily with install and updates for all supported webdrivers.
5
+ Run Selenium tests more easily with automatic installation and updates for all supported webdrivers.
6
6
 
7
7
  # Description
8
8
 
9
9
  `webdrivers` installs driver executables, in your gem path.
10
- `chromedriver` and `geckodriver` are currently supported.
11
10
 
12
- Drivers are stored in `~/.webdrivers` directory and used within the context of your gem path
11
+ Currently supported:
12
+ * `chromedriver`
13
+ * `geckodriver`
14
+ * `phantomjs`
15
+ * `IEDriverServer`
16
+ * `MicrosoftWebDriver`
17
+
18
+ Drivers are stored in `~/.webdrivers/platform` directory and used within the context of your gem path
13
19
 
14
20
 
15
21
  # Usage
@@ -18,7 +24,7 @@ Drivers are stored in `~/.webdrivers` directory and used within the context of y
18
24
 
19
25
  or in your Gemfile:
20
26
 
21
- `gem "webdrivers", "~> 2.1"`
27
+ `gem "webdrivers", "~> 2.3"`
22
28
 
23
29
 
24
30
  # License
@@ -36,6 +36,9 @@ module Webdrivers
36
36
  case filename
37
37
  when /tar\.gz$/
38
38
  untargz_file(filename)
39
+ when /tar\.bz2$/
40
+ system "tar xjf #{filename}"
41
+ filename.gsub('.tar.bz2', '')
39
42
  when /\.zip$/
40
43
  unzip_file(filename)
41
44
  end
@@ -52,12 +55,13 @@ module Webdrivers
52
55
  end
53
56
 
54
57
  def unzip_file(filename)
55
- Zip::ZipFile.open("#{Dir.pwd}/#{filename}") do |zip_file|
58
+ Zip::File.open("#{Dir.pwd}/#{filename}") do |zip_file|
56
59
  zip_file.each do |f|
57
60
  @top_path ||= f.name
58
61
  f_path = File.join(Dir.pwd, f.name)
59
- FileUtils.mkdir_p(File.dirname(f_path))
60
- zip_file.extract(f, f_path) unless File.exist?(f_path)
62
+ FileUtils.rm_rf(f_path) if File.exist?(f_path)
63
+ FileUtils.mkdir_p(File.dirname(f_path)) unless File.exist?(File.dirname(f_path))
64
+ zip_file.extract(f, f_path)
61
65
  end
62
66
  end
63
67
  @top_path
@@ -76,16 +80,18 @@ module Webdrivers
76
80
  end
77
81
 
78
82
  def install_dir
79
- File.expand_path(File.join(ENV['HOME'], ".webdrivers")).tap { |dir| FileUtils.mkdir_p dir}
83
+ File.expand_path(File.join(ENV['HOME'], ".webdrivers")).tap { |dir| FileUtils.mkdir_p dir }
80
84
  end
81
85
 
82
86
  def platform
83
87
  cfg = RbConfig::CONFIG
84
88
  case cfg['host_os']
85
- when /linux/ then
86
- cfg['host_cpu'] =~ /x86_64|amd64/ ? "linux64" : "linux32"
87
- when /darwin/ then "mac"
88
- else "win"
89
+ when /linux/
90
+ cfg['host_cpu'] =~ /x86_64|amd64/ ? "linux64" : "linux32"
91
+ when /darwin/
92
+ "mac"
93
+ else
94
+ "win"
89
95
  end
90
96
  end
91
97
 
@@ -18,7 +18,7 @@ module Webdrivers
18
18
  end
19
19
 
20
20
  def download_url(version = nil)
21
- if newest_version.to_i >= 14965
21
+ if newest_version.to_i >= 14986
22
22
  'https://download.microsoft.com/download/1/4/1/14156DA0-D40F-460A-B14D-1B264CA081A5/MicrosoftWebDriver.exe'
23
23
  else
24
24
  'https://download.microsoft.com/download/3/2/D/32D3E464-F2EF-490F-841B-05D53C848D15/MicrosoftWebDriver.exe'
@@ -20,7 +20,7 @@ module Webdrivers
20
20
  def downloads
21
21
  doc = Nokogiri::XML.parse(OpenURI.open_uri(base_url))
22
22
  items = doc.css(".execute").collect { |item| item["href"] }
23
- format_platform = platform.dup.gsub('32', '-i686').gsub('64', 'x86_64')
23
+ format_platform = platform.dup.gsub('32', '-i686').gsub('64', '-x86_64')
24
24
  items.select! { |item| item.include?(format_platform) }
25
25
  items.each_with_object({}) do |item, hash|
26
26
  hash[item[/-(\d+\.\d+\.\d+)-/, 1]] = "https://bitbucket.org#{item}"
@@ -32,7 +32,7 @@ module Webdrivers
32
32
  end
33
33
 
34
34
  def extract_file(filename)
35
- FileUtils.mv("#{platform_install_dir}/#{filename}bin/#{file_name}", file_name)
35
+ FileUtils.mv("#{platform_install_dir}/#{filename}/bin/#{file_name}", file_name)
36
36
  end
37
37
  end
38
38
 
@@ -6,8 +6,10 @@ describe Webdrivers::Chromedriver do
6
6
 
7
7
  it 'downloads' do
8
8
  chromedriver.download
9
- file = "#{ENV['GEM_HOME']}/bin/chromedriver"
9
+ suffix = chromedriver.platform == 'win' ? '.exe' : ''
10
+ file = "#{chromedriver.platform_install_dir}/chromedriver#{suffix}"
10
11
  expect(File.exist?(file)).to eq true
12
+ FileUtils.rm(file)
11
13
  end
12
14
 
13
15
  it { expect(chromedriver.newest_version.to_f).to be >= 2.25 }
@@ -5,13 +5,17 @@ describe Webdrivers::Edgedriver do
5
5
  let(:edgedriver) { Webdrivers::Edgedriver }
6
6
 
7
7
  it 'downloads' do
8
+ allow(edgedriver).to receive(:newest_version).and_return(0)
8
9
  edgedriver.download
9
- file = "#{ENV['GEM_HOME']}/bin/MicrosoftWebDriver"
10
+ file = "#{edgedriver.platform_install_dir}/MicrosoftWebDriver.exe"
10
11
  expect(File.exist?(file)).to eq true
12
+ FileUtils.rm(file)
11
13
  end
12
14
 
13
- it { expect(edgedriver.newest_version.to_f).to be >= 2.25 }
14
-
15
+ it 'gets latest version' do
16
+ skip unless edgedriver.platform == 'win'
17
+ expect(edgedriver.newest_version.to_f).to be >= 2.25
18
+ end
15
19
 
16
20
  context "on a windows platform" do
17
21
  before { allow(edgedriver).to receive(:platform) { "win" } }
@@ -6,8 +6,10 @@ describe Webdrivers::Geckodriver do
6
6
 
7
7
  it 'downloads' do
8
8
  geckodriver.download
9
- file = "#{ENV['GEM_HOME']}/bin/geckodriver"
9
+ suffix = geckodriver.platform == 'win' ? '.exe' : ''
10
+ file = "#{geckodriver.platform_install_dir}/geckodriver#{suffix}"
10
11
  expect(File.exist?(file)).to eq true
12
+ FileUtils.rm(file)
11
13
  end
12
14
 
13
15
  it { expect(geckodriver.newest_version.to_f).to be >= 0.11 }
@@ -5,9 +5,11 @@ describe Webdrivers::IEDriver do
5
5
  let(:iedriver) { Webdrivers::IEDriver }
6
6
 
7
7
  it 'downloads' do
8
+ allow(iedriver).to receive(:current_version).and_return(0)
8
9
  iedriver.download
9
- file = "#{ENV['GEM_HOME']}/bin/IEDriverServer"
10
+ file = "#{iedriver.platform_install_dir}/IEDriverServer.exe"
10
11
  expect(File.exist?(file)).to eq true
12
+ FileUtils.rm(file)
11
13
  end
12
14
 
13
15
  it { expect(iedriver.newest_version.to_f).to be >= 2.25 }
@@ -6,20 +6,22 @@ describe Webdrivers::PhantomJS do
6
6
 
7
7
  it 'downloads' do
8
8
  phantomjs.download
9
- file = "#{ENV['GEM_HOME']}/bin/phantomjs"
9
+ suffix = phantomjs.platform == 'win' ? '.exe' : ''
10
+ file = "#{phantomjs.platform_install_dir}/phantomjs#{suffix}"
10
11
  expect(File.exist?(file)).to eq true
12
+ FileUtils.rm(file)
11
13
  end
12
14
 
13
15
  it { expect(phantomjs.newest_version.to_f).to be >= 0.11 }
14
16
 
15
- it { expect(phantomjs.downloads.size).to be >= 5 }
17
+ it { expect(phantomjs.downloads.size).to be >= 4 }
16
18
 
17
19
  context "on a linux platform" do
18
- before { allow(phantomjs).to receive(:platform) { "linux32" } }
20
+ before { allow(phantomjs).to receive(:platform) { "linux64" } }
19
21
 
20
22
  it { expect(phantomjs.file_name).to match(/phantomjs$/) }
21
23
 
22
- it { expect(phantomjs.binary_path).to match '.webdrivers/linux32/phantomjs' }
24
+ it { expect(phantomjs.binary_path).to match '.webdrivers/linux64/phantomjs' }
23
25
 
24
26
  it { expect(phantomjs.download_url('1.9.6')).to match("phantomjs-1.9.6-linux-") }
25
27
  end
data/webdrivers.gemspec CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "webdrivers"
6
- s.version = "2.3.2"
6
+ s.version = "2.4.0"
7
7
  s.authors = ["Titus Fortner"]
8
8
  s.email = ["titusfortner@gmail.com"]
9
9
  s.homepage = "https://github.com/titusfortner/webdrivers"
@@ -20,5 +20,5 @@ Gem::Specification.new do |s|
20
20
  s.add_development_dependency "rake", "~> 10.0"
21
21
 
22
22
  s.add_runtime_dependency "nokogiri", "~> 1.6"
23
- s.add_runtime_dependency "zip"
23
+ s.add_runtime_dependency "rubyzip", "~> 1.0"
24
24
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webdrivers
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.2
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Titus Fortner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-26 00:00:00.000000000 Z
11
+ date: 2016-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -53,19 +53,19 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.6'
55
55
  - !ruby/object:Gem::Dependency
56
- name: zip
56
+ name: rubyzip
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '1.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '1.0'
69
69
  description: Run Selenium tests more easily with install and updates for all supported
70
70
  webdrivers.
71
71
  email:
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  version: '0'
126
126
  requirements: []
127
127
  rubyforge_project:
128
- rubygems_version: 2.4.8
128
+ rubygems_version: 2.6.8
129
129
  signing_key:
130
130
  specification_version: 4
131
131
  summary: Easy installation and use of webdrivers.