1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00
rails--rails/test/service/mirror_service_test.rb

63 lines
1.8 KiB
Ruby
Raw Normal View History

require "service/shared_service_tests"
class ActiveStorage::Service::MirrorServiceTest < ActiveSupport::TestCase
mirror_config = (1..3).map do |i|
[ "mirror_#{i}",
service: "Disk",
root: Dir.mktmpdir("active_storage_tests_mirror_#{i}") ]
end.to_h
config = mirror_config.merge \
mirror: { service: "Mirror", primary: 'primary', mirrors: mirror_config.keys },
primary: { service: "Disk", root: Dir.mktmpdir("active_storage_tests_primary") }
SERVICE = ActiveStorage::Service.configure :mirror, config
include ActiveStorage::Service::SharedServiceTests
2017-07-06 07:53:26 -04:00
test "uploading to all services" do
begin
data = "Something else entirely!"
2017-07-06 07:53:26 -04:00
key = upload(data, to: @service)
assert_equal data, SERVICE.primary.download(key)
SERVICE.mirrors.each do |mirror|
assert_equal data, mirror.download(key)
end
ensure
@service.delete key
end
end
2017-07-06 07:53:26 -04:00
test "downloading from primary service" do
data = "Something else entirely!"
key = upload(data, to: SERVICE.primary)
2017-07-06 07:53:26 -04:00
assert_equal data, @service.download(key)
end
test "deleting from all services" do
@service.delete FIXTURE_KEY
assert_not SERVICE.primary.exist?(FIXTURE_KEY)
SERVICE.mirrors.each do |mirror|
assert_not mirror.exist?(FIXTURE_KEY)
end
2017-07-06 07:53:26 -04:00
end
test "URL generation in primary service" do
travel_to Time.now do
assert_equal SERVICE.primary.url(FIXTURE_KEY, expires_in: 2.minutes, disposition: :inline, filename: "test.txt"),
2017-07-06 07:53:26 -04:00
@service.url(FIXTURE_KEY, expires_in: 2.minutes, disposition: :inline, filename: "test.txt")
end
end
2017-07-06 10:01:18 -04:00
private
def upload(data, to:)
SecureRandom.base58(24).tap do |key|
io = StringIO.new(data).tap(&:read)
@service.upload key, io, checksum: Digest::MD5.base64digest(data)
assert io.eof?
2017-07-06 10:01:18 -04:00
end
2017-07-06 07:53:26 -04:00
end
end