module Selenium::WebDriver::ProfileHelper

@api private

Common methods for Chrome::Profile and Firefox::Profile Includers must implement layout_on_disk

Public Class Methods

included(base) click to toggle source
# File lib/selenium/webdriver/common/profile_helper.rb, line 13
def self.included(base)
  base.extend ClassMethods
end

Public Instance Methods

as_json(opts = nil) click to toggle source
# File lib/selenium/webdriver/common/profile_helper.rb, line 17
def as_json(opts = nil)
  {'zip' => Zipper.zip(layout_on_disk)}
end
to_json(*args) click to toggle source
# File lib/selenium/webdriver/common/profile_helper.rb, line 21
def to_json(*args)
  WebDriver.json_dump as_json
end

Private Instance Methods

create_tmp_copy(directory) click to toggle source
# File lib/selenium/webdriver/common/profile_helper.rb, line 27
def create_tmp_copy(directory)
  tmp_directory = Dir.mktmpdir("webdriver-rb-profilecopy")

  # TODO: must be a better way..
  FileUtils.rm_rf tmp_directory
  FileUtils.mkdir_p File.dirname(tmp_directory), :mode => 0700
  FileUtils.cp_r directory, tmp_directory

  tmp_directory
end
verify_model(model) click to toggle source
# File lib/selenium/webdriver/common/profile_helper.rb, line 38
def verify_model(model)
  return unless model

  raise Errno::ENOENT, model unless File.exist?(model)
  raise Errno::ENOTDIR, model unless File.directory?(model)

  model
end