[ACA-1897] context submenu extension e2e (#745)

* [ACA-1897] e2e for context submenu - needs some fixes

* fix

* [ACA-1897] test refactoring

* [ACA-1897] specify TestRail ids

* [ACA-1897] fix spell check issue

* [ACA-1897] custom message on share dialog fail to close -  e2e tests
This commit is contained in:
Suzana Dirla
2018-10-23 14:46:13 +03:00
committed by Adina Parpalita
parent 6e3f128121
commit 03e8ab4b1e
7 changed files with 1403 additions and 4 deletions

View File

@@ -63,7 +63,7 @@ export class ShareDialog extends Component {
}
async waitForDialogToClose() {
await browser.wait(EC.stalenessOf(this.title), BROWSER_WAIT_TIMEOUT);
await browser.wait(EC.stalenessOf(this.title), BROWSER_WAIT_TIMEOUT, 'share dialog did not close');
}
async waitForDialogToOpen() {

View File

@@ -33,12 +33,15 @@ export class Menu extends Component {
root: '.mat-menu-panel',
item: '.mat-menu-item',
icon: '.mat-icon',
uploadFiles: 'app-upload-files'
uploadFiles: 'app-upload-files',
submenu: 'app-context-menu-item .mat-menu-item'
};
items: ElementArrayFinder = this.component.all(by.css(Menu.selectors.item));
backdrop: ElementFinder = browser.element(by.css('.cdk-overlay-backdrop'));
uploadFiles: ElementFinder = browser.element(by.id(Menu.selectors.uploadFiles));
submenus: ElementArrayFinder = browser.element.all(by.css(Menu.selectors.submenu));
constructor(ancestor?: ElementFinder) {
super(Menu.selectors.root, ancestor);
@@ -71,6 +74,10 @@ export class Menu extends Component {
return this.component.element(by.cssContainingText(Menu.selectors.item, menuItem));
}
getSubItemByLabel(subMenuItem: string) {
return this.component.element(by.cssContainingText(Menu.selectors.submenu, subMenuItem));
}
getItemById(id: string) {
return this.component.element(by.id(id));
}
@@ -108,10 +115,50 @@ export class Menu extends Component {
}
}
async mouseOverMenuItem(menuItem: string) {
try {
const elem = this.getItemByLabel(menuItem);
await browser.wait(EC.elementToBeClickable(elem), BROWSER_WAIT_TIMEOUT);
await browser.actions().mouseMove(elem).perform();
await browser.sleep(500);
} catch (error) {
console.log('----- mouse over error: ', error);
}
}
async hasSubMenu(menuItem: string) {
try {
const elem = this.getItemByLabel(menuItem);
await browser.wait(EC.elementToBeClickable(elem), BROWSER_WAIT_TIMEOUT);
const elemClass = await elem.getAttribute('class');
return elemClass.includes('mat-menu-item-submenu-trigger');
} catch (error) {
console.log('---- has submenu error: ', error);
}
}
async clickSubMenuItem(subMenuItem: string) {
try {
const elem = this.getSubItemByLabel(subMenuItem);
await browser.wait(EC.elementToBeClickable(elem), BROWSER_WAIT_TIMEOUT);
await elem.click();
} catch (e) {
console.log('___click submenu item catch___', e);
}
}
async isMenuItemPresent(title: string) {
return await this.component.element(by.cssContainingText(Menu.selectors.item, title)).isPresent();
}
async isSubMenuItemPresent(title: string) {
return await browser.element(by.cssContainingText(Menu.selectors.submenu, title)).isPresent();
}
async getSubmenuItemsCount() {
return await this.submenus.count();
}
async isMenuItemDisabled(title: string) {
try {
const item = this.getItemByLabel(title);