aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/controllers/variants_controller_test.rb4
-rw-r--r--test/models/variant_test.rb9
-rw-r--r--test/test_helper.rb30
3 files changed, 28 insertions, 15 deletions
diff --git a/test/controllers/variants_controller_test.rb b/test/controllers/variants_controller_test.rb
index 414eaa4ab6..83b00a132f 100644
--- a/test/controllers/variants_controller_test.rb
+++ b/test/controllers/variants_controller_test.rb
@@ -12,14 +12,12 @@ class ActiveStorage::VariantsControllerTest < ActionController::TestCase
end
test "showing variant inline" do
- skip
-
get :show, params: {
filename: @blob.filename,
signed_blob_id: @blob.signed_id,
variation_key: ActiveStorage::Variation.encode(resize: "100x100") }
assert_redirected_to /racecar.jpg\?disposition=inline/
- assert_same_image "racecar-100x100.jpg", @blob.variant(resize: "100x100")
+ assert_equal_image_dimensions "racecar-100x100.jpg", @blob.variant(resize: "100x100")
end
end
diff --git a/test/models/variant_test.rb b/test/models/variant_test.rb
index 9a33d77379..3d890dfc0f 100644
--- a/test/models/variant_test.rb
+++ b/test/models/variant_test.rb
@@ -7,20 +7,17 @@ class ActiveStorage::VariantTest < ActiveSupport::TestCase
end
test "resized variation" do
- skip
-
variant = @blob.variant(resize: "100x100").processed
assert_match /racecar.jpg/, variant.service_url
- assert_same_image "racecar-100x100.jpg", variant
+ assert_equal_image_dimensions "racecar-100x100.jpg", variant
end
test "resized and monochrome variation" do
- skip
-
variant = @blob.variant(resize: "100x100", monochrome: true).processed
assert_match /racecar.jpg/, variant.service_url
- assert_same_image "racecar-100x100-monochrome.jpg", variant
+ assert_equal_image_dimensions "racecar-100x100-monochrome.jpg", variant
+ assert_equal_image_colorspace "racecar-100x100-monochrome.jpg", variant
end
end
diff --git a/test/test_helper.rb b/test/test_helper.rb
index 154a2f0835..f531cb8079 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -32,6 +32,8 @@ ActiveStorage::Service.logger = ActiveSupport::Logger.new(STDOUT)
ActiveStorage.verifier = ActiveSupport::MessageVerifier.new("Testing")
class ActiveSupport::TestCase
+ self.file_fixture_path = File.expand_path("../fixtures/files", __FILE__)
+
private
def create_blob(data: "Hello world!", filename: "hello.txt", content_type: "text/plain")
ActiveStorage::Blob.create_after_upload! io: StringIO.new(data), filename: filename, content_type: content_type
@@ -39,18 +41,34 @@ class ActiveSupport::TestCase
def create_image_blob(filename: "racecar.jpg", content_type: "image/jpeg")
ActiveStorage::Blob.create_after_upload! \
- io: File.open(File.expand_path("../fixtures/files/#{filename}", __FILE__)),
+ io: file_fixture(filename).open,
filename: filename, content_type: content_type
end
-
+
def create_blob_before_direct_upload(filename: "hello.txt", byte_size:, checksum:, content_type: "text/plain")
ActiveStorage::Blob.create_before_direct_upload! filename: filename, byte_size: byte_size, checksum: checksum, content_type: content_type
end
+
+
+ def assert_equal_image_dimensions(fixture_filename, variant)
+ expected_image, actual_image = read_image_fixture(fixture_filename), read_image_variant(variant)
+
+ assert_equal expected_image.width, actual_image.width
+ assert_equal expected_image.height, actual_image.height
+ end
+
+ def assert_equal_image_colorspace(fixture_filename, variant)
+ expected_image, actual_image = read_image_fixture(fixture_filename), read_image_variant(variant)
+
+ assert_equal expected_image.colorspace, actual_image.colorspace
+ end
+
+ def read_image_fixture(fixture_filename)
+ MiniMagick::Image.open file_fixture(fixture_filename)
+ end
- def assert_same_image(fixture_filename, variant)
- assert_equal \
- File.binread(File.expand_path("../fixtures/files/#{fixture_filename}", __FILE__)),
- File.binread(variant.service.send(:path_for, variant.key))
+ def read_image_variant(variant)
+ MiniMagick::Image.open variant.service.send(:path_for, variant.key)
end
end