Skip to content

Commit 864a6a3

Browse files
committed
file cleanup and linting
1 parent 97fb1e2 commit 864a6a3

File tree

4 files changed

+70
-68
lines changed

4 files changed

+70
-68
lines changed

.rubocop.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,9 @@ Metrics/BlockLength:
5252
- 'webdrivers.gemspec'
5353

5454
Metrics/ClassLength:
55-
Max: 116
55+
Max: 105
5656
Exclude:
57+
- 'lib/webdrivers/chromedriver.rb'
5758
- 'lib/webdrivers/system.rb'
5859

5960
Metrics/CyclomaticComplexity:
@@ -96,3 +97,6 @@ RSpec/ExampleLength:
9697

9798
RSpec/MultipleExpectations:
9899
Enabled: false
100+
101+
RSpec/NestedGroups:
102+
Enabled: false

lib/webdrivers/chromedriver.rb

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,8 @@ def latest_point_release(version)
8181
"#{msg} A network issue is preventing determination of latest chromedriver release."
8282
end
8383

84-
url = if version >= normalize_version('115')
85-
'https://googlechromelabs.github.io/chrome-for-testing'
86-
else
87-
'https://chromedriver.storage.googleapis.com/index.html'
88-
end
89-
9084
msg = "#{msg} Please set `Webdrivers::Chromedriver.required_version = <desired driver version>` "\
91-
"to a known chromedriver version: #{url}"
85+
'to a known chromedriver version: https://chromedriver.chromium.org/downloads/version-selection'
9286
Webdrivers.logger.debug msg
9387
raise VersionError, msg
9488
end
@@ -108,18 +102,16 @@ def apple_m1_compatible?(driver_version)
108102
end
109103

110104
def apple_filename(driver_version)
111-
if apple_m1_compatible?(driver_version)
112-
driver_version >= normalize_version('106.0.5249.61') ? 'mac_arm64' : 'mac64_m1'
113-
else
114-
'mac64'
105+
unless apple_m1_compatible?(driver_version)
106+
return driver_version >= normalize_version('115') ? 'mac-x64' : 'mac64'
115107
end
116-
end
117108

118-
def apple_filename_for_api(driver_version)
119-
if apple_m1_compatible?(driver_version)
120-
driver_version >= normalize_version('106.0.5249.61') ? 'mac-arm64' : 'mac64-m1'
109+
if driver_version < normalize_version('106.0.5249.61')
110+
'mac64_m1'
111+
elsif driver_version < normalize_version('115')
112+
'mac_arm64'
121113
else
122-
'mac-x64'
114+
'mac-arm64'
123115
end
124116
end
125117

@@ -134,11 +126,7 @@ def driver_filename(driver_version)
134126
elsif System.platform == 'linux'
135127
'linux64'
136128
elsif System.platform == 'mac'
137-
if driver_version >= normalize_version('115')
138-
apple_filename_for_api(driver_version)
139-
else
140-
apple_filename(driver_version)
141-
end
129+
apple_filename(driver_version)
142130
else
143131
raise 'Failed to determine driver filename to download for your OS.'
144132
end
@@ -164,6 +152,7 @@ def current_build_version
164152
def browser_build_version
165153
normalize_version(browser_version.segments[0..2].join('.'))
166154
end
155+
167156
alias chrome_build_version browser_build_version
168157

169158
# Returns true if an executable driver binary exists
@@ -174,11 +163,11 @@ def sufficient_binary?
174163
end
175164

176165
def chrome_for_testing_base_url
177-
'https://googlechromelabs.github.io'
166+
'https://googlechromelabs.github.io/chrome-for-testing/'
178167
end
179168

180169
def latest_patch_version(driver_version)
181-
latest_patch_version = URI.join(chrome_for_testing_base_url, '/chrome-for-testing/latest-patch-versions-per-build.json')
170+
latest_patch_version = URI.join(chrome_for_testing_base_url, 'latest-patch-versions-per-build.json')
182171
.then { |url| Network.get(url) }
183172
.then { |res| JSON.parse(res, symbolize_names: true) }
184173
.then { |json| json.dig(:builds, :"#{driver_version}", :version) }
@@ -191,7 +180,7 @@ def latest_patch_version(driver_version)
191180
def direct_url_from_api(driver_version)
192181
return if normalize_version(driver_version) < normalize_version('115')
193182

194-
URI.join(chrome_for_testing_base_url, '/chrome-for-testing/known-good-versions-with-downloads.json')
183+
URI.join(chrome_for_testing_base_url, 'known-good-versions-with-downloads.json')
195184
.then { |url| Network.get(url) }
196185
.then { |res| JSON.parse(res, symbolize_names: true) }
197186
.then { |json| json[:versions].find { |e| e[:version] == driver_version.to_s } }

spec/webdrivers/chromedriver_spec.rb

Lines changed: 50 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,9 @@
6565
it 'raises ConnectionError when offline, and no binary exists' do
6666
allow(Net::HTTP).to receive(:get_response).and_raise(SocketError)
6767
allow(chromedriver).to receive(:exists?).and_return(false)
68+
allow(Webdrivers::ChromeFinder).to receive(:version).and_return('115.0.5790.114')
6869

69-
msg = %r{Can not reach https://googlechromelabs.github.io/chrome-for-testing/latest-patch-versions-per-build.json}
70+
msg = %r{Can not reach https://googlechromelabs.github.io/chrome-for-testing}
7071
expect { chromedriver.update }.to raise_error(Webdrivers::ConnectionError, msg)
7172
end
7273
end
@@ -100,8 +101,9 @@
100101

101102
it 'raises ConnectionError if offline' do
102103
allow(Net::HTTP).to receive(:get_response).and_raise(SocketError)
104+
chromedriver.required_version = '115.0.5790.102'
103105

104-
msg = %r{Can not reach https://googlechromelabs.github.io/chrome-for-testing/latest-patch-versions-per-build.json}
106+
msg = %r{Can not reach https://googlechromelabs.github.io/chrome-for-testing}
105107
expect { chromedriver.update }.to raise_error(Webdrivers::ConnectionError, msg)
106108
end
107109
end
@@ -142,49 +144,53 @@
142144
allow(Webdrivers::System).to receive(:download)
143145
end
144146

145-
it 'uses the correct chromedriver filename suffix for Intel' do
146-
allow(Webdrivers::System).to receive(:apple_m1_architecture?).and_return(false)
147-
allow(chromedriver).to receive(:latest_version).and_return(Gem::Version.new('106.0.5249.61'))
148-
chromedriver.required_version = nil
149-
150-
chromedriver.update
151-
expect(Webdrivers::System).to have_received(:download).with(end_with('_mac64.zip'), anything)
152-
end
153-
154-
it 'uses the correct chromedriver filename suffix from version 106.0.5249.61 for Silicon' do
155-
allow(Webdrivers::System).to receive(:apple_m1_architecture?).and_return(true)
156-
allow(chromedriver).to receive(:latest_version).and_return(Gem::Version.new('106.0.5249.61'))
157-
chromedriver.required_version = nil
158-
159-
chromedriver.update
160-
expect(Webdrivers::System).to have_received(:download).with(end_with('_arm64.zip'), anything)
161-
end
147+
context 'with Intel architecture' do
148+
it 'v114 uses correct suffix' do
149+
allow(Webdrivers::System).to receive(:apple_m1_architecture?).and_return(false)
150+
allow(chromedriver).to receive(:latest_version).and_return(Gem::Version.new('114.0.5735.90'))
151+
chromedriver.required_version = nil
162152

163-
it 'uses the correct chromedriver filename suffix for versions less than 106.0.5249.61 for Silicon' do
164-
allow(Webdrivers::System).to receive(:apple_m1_architecture?).and_return(true)
165-
allow(chromedriver).to receive(:latest_version).and_return(Gem::Version.new('106.0.5249.21'))
166-
chromedriver.required_version = nil
153+
chromedriver.update
154+
expect(Webdrivers::System).to have_received(:download).with(end_with('_mac64.zip'), anything)
155+
end
167156

168-
chromedriver.update
169-
expect(Webdrivers::System).to have_received(:download).with(end_with('_mac64_m1.zip'), anything)
170-
end
171-
172-
it 'uses the correct chromedriver filename suffix for versions greater than 115 for Intel' do
173-
allow(Webdrivers::System).to receive(:apple_m1_architecture?).and_return(false)
174-
allow(chromedriver).to receive(:latest_version).and_return(Gem::Version.new('115.0.5790.102'))
175-
chromedriver.required_version = nil
157+
it 'v115 uses correct suffix' do
158+
allow(Webdrivers::System).to receive(:apple_m1_architecture?).and_return(false)
159+
allow(chromedriver).to receive(:latest_version).and_return(Gem::Version.new('115.0.5790.102'))
160+
chromedriver.required_version = nil
176161

177-
chromedriver.update
178-
expect(Webdrivers::System).to have_received(:download).with(end_with('-mac-x64.zip'), anything)
162+
chromedriver.update
163+
expect(Webdrivers::System).to have_received(:download).with(end_with('-mac-x64.zip'), anything)
164+
end
179165
end
180166

181-
it 'uses the correct chromedriver filename suffix for versions greater than 115 for Silicon' do
182-
allow(Webdrivers::System).to receive(:apple_m1_architecture?).and_return(true)
183-
allow(chromedriver).to receive(:latest_version).and_return(Gem::Version.new('115.0.5790.102'))
184-
chromedriver.required_version = nil
185-
186-
chromedriver.update
187-
expect(Webdrivers::System).to have_received(:download).with(end_with('-mac-arm64.zip'), anything)
167+
context 'with Apple architecture' do
168+
it 'v106.0.5249.61 uses correct suffix' do
169+
allow(Webdrivers::System).to receive(:apple_m1_architecture?).and_return(true)
170+
allow(chromedriver).to receive(:latest_version).and_return(Gem::Version.new('106.0.5249.61'))
171+
chromedriver.required_version = nil
172+
173+
chromedriver.update
174+
expect(Webdrivers::System).to have_received(:download).with(end_with('_arm64.zip'), anything)
175+
end
176+
177+
it 'less than v106.0.5249.61 uses correct suffix' do
178+
allow(Webdrivers::System).to receive(:apple_m1_architecture?).and_return(true)
179+
allow(chromedriver).to receive(:latest_version).and_return(Gem::Version.new('106.0.5249.21'))
180+
chromedriver.required_version = nil
181+
182+
chromedriver.update
183+
expect(Webdrivers::System).to have_received(:download).with(end_with('_mac64_m1.zip'), anything)
184+
end
185+
186+
it 'v115 uses correct suffix' do
187+
allow(Webdrivers::System).to receive(:apple_m1_architecture?).and_return(true)
188+
allow(chromedriver).to receive(:latest_version).and_return(Gem::Version.new('115.0.5790.102'))
189+
chromedriver.required_version = nil
190+
191+
chromedriver.update
192+
expect(Webdrivers::System).to have_received(:download).with(end_with('-mac-arm64.zip'), anything)
193+
end
188194
end
189195
end
190196
end
@@ -224,7 +230,7 @@
224230
msg = 'Unable to find latest point release version for 999.0.0. '\
225231
'You appear to be using a non-production version of Chrome. '\
226232
'Please set `Webdrivers::Chromedriver.required_version = <desired driver version>` '\
227-
'to a known chromedriver version: https://googlechromelabs.github.io/chrome-for-testing'
233+
'to a known chromedriver version: https://chromedriver.chromium.org/downloads/version-selection'
228234

229235
expect { chromedriver.latest_version }.to raise_exception(Webdrivers::VersionError, msg)
230236
end
@@ -233,15 +239,16 @@
233239
allow(chromedriver).to receive(:browser_version).and_return Gem::Version.new('72.0.9999.0000')
234240
msg = 'Unable to find latest point release version for 72.0.9999. '\
235241
'Please set `Webdrivers::Chromedriver.required_version = <desired driver version>` '\
236-
'to a known chromedriver version: https://chromedriver.storage.googleapis.com/index.html'
242+
'to a known chromedriver version: https://chromedriver.chromium.org/downloads/version-selection'
237243

238244
expect { chromedriver.latest_version }.to raise_exception(Webdrivers::VersionError, msg)
239245
end
240246

241247
it 'raises ConnectionError when offline' do
242248
allow(Net::HTTP).to receive(:get_response).and_raise(SocketError)
249+
allow(Webdrivers::ChromeFinder).to receive(:version).and_return('115.0.5790.114')
243250

244-
msg = %r{^Can not reach https://googlechromelabs.github.io/chrome-for-testing/latest-patch-versions-per-build.json}
251+
msg = %r{^Can not reach https://googlechromelabs.github.io/chrome-for-testing}
245252
expect { chromedriver.latest_version }.to raise_error(Webdrivers::ConnectionError, msg)
246253
end
247254

spec/webdrivers/edgedriver_spec.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@
9595
before { allow(edgedriver).to receive(:correct_binary?).and_return(false) }
9696

9797
it 'downloads binary' do
98+
allow(Webdrivers::EdgeFinder).to receive(:version).and_return('115.0.1901.188')
9899
edgedriver.update
99100

100101
expect(edgedriver.current_version).not_to be_nil
@@ -241,6 +242,7 @@
241242

242243
describe '#remove' do
243244
it 'removes existing edgedriver' do
245+
allow(Webdrivers::EdgeFinder).to receive(:version).and_return('115.0.1901.188')
244246
edgedriver.update
245247

246248
edgedriver.remove

0 commit comments

Comments
 (0)