14717: Fixups since tests now use config.yml
[arvados.git] / apps / workbench / test / integration / download_test.rb
index 8a16fb8a66b547ae704cc2791f06f330a5268bc9..e2d3dc8ef374a49ce7005ec5771c20b80886c161 100644 (file)
@@ -1,8 +1,12 @@
+# 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
@@ -13,10 +17,13 @@ class DownloadTest < ActionDispatch::IntegrationTest
 
     # 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
 
@@ -25,7 +32,7 @@ class DownloadTest < ActionDispatch::IntegrationTest
       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'
@@ -33,7 +40,7 @@ class DownloadTest < ActionDispatch::IntegrationTest
     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]
@@ -46,7 +53,7 @@ class DownloadTest < ActionDispatch::IntegrationTest
     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]
@@ -65,13 +72,13 @@ class DownloadTest < ActionDispatch::IntegrationTest
     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