mediawiki-extensions-Relate.../tests/selenium/pageobjects/readmore.page.js
Željko Filipin 9d2a46fbda For Selenium tests, click the link to switch to mobile view
Clicking `Mobile view` link works on both MediaWiki-Vagrant and beta cluster. Appending `&mobileaction=toggle_view_mobile` to URL works only on  MediaWiki-Vagrant.

Bug: T171847
Change-Id: Iff47a5e3b25ee3af15a4843ca7efe550c334c3b7
2017-08-22 13:22:26 +02:00

58 lines
1.5 KiB
JavaScript

'use strict';
const CARD_SELECTOR = '.ext-related-articles-card',
Page = require( '../../../../../tests/selenium/pageobjects/page' ),
READ_MORE_MODULE_NAME = 'ext.relatedArticles.readMore';
class ReadMorePage extends Page {
get mobileView() { return browser.element( '#footer-places-mobileview' ); }
openDesktop( name ) {
super.open( name );
this.resourceLoaderModuleStatus( READ_MORE_MODULE_NAME, 'registered' );
}
openMobile( name ) {
super.open( name );
this.mobileView.click();
this.resourceLoaderModuleStatus( READ_MORE_MODULE_NAME, 'ready' );
}
get extCardsCard() {
return browser.element( '.ext-related-articles-card' );
}
get readMore() {
this.readMoreCodeIsLoaded();
this.extCardsCard.waitForExist( 2000 );
return this.extCardsCard;
}
isCardVisible() {
return browser.isVisible( CARD_SELECTOR );
}
readMoreCodeIsLoaded() {
browser.waitUntil( function () {
return browser.execute( function ( status ) {
return mw && mw.loader && mw.loader.getState( 'ext.relatedArticles.readMore' ) === status;
}, 'ready' );
}, 2000, 'Related pages did not load' );
}
resourceLoaderModuleStatus( moduleName, moduleStatus ) {
return browser.waitUntil( function () {
return browser.execute( function ( module ) {
return mw && mw.loader && mw.loader.getState( module.name ) === module.status;
}, { status: moduleStatus, name: moduleName } );
}, 10000, 'Related pages did not load' );
}
seeReadMore() {
browser.waitForExist( CARD_SELECTOR, 10000 );
return true;
}
}
module.exports = new ReadMorePage();