mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
550d728bd1
https://github.com/rails/rails/pull/42225 identified that some of the content types used as defaults by Active Storage aren't recognized by `mini_mime`. This means that in practice code like [this](https://github.com/rails/rails/pull/42225/files#diff-7a3ec24c556b138abdbd67066ab5125b73528e45891d83142e417d3944194128R116) will crash or not function correctly. In [this](https://github.com/rails/rails/pull/42225/files#diff-c2010824d2d2e8d841ff4fc058c264c12d870e893025b153e6de571fba6b6c6cR194) example, a file with content_type `image/jpg` is treated as a PNG by the representer, since `image/jpg` isn't a valid content type according to `mini_mime`. I don't think the default content_types should include formats that have never actually worked, so I'm proposing we remove them from the defaults.
34 lines
1.4 KiB
Ruby
34 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "test_helper"
|
|
require "database/setup"
|
|
|
|
class ActiveStorage::EngineTest < ActiveSupport::TestCase
|
|
test "all default content types are recognized by mini_mime" do
|
|
exceptions = ActiveStorage::Blob::INVALID_VARIABLE_CONTENT_TYPES_DEPRECATED_IN_RAILS_7 + ActiveStorage::Blob::INVALID_VARIABLE_CONTENT_TYPES_TO_SERVE_AS_BINARY_DEPRECATED_IN_RAILS_7
|
|
|
|
ActiveStorage.variable_content_types.each do |content_type|
|
|
next if exceptions.include?(content_type) # remove this line in Rails 7.1
|
|
|
|
assert_equal content_type, MiniMime.lookup_by_content_type(content_type).content_type
|
|
end
|
|
|
|
ActiveStorage.web_image_content_types.each do |content_type|
|
|
next if exceptions.include?(content_type) # remove this line in Rails 7.1
|
|
|
|
assert_equal content_type, MiniMime.lookup_by_content_type(content_type).content_type
|
|
end
|
|
|
|
ActiveStorage.content_types_to_serve_as_binary.each do |content_type|
|
|
next if exceptions.include?(content_type) # remove this line in Rails 7.1
|
|
|
|
assert_equal content_type, MiniMime.lookup_by_content_type(content_type).content_type
|
|
end
|
|
|
|
ActiveStorage.content_types_allowed_inline.each do |content_type|
|
|
next if exceptions.include?(content_type) # remove this line in Rails 7.1
|
|
|
|
assert_equal content_type, MiniMime.lookup_by_content_type(content_type).content_type
|
|
end
|
|
end
|
|
end
|