module Capybara::Sessionkeeper

Constants

VERSION

Public Instance Methods

cookies_to_yaml() click to toggle source
# File lib/capybara/sessionkeeper.rb, line 37
def cookies_to_yaml
  YAML.dump driver.browser.manage.all_cookies
end
restore_cookies(path = nil) click to toggle source
# File lib/capybara/sessionkeeper.rb, line 16
def restore_cookies(path = nil)
  path ||= find_latest_cookie_file
  return nil if path.nil?
  data = File.open(path, 'rb', &:read)
  restore_cookies_from_data(data)
end
restore_cookies_from_data(data, options = {}) click to toggle source
# File lib/capybara/sessionkeeper.rb, line 23
def restore_cookies_from_data(data, options = {})
  raise CookieError, "visit must be performed to restore cookies" if ['data:,', 'about:blank'].include?(current_url)
  cookies = %w[yml yaml].include?(options[:format]) ? YAML.load(data) : Marshal.load(data)
  cookies.each do |d|
    begin
      driver.browser.manage.delete_cookie d[:name]
      driver.browser.manage.add_cookie d
    rescue StandardError => e
      skip_invalid_cookie_domain_error(e)
    end
  end
  driver.browser.manage.all_cookies
end
save_cookies(path = nil) click to toggle source
# File lib/capybara/sessionkeeper.rb, line 9
def save_cookies(path = nil)
  path = prepare_path(path, cookie_file_extension)
  data = Marshal.dump driver.browser.manage.all_cookies
  File.open(path, 'wb') {|f| f.puts(data) }
  path
end