workaround Chrome default_directory ignored on Linux

https://github.com/SeleniumHQ/selenium/issues/5292

git-svn-id: http://svn.redmine.org/redmine/trunk@18530 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Toshi MARUYAMA
2019-09-25 12:31:40 +00:00
parent 83d5633a5f
commit ddb24a2473
2 changed files with 7 additions and 5 deletions

View File

@@ -62,14 +62,16 @@ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
FileUtils.rm downloaded_files
end
def downloaded_files
Dir.glob("#{DOWNLOADS_PATH}/*").reject {|f| f=~/\.(tmp|crdownload)$/}
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)$/}
end
# Returns the path of the download file
def downloaded_file
def downloaded_file(filename='*')
Timeout.timeout(5) do
while downloaded_files.empty?
while downloaded_files(filename).empty?
sleep 0.2
end
end

View File

@@ -335,7 +335,7 @@ class IssuesTest < ApplicationSystemTestCase
click_on 'CSV'
click_on 'Export'
csv = CSV.read(downloaded_file)
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