mediawiki-extensions-Relate.../tests/browser/features/support/step_definitions/common_steps.rb
Antoine Musso d8b773f9a4 Rake entry point and rubocop fix up
Introduce the rake test entry point which is invoked by CI.

Add a basic rubocop configuration based on
https://www.mediawiki.org/wiki/Manual:Coding_conventions/Ruby

Fix up a few ruby issues.

Bug: T120715
Change-Id: I3df0a3b13155259ec6cb5010e7aaa3bf9aa7b230
2016-01-06 16:57:22 +01:00

84 lines
2.4 KiB
Ruby

Given(/^RelatedArticles test pages are installed$/) do
api.create_page 'Related Articles 1',
File.read('samples/related_articles_1.wikitext')
api.create_page 'Related Articles 2',
File.read('samples/related_articles_2.wikitext')
api.create_page 'Related Articles 3',
File.read('samples/related_articles_3.wikitext')
api.create_page 'Related Articles 4',
File.read('samples/related_articles_4.wikitext')
end
Given(/^I am using the mobile site$/) do
visit(MainPage) do |page|
page_uri = URI.parse(page.page_url_value)
domain = page_uri.host == 'localhost' ? nil : page_uri.host
browser.cookies.add 'mf_useformat', 'true', domain: domain
page.refresh
end
end
Given /^I am in mobile beta mode$/ do
visit(MainPage) do |page|
page_uri = URI.parse(page.page_url_value)
# A domain is explicitly given to avoid a bug in earlier versions of Chrome
domain = page_uri.host == 'localhost' ? nil : page_uri.host
browser.cookies.add 'mf_useformat', 'true', domain: domain
browser.cookies.add 'optin', 'beta', domain: domain
page.refresh
end
end
Given(/^I am logged into the website$/) do
visit(LoginPage).login_with(user, password)
end
Given(/^I am on the "(.*?)" page/) do |arg1|
visit(ArticlePage, using_params: { article_name: arg1 })
end
Then(/^page has fully loaded with ReadMore code$/) do
on(ArticlePage) do |page|
page.wait_until do
# Wait for async JS to hijack standard link
script = 'return mw && mw.loader && '\
'mw.loader.getState("ext.relatedArticles.readMore") === "ready";'
page.execute_script(script)
end
end
end
Then(/^page has fully loaded without ReadMore code$/) do
on(ArticlePage) do |page|
page.wait_until do
# Wait for async JS to hijack standard link
script = 'return mw && mw.loader && '\
'mw.loader.getState("ext.relatedArticles.readMore") === "registered";'
page.execute_script(script)
end
end
end
Then(/^ReadMore is enabled as a beta feature$/) do
visit(SpecialPreferencesPage).enable_read_more
end
Then(/^I must see ReadMore$/) do
expect(on(ArticlePage).read_more_element.when_present).to be_visible
end
Then(/^I must not see ReadMore$/) do
expect(on(ArticlePage).read_more_element).to_not be_visible
end
Then(/^ReadMore must have three cards$/) do
expect(browser.execute_script("return $('.ext-cards-card').length")).to eq(3)
end