module Selenium::WebDriver::DriverExtensions::HasFileDownloads

def delete_downloadable_files

def delete_downloadable_files
  verify_enabled
  @bridge.delete_downloadable_files
end

def download_file(file_name, target_directory)

def download_file(file_name, target_directory)
  verify_enabled
  response = @bridge.download_file(file_name)
  contents = response['contents']
  File.open("#{file_name}.zip", 'wb') { |f| f << Base64.decode64(contents) }
  target_directory += '/' unless target_directory.end_with?('/')
  FileUtils.mkdir_p(target_directory)
  begin
    Zip::File.open("#{file_name}.zip") do |zip|
      zip.each { |entry| zip.extract(entry, "#{target_directory}#{file_name}") }
    end
  ensure
    FileUtils.rm_f("#{file_name}.zip")
  end
end

def downloadable_files

def downloadable_files
  verify_enabled
  @bridge.downloadable_files['names']
end

def verify_enabled

def verify_enabled
  return if capabilities['se:downloadsEnabled']
  raise Error::WebDriverError, 'You must enable downloads in order to work with downloadable files.'
end