From 717ba27bc2ccf274aa9a0c4e7798baadff078e6f Mon Sep 17 00:00:00 2001 From: DaveBlooman Date: Wed, 30 Jul 2014 15:14:52 +0100 Subject: [PATCH] update tests --- .gitignore | 1 + Rakefile | 8 +------- lib/wraith/cli.rb | 7 ------- lib/wraith/crop.rb | 6 +++++- lib/wraith/images.rb | 20 -------------------- lib/wraith/save_images.rb | 12 ++++++++++-- lib/wraith/thumbnails.rb | 6 +++++- lib/wraith/wraith.rb | 26 ++------------------------ spec/wraith_spec.rb | 7 ++++--- 9 files changed, 28 insertions(+), 65 deletions(-) delete mode 100644 lib/wraith/images.rb diff --git a/.gitignore b/.gitignore index ec0c0444..cc7cc314 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ shots/ data.txt .DS_Store *.swp +Gemfile.lock diff --git a/Rakefile b/Rakefile index bb2d1d2c..159a49fc 100644 --- a/Rakefile +++ b/Rakefile @@ -7,7 +7,6 @@ require 'wraith/spider' require 'wraith/folder' require 'wraith/thumbnails' require 'wraith/compare_images' -require 'wraith/images' require 'wraith/gallery' @config = ('config') @@ -19,7 +18,7 @@ task :config, [:yaml] do |_t, custom| Rake::Task['default'].invoke end -task default: [:reset_shots_folder, :check_for_paths, :setup_folders, :save_images, :check_images, :crop_images, :compare_images, :generate_thumbnails, :generate_gallery] do +task default: [:reset_shots_folder, :check_for_paths, :setup_folders, :save_images, :crop_images, :compare_images, :generate_thumbnails, :generate_gallery] do puts 'Done!' end @@ -53,11 +52,6 @@ task :crop_images do crop.crop_images end -task :check_images do - image = Wraith::Images.new(@config) - image.files -end - task :generate_thumbnails do thumbs = Wraith::Thumbnails.new(@config) thumbs.generate_thumbnails diff --git a/lib/wraith/cli.rb b/lib/wraith/cli.rb index 258bdba4..2cc397da 100644 --- a/lib/wraith/cli.rb +++ b/lib/wraith/cli.rb @@ -6,7 +6,6 @@ require 'wraith/folder' require 'wraith/thumbnails' require 'wraith/compare_images' -require 'wraith/images' require 'wraith/gallery' class Wraith::CLI < Thor @@ -41,11 +40,6 @@ def check_for_paths(config_name) spider = Wraith::Spidering.new(config_name) spider.check_for_paths end - - def check_images(config_name) - image = Wraith::Images.new(config_name) - image.files - end end desc 'save_images [config_name]', 'captures screenshots' @@ -85,7 +79,6 @@ def capture(config) check_for_paths(config) setup_folders(config) save_images(config) - check_images(config) crop_images(config) compare_images(config) generate_thumbnails(config) diff --git a/lib/wraith/crop.rb b/lib/wraith/crop.rb index 8550696c..db31188b 100644 --- a/lib/wraith/crop.rb +++ b/lib/wraith/crop.rb @@ -26,10 +26,14 @@ def crop_images height_to_crop_to = compare_height end - Wraith::Wraith.crop_images(image_to_crop, height_to_crop_to) + crop_task(image_to_crop, height_to_crop_to) end end + def crop_task(crop, height) + `convert #{crop} -background none -extent 0x#{height} #{crop}` + end + def image_height(image) File.open(image, 'rb') do |fh| size = ImageSize.new(fh.read).size diff --git a/lib/wraith/images.rb b/lib/wraith/images.rb deleted file mode 100644 index e3427a75..00000000 --- a/lib/wraith/images.rb +++ /dev/null @@ -1,20 +0,0 @@ -require 'wraith' - -class Wraith::Images - attr_reader :wraith - - def initialize(config) - @wraith = Wraith::Wraith.new(config) - end - - def files - files = Dir.glob("#{wraith.directory}/*/*.png").sort - invalid = File.expand_path('../../assets/invalid.jpg', File.dirname(__FILE__)) - files.each do |filename| - if File.stat("#{filename}").size == 0 - FileUtils.cp invalid, filename - puts "#{filename} is invalid" - end - end - end -end diff --git a/lib/wraith/save_images.rb b/lib/wraith/save_images.rb index 4af1d0e3..ce3c71e8 100644 --- a/lib/wraith/save_images.rb +++ b/lib/wraith/save_images.rb @@ -39,7 +39,7 @@ def file_names(width, label, domain_label) def attempt_image_capture(width, url, filename, max_attempts) max_attempts.times do |i| - wraith.capture_page_image engine, url, width, filename + capture_page_image engine, url, width, filename return if File.exist? filename @@ -80,8 +80,16 @@ def save_images FileUtils.cp invalid, filename # Set width of fallback image - wraith.set_image_width(filename, width) + set_image_width(filename, width) end end end + + def set_image_width(image, width) + `convert #{image} -background none -extent #{width}x0 #{image}` + end + + def capture_page_image(browser, url, width, file_name) + puts `"#{browser}" "#{wraith.phantomjs_options}" "#{wraith.snap_file}" "#{url}" "#{width}" "#{file_name}"` + end end diff --git a/lib/wraith/thumbnails.rb b/lib/wraith/thumbnails.rb index 357c6e34..eaee3ab3 100644 --- a/lib/wraith/thumbnails.rb +++ b/lib/wraith/thumbnails.rb @@ -15,7 +15,11 @@ def generate_thumbnails Parallel.each(files, in_processes: Parallel.processor_count) do |filename| new_name = filename.gsub(/^#{wraith.directory}/, "#{wraith.directory}/thumbnails") - wraith.thumbnail_image(filename, new_name) + thumbnail_image(filename, new_name) end end + + def thumbnail_image(png_path, output_path) + `convert #{png_path} -thumbnail 200 -crop 200x200+0+0 #{output_path}` + end end diff --git a/lib/wraith/wraith.rb b/lib/wraith/wraith.rb index 000d1fc6..89ab6d9c 100644 --- a/lib/wraith/wraith.rb +++ b/lib/wraith/wraith.rb @@ -84,29 +84,7 @@ def mode end end - def capture_page_image(browser, url, width, file_name) - puts `"#{browser}" #{@config['phantomjs_options']} "#{snap_file}" "#{url}" "#{width}" "#{file_name}"` - end - - def self.crop_images(crop, height) - # For compatibility with windows file structures switch commenting on the following 2 lines - `convert #{crop} -background none -extent 0x#{height} #{crop}` - # puts `convert #{crop.gsub('/', '\\')} -background none -extent 0x#{height} #{crop.gsub('/', '\\')}` - end - - def crop_images(_crop, _height) - self.class.crop_images - end - - def set_image_width(image, width) - # For compatibility with windows file structures switch commenting on the following 2 lines - `convert #{image} -background none -extent #{width}x0 #{image}` - # puts `convert #{image.gsub('/', '\\')} -background none -extent #{width}x0 #{image.gsub('/', '\\')}` - end - - def thumbnail_image(png_path, output_path) - # For compatibility with windows file structures switch commenting on the following 2 lines - `convert #{png_path} -thumbnail 200 -crop 200x200+0+0 #{output_path}` - # `convert #{png_path.gsub('/', '\\')} -thumbnail 200 -crop 200x200+0+0 #{output_path}` + def phantomjs_options + @config['phantomjs_options'] end end diff --git a/spec/wraith_spec.rb b/spec/wraith_spec.rb index d2ecda19..3595f616 100644 --- a/spec/wraith_spec.rb +++ b/spec/wraith_spec.rb @@ -12,6 +12,7 @@ Given(:test_image2) { 'shots/test/test2.png' } Given(:diff_image) { 'shots/test/test_diff.png' } Given(:data_txt) { 'shots/test/test.txt' } + Given(:saving) { Wraith::SaveImages.new(config_name) } When(:wraith) { Wraith::Wraith.new(config_name) } Then { wraith.is_a? Wraith::Wraith } @@ -31,7 +32,7 @@ # capture_page_image When do wraith.engine.each do |_type, engine| - wraith.capture_page_image(engine, test_url1, 320, test_image1) + saving.capture_page_image(engine, test_url1, 320, test_image1) end end When(:image_size) { ImageSize.path(test_image1).size } @@ -41,8 +42,8 @@ context 'When comparing images' do When(:diff_image_size) do wraith.engine.each do |_type, engine| - wraith.capture_page_image(engine, test_url1, 320, test_image1) - wraith.capture_page_image(engine, test_url2, 320, test_image2) + saving.capture_page_image(engine, test_url1, 320, test_image1) + saving.capture_page_image(engine, test_url2, 320, test_image2) end Wraith::CropImages.new(config_name).crop_images Wraith::CompareImages.new(config_name).compare_task(test_image1, test_image2, diff_image, data_txt)