Updated ULS repository to the latest version of shared test files

Bug: 53579
Change-Id: I9828866f3a3db24a95324bb82942f2c59382f2c9
This commit is contained in:
Zeljko Filipin
2013-10-01 13:46:37 +02:00
committed by Cmcmahon
parent f74f7c6c4e
commit 2c4a906889
4 changed files with 19 additions and 38 deletions

View File

@@ -1 +0,0 @@
config/secret.yml

View File

@@ -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

View File

@@ -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

View File

@@ -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