def selenium_opts
{
port: available_port('selenium'),
+ desired_capabilities: Selenium::WebDriver::Remote::Capabilities.firefox(
+ acceptInsecureCerts: true,
+ ),
}
end
# DOM element.
def assert_triggers_dom_event events, target='body'
magic = 'received-dom-event-' + rand(2**30).to_s(36)
- page.evaluate_script <<eos
+ page.execute_script <<eos
$('#{target}').one('#{events}', function() {
$('body').addClass('#{magic}');
});
eos
yield
assert_selector "body.#{magic}"
- page.evaluate_script "$('body').removeClass('#{magic}');";
+ page.execute_script "$('body').removeClass('#{magic}');";
end
end
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)
end
def upload_data_and_get_collection(data, user, filename, owner_uuid=nil)
- token = api_fixture('api_client_authorizations')[user]['api_token']
+ token = api_token(user)
datablock = `echo -n #{data.shellescape} | ARVADOS_API_TOKEN=#{token.shellescape} arv-put --no-progress --raw -`.strip
assert $?.success?, $?
col = nil