aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClaudio B <claudiob@inventati.org>2017-08-04 15:56:14 -0700
committerDavid Heinemeier Hansson <david@loudthinking.com>2017-08-04 17:56:14 -0500
commitb9f0eb24ed6a86aec3881b43e6b0028a306465b2 (patch)
treefa17069286badaaa9748a64a621ddb276bb8c380
parent12d944f7651f79541d9f55fc6900d7fe4e3c62bc (diff)
downloadrails-b9f0eb24ed6a86aec3881b43e6b0028a306465b2.tar.gz
rails-b9f0eb24ed6a86aec3881b43e6b0028a306465b2.tar.bz2
rails-b9f0eb24ed6a86aec3881b43e6b0028a306465b2.zip
Fix tests for AWS buckets that include a . (#30059)
If an AWS bucket name includes a `.` (e.g. `bucket.name`), then the canonical URL for an object will start with "https://s3.amazonaws.com/bucket.name/" and not with "https://bucket.name.s3.amazonaws.com/". The URL tests have now been separated into two separate asserts, to ensure that both the "s3.amazonaws.com" and the "bucket.name" components are included, but not specifically in that order.
-rw-r--r--activestorage/test/controllers/direct_uploads_controller_test.rb3
-rw-r--r--activestorage/test/service/s3_service_test.rb7
2 files changed, 7 insertions, 3 deletions
diff --git a/activestorage/test/controllers/direct_uploads_controller_test.rb b/activestorage/test/controllers/direct_uploads_controller_test.rb
index 69d8ff2ab3..b9f9bd8cb4 100644
--- a/activestorage/test/controllers/direct_uploads_controller_test.rb
+++ b/activestorage/test/controllers/direct_uploads_controller_test.rb
@@ -24,7 +24,8 @@ if SERVICE_CONFIGURATIONS[:s3] && SERVICE_CONFIGURATIONS[:s3][:access_key_id].pr
assert_equal 6, details["byte_size"]
assert_equal checksum, details["checksum"]
assert_equal "text/plain", details["content_type"]
- assert_match /#{SERVICE_CONFIGURATIONS[:s3][:bucket]}\.s3.(\S+)?amazonaws\.com/, details["direct_upload"]["url"]
+ assert_match SERVICE_CONFIGURATIONS[:s3][:bucket], details["direct_upload"]["url"]
+ assert_match /s3\.(\S+)?amazonaws\.com/, details["direct_upload"]["url"]
assert_equal({ "Content-Type" => "text/plain", "Content-MD5" => checksum }, details["direct_upload"]["headers"])
end
end
diff --git a/activestorage/test/service/s3_service_test.rb b/activestorage/test/service/s3_service_test.rb
index ec80cbce61..6d613fd4fc 100644
--- a/activestorage/test/service/s3_service_test.rb
+++ b/activestorage/test/service/s3_service_test.rb
@@ -30,8 +30,11 @@ if SERVICE_CONFIGURATIONS[:s3] && SERVICE_CONFIGURATIONS[:s3][:access_key_id].pr
end
test "signed URL generation" do
- assert_match /#{SERVICE_CONFIGURATIONS[:s3][:bucket]}\.s3.(\S+)?amazonaws.com.*response-content-disposition=inline.*avatar\.png.*response-content-type=image%2Fpng/,
- @service.url(FIXTURE_KEY, expires_in: 5.minutes, disposition: :inline, filename: "avatar.png", content_type: "image/png")
+ url = @service.url(FIXTURE_KEY, expires_in: 5.minutes,
+ disposition: :inline, filename: "avatar.png", content_type: "image/png")
+
+ assert_match /s3\.(\S+)?amazonaws.com.*response-content-disposition=inline.*avatar\.png.*response-content-type=image%2Fpng/, url
+ assert_match SERVICE_CONFIGURATIONS[:s3][:bucket], url
end
test "uploading with server-side encryption" do