spec: support internet explorer test run

Change-Id: I3aa0228cffa8e767e7ba2c21df351d96fa6f16cc
Reviewed-on: https://gerrit.instructure.com/131017
Tested-by: Jenkins
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
This commit is contained in:
Santhosh Natarajan 2017-10-27 10:39:01 -06:00 committed by Robert Lamb
parent 817009eea2
commit 7e7aa18c0b
5 changed files with 9 additions and 10 deletions

View File

@ -175,7 +175,7 @@ module ErrorContext
end
def capture_screenshot?
selenium?
selenium? && !SeleniumDriverSetup.saucelabs_test_run?
end
def capture_video?

View File

@ -189,7 +189,7 @@ shared_context "in-process server selenium tests" do
SeleniumDriverSetup.disallow_requests!
end
if SeleniumDriverSetup.reset_driver_between_specs?
if SeleniumDriverSetup.saucelabs_test_run?
driver.quit
SeleniumDriverSetup.reset!
end

View File

@ -285,7 +285,7 @@ module CustomSeleniumActions
#
# 3.) This function will likely have trouble clicking links. Use fln instead.
def force_click(element_jquery_finder)
fj(element_jquery_finder)
fj(element_jquery_finder)
driver.execute_script(%{$(#{element_jquery_finder.to_s.to_json}).click()})
end
@ -351,7 +351,7 @@ module CustomSeleniumActions
when :chrome
driver.execute_script("arguments[0].select()", el)
keys = [:backspace]
when :safari
when :safari, :internet_explorer
el.clear()
keys = []
end

View File

@ -91,7 +91,7 @@ module SeleniumDriverSetup
@driver = nil
end
def reset_driver_between_specs?
def saucelabs_test_run?
SeleniumDriverSetup::CONFIG[:remote_url].present? &&
SeleniumDriverSetup::CONFIG[:remote_url].downcase.include?("saucelabs")
end
@ -103,7 +103,7 @@ module SeleniumDriverSetup
Thread.new { start_driver }
].each(&:join)
rescue Selenium::WebDriver::Error::WebDriverError
driver.quit if reset_driver_between_specs?
driver.quit if saucelabs_test_run?
rescue StandardError
puts "selenium startup failed: #{$ERROR_INFO}"
puts "exiting :'("
@ -149,7 +149,7 @@ module SeleniumDriverSetup
@driver = create_driver
focus_viewport if run_headless? && driver.browser != :safari
focus_viewport if run_headless?
set_timeouts(TIMEOUTS)
@ -219,7 +219,7 @@ module SeleniumDriverSetup
end
def run_headless?
ENV.key?("TEST_ENV_NUMBER")
ENV.key?("TEST_ENV_NUMBER") && !saucelabs_test_run?
end
HEADLESS_DEFAULTS = {

View File

@ -51,8 +51,7 @@ module SpecTimeLimit
# find an appropriate timeout for this spec
def timeout_for(example)
# todo: find a better way
if ENV.fetch("BROWSER", "") == 'safari'
if ENV.fetch("SELENIUM_REMOTE_URL", "undefined remote url").include? "saucelabs"
[:status_quo, SAUCELABS_ABSOLUTE_TIMEOUT]
elsif (timeout = typical_time_for(example))
[:status_quo, [timeout, ABSOLUTE_TIMEOUT].min]