Disable control flow e2e ADF (#4954)

* update project script possible different JS-API

* first commit no controll flow

* second commit no controll flow

* third commit no controll flow

* 4 commit no controll flow

* 5 commit no controll flow

* 6 commit no controll flow

* 7 commit no controll flow

* 8 commit no controll flow

* 9 commit no controll flow

* 10 commit no controll flow

* 11 commit no controll flow

* 12 commit no controll flow

* 13 commit no controll flow

* 14 commit no controll flow

* 15 commit no controll flow

* 16 commit no controll flow

* 17 commit no controll flow

* 18 commit no controll flow

* 19 commit no controll flow

* 20 commit no controll flow

* remove wdpromise, protractor promise and deferred promises

* - fixed some incorrect “expect” calls
- fixed some matchers
- removed “return this;” when not needed
- added a few more await-s

* forgot a file

* fix some failing tests

* replaced driver calls with browser calls and enabled back waitForAngular

* fix rightClick methods and hopefully some tests

* fix settings-component

* some more fixes for core and content tests

* try to fix some more issues

* linting

* revert some changes, allowing download on headless chrome won’t work with multiple browser instances

* fixes for Search tests

* try to remove some wait calls

* fix build

* increase allScriptsTimeout and try another protractor and web driver version

* improve navigation methods

* some fixes for notification history and login sso

* forgot a space

* fix packages and enable some screenshots

* navigation bar fixes

* fix some test

* some fixes for notification history and navigation bar
use correct visibility method in attachFileWidget test

* fix searching and another fix for navigation

* try solve sso login

* some more fixes

* refactor async forEach into for..of

* try fix for search tests

* resolve rebabse problems

* remove install

* fix lint

* fix core e2e

* fix core e2e

* fix core e2e

* fix ps tests

* fix some tests

* fix core e2e

* fix core e2e

* fix core

* fix some issues PS

* fix core

* fix core

* fix some ps test

* fix rebase issues

* remove save

* fix url regressed after rebase

* fix url regressed after rebase

* fix ps and core

* fix lint

* more parallel e2e ps

* fix some ps cloud test

* some cloud fix

* fix lint

* fix some test

* remove files to be ignored

* out-tsc

* improve one cs test

* fix candidate base app

* fix ps test

* remove click function

* clean methods alrady present in browser action

* try ugly wait

* move wait

* remove duplicate call

* remove underscore

* fix after review

* fix imports

* minor cosmetic fixes

* fix comments test
This commit is contained in:
Eugenio Romano
2019-08-17 14:32:02 +02:00
committed by GitHub
parent 4f3cf669f2
commit 83412bb9b6
328 changed files with 17653 additions and 18793 deletions

View File

@@ -15,32 +15,32 @@
* limitations under the License.
*/
import { element, by } from 'protractor';
import { element, by, ElementFinder } from 'protractor';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class BreadCrumbDropdownPage {
breadCrumb = element(by.css(`adf-dropdown-breadcrumb[data-automation-id='content-node-selector-content-breadcrumb']`));
breadCrumb: ElementFinder = element(by.css(`adf-dropdown-breadcrumb[data-automation-id='content-node-selector-content-breadcrumb']`));
parentFolder = this.breadCrumb.element(by.css(`button[data-automation-id='dropdown-breadcrumb-trigger']`));
breadCrumbDropdown = element(by.css(`div[class*='mat-select-panel']`));
breadCrumbDropdown: ElementFinder = element(by.css(`div[class*='mat-select-panel']`));
currentFolder = this.breadCrumb.element(by.css(`div span[data-automation-id="current-folder"]`));
choosePath(pathName) {
async choosePath(pathName): Promise<void> {
const path = this.breadCrumbDropdown.element(by.cssContainingText(`mat-option[data-automation-class='dropdown-breadcrumb-path-option'] span[class='mat-option-text']`,
pathName));
BrowserActions.click(path);
await BrowserActions.click(path);
}
clickParentFolder() {
BrowserActions.click(this.parentFolder);
async clickParentFolder(): Promise<void> {
await BrowserActions.click(this.parentFolder);
}
checkBreadCrumbDropdownIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.breadCrumbDropdown);
async checkBreadCrumbDropdownIsDisplayed(): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(this.breadCrumbDropdown);
}
getTextOfCurrentFolder() {
async getTextOfCurrentFolder(): Promise<string> {
return BrowserActions.getText(this.currentFolder);
}
}

View File

@@ -15,16 +15,16 @@
* limitations under the License.
*/
import { element, by } from 'protractor';
import { element, by, ElementFinder } from 'protractor';
import { BrowserActions } from '@alfresco/adf-testing';
export class BreadCrumbPage {
breadCrumb = element(by.css(`adf-breadcrumb nav[data-automation-id='breadcrumb']`));
breadCrumb: ElementFinder = element(by.css(`adf-breadcrumb nav[data-automation-id='breadcrumb']`));
chooseBreadCrumb(breadCrumbItem) {
async chooseBreadCrumb(breadCrumbItem): Promise<void> {
const path = this.breadCrumb.element(by.css(`a[data-automation-id='breadcrumb_${breadCrumbItem}']`));
BrowserActions.click(path);
await BrowserActions.click(path);
}
}

View File

@@ -15,76 +15,72 @@
* limitations under the License.
*/
import { element, by, protractor } from 'protractor';
import { element, by, ElementFinder, ElementArrayFinder, protractor } from 'protractor';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class TreeViewPage {
treeViewTitle = element(by.cssContainingText('app-tree-view div', 'TREE VIEW TEST'));
nodeIdInput = element(by.css('input[placeholder="Node Id"]'));
noNodeMessage = element(by.id('adf-tree-view-missing-node'));
nodesOnPage = element.all(by.css('mat-tree-node'));
treeViewTitle: ElementFinder = element(by.cssContainingText('app-tree-view div', 'TREE VIEW TEST'));
nodeIdInput: ElementFinder = element(by.css('input[placeholder="Node Id"]'));
noNodeMessage: ElementFinder = element(by.id('adf-tree-view-missing-node'));
nodesOnPage: ElementArrayFinder = element.all(by.css('mat-tree-node'));
checkTreeViewTitleIsDisplayed() {
return BrowserVisibility.waitUntilElementIsVisible(this.treeViewTitle);
async checkTreeViewTitleIsDisplayed(): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(this.treeViewTitle);
}
getNodeId() {
BrowserVisibility.waitUntilElementIsVisible(this.nodeIdInput);
return this.nodeIdInput.getAttribute('value');
async getNodeId(): Promise<string> {
await BrowserVisibility.waitUntilElementIsVisible(this.nodeIdInput);
return await this.nodeIdInput.getAttribute('value');
}
clickNode(nodeName) {
const node = element(by.css('mat-tree-node[id="' + nodeName + '-tree-child-node"] button'));
return BrowserActions.click(node);
async clickNode(nodeName): Promise<void> {
const node: ElementFinder = element(by.css('mat-tree-node[id="' + nodeName + '-tree-child-node"] button'));
await BrowserActions.click(node);
}
checkNodeIsDisplayedAsClosed(nodeName) {
const node = element(by.css('mat-tree-node[id="' + nodeName + '-tree-child-node"][aria-expanded="false"]'));
return BrowserVisibility.waitUntilElementIsVisible(node);
async checkNodeIsDisplayedAsClosed(nodeName): Promise<void> {
const node: ElementFinder = element(by.css('mat-tree-node[id="' + nodeName + '-tree-child-node"][aria-expanded="false"]'));
await BrowserVisibility.waitUntilElementIsVisible(node);
}
checkNodeIsDisplayedAsOpen(nodeName) {
const node = element(by.css('mat-tree-node[id="' + nodeName + '-tree-child-node"][aria-expanded="true"]'));
return BrowserVisibility.waitUntilElementIsVisible(node);
async checkNodeIsDisplayedAsOpen(nodeName): Promise<void> {
const node: ElementFinder = element(by.css('mat-tree-node[id="' + nodeName + '-tree-child-node"][aria-expanded="true"]'));
await BrowserVisibility.waitUntilElementIsVisible(node);
}
checkClickedNodeName(nodeName) {
const clickedNode = element(by.cssContainingText('span', ' CLICKED NODE: ' + nodeName + ''));
return BrowserVisibility.waitUntilElementIsVisible(clickedNode);
async checkClickedNodeName(nodeName): Promise<void> {
const clickedNode: ElementFinder = element(by.cssContainingText('span', ' CLICKED NODE: ' + nodeName + ''));
await BrowserVisibility.waitUntilElementIsVisible(clickedNode);
}
checkNodeIsNotDisplayed(nodeName) {
const node = element(by.id('' + nodeName + '-tree-child-node'));
return BrowserVisibility.waitUntilElementIsNotVisible(node);
async checkNodeIsNotDisplayed(nodeName): Promise<void> {
const node: ElementFinder = element(by.id('' + nodeName + '-tree-child-node'));
await BrowserVisibility.waitUntilElementIsNotVisible(node);
}
clearNodeIdInput() {
BrowserVisibility.waitUntilElementIsVisible(this.nodeIdInput);
this.nodeIdInput.getAttribute('value').then((value) => {
for (let i = value.length; i >= 0; i--) {
this.nodeIdInput.sendKeys(protractor.Key.BACK_SPACE);
}
});
async clearNodeIdInput(): Promise<void> {
await BrowserActions.click(this.nodeIdInput);
await BrowserActions.clearWithBackSpace(this.nodeIdInput);
}
checkNoNodeIdMessageIsDisplayed() {
return BrowserVisibility.waitUntilElementIsVisible(this.noNodeMessage);
async checkNoNodeIdMessageIsDisplayed(): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(this.noNodeMessage);
}
addNodeId(nodeId) {
BrowserActions.click(this.nodeIdInput);
this.nodeIdInput.clear();
this.nodeIdInput.sendKeys(nodeId + ' ');
this.nodeIdInput.sendKeys(protractor.Key.BACK_SPACE);
async addNodeId(nodeId): Promise<void> {
await BrowserActions.click(this.nodeIdInput);
await BrowserActions.clearSendKeys(this.nodeIdInput, nodeId);
await this.nodeIdInput.sendKeys('a');
await this.nodeIdInput.sendKeys(protractor.Key.BACK_SPACE);
}
checkErrorMessageIsDisplayed() {
const clickedNode = element(by.cssContainingText('span', 'An Error Occurred '));
return BrowserVisibility.waitUntilElementIsVisible(clickedNode);
async checkErrorMessageIsDisplayed(): Promise<void> {
const clickedNode: ElementFinder = element(by.cssContainingText('span', 'An Error Occurred '));
await BrowserVisibility.waitUntilElementIsVisible(clickedNode);
}
getTotalNodes() {
return this.nodesOnPage.count();
async getTotalNodes() {
return await this.nodesOnPage.count();
}
}