module Capybara::Screenshot::Diff

Module to track screen shot changes

Constants

ASSERTION
AVAILABLE_DRIVERS
LOADED_DRIVERS
VERSION

Public Class Methods

included(klass) click to toggle source
# File lib/capybara/screenshot/diff.rb, line 65
def self.included(klass)
  klass.include TestMethods
  klass.setup do
    if Capybara::Screenshot.window_size
      if page.driver.respond_to?(:resize)
        page.driver.resize(*Capybara::Screenshot.window_size)
      elsif selenium?
        page.driver.browser.manage.window.resize_to(*Capybara::Screenshot.window_size)
      end
    end
  end

  klass.teardown do
    if Capybara::Screenshot::Diff.enabled && @test_screenshots
      test_screenshot_errors = @test_screenshots
        .map { |caller, name, compare| assert_image_not_changed(caller, name, compare) }
      test_screenshot_errors.compact!
      raise ASSERTION, test_screenshot_errors.join("\n\n") if test_screenshot_errors.any?
    end
  end
end