module Capybara::Screenshot

Constants

VERSION

Attributes

append_random[RW]
append_timestamp[RW]
autosave_on_failure[RW]
filename_prefix_formatters[RW]
final_session_name[W]
prune_strategy[RW]
registered_drivers[RW]
s3_configuration[RW]
s3_object_configuration[RW]
testunit_paths[RW]
webkit_options[RW]

Public Class Methods

after_save_html(&block) click to toggle source
# File lib/capybara-screenshot.rb, line 108
def self.after_save_html &block
  Saver.after_save_html(&block)
end
after_save_screenshot(&block) click to toggle source
# File lib/capybara-screenshot.rb, line 112
def self.after_save_screenshot &block
  Saver.after_save_screenshot(&block)
end
append_screenshot_path=(value) click to toggle source
# File lib/capybara-screenshot.rb, line 26
def self.append_screenshot_path=(value)
  $stderr.puts "WARNING: Capybara::Screenshot.append_screenshot_path is deprecated. " +
    "Please use Capybara::Screenshot::RSpec.add_link_to_screenshot_for_failed_examples instead."
  RSpec.add_link_to_screenshot_for_failed_examples = value
end
capybara_root() click to toggle source
# File lib/capybara-screenshot.rb, line 60
def self.capybara_root
  @capybara_root ||= if defined?(::Rails) && ::Rails.respond_to?(:root) && ::Rails.root.present?
    ::Rails.root.join capybara_tmp_path
  elsif defined?(Padrino)
    File.expand_path(capybara_tmp_path, Padrino.root)
  elsif defined?(Sinatra)
    File.join(Sinatra::Application.root, capybara_tmp_path)
  else
    capybara_tmp_path
  end.to_s
end
filename_prefix_for(test_type, test) click to toggle source
# File lib/capybara-screenshot.rb, line 54
def self.filename_prefix_for(test_type, test)
  filename_prefix_formatters.fetch(test_type) { |key|
    filename_prefix_formatters[:default]
  }.call(test)
end
final_session_name() click to toggle source
# File lib/capybara-screenshot.rb, line 80
def self.final_session_name
  @final_session_name || Capybara.session_name || :default
end
new_saver(*args) click to toggle source
# File lib/capybara-screenshot.rb, line 97
def self.new_saver(*args)
  saver = Saver.new(*args)

  unless s3_configuration.empty?
    require 'capybara-screenshot/s3_saver'
    saver = S3Saver.new_with_configuration(saver, s3_configuration, s3_object_configuration)
  end

  return saver
end
prune(options = {}) click to toggle source

Prune screenshots based on prune_strategy Will run only once unless force:true

# File lib/capybara-screenshot.rb, line 86
def self.prune(options = {})
  reset_prune_history if options[:force]
  Capybara::Screenshot::Pruner.new(Capybara::Screenshot.prune_strategy).prune_old_screenshots unless @pruned_previous_screenshots
  @pruned_previous_screenshots = true
end
register_driver(driver, &block) click to toggle source
# File lib/capybara-screenshot.rb, line 72
def self.register_driver(driver, &block)
  self.registered_drivers[driver] = block
end
register_filename_prefix_formatter(test_type, &block) click to toggle source
# File lib/capybara-screenshot.rb, line 76
def self.register_filename_prefix_formatter(test_type, &block)
  self.filename_prefix_formatters[test_type] = block
end
reset_prune_history() click to toggle source

Reset prune history allowing further prunining on next failure

# File lib/capybara-screenshot.rb, line 93
def self.reset_prune_history
  @pruned_previous_screenshots = nil
end
screen_shot_and_open_image()
screen_shot_and_save_page()
screenshot_and_open_image() click to toggle source
# File lib/capybara-screenshot.rb, line 39
def self.screenshot_and_open_image
  require "launchy"

  saver = new_saver(Capybara, Capybara.page, false)
  if saver.save
    Launchy.open saver.screenshot_path
    {:html => nil, :image => saver.screenshot_path}
  end
end
Also aliased as: screen_shot_and_open_image
screenshot_and_save_page() click to toggle source
# File lib/capybara-screenshot.rb, line 32
def self.screenshot_and_save_page
  saver = new_saver(Capybara, Capybara.page)
  if saver.save
    {:html => saver.html_path, :image => saver.screenshot_path}
  end
end
Also aliased as: screen_shot_and_save_page

Private Class Methods

capybara_tmp_path() click to toggle source

If the path isn't set, default to the current directory

# File lib/capybara-screenshot.rb, line 119
def self.capybara_tmp_path
  # `#save_and_open_page_path` is deprecated
  # https://github.com/jnicklas/capybara/blob/48ab1ede946dec2250a2d1d8cbb3313f25096456/History.md#L37
  if Capybara.respond_to?(:save_path)
    Capybara.save_path
  else
    Capybara.save_and_open_page_path
  end || '.'
end
capybara_tmp_path=(path) click to toggle source

Configure the path unless '.'

# File lib/capybara-screenshot.rb, line 130
def self.capybara_tmp_path=(path)
  return if path == '.'

  # `#save_and_open_page_path` is deprecated
  # https://github.com/jnicklas/capybara/blob/48ab1ede946dec2250a2d1d8cbb3313f25096456/History.md#L37
  if Capybara.respond_to?(:save_path)
    Capybara.save_path = path
  else
    Capybara.save_and_open_page_path = path
  end
end