From 3f4a7218a4a4923a0e7ce1b2eb0d2888ce30da58 Mon Sep 17 00:00:00 2001 From: Dino Maric Date: Mon, 31 Jul 2017 17:09:12 +0200 Subject: Azure Storage support (#36) * Microsoft Azure storage support * Add support for Microsoft Azure Storage * Comply with the new headers implementation --- test/controllers/direct_uploads_controller_test.rb | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'test/controllers/direct_uploads_controller_test.rb') 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") -- cgit v1.2.3