module Compatriot

Constants

VERSION

Attributes

app[RW]
framework[RW]
screenshot_directory[RW]
show_diffs[RW]
ui_difference_threshold[RW]

Public Class Methods

configure() { |self| ... } click to toggle source
# File lib/compatriot.rb, line 13
def configure
  yield self
end
filename_for_test(test, description) click to toggle source
# File lib/compatriot.rb, line 37
def filename_for_test(test, description)
  test_name = test.name.match(/test_[0-9]+_(.*)/)[1]
  class_name = test.class.name
  filename = class_name + '_' + test_name
  filename += '_' + description unless description.empty?
  filename.tr(' ', '_').downcase + '.png'
end
filepath_for_screenshot(type, filename) click to toggle source
# File lib/compatriot.rb, line 45
def filepath_for_screenshot(type, filename)
  File.expand_path(self.screenshot_directory + '/' + type + '/' + filename)
end
percentage_changed(test, description = '') click to toggle source
# File lib/compatriot.rb, line 29
def percentage_changed(test, description = '')
  variable_img_path = take_screenshot(test, description)
  control_img_path = filepath_for_screenshot('control', filename_for_test(test, description))
  diff = Compatriot::ColorDiffer.diff(variable_img_path, control_img_path)
  variable_image = ChunkyPNG::Image.from_file(variable_img_path)
  Compatriot::ColorDiffer.color_difference_percentage(variable_image, diff)
end
relative_filepath_for_screenshot(type, filename) click to toggle source
# File lib/compatriot.rb, line 49
def relative_filepath_for_screenshot(type, filename)
  self.screenshot_directory + '/' + type + '/' + filename
end
take_screenshot(test, description) click to toggle source
# File lib/compatriot.rb, line 17
def take_screenshot(test, description)
  filename = filename_for_test(test, description)
  control_image_path = filepath_for_screenshot('control', filename)

  if File.exist?(control_image_path)
    screenshot_type = 'variable'
  else
    screenshot_type = 'control'
  end
  framework.current_session.save_screenshot filepath_for_screenshot(screenshot_type, filename)
end