Skip to content

Commit

Permalink
Remove a couple of TODO's and add some context around the w3c progres…
Browse files Browse the repository at this point in the history
…s of chromedriver

Signed-off-by: Alex Rodionov <p0deje@gmail.com>
  • Loading branch information
luke-hill authored and p0deje committed Apr 18, 2019
1 parent 81c4f8b commit b5a27ad
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 39 deletions.
33 changes: 20 additions & 13 deletions rb/lib/selenium/webdriver/firefox/profile.rb
Original file line number Diff line number Diff line change
Expand Up @@ -73,20 +73,9 @@ def initialize(model = nil)
model_prefs = read_model_prefs

if model_prefs.empty?
@native_events = DEFAULT_ENABLE_NATIVE_EVENTS
@secure_ssl = DEFAULT_SECURE_SSL
@untrusted_issuer = DEFAULT_ASSUME_UNTRUSTED_ISSUER
@load_no_focus_lib = DEFAULT_LOAD_NO_FOCUS_LIB

@additional_prefs = {}
assign_default_preferences
else
# TODO: clean this up
@native_events = model_prefs.delete(WEBDRIVER_PREFS[:native_events]) == 'true'
@secure_ssl = model_prefs.delete(WEBDRIVER_PREFS[:untrusted_certs]) != 'true'
@untrusted_issuer = model_prefs.delete(WEBDRIVER_PREFS[:untrusted_issuer]) == 'true'
# not stored in profile atm, so will always be false.
@load_no_focus_lib = model_prefs.delete(WEBDRIVER_PREFS[:load_no_focus_lib]) == 'true'
@additional_prefs = model_prefs
assign_updated_preferences(model_prefs)
end

@extensions = {}
Expand Down Expand Up @@ -195,6 +184,24 @@ def encoded

private

def assign_default_preferences
@native_events = DEFAULT_ENABLE_NATIVE_EVENTS
@secure_ssl = DEFAULT_SECURE_SSL
@untrusted_issuer = DEFAULT_ASSUME_UNTRUSTED_ISSUER
@load_no_focus_lib = DEFAULT_LOAD_NO_FOCUS_LIB

@additional_prefs = {}
end

def assign_updated_preferences(model_prefs)
@native_events = model_prefs.delete(WEBDRIVER_PREFS[:native_events]) == 'true'
@secure_ssl = model_prefs.delete(WEBDRIVER_PREFS[:untrusted_certs]) != 'true'
@untrusted_issuer = model_prefs.delete(WEBDRIVER_PREFS[:untrusted_issuer]) == 'true'
# not stored in profile atm, so will always be false.
@load_no_focus_lib = model_prefs.delete(WEBDRIVER_PREFS[:load_no_focus_lib]) == 'true'
@additional_prefs = model_prefs
end

def set_manual_proxy_preference(key, value)
return unless value

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,8 @@ def create_chrome_driver(opt = {})
WebDriver::Chrome::Service.driver_path = server if server

# https://bugs.chromium.org/p/chromedriver/issues/detail?id=2536
# Current status can be found here (70% as of February 2019)
# https://chromium.googlesource.com/chromium/src/+/master/docs/chromedriver_status.md
# TODO: remove before Selenium 4 release
opt[:options] = WebDriver::Chrome::Options.new(options: {w3c: true}) unless opt[:options]

Expand Down
68 changes: 42 additions & 26 deletions rb/spec/integration/selenium/webdriver/zipper_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@
module Selenium
module WebDriver
describe Zipper do
#
# TODO: clean this spec up
#

let(:base_file_name) { 'file.txt' }
let(:file_content) { 'content' }
let(:zip_file) { File.join(Dir.tmpdir, 'test.zip') }
Expand All @@ -42,40 +38,60 @@ def create_file
FileUtils.rm_rf zip_file
end

it 'zips and unzips a folder' do
create_file
context 'can zip' do
it 'a file' do
File.open(zip_file, 'wb') do |io|
io << Base64.decode64(Zipper.zip_file(create_file))
end

File.open(zip_file, 'wb') do |io|
io << Base64.decode64(Zipper.zip(dir_to_zip))
expect(File).to exist(zip_file)
end

unzipped = Zipper.unzip(zip_file)
expect(File.read(File.join(unzipped, base_file_name))).to eq(file_content)
end
it 'a folder' do
create_file

it 'zips and unzips a single file' do
file_to_zip = create_file
File.open(zip_file, 'wb') do |io|
io << Base64.decode64(Zipper.zip(dir_to_zip))
end

File.open(zip_file, 'wb') do |io|
io << Base64.decode64(Zipper.zip_file(file_to_zip))
expect(File).to exist(zip_file)
end

unzipped = Zipper.unzip(zip_file)
expect(File.read(File.join(unzipped, base_file_name))).to eq(file_content)
it 'follows symlinks' do
filename = create_file
File.symlink(filename, File.join(dir_to_zip, 'link'))

zip_file = File.join(Dir.tmpdir, 'test.zip')
File.open(zip_file, 'wb') do |io|
io << Base64.decode64(Zipper.zip(dir_to_zip))
end

unzipped = Zipper.unzip(zip_file)
expect(File.read(File.join(unzipped, 'link'))).to eq(file_content)
end
end

it 'follows symlinks when zipping' do
filename = create_file
File.symlink(filename, File.join(dir_to_zip, 'link'))
context 'can unzip' do
it 'a file' do
File.open(zip_file, 'wb') do |io|
io << Base64.decode64(Zipper.zip_file(create_file))
end

zip_file = File.join(Dir.tmpdir, 'test.zip')
File.open(zip_file, 'wb') do |io|
io << Base64.decode64(Zipper.zip(dir_to_zip))
unzipped = Zipper.unzip(zip_file)
expect(File.read(File.join(unzipped, base_file_name))).to eq(file_content)
end

unzipped = Zipper.unzip(zip_file)
expect(File.read(File.join(unzipped, 'link'))).to eq(file_content)
it 'a folder' do
create_file

File.open(zip_file, 'wb') do |io|
io << Base64.decode64(Zipper.zip(dir_to_zip))
end

unzipped = Zipper.unzip(zip_file)
expect(File.read(File.join(unzipped, base_file_name))).to eq(file_content)
end
end
end
end # Zipper
end # WebDriver
end # Selenium

0 comments on commit b5a27ad

Please sign in to comment.