mediawiki-extensions-Revisi.../tests/browser/features/support/step_definitions/common_steps.rb
Thiemo Kreuz 407c1de800 Use cookie to dismiss help dialog and fix failing browser tests
I have seen this failing:
https://integration.wikimedia.org/ci/job/mwext-mw-selenium-jessie/9255/console

The idea is to pre-set this cookie so the help dialog never shows up
in the first place. The tests do not need to look for the element, click
it, wait for the dialog to close. This should even speed up the browser
tests, I believe.

Also this adjustes waiting conditions in several places to address
timing issues with failing browser tests.

Since these tests should be replaced by Node.js on the long run I
added "sleep" in the cases although it's not recommended.

Change-Id: Ida381faa390aa62ebaadd3713864676be80abd51
2018-07-03 16:44:28 +02:00

87 lines
2.7 KiB
Ruby

Given(/^I am on the page$/) do
visit(ArticlePage, using_params: { article_name: "RevisionSlider-#{@random_string}" })
end
Given(/^I am on the diff page$/) do
visit(ArticlePage, using_params: { article_name: "RevisionSlider-#{@random_string}", query: 'type=revision&diff=' })
end
Given(/^a page with (\d+) revision\(s\) exists$/) do |number_of_revisions|
(1..number_of_revisions.to_i).each do |i|
api.edit(title: "RevisionSlider-#{@random_string}", text: "RS-Text-#{i}", summary: "RS-Summary-#{i}")
end
end
Given(/^I refresh the page$/) do
on(ArticlePage) do |page|
page.refresh
end
end
When(/^I click the browser back button$/) do
on(ArticlePage).back
end
When(/^I click the browser forward button$/) do
on(ArticlePage).forward
end
When(/^I wait until the RevisionSlider has loaded$/) do
step 'The RevisionSlider has loaded'
end
When(/^I have loaded the RevisionSlider and dismissed the help dialog$/) do
step 'I am on the diff page and disabled the help dialog'
step 'I click on the expand button'
step 'I wait until the RevisionSlider has loaded'
end
Then(/^The RevisionSlider has loaded$/) do
on(DiffPage).wait_for_slider_to_load
end
Given(/^The window size is (\d+) by (\d+)$/) do |width, height|
browser.window.resize_to(width.to_i, height.to_i)
end
Then(/^The auto expand button should be visible/) do
expect(on(DiffPage).revisionslider_auto_expand_button_element.when_present).to be_visible
end
Given(/^I wait for the setting to be saved$/) do
on(DiffPage).wait_for_ajax_calls
end
Then(/^The auto expand button should be off/) do
expect(on(DiffPage).revisionslider_auto_expand_button_element.class_name).to match 'oo-ui-toggleWidget-off'
end
Then(/^The auto expand button should be on/) do
expect(on(DiffPage).revisionslider_auto_expand_button_element.class_name).to match 'oo-ui-toggleWidget-on'
end
Then(/^There should be a RevisionSlider expand button/) do
expect(on(DiffPage).revisionslider_toggle_button_element.when_present).to be_visible
end
Then(/^There should not be a RevisionSlider expand button/) do
expect(on(DiffPage).revisionslider_toggle_button_element.when_not_present).not_to be_present
end
Then(/^RevisionSlider wrapper should be hidden/) do
expect(on(DiffPage).revisionslider_wrapper_element.when_not_visible).not_to be_visible
end
Then(/^RevisionSlider wrapper should be visible/) do
expect(on(DiffPage).revisionslider_wrapper_element.when_present).to be_visible
end
Given(/^I click on the auto expand button/) do
on(DiffPage).revisionslider_auto_expand_button_element.when_visible.click
end
Given(/^I click on the expand button/) do
sleep 0.2
on(DiffPage).revisionslider_toggle_button_element.when_visible.click
end