diff options
author | Toshi MARUYAMA <marutosijp2@yahoo.co.jp> | 2019-09-25 17:30:07 +0000 |
---|---|---|
committer | Toshi MARUYAMA <marutosijp2@yahoo.co.jp> | 2019-09-25 17:30:07 +0000 |
commit | 942eb6e06bf49cc761fb55faec5edf5ff927c116 (patch) | |
tree | f72dbaeeff57ce763dbe8fee806b610b4ac9f818 | |
parent | 39101580a9a3ae93ec7ba94384b1e6c24b566db8 (diff) | |
download | redmine-942eb6e06bf49cc761fb55faec5edf5ff927c116.tar.gz redmine-942eb6e06bf49cc761fb55faec5edf5ff927c116.zip |
detect Chrome downloaded file more strictly
git-svn-id: http://svn.redmine.org/redmine/trunk@18536 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | test/application_system_test_case.rb | 12 | ||||
-rw-r--r-- | test/system/issues_test.rb | 4 |
2 files changed, 12 insertions, 4 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 diff --git a/test/system/issues_test.rb b/test/system/issues_test.rb index 0ed93a08d..c9228fd1d 100644 --- a/test/system/issues_test.rb +++ b/test/system/issues_test.rb @@ -335,7 +335,9 @@ class IssuesTest < ApplicationSystemTestCase click_on 'CSV' click_on 'Export' - csv = CSV.read(downloaded_file("issues.csv")) + # https://github.com/SeleniumHQ/selenium/issues/5292 + # if issues.csv exists, Chrome creates issues (1).csv, issues (2).csv ... + csv = CSV.read(downloaded_file("issues*.csv")) subject_index = csv.shift.index('Subject') subjects = csv.map {|row| row[subject_index]} assert_equal subjects.sort, subjects |