From 7e7a60bd3fbfac9b02884f404bd31f3456f4022d Mon Sep 17 00:00:00 2001 From: "yuuji.yaginuma" Date: Wed, 28 Nov 2018 09:53:51 +0900 Subject: [PATCH 1/3] Remove duplicated test Since 06ab7b27ea1c1ab357085439abacdb464f6742bf, `GCSServiceTest#test_signed_URL_response_headers` is broken. https://travis-ci.org/rails/rails/jobs/460454477#L7084-L7087 This seems to be due to lack of `content_type` at upload. This is solved by specifying `conten_type`. However, since the same content is also tested with `test_upload_with_content_type`, it will be duplicated content, so I think that can remove `test_signed_URL_response_headers`. --- activestorage/test/service/gcs_service_test.rb | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/activestorage/test/service/gcs_service_test.rb b/activestorage/test/service/gcs_service_test.rb index 73337ef8e1..6d0695ba58 100644 --- a/activestorage/test/service/gcs_service_test.rb +++ b/activestorage/test/service/gcs_service_test.rb @@ -84,20 +84,6 @@ if SERVICE_CONFIGURATIONS[:gcs] assert_match(/storage\.googleapis\.com\/.*response-content-disposition=inline.*test\.txt.*response-content-type=text%2Fplain/, @service.url(@key, expires_in: 2.minutes, disposition: :inline, filename: ActiveStorage::Filename.new("test.txt"), content_type: "text/plain")) end - - test "signed URL response headers" do - begin - key = SecureRandom.base58(24) - data = "Something else entirely!" - @service.upload(key, StringIO.new(data), checksum: Digest::MD5.base64digest(data)) - - url = @service.url(key, expires_in: 2.minutes, disposition: :inline, filename: ActiveStorage::Filename.new("test.txt"), content_type: "text/plain") - response = Net::HTTP.get_response(URI(url)) - assert_equal "text/plain", response.content_type - ensure - @service.delete key - end - end end else puts "Skipping GCS Service tests because no GCS configuration was supplied" From c2ef8bbf522dc69b3f3c270976bbb9779280e605 Mon Sep 17 00:00:00 2001 From: "yuuji.yaginuma" Date: Wed, 28 Nov 2018 10:16:07 +0900 Subject: [PATCH 2/3] Fix broken `ActiveStorage::BlobTest` `ActiveStorage::Filename#parameters` was removed by #33829. --- activestorage/test/models/blob_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/activestorage/test/models/blob_test.rb b/activestorage/test/models/blob_test.rb index 0eac622d72..1503f5fc50 100644 --- a/activestorage/test/models/blob_test.rb +++ b/activestorage/test/models/blob_test.rb @@ -196,7 +196,7 @@ class ActiveStorage::BlobTest < ActiveSupport::TestCase filename ||= blob.filename content_type ||= blob.content_type - query = { disposition: disposition.to_s + "; #{filename.parameters}", content_type: content_type } + query = { disposition: ActionDispatch::Http::ContentDisposition.format(disposition: disposition, filename: filename.sanitized), content_type: content_type } key_params = { key: blob.key }.merge(query) "https://example.com/rails/active_storage/disk/#{ActiveStorage.verifier.generate(key_params, expires_in: 5.minutes, purpose: :blob_key)}/#{filename}?#{query.to_param}" From b7ec129de5120f8ea3b2b3562a8c38c69e508a07 Mon Sep 17 00:00:00 2001 From: "yuuji.yaginuma" Date: Wed, 28 Nov 2018 10:35:57 +0900 Subject: [PATCH 3/3] text is treated as `attachment` --- activestorage/test/controllers/disk_controller_test.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/activestorage/test/controllers/disk_controller_test.rb b/activestorage/test/controllers/disk_controller_test.rb index 0aa8648db3..a723b4d56a 100644 --- a/activestorage/test/controllers/disk_controller_test.rb +++ b/activestorage/test/controllers/disk_controller_test.rb @@ -23,11 +23,11 @@ class ActiveStorage::DiskControllerTest < ActionDispatch::IntegrationTest assert_equal "Hello world!", response.body end - test "showing blob range inline" do + test "showing blob range" do blob = create_blob get blob.service_url, headers: { "Range" => "bytes=5-9" } assert_response :partial_content - assert_equal "inline; filename=\"hello.txt\"; filename*=UTF-8''hello.txt", response.headers["Content-Disposition"] + assert_equal "attachment; filename=\"hello.txt\"; filename*=UTF-8''hello.txt", response.headers["Content-Disposition"] assert_equal "text/plain", response.headers["Content-Type"] assert_equal " worl", response.body end