mediawiki-extensions-Multim.../tests/browser/features/step_definitions/mmv_performance_steps.rb
Dan Duvall c5a245309d QA: Refactored performance tests
Fixed up feature indentation and clauses and moved global methods into
the page-object classes.

Added @custom-browser tag to avoid starting multiple browser sessions
and updated mediawiki_selenium dependency for fix to custom browser
instantiation with SauceLabs.

Change-Id: I9741afb8d13ee8729f72210eb7617d9446311a8e
2014-09-23 14:19:16 -07:00

46 lines
1.6 KiB
Ruby

Given /^I visit the Commons page$/ do
@commons_open_time = Time.now.getutc
@browser.goto "https://commons.wikimedia.org/wiki/File:Sunrise_over_fishing_boats_in_Kerala.jpg"
end
Given /^I visit an unrelated Commons page to warm up the browser cache$/ do
@browser.goto "https://commons.wikimedia.org/wiki/File:Wikimedia_Foundation_2013_All_Hands_Offsite_-_Day_2_-_Photo_16.jpg"
end
Given /^I have a small browser window$/ do
@browser.window.resize_to 900, 700
end
Given /^I have an average browser window$/ do
@browser.window.resize_to 1366, 768
end
Given /^I have a large browser window$/ do
@browser.window.resize_to 1920, 1080
end
Given /^I am using a custom user agent$/ do
@browser = browser(test_name(@scenario), user_agent: ENV["BROWSER_USERAGENT"])
end
Then /^the File: page image is loaded$/ do
on(CommonsPage) do |page|
page.wait_for_image_load ".fullImageLink img"
#Has to be a global variable, otherwise it doesn't survive between scenarios
$commons_time = Time.now.getutc - @commons_open_time
page.log_performance type: "file-page", duration: $commons_time * 1000
end
end
Then /^the MMV image is loaded in (\d+) percent of the time with a (.*) cache and an? (.*) browser window$/ do |percentage, cache, window_size|
on(E2ETestPage) do |page|
page.wait_for_image_load ".mw-mmv-image img"
mmv_time = Time.now.getutc - @image_click_time
page.log_performance type: "mmv", duration: mmv_time * 1000, cache: cache, windowSize: window_size
expected_time = $commons_time * (percentage.to_f / 100.0)
expect(mmv_time).to be < expected_time
end
end