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/s3_saver.rb,
lib/capybara-screenshot/testunit.rb,
lib/capybara-screenshot/callbacks.rb,
lib/capybara-screenshot/rspec/base_reporter.rb,
lib/capybara-screenshot/rspec/json_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: Callbacks, MiniTestPlugin, RSpec, Spinach Classes: Pruner, S3Saver, Saver

Constant Summary collapse

VERSION =
'1.0.21'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.append_randomObject

Returns the value of attribute append_random



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

def append_random
  @append_random
end

.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



80
81
82
# File 'lib/capybara-screenshot.rb', line 80

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

.prune_strategyObject

Returns the value of attribute prune_strategy



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

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

.s3_configurationObject

Returns the value of attribute s3_configuration



12
13
14
# File 'lib/capybara-screenshot.rb', line 12

def s3_configuration
  @s3_configuration
end

.s3_object_configurationObject

Returns the value of attribute s3_object_configuration



13
14
15
# File 'lib/capybara-screenshot.rb', line 13

def s3_object_configuration
  @s3_object_configuration
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



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

def webkit_options
  @webkit_options
end

Class Method Details

.after_save_html(&block) ⇒ Object



108
109
110
# File 'lib/capybara-screenshot.rb', line 108

def self.after_save_html &block
  Saver.after_save_html &block
end

.after_save_screenshot(&block) ⇒ Object



112
113
114
# File 'lib/capybara-screenshot.rb', line 112

def self.after_save_screenshot &block
  Saver.after_save_screenshot &block
end

.append_screenshot_path=(value) ⇒ Object



26
27
28
29
30
# 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_rootObject



60
61
62
63
64
65
66
67
68
69
70
# File 'lib/capybara-screenshot.rb', line 60

def self.capybara_root
  @capybara_root ||= if defined?(::Rails) && ::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) ⇒ Object



54
55
56
57
58
# 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

.new_saver(*args) ⇒ Object



97
98
99
100
101
102
103
104
105
106
# 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 = {}) ⇒ Object

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



86
87
88
89
90
# 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) ⇒ Object



72
73
74
# 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) ⇒ Object



76
77
78
# 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_historyObject

Reset prune history allowing further prunining on next failure



93
94
95
# File 'lib/capybara-screenshot.rb', line 93

def self.reset_prune_history
  @pruned_previous_screenshots = nil
end

.screenshot_and_open_imageObject Also known as: screen_shot_and_open_image



39
40
41
42
43
44
45
46
47
# 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

.screenshot_and_save_pageObject Also known as: screen_shot_and_save_page



32
33
34
35
36
37
# 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