Module: Capybara::Screenshot

Defined in:
lib/capybara-screenshot.rb,
lib/capybara-screenshot/rspec.rb,
lib/capybara-screenshot/saver.rb,
lib/capybara-screenshot/pruner.rb,
lib/capybara-screenshot/version.rb,
lib/capybara-screenshot/testunit.rb,
lib/capybara-screenshot/rspec/base_reporter.rb,
lib/capybara-screenshot/rspec/text_reporter.rb,
lib/capybara-screenshot/rspec/html_link_reporter.rb,
lib/capybara-screenshot/rspec/html_embed_reporter.rb,
lib/capybara-screenshot/rspec/textmate_link_reporter.rb

Defined Under Namespace

Modules: MiniTestPlugin, RSpec, Spinach Classes: Pruner, Saver

Constant Summary collapse

VERSION =
"1.0.3"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.append_timestampObject

Returns the value of attribute append_timestamp.



7
8
9
# File 'lib/capybara-screenshot.rb', line 7

def append_timestamp
  @append_timestamp
end

.autosave_on_failureObject

Returns the value of attribute autosave_on_failure.



4
5
6
# File 'lib/capybara-screenshot.rb', line 4

def autosave_on_failure
  @autosave_on_failure
end

.filename_prefix_formattersObject

Returns the value of attribute filename_prefix_formatters.



6
7
8
# File 'lib/capybara-screenshot.rb', line 6

def filename_prefix_formatters
  @filename_prefix_formatters
end

.final_session_nameObject



76
77
78
# File 'lib/capybara-screenshot.rb', line 76

def self.final_session_name
  @final_session_name || Capybara.session_name || :default
end

.prune_strategyObject

Returns the value of attribute prune_strategy.



10
11
12
# File 'lib/capybara-screenshot.rb', line 10

def prune_strategy
  @prune_strategy
end

.registered_driversObject

Returns the value of attribute registered_drivers.



5
6
7
# File 'lib/capybara-screenshot.rb', line 5

def registered_drivers
  @registered_drivers
end

.testunit_pathsObject

Returns the value of attribute testunit_paths.



5
6
7
# File 'lib/capybara-screenshot/testunit.rb', line 5

def testunit_paths
  @testunit_paths
end

.webkit_optionsObject

Returns the value of attribute webkit_options.



8
9
10
# File 'lib/capybara-screenshot.rb', line 8

def webkit_options
  @webkit_options
end

Class Method Details

.append_screenshot_path=(value) ⇒ Object



20
21
22
23
24
# File 'lib/capybara-screenshot.rb', line 20

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_rootObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/capybara-screenshot.rb', line 52

def self.capybara_root
  return @capybara_root if defined?(@capybara_root)
  #If the path isn't set, default to the current directory
  capybara_tmp_path = Capybara.save_and_open_page_path || '.'

  @capybara = if defined?(::Rails)
    ::Rails.root.join capybara_tmp_path
  elsif defined?(Padrino)
    Padrino.root capybara_tmp_path
  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) ⇒ Object



46
47
48
49
50
# File 'lib/capybara-screenshot.rb', line 46

def self.filename_prefix_for(test_type, test)
  filename_prefix_formatters.fetch(test_type) { |key|
    filename_prefix_formatters[:default]
  }.call(test)
end

.prune(options = {}) ⇒ Object

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



82
83
84
85
86
# File 'lib/capybara-screenshot.rb', line 82

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) ⇒ Object



68
69
70
# File 'lib/capybara-screenshot.rb', line 68

def self.register_driver(driver, &block)
  self.registered_drivers[driver] = block
end

.register_filename_prefix_formatter(test_type, &block) ⇒ Object



72
73
74
# File 'lib/capybara-screenshot.rb', line 72

def self.register_filename_prefix_formatter(test_type, &block)
  self.filename_prefix_formatters[test_type] = block
end

.reset_prune_historyObject

Reset prune history allowing further prunining on next failure



89
90
91
# File 'lib/capybara-screenshot.rb', line 89

def self.reset_prune_history
  @pruned_previous_screenshots = nil
end

.screenshot_and_open_imageObject Also known as: screen_shot_and_open_image



32
33
34
35
36
37
38
39
# File 'lib/capybara-screenshot.rb', line 32

def self.screenshot_and_open_image
  require "launchy"

  saver = Saver.new(Capybara, Capybara.page, false)
  saver.save
  Launchy.open saver.screenshot_path
  {:html => nil, :image => saver.screenshot_path}
end

.screenshot_and_save_pageObject Also known as: screen_shot_and_save_page



26
27
28
29
30
# File 'lib/capybara-screenshot.rb', line 26

def self.screenshot_and_save_page
  saver = Saver.new(Capybara, Capybara.page)
  saver.save
  {:html => saver.html_path, :image => saver.screenshot_path}
end