aboutsummaryrefslogtreecommitdiffstats
path: root/test/service
diff options
context:
space:
mode:
Diffstat (limited to 'test/service')
-rw-r--r--test/service/disk_service_test.rb2
-rw-r--r--test/service/s3_service_test.rb31
-rw-r--r--test/service/shared_service_tests.rb8
3 files changed, 32 insertions, 9 deletions
diff --git a/test/service/disk_service_test.rb b/test/service/disk_service_test.rb
index c5404f55e6..565acbf516 100644
--- a/test/service/disk_service_test.rb
+++ b/test/service/disk_service_test.rb
@@ -7,7 +7,7 @@ class ActiveStorage::Service::DiskServiceTest < ActiveSupport::TestCase
include ActiveStorage::Service::SharedServiceTests
test "url generation" do
- assert_match /rails\/blobs\/.*\/avatar\.png\?disposition=inline/,
+ assert_match /rails\/active_storage\/disk\/.*\/avatar\.png\?disposition=inline/,
@service.url(FIXTURE_KEY, expires_in: 5.minutes, disposition: :inline, filename: "avatar.png")
end
end
diff --git a/test/service/s3_service_test.rb b/test/service/s3_service_test.rb
index 3e1838e393..167aa78a17 100644
--- a/test/service/s3_service_test.rb
+++ b/test/service/s3_service_test.rb
@@ -1,4 +1,6 @@
require "service/shared_service_tests"
+require "httparty"
+require "uri"
if SERVICE_CONFIGURATIONS[:s3]
class ActiveStorage::Service::S3ServiceTest < ActiveSupport::TestCase
@@ -6,6 +8,35 @@ if SERVICE_CONFIGURATIONS[:s3]
include ActiveStorage::Service::SharedServiceTests
+ test "direct upload" do
+ # FIXME: This test is failing because of a mismatched request signature, but it works in the browser.
+ skip
+
+ begin
+ key = SecureRandom.base58(24)
+ data = "Something else entirely!"
+ direct_upload_url = @service.url_for_direct_upload(key, expires_in: 5.minutes, content_type: "text/plain", content_length: data.size)
+
+ url = URI.parse(direct_upload_url).to_s.split("?").first
+ query = CGI::parse(URI.parse(direct_upload_url).query).collect { |(k, v)| [ k, v.first ] }.to_h
+
+ HTTParty.post(
+ url,
+ query: query,
+ body: data,
+ headers: {
+ "Content-Type": "text/plain",
+ "Origin": "http://localhost:3000"
+ },
+ debug_output: STDOUT
+ )
+
+ assert_equal data, @service.download(key)
+ ensure
+ @service.delete key
+ end
+ end
+
test "signed URL generation" do
assert_match /rails-activestorage\.s3\.amazonaws\.com.*response-content-disposition=inline.*avatar\.png/,
@service.url(FIXTURE_KEY, expires_in: 5.minutes, disposition: :inline, filename: "avatar.png")
diff --git a/test/service/shared_service_tests.rb b/test/service/shared_service_tests.rb
index e799c24c35..ad6a9dea7f 100644
--- a/test/service/shared_service_tests.rb
+++ b/test/service/shared_service_tests.rb
@@ -1,13 +1,5 @@
require "test_helper"
require "active_support/core_ext/securerandom"
-require "yaml"
-
-SERVICE_CONFIGURATIONS = begin
- YAML.load_file(File.expand_path("../configurations.yml", __FILE__)).deep_symbolize_keys
-rescue Errno::ENOENT
- puts "Missing service configuration file in test/service/configurations.yml"
- {}
-end
module ActiveStorage::Service::SharedServiceTests
extend ActiveSupport::Concern