diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/controllers/variants_controller_test.rb | 4 | ||||
-rw-r--r-- | test/models/variant_test.rb | 9 | ||||
-rw-r--r-- | test/test_helper.rb | 30 |
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 |