aboutsummaryrefslogtreecommitdiffstats
path: root/test/controllers/direct_uploads_controller_test.rb
diff options
context:
space:
mode:
authorDino Maric <dino.onex@gmail.com>2017-07-31 17:09:12 +0200
committerDavid Heinemeier Hansson <david@loudthinking.com>2017-07-31 10:09:12 -0500
commit3f4a7218a4a4923a0e7ce1b2eb0d2888ce30da58 (patch)
treec0bbdc0f980bdb58f79f622642b387b3998af9da /test/controllers/direct_uploads_controller_test.rb
parent6c68524b69e1bfb28f0d1aa5967fd602ed1b7ed7 (diff)
downloadrails-3f4a7218a4a4923a0e7ce1b2eb0d2888ce30da58.tar.gz
rails-3f4a7218a4a4923a0e7ce1b2eb0d2888ce30da58.tar.bz2
rails-3f4a7218a4a4923a0e7ce1b2eb0d2888ce30da58.zip
Azure Storage support (#36)
* Microsoft Azure storage support * Add support for Microsoft Azure Storage * Comply with the new headers implementation
Diffstat (limited to 'test/controllers/direct_uploads_controller_test.rb')
-rw-r--r--test/controllers/direct_uploads_controller_test.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/controllers/direct_uploads_controller_test.rb b/test/controllers/direct_uploads_controller_test.rb
index 7ffa77ea73..7185bf2737 100644
--- a/test/controllers/direct_uploads_controller_test.rb
+++ b/test/controllers/direct_uploads_controller_test.rb
@@ -67,6 +67,40 @@ else
puts "Skipping GCS Direct Upload tests because no GCS configuration was supplied"
end
+if SERVICE_CONFIGURATIONS[:azure]
+ class ActiveStorage::AzureDirectUploadsControllerTest < ActionDispatch::IntegrationTest
+ setup do
+ @config = SERVICE_CONFIGURATIONS[:azure]
+
+ @old_service = ActiveStorage::Blob.service
+ ActiveStorage::Blob.service = ActiveStorage::Service.configure(:azure, SERVICE_CONFIGURATIONS)
+ end
+
+ teardown do
+ ActiveStorage::Blob.service = @old_service
+ end
+
+ test "creating new direct upload" do
+ checksum = Digest::MD5.base64digest("Hello")
+
+ post rails_direct_uploads_url, params: { blob: {
+ filename: "hello.txt", byte_size: 6, checksum: checksum, content_type: "text/plain" } }
+
+ @response.parsed_body.tap do |details|
+ assert_equal ActiveStorage::Blob.find(details["id"]), ActiveStorage::Blob.find_signed(details["signed_id"])
+ assert_equal "hello.txt", details["filename"]
+ assert_equal 6, details["byte_size"]
+ assert_equal checksum, details["checksum"]
+ assert_equal "text/plain", details["content_type"]
+ assert_match %r{#{@config[:storage_account_name]}\.blob\.core\.windows\.net/#{@config[:container]}}, details["direct_upload"]["url"]
+ assert_equal({ "Content-Type" => "text/plain", "Content-MD5" => checksum, "x-ms-blob-type" => "BlockBlob" }, details["direct_upload"]["headers"])
+ end
+ end
+ end
+else
+ puts "Skipping Azure Direct Upload tests because no Azure configuration was supplied"
+end
+
class ActiveStorage::DiskDirectUploadsControllerTest < ActionDispatch::IntegrationTest
test "creating new direct upload" do
checksum = Digest::MD5.base64digest("Hello")