mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
47 lines
1.3 KiB
Ruby
47 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "test_helper"
|
|
require "database/setup"
|
|
|
|
class ActiveStorage::BlobsControllerTest < ActionDispatch::IntegrationTest
|
|
setup do
|
|
@blob = create_file_blob filename: "racecar.jpg"
|
|
end
|
|
|
|
test "showing blob with invalid signed ID" do
|
|
get rails_service_blob_url("invalid", "racecar.jpg")
|
|
assert_response :not_found
|
|
end
|
|
|
|
test "showing blob utilizes browser caching" do
|
|
get rails_blob_url(@blob)
|
|
|
|
assert_redirected_to(/racecar\.jpg/)
|
|
assert_equal "max-age=300, private", @response.headers["Cache-Control"]
|
|
end
|
|
end
|
|
|
|
if SERVICE_CONFIGURATIONS[:s3] && SERVICE_CONFIGURATIONS[:s3][:access_key_id].present?
|
|
class ActiveStorage::S3BlobsControllerTest < ActionDispatch::IntegrationTest
|
|
setup do
|
|
@old_service = ActiveStorage::Blob.service
|
|
ActiveStorage::Blob.service = ActiveStorage::Service.configure(:s3, SERVICE_CONFIGURATIONS)
|
|
end
|
|
|
|
teardown do
|
|
ActiveStorage::Blob.service = @old_service
|
|
end
|
|
|
|
test "allow redirection to the different host" do
|
|
blob = create_file_blob filename: "racecar.jpg"
|
|
|
|
assert_nothing_raised { get rails_blob_url(blob) }
|
|
assert_response :redirect
|
|
assert_no_match @request.host, @response.headers["Location"]
|
|
ensure
|
|
blob.purge
|
|
end
|
|
end
|
|
else
|
|
puts "Skipping S3 redirection tests because no S3 configuration was supplied"
|
|
end
|