Updated ULS repository to the latest version of shared test files
Bug: 53579 Change-Id: I9828866f3a3db24a95324bb82942f2c59382f2c9
This commit is contained in:
1
tests/browser/.gitignore
vendored
1
tests/browser/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
config/secret.yml
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
Given(/^that my browser's accept language is (.+)$/) do |language|
|
Given(/^that my browser's accept language is (.+)$/) do |language|
|
||||||
@browser = browser(environment, test_name(@scenario), @saucelabs_username, @saucelabs_key, language)
|
@browser = browser(environment, test_name(@scenario), ENV['SAUCE_ONDEMAND_USERNAME'], ENV['SAUCE_ONDEMAND_ACCESS_KEY'], language)
|
||||||
$session_id = @browser.driver.instance_variable_get(:@bridge).session_id
|
$session_id = @browser.driver.instance_variable_get(:@bridge).session_id
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ Given(/^I am logged out$/) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
Given(/^I am logged in$/) do
|
Given(/^I am logged in$/) do
|
||||||
visit(LoginPage).login_with(@mediawiki_username, @mediawiki_password)
|
visit(LoginPage).login_with(@mediawiki_username, ENV['MEDIAWIKI_PASSWORD'])
|
||||||
# Assert that login worked
|
# Assert that login worked
|
||||||
loggedin = !@browser.execute_script( "return mw.user.isAnon();" )
|
loggedin = !@browser.execute_script( "return mw.user.isAnon();" )
|
||||||
loggedin.should be_true
|
loggedin.should be_true
|
||||||
|
|||||||
@@ -7,16 +7,16 @@ require 'yaml'
|
|||||||
|
|
||||||
World(PageObject::PageFactory)
|
World(PageObject::PageFactory)
|
||||||
|
|
||||||
def browser(environment, test_name, saucelabs_username, saucelabs_key, language)
|
def browser(environment, test_name, language)
|
||||||
if environment == :cloudbees
|
if environment == :saucelabs
|
||||||
sauce_browser(test_name, saucelabs_username, saucelabs_key, language)
|
sauce_browser(test_name, language)
|
||||||
else
|
else
|
||||||
local_browser(language)
|
local_browser(language)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
def environment
|
def environment
|
||||||
if ENV['ENVIRONMENT'] == 'cloudbees'
|
if ENV['BROWSER_LABEL'] and ENV['SAUCE_ONDEMAND_USERNAME'] and ENV['SAUCE_ONDEMAND_ACCESS_KEY']
|
||||||
:cloudbees
|
:saucelabs
|
||||||
else
|
else
|
||||||
:local
|
:local
|
||||||
end
|
end
|
||||||
@@ -42,10 +42,10 @@ def local_browser(language)
|
|||||||
Watir::Browser.new browser_label, :profile => profile
|
Watir::Browser.new browser_label, :profile => profile
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
def sauce_api(json, saucelabs_username, saucelabs_key)
|
def sauce_api(json)
|
||||||
%x{curl -H 'Content-Type:text/json' -s -X PUT -d '#{json}' http://#{saucelabs_username}:#{saucelabs_key}@saucelabs.com/rest/v1/#{saucelabs_username}/jobs/#{$session_id}}
|
%x{curl -H 'Content-Type:text/json' -s -X PUT -d '#{json}' http://#{ENV['SAUCE_ONDEMAND_USERNAME']}:#{ENV['SAUCE_ONDEMAND_ACCESS_KEY']}@saucelabs.com/rest/v1/#{ENV['SAUCE_ONDEMAND_USERNAME']}/jobs/#{$session_id}}
|
||||||
end
|
end
|
||||||
def sauce_browser(test_name, saucelabs_username, saucelabs_key, language)
|
def sauce_browser(test_name, language)
|
||||||
config = YAML.load_file('config/config.yml')
|
config = YAML.load_file('config/config.yml')
|
||||||
browser_label = config[ENV['BROWSER_LABEL']]
|
browser_label = config[ENV['BROWSER_LABEL']]
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@ def sauce_browser(test_name, saucelabs_username, saucelabs_key, language)
|
|||||||
browser = Watir::Browser.new(
|
browser = Watir::Browser.new(
|
||||||
:remote,
|
:remote,
|
||||||
http_client: Selenium::WebDriver::Remote::Http::Persistent.new,
|
http_client: Selenium::WebDriver::Remote::Http::Persistent.new,
|
||||||
url: "http://#{saucelabs_username}:#{saucelabs_key}@ondemand.saucelabs.com:80/wd/hub",
|
url: "http://#{ENV['SAUCE_ONDEMAND_USERNAME']}:#{ENV['SAUCE_ONDEMAND_ACCESS_KEY']}@ondemand.saucelabs.com:80/wd/hub",
|
||||||
desired_capabilities: caps)
|
desired_capabilities: caps)
|
||||||
|
|
||||||
browser.wd.file_detector = lambda do |args|
|
browser.wd.file_detector = lambda do |args|
|
||||||
@@ -80,13 +80,7 @@ def sauce_browser(test_name, saucelabs_username, saucelabs_key, language)
|
|||||||
|
|
||||||
browser
|
browser
|
||||||
end
|
end
|
||||||
def secret_yml_location
|
|
||||||
secret_yml_locations = ['/private/wmf/', 'config/']
|
|
||||||
secret_yml_locations.each do |secret_yml_location|
|
|
||||||
return secret_yml_location if File.exists?("#{secret_yml_location}secret.yml")
|
|
||||||
end
|
|
||||||
nil
|
|
||||||
end
|
|
||||||
def test_name(scenario)
|
def test_name(scenario)
|
||||||
if scenario.respond_to? :feature
|
if scenario.respond_to? :feature
|
||||||
"#{scenario.feature.name}: #{scenario.name}"
|
"#{scenario.feature.name}: #{scenario.name}"
|
||||||
@@ -98,41 +92,29 @@ end
|
|||||||
config = YAML.load_file('config/config.yml')
|
config = YAML.load_file('config/config.yml')
|
||||||
mediawiki_username = config['mediawiki_username']
|
mediawiki_username = config['mediawiki_username']
|
||||||
|
|
||||||
unless secret_yml_location == nil
|
Before('@login') do
|
||||||
secret = YAML.load_file("#{secret_yml_location}secret.yml")
|
puts "MEDIAWIKI_PASSWORD environment variable is not defined! Please export a value for that variable before proceeding." unless ENV['MEDIAWIKI_PASSWORD']
|
||||||
mediawiki_password = secret['mediawiki_password']
|
|
||||||
end
|
|
||||||
|
|
||||||
if ENV['ENVIRONMENT'] == 'cloudbees'
|
|
||||||
saucelabs_username = secret['saucelabs_username']
|
|
||||||
saucelabs_key = secret['saucelabs_key']
|
|
||||||
end
|
end
|
||||||
|
|
||||||
Before('@language') do |scenario|
|
Before('@language') do |scenario|
|
||||||
@language = true
|
@language = true
|
||||||
@saucelabs_username = saucelabs_username
|
|
||||||
@saucelabs_key = saucelabs_key
|
|
||||||
@scenario = scenario
|
@scenario = scenario
|
||||||
end
|
end
|
||||||
Before('@login') do
|
|
||||||
puts "secret.yml file at /private/wmf/ or config/ is required for tests tagged @login" if secret_yml_location == nil
|
|
||||||
end
|
|
||||||
|
|
||||||
Before do |scenario|
|
Before do |scenario|
|
||||||
@config = config
|
@config = config
|
||||||
@does_not_exist_page_name = Random.new.rand.to_s
|
@random_string = Random.new.rand.to_s
|
||||||
@mediawiki_username = mediawiki_username
|
@mediawiki_username = mediawiki_username
|
||||||
@mediawiki_password = mediawiki_password
|
|
||||||
unless @language
|
unless @language
|
||||||
@browser = browser(environment, test_name(scenario), saucelabs_username, saucelabs_key, 'default')
|
@browser = browser(environment, test_name(scenario), 'default')
|
||||||
$session_id = @browser.driver.instance_variable_get(:@bridge).session_id
|
$session_id = @browser.driver.instance_variable_get(:@bridge).session_id
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
After do |scenario|
|
After do |scenario|
|
||||||
if environment == :cloudbees
|
if environment == :saucelabs
|
||||||
sauce_api(%Q{{"passed": #{scenario.passed?}}}, saucelabs_username, saucelabs_key)
|
sauce_api(%Q{{"passed": #{scenario.passed?}}})
|
||||||
sauce_api(%Q{{"public": true}}, saucelabs_username, saucelabs_key)
|
sauce_api(%Q{{"public": true}})
|
||||||
end
|
end
|
||||||
@browser.close unless ENV['KEEP_BROWSER_OPEN'] == 'true'
|
@browser.close unless ENV['KEEP_BROWSER_OPEN'] == 'true'
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user