diff options
Diffstat (limited to 'test/application_system_test_case.rb')
-rw-r--r-- | test/application_system_test_case.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb index 55bb6d37e..6ee256f8c 100644 --- a/test/application_system_test_case.rb +++ b/test/application_system_test_case.rb @@ -66,15 +66,21 @@ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase def downloaded_files(filename='*') # https://github.com/SeleniumHQ/selenium/issues/5292 downloaded_path = Redmine::Platform.mswin? ? DOWNLOADS_PATH : "#{ENV['HOME']}/Downloads" - Dir.glob("#{downloaded_path}/#{filename}").reject {|f| f=~/\.(tmp|crdownload)$/} + Dir.glob("#{downloaded_path}/#{filename}"). + reject{|f| f=~/\.(tmp|crdownload)$/}.sort_by{|f| File.mtime(f)} end # Returns the path of the download file def downloaded_file(filename='*') + files = [] Timeout.timeout(5) do - sleep 0.2 while downloaded_files(filename).empty? + loop do + files = downloaded_files(filename) + break if files.present? + sleep 0.2 + end end - downloaded_files(filename).first + files.last end end |