aboutsummaryrefslogtreecommitdiffstats
path: root/activestorage
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 /activestorage
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.
Diffstat (limited to 'activestorage')
-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