You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
993 B
45 lines
993 B
require 'launchy' |
|
require 'erb' |
|
require 'yaml' |
|
|
|
# An pixel-by-pixel comparison of sample images for visual regression testing |
|
class SanityTest |
|
|
|
def sanity_html_erb |
|
"#{File.expand_path(File.dirname(__FILE__))}/sanity.html.erb" |
|
end |
|
|
|
def sanity_html |
|
"#{File.expand_path(File.dirname(__FILE__))}/sanity.html" |
|
end |
|
|
|
def samples_dir |
|
File.expand_path "samples/" |
|
end |
|
|
|
def images |
|
Dir["#{samples_dir}/**/*_expected.{png,svg}"].map do |expected| |
|
actual = [ File.dirname(expected), |
|
"/_output/", |
|
File.basename(expected).gsub('_expected', '')].join |
|
[expected, actual] |
|
end |
|
end |
|
|
|
def run |
|
puts 'Building sanity test...' |
|
process_erb(File.read(sanity_html_erb)) |
|
Launchy.open('file:///' + sanity_html) |
|
puts 'Done.' |
|
end |
|
|
|
private |
|
|
|
def process_erb(sanity_template) |
|
renderer = ERB.new(sanity_template) |
|
File.open(sanity_html, 'w+') do |html| |
|
html.write(renderer.result(binding)) |
|
end |
|
end |
|
|
|
end
|
|
|