From cafec3c926c146659ac18b6ba197f61d813c6913 Mon Sep 17 00:00:00 2001 From: Bert Driehuis Date: Fri, 19 Jan 2018 02:13:21 +0100 Subject: [PATCH] Add feature tests for EXIF strip --- features/image-generation.feature | 31 +++++++++++++++++++++++ features/step_definitions/jekyll_steps.rb | 12 +++++++++ 2 files changed, 43 insertions(+) diff --git a/features/image-generation.feature b/features/image-generation.feature index 57d7c00..2fdc1c2 100644 --- a/features/image-generation.feature +++ b/features/image-generation.feature @@ -86,3 +86,34 @@ Feature: Responsive image generation When I run Jekyll Then the file "_site/assets/resized/exif-rotation-100x50.jpeg" should exist Then the file "_site/assets/resized/progressive-100x50.jpeg" should exist + + Scenario: Images should not be stripped of EXIF info by default + Given I have a responsive_image configuration with: + """ + template: _includes/responsive-image.html + sizes: + - width: 100 + """ + And I have a file "index.html" with: + """ + {% responsive_image path: assets/exif-rotation.jpeg %} + """ + When I run Jekyll + Then the file "_site/assets/resized/exif-rotation-100x50.jpeg" should exist + Then the image "_site/assets/resized/exif-rotation-100x50.jpeg" should have an EXIF orientation + + Scenario: Images can be stripped of EXIF info + Given I have a responsive_image configuration with: + """ + template: _includes/responsive-image.html + sizes: + - width: 100 + strip: true + """ + And I have a file "index.html" with: + """ + {% responsive_image path: assets/exif-rotation.jpeg %} + """ + When I run Jekyll + Then the file "_site/assets/resized/exif-rotation-100x50.jpeg" should exist + Then the image "_site/assets/resized/exif-rotation-100x50.jpeg" should have no EXIF orientation diff --git a/features/step_definitions/jekyll_steps.rb b/features/step_definitions/jekyll_steps.rb index f89fc72..0780605 100644 --- a/features/step_definitions/jekyll_steps.rb +++ b/features/step_definitions/jekyll_steps.rb @@ -65,6 +65,18 @@ Then /^the image "(.+)" should be interlaced$/ do |path| img.destroy! end +Then /^the image "(.+)" should have an EXIF orientation$/ do |path| + img = Magick::Image::read(path).first + assert_not_equal img.orientation.to_i, 0 + img.destroy! +end + +Then /^the image "(.+)" should have no EXIF orientation$/ do |path| + img = Magick::Image::read(path).first + assert_equal img.orientation.to_i, 0 + img.destroy! +end + def write_file(path, contents) File.open(path, 'w') do |f| f.write(contents)