From ddbb88010e05f6295dd6e46724d585494c8cc84a Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Fri, 16 Jun 2017 22:07:14 -0700 Subject: Replace PhantomJS with headless Chrome for Rspec tests Closes #30876 --- features/support/capybara.rb | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) (limited to 'features/support') diff --git a/features/support/capybara.rb b/features/support/capybara.rb index f4691647d4b..1d1626a064b 100644 --- a/features/support/capybara.rb +++ b/features/support/capybara.rb @@ -1,22 +1,18 @@ -require 'capybara/poltergeist' require 'capybara-screenshot/spinach' # Give CI some extra time timeout = (ENV['CI'] || ENV['CI_SERVER']) ? 60 : 30 -Capybara.javascript_driver = :poltergeist -Capybara.register_driver :poltergeist do |app| - Capybara::Poltergeist::Driver.new( - app, - js_errors: true, - timeout: timeout, - window_size: [1366, 768], - url_whitelist: %w[localhost 127.0.0.1], - url_blacklist: %w[.mp4 .png .gif .avi .bmp .jpg .jpeg], - phantomjs_options: [ - '--load-images=yes' - ] +Capybara.javascript_driver = :chrome +Capybara.register_driver :chrome do |app| + capabilities = Selenium::WebDriver::Remote::Capabilities.chrome( + 'chromeOptions' => { + 'args' => %w[headless no-sandbox disable-gpu] + } ) + + Capybara::Selenium::Driver + .new(app, browser: :chrome, desired_capabilities: capabilities) end Capybara.default_max_wait_time = timeout -- cgit v1.2.3 From bece18aa592f3b93c1a697310dc1ee6d943fde25 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Fri, 16 Jun 2017 22:35:46 -0700 Subject: Make Capybara::Screenshot work with headless Chrome --- features/support/capybara.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'features/support') diff --git a/features/support/capybara.rb b/features/support/capybara.rb index 1d1626a064b..595577804bd 100644 --- a/features/support/capybara.rb +++ b/features/support/capybara.rb @@ -20,6 +20,10 @@ Capybara.ignore_hidden_elements = false # Keep only the screenshots generated from the last failing test suite Capybara::Screenshot.prune_strategy = :keep_last_run +# From https://github.com/mattheworiordan/capybara-screenshot/issues/84#issuecomment-41219326 +Capybara::Screenshot.register_driver(:chrome) do |driver, path| + driver.browser.save_screenshot(path) +end Spinach.hooks.before_run do TestEnv.eager_load_driver_server -- cgit v1.2.3 From 08172ff595f3c28080e2e5a45d15e28007d5206e Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Fri, 11 Aug 2017 23:02:21 -0700 Subject: Expand Spinach window size and remove unsupported trigger calls --- features/support/capybara.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'features/support') diff --git a/features/support/capybara.rb b/features/support/capybara.rb index 595577804bd..20abb504dc6 100644 --- a/features/support/capybara.rb +++ b/features/support/capybara.rb @@ -7,7 +7,7 @@ Capybara.javascript_driver = :chrome Capybara.register_driver :chrome do |app| capabilities = Selenium::WebDriver::Remote::Capabilities.chrome( 'chromeOptions' => { - 'args' => %w[headless no-sandbox disable-gpu] + 'args' => %w[headless no-sandbox disable-gpu --window-size=1240,1400] } ) -- cgit v1.2.3 From ad73d24235ef22f9012b30be9d9492b11b46ca58 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Sat, 12 Aug 2017 22:34:01 -0700 Subject: Bump selenium-webdriver to 3.5.0 to make Capybara work properly --- features/support/capybara.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'features/support') diff --git a/features/support/capybara.rb b/features/support/capybara.rb index 20abb504dc6..8628a38eaac 100644 --- a/features/support/capybara.rb +++ b/features/support/capybara.rb @@ -6,7 +6,7 @@ timeout = (ENV['CI'] || ENV['CI_SERVER']) ? 60 : 30 Capybara.javascript_driver = :chrome Capybara.register_driver :chrome do |app| capabilities = Selenium::WebDriver::Remote::Capabilities.chrome( - 'chromeOptions' => { + chromeOptions: { 'args' => %w[headless no-sandbox disable-gpu --window-size=1240,1400] } ) -- cgit v1.2.3 From 7b79ec07278887e31a34a7a2fae7f1af44b8c8e5 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Mon, 21 Aug 2017 21:26:51 -0700 Subject: Fix milestone Spinach tests by confirming modal only if it is present --- features/support/capybara_helpers.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 features/support/capybara_helpers.rb (limited to 'features/support') diff --git a/features/support/capybara_helpers.rb b/features/support/capybara_helpers.rb new file mode 100644 index 00000000000..647f8d087c3 --- /dev/null +++ b/features/support/capybara_helpers.rb @@ -0,0 +1,10 @@ +module CapybaraHelpers + def confirm_modal_if_present + if Capybara.current_driver == Capybara.javascript_driver + accept_confirm { yield } + return + end + + yield + end +end -- cgit v1.2.3 From e8ca579d88703aeeaa64dbf4ac45f73a60181568 Mon Sep 17 00:00:00 2001 From: Bob Van Landuyt Date: Fri, 29 Sep 2017 10:04:50 +0200 Subject: Add a project forks spec helper The helper creates a fork of a project with all provided attributes, but skipping the creation of the repository on disk. --- features/support/env.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'features/support') diff --git a/features/support/env.rb b/features/support/env.rb index 608d988755c..5962745d501 100644 --- a/features/support/env.rb +++ b/features/support/env.rb @@ -10,7 +10,7 @@ if ENV['CI'] Knapsack::Adapters::SpinachAdapter.bind end -%w(select2_helper test_env repo_helpers wait_for_requests sidekiq).each do |f| +%w(select2_helper test_env repo_helpers wait_for_requests sidekiq project_forks_helper).each do |f| require Rails.root.join('spec', 'support', f) end -- cgit v1.2.3 From 3839dd0dbad9cdb0063f22302ddc50c84ab8d9f2 Mon Sep 17 00:00:00 2001 From: Mike Greiling Date: Wed, 1 Nov 2017 11:03:06 -0500 Subject: enable CHROME_HEADLESS environment variable for Spinach tests similar to RSpec --- features/support/capybara.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'features/support') diff --git a/features/support/capybara.rb b/features/support/capybara.rb index 8628a38eaac..3c4db8b9601 100644 --- a/features/support/capybara.rb +++ b/features/support/capybara.rb @@ -5,9 +5,12 @@ timeout = (ENV['CI'] || ENV['CI_SERVER']) ? 60 : 30 Capybara.javascript_driver = :chrome Capybara.register_driver :chrome do |app| + extra_args = [] + extra_args << 'headless' unless ENV['CHROME_HEADLESS'] =~ /^(false|no|0)$/i + capabilities = Selenium::WebDriver::Remote::Capabilities.chrome( chromeOptions: { - 'args' => %w[headless no-sandbox disable-gpu --window-size=1240,1400] + 'args' => %w[no-sandbox disable-gpu --window-size=1240,1400] + extra_args } ) -- cgit v1.2.3