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.16'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.alternative_rootObject

Returns the value of attribute alternative_root


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

def alternative_root
  @alternative_root
end

.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


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

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

.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


122
123
124
# File 'lib/capybara-screenshot.rb', line 122

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

.after_save_screenshot(&block) ⇒ Object


126
127
128
# File 'lib/capybara-screenshot.rb', line 126

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_alt_rootObject


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

def self.capybara_alt_root
  @capybara_alt_root ||= if alternative_root.length >0
    alternative_root
  elsif 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

.capybara_rootObject


74
75
76
77
78
79
80
81
82
83
84
# File 'lib/capybara-screenshot.rb', line 74

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


111
112
113
114
115
116
117
118
119
120
# File 'lib/capybara-screenshot.rb', line 111

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)
  end

  return saver
end

.prune(options = {}) ⇒ Object

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


100
101
102
103
104
# File 'lib/capybara-screenshot.rb', line 100

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


86
87
88
# File 'lib/capybara-screenshot.rb', line 86

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

.register_filename_prefix_formatter(test_type, &block) ⇒ Object


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

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


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

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