webdrivers 2.3.2 → 2.4.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: 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.