diff --git a/e2e/resources/activiti7/simpleapp.zip b/e2e/resources/activiti7/simpleapp.zip index ffccad3c32..f9ab2bd673 100644 Binary files a/e2e/resources/activiti7/simpleapp.zip and b/e2e/resources/activiti7/simpleapp.zip differ diff --git a/lib/testing/src/lib/protractor/content-services/dialog/content-node-selector-dialog.page.ts b/lib/testing/src/lib/protractor/content-services/dialog/content-node-selector-dialog.page.ts index c93836a80a..e7ecef6059 100644 --- a/lib/testing/src/lib/protractor/content-services/dialog/content-node-selector-dialog.page.ts +++ b/lib/testing/src/lib/protractor/content-services/dialog/content-node-selector-dialog.page.ts @@ -39,7 +39,7 @@ export class ContentNodeSelectorDialogPage { dataTable = this.contentList.dataTablePage(); siteListDropdown = new DropdownPage(this.dialog.$(`mat-select[data-automation-id='site-my-files-option']`)); breadcrumbDropdown = new BreadcrumbDropdownPage(); - tabPage: TabPage = new TabPage(); + tab: TabPage = new TabPage(); uploadButtonComponent = new UploadButtonPage(); uploadFromLocalTab = $$('*[role="tab"]').get(1); @@ -50,6 +50,10 @@ export class ContentNodeSelectorDialogPage { return this.breadcrumbDropdown; } + tabPage(): TabPage { + return this.tab; + } + uploadButtonPage(): UploadButtonPage { return this.uploadButtonComponent; } @@ -159,11 +163,11 @@ export class ContentNodeSelectorDialogPage { async attachFilesFromLocal(files: FileModel[]): Promise { await this.checkFileServerTabIsLoaded(); - await this.tabPage.clickTabByLabel(this.uploadFromLocalTabName); + await this.tab.clickTabByLabel(this.uploadFromLocalTabName); await this.uploadButtonComponent.attachFiles(files); - await this.tabPage.clickTabByLabel(this.repositoryTabName); + await this.tab.clickTabByLabel(this.repositoryTabName); await this.dataTable.waitForTableBody(); await this.dataTable.waitTillContentLoaded(); diff --git a/lib/testing/src/lib/protractor/content-services/pages/breadcrumb/breadcrumb-dropdown.page.ts b/lib/testing/src/lib/protractor/content-services/pages/breadcrumb/breadcrumb-dropdown.page.ts index ff898f5409..e099e712b7 100644 --- a/lib/testing/src/lib/protractor/content-services/pages/breadcrumb/breadcrumb-dropdown.page.ts +++ b/lib/testing/src/lib/protractor/content-services/pages/breadcrumb/breadcrumb-dropdown.page.ts @@ -40,6 +40,18 @@ export class BreadcrumbDropdownPage { await this.breadCrumbDropdown.checkDropdownIsVisible(); } + async checkBreadCrumbDropdownIsNotDisplayed(): Promise { + await this.breadCrumbDropdown.checkDropdownIsNotVisible(); + } + + async checkBreadCrumbOptionIsDisplayed(optionName: string): Promise { + await this.breadCrumbDropdown.checkOptionIsDisplayed(optionName); + } + + async checkBreadCrumbOptionIsNotDisplayed(optionName: string): Promise { + await this.breadCrumbDropdown.checkOptionIsNotDisplayed(optionName); + } + async getTextOfCurrentFolder(): Promise { return BrowserActions.getText(this.currentFolder); } diff --git a/lib/testing/src/lib/protractor/core/pages/data-table-component.page.ts b/lib/testing/src/lib/protractor/core/pages/data-table-component.page.ts index 010977e4dc..a7803fc527 100644 --- a/lib/testing/src/lib/protractor/core/pages/data-table-component.page.ts +++ b/lib/testing/src/lib/protractor/core/pages/data-table-component.page.ts @@ -34,6 +34,7 @@ export class DataTableComponentPage { emptyList: ElementFinder; emptyListTitle: ElementFinder; emptyListSubtitle: ElementFinder; + noContentContainer: ElementFinder; rows = `adf-datatable div[class*='adf-datatable-body'] adf-datatable-row[class*='adf-datatable-row']`; @@ -52,6 +53,7 @@ export class DataTableComponentPage { this.emptyList = this.rootElement.$(`adf-empty-content`); this.emptyListTitle = this.rootElement.$(`.adf-empty-content__title`); this.emptyListSubtitle = this.rootElement.$(`.adf-empty-content__subtitle`); + this.noContentContainer = $(`div[class*='adf-no-content-container']`); } geCellElementDetail(detail: string): ElementArrayFinder { @@ -462,6 +464,10 @@ export class DataTableComponentPage { await BrowserVisibility.waitUntilElementIsVisible($(`div[data-automation-id="auto_id_entry.${column}"]`)); } + async checkNoContentContainerIsDisplayed() { + await BrowserVisibility.waitUntilElementIsVisible(this.noContentContainer); + } + async getNumberOfColumns(): Promise { return this.allColumns.count(); } diff --git a/lib/testing/src/lib/protractor/core/pages/form/widgets/tab.page.ts b/lib/testing/src/lib/protractor/core/pages/form/widgets/tab.page.ts index 3eae69fb31..055d5442ee 100644 --- a/lib/testing/src/lib/protractor/core/pages/form/widgets/tab.page.ts +++ b/lib/testing/src/lib/protractor/core/pages/form/widgets/tab.page.ts @@ -16,12 +16,15 @@ */ import { by, element, $ } from 'protractor'; +import { TestElement } from '../../../test-element'; import { BrowserActions, BrowserVisibility } from '../../../utils/public-api'; export class TabPage { changeTabAnimation = $('div[class="mat-ripple-element"]'); + public disabledContentNodeSelectorTabInfoIcon = TestElement.byCss('[data-automation-id="adf-content-node-selector-disabled-tab-info-icon"]'); + async clickTabByLabel(tabLabel): Promise { const user = element(by.cssContainingText('.mat-tab-label-content', tabLabel)); await BrowserActions.click(user); diff --git a/lib/testing/src/lib/protractor/core/pages/material/dropdown.page.ts b/lib/testing/src/lib/protractor/core/pages/material/dropdown.page.ts index 7d1dcfe9fe..f25717249a 100644 --- a/lib/testing/src/lib/protractor/core/pages/material/dropdown.page.ts +++ b/lib/testing/src/lib/protractor/core/pages/material/dropdown.page.ts @@ -53,6 +53,10 @@ export class DropdownPage { await BrowserVisibility.waitUntilElementIsVisible(this.dropDownElement); } + async checkDropdownIsNotVisible(): Promise { + await BrowserVisibility.waitUntilElementIsNotVisible(this.dropDownElement); + } + async checkDropdownIsClickable(): Promise { await BrowserVisibility.waitUntilElementIsClickable(this.dropDownElement); } diff --git a/lib/testing/src/lib/protractor/process-services-cloud/pages/form/widget/attach-file-widget-cloud.page.ts b/lib/testing/src/lib/protractor/process-services-cloud/pages/form/widget/attach-file-widget-cloud.page.ts index 0f453cbef9..fd0276a118 100644 --- a/lib/testing/src/lib/protractor/process-services-cloud/pages/form/widget/attach-file-widget-cloud.page.ts +++ b/lib/testing/src/lib/protractor/process-services-cloud/pages/form/widget/attach-file-widget-cloud.page.ts @@ -24,14 +24,18 @@ import { TestElement } from '../../../../core/test-element'; export class AttachFileWidgetCloudPage { widget: ElementFinder; + filesListLocator: string = 'div[class="adf-file-properties-table"]'; constructor(fieldId: string) { this.assignWidget(fieldId); } - getFileAttachedLocatorByContainingText = async (text: string): Promise => { - const filesListLocator = 'div[class="adf-file-properties-table"]'; - return this.widget.$(filesListLocator).element(by.cssContainingText('table tbody tr td span ', text)); + async isFileTablePropertiesDisplayed(): Promise { + await BrowserVisibility.waitUntilElementIsVisible(this.widget.$(this.filesListLocator)); + } + + getFileAttachedLocatorByContainingText = async(text: string): Promise => { + return this.widget.$(this.filesListLocator).element(by.cssContainingText('table tbody tr td span ', text)); }; assignWidget(fieldId: string): void { @@ -55,6 +59,7 @@ export class AttachFileWidgetCloudPage { async checkFileIsAttached(name): Promise { const fileAttached = await this.getFileAttachedLocatorByContainingText(name); + await this.isFileTablePropertiesDisplayed(); await BrowserVisibility.waitUntilElementIsVisible(fileAttached); } @@ -65,8 +70,7 @@ export class AttachFileWidgetCloudPage { } async checkNoFileIsAttached(): Promise { - const filesListLocator = 'div[class="adf-file-properties-table"]'; - const fileItem = new TestElement(this.widget.$(filesListLocator).$('table')); + const fileItem = new TestElement(this.widget.$(this.filesListLocator).$('table')); await fileItem.waitNotVisible(); } diff --git a/lib/testing/src/lib/protractor/process-services-cloud/resources/resources.ts b/lib/testing/src/lib/protractor/process-services-cloud/resources/resources.ts index 735f3f452f..140e13e3d7 100644 --- a/lib/testing/src/lib/protractor/process-services-cloud/resources/resources.ts +++ b/lib/testing/src/lib/protractor/process-services-cloud/resources/resources.ts @@ -298,7 +298,8 @@ export const ACTIVITI_CLOUD_APPS = { attachFileWidget2: 'Attachfile04mfeb', attachFileLocalChildFolder: 'Attachfilelocalchildfolder', attachFileContentServices: 'Attachfilecontentservices', - attachFileLocalMultiple: 'Attachfilelocalmultiple' + attachFileLocalMultiple: 'Attachfilelocalmultiple', + attachFileInvalidPath: 'Attachfileinvalidpath' }, attachSingleMultiple: { name: 'attach-single-multiple',