+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
require 'integration_helper'
require 'helpers/download_helper'
class DownloadTest < ActionDispatch::IntegrationTest
- include KeepWebConfig
+ @@wrote_test_data = false
setup do
use_keep_web_config
# Keep data isn't populated by fixtures, so we have to write any
# data we expect to read.
- ['foo', 'w a z', "Hello world\n"].each do |data|
- md5 = `echo -n #{data.shellescape} | arv-put --no-progress --raw -`
- assert_match /^#{Digest::MD5.hexdigest(data)}/, md5
- assert $?.success?, $?
+ if !@@wrote_test_data
+ ['foo', 'w a z', "Hello world\n"].each do |data|
+ md5 = `echo -n #{data.shellescape} | arv-put --no-progress --raw -`
+ assert_match /^#{Digest::MD5.hexdigest(data)}/, md5
+ assert $?.success?, $?
+ end
+ @@wrote_test_data = true
end
end
uuid_or_pdh = api_fixture('collections')['foo_file'][id_type]
token = api_fixture('api_client_authorizations')['active_all_collections']['api_token']
visit "/collections/download/#{uuid_or_pdh}/#{token}/"
- within "#collection_files" do
+ within 'ul' do
click_link 'foo'
end
assert_no_selector 'a'
end
test "preview anonymous content from keep-web by #{id_type}" do
- Rails.configuration.anonymous_user_token =
+ Rails.configuration.Users.AnonymousUserToken =
api_fixture('api_client_authorizations')['anonymous']['api_token']
uuid_or_pdh =
api_fixture('collections')['public_text_file'][id_type]
end
test "download anonymous content from keep-web by #{id_type}" do
- Rails.configuration.anonymous_user_token =
+ Rails.configuration.Users.AnonymousUserToken =
api_fixture('api_client_authorizations')['anonymous']['api_token']
uuid_or_pdh =
api_fixture('collections')['public_text_file'][id_type]
within "#collection_files" do
find('[title~=Download]').click
end
- wait_for_download 'w a z', 'w a z'
+ wait_for_download 'w a z', 'w a z', timeout: 20
end
- def wait_for_download filename, expect_data
+ def wait_for_download filename, expect_data, timeout: 3
data = nil
tries = 0
- while tries < 20
+ while tries < timeout*10 && data != expect_data
sleep 0.1
tries += 1
data = File.read(DownloadHelper.path.join filename) rescue nil