X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/62f6c1f0be5ebd4911ca0891e2b68db4c1e07a9a..ae92d144610446849eb568247a44f02ae985c281:/apps/workbench/test/integration_helper.rb diff --git a/apps/workbench/test/integration_helper.rb b/apps/workbench/test/integration_helper.rb index 1af7245a4e..7209f2b6c9 100644 --- a/apps/workbench/test/integration_helper.rb +++ b/apps/workbench/test/integration_helper.rb @@ -156,19 +156,6 @@ module HeadlessHelper end end -module KeepWebConfig - def getport service - File.read(File.expand_path("../../../../tmp/#{service}.port", __FILE__)) - end - - def use_keep_web_config - @kwport = getport 'keep-web-ssl' - @kwdport = getport 'keep-web-dl-ssl' - Rails.configuration.keep_web_url = "https://localhost:#{@kwport}/c=%{uuid_or_pdh}" - Rails.configuration.keep_web_download_url = "https://localhost:#{@kwdport}/c=%{uuid_or_pdh}" - end -end - class ActionDispatch::IntegrationTest # Make the Capybara DSL available in all integration tests include Capybara::DSL @@ -197,9 +184,9 @@ class ActionDispatch::IntegrationTest # exception if not found. Use this with assertions to explain that # the error signifies a failed test rather than an unexpected error # during a testing procedure. - def find? *args + def find?(*args) begin - find *args + find(*args) rescue Capybara::ElementNotFound false end @@ -219,10 +206,21 @@ class ActionDispatch::IntegrationTest end teardown do - if not passed? + if !passed? && !skipped? screenshot end if Capybara.current_driver == :selenium + # Clearing localStorage crashes on a page where JS isn't + # executed. We also need to make sure we're clearing + # localStorage for the test server's origin, even if we finished + # the test on a different origin. + host = Capybara.current_session.server.host + port = Capybara.current_session.server.port + base = "http://#{host}:#{port}" + if page.evaluate_script("window.document.contentType") != "text/html" || + !page.evaluate_script("window.location.toString()").start_with?(base) + visit "#{base}/404" + end page.execute_script("window.localStorage.clear()") else page.driver.restart if defined?(page.driver.restart)