summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMarius Balteanu <marius.balteanu@zitec.com>2023-10-29 11:58:15 +0000
committerMarius Balteanu <marius.balteanu@zitec.com>2023-10-29 11:58:15 +0000
commit3552ee851b245a2ba422cb31005cff5772f63d8c (patch)
tree4ea56e0e39d61fca8adc4043ca363dba60f9c946 /test
parent67c268476ab38d7e1fa70ae02cd348da702a679a (diff)
downloadredmine-3552ee851b245a2ba422cb31005cff5772f63d8c.tar.gz
redmine-3552ee851b245a2ba422cb31005cff5772f63d8c.zip
Merged r22397 to 5.1-stable (#37558).
git-svn-id: https://svn.redmine.org/redmine/branches/5.1-stable@22398 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r--test/application_system_test_case.rb36
1 files changed, 17 insertions, 19 deletions
diff --git a/test/application_system_test_case.rb b/test/application_system_test_case.rb
index 52dd2fc45..2a41db11d 100644
--- a/test/application_system_test_case.rb
+++ b/test/application_system_test_case.rb
@@ -18,39 +18,37 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require_relative 'test_helper'
-require 'webdrivers/chromedriver'
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
DOWNLOADS_PATH = File.expand_path(File.join(Rails.root, 'tmp', 'downloads'))
- GOOGLE_CHROME_OPTS_ARGS = []
# Allow running Capybara default server on custom IP address and/or port
Capybara.server_host = ENV['CAPYBARA_SERVER_HOST'] if ENV['CAPYBARA_SERVER_HOST']
Capybara.server_port = ENV['CAPYBARA_SERVER_PORT'] if ENV['CAPYBARA_SERVER_PORT']
# Allow defining Google Chrome options arguments based on a comma-delimited string environment variable
- GOOGLE_CHROME_OPTS_ARGS = ENV['GOOGLE_CHROME_OPTS_ARGS'].split(",") if ENV['GOOGLE_CHROME_OPTS_ARGS']
+ GOOGLE_CHROME_OPTS_ARGS = ENV['GOOGLE_CHROME_OPTS_ARGS'].present? ? ENV['GOOGLE_CHROME_OPTS_ARGS'].split(",") : []
options = {}
+ if ENV['SELENIUM_REMOTE_URL']
+ options[:url] = ENV['SELENIUM_REMOTE_URL']
+ options[:browser] = :remote
+ elsif Gem.ruby_version < Gem::Version.new('3.0')
+ require 'webdrivers/chromedriver'
+ end
+
# Allow running tests using a remote Selenium hub
- options[:url] = ENV['SELENIUM_REMOTE_URL'] if ENV['SELENIUM_REMOTE_URL']
- options[:desired_capabilities] = Selenium::WebDriver::Remote::Capabilities.chrome(
- 'goog:chromeOptions' => {
- 'args' => GOOGLE_CHROME_OPTS_ARGS,
- 'prefs' => {
- 'download.default_directory' => DOWNLOADS_PATH.gsub(File::SEPARATOR, File::ALT_SEPARATOR || File::SEPARATOR),
- 'download.prompt_for_download' => false,
- 'plugins.plugins_disabled' => ["Chrome PDF Viewer"]
- }
- }
- )
-
- driven_by(
- :selenium, using: :chrome, screen_size: [1024, 900],
- options: options
- )
+ driven_by :selenium, using: :chrome, screen_size: [1024, 900], options: options do |driver_option|
+ GOOGLE_CHROME_OPTS_ARGS.each do |arg|
+ driver_option.add_argument arg
+ end
+ driver_option.add_preference 'download.default_directory', DOWNLOADS_PATH.gsub(File::SEPARATOR, File::ALT_SEPARATOR || File::SEPARATOR)
+ driver_option.add_preference 'download.prompt_for_download', false
+ driver_option.add_preference 'plugins.plugins_disabled', ["Chrome PDF Viewer"]
+ end
setup do
+ Capybara.app_host = "http://#{Capybara.server_host}:#{Capybara.server_port}"
# Allow defining a custom app host (useful when using a remote Selenium hub)
if ENV['CAPYBARA_APP_HOST']
Capybara.configure do |config|