From e1a0475dfc094b8ce3af27bdb4b6e34af54a4f2b Mon Sep 17 00:00:00 2001 From: Marouan Bentaleb <38426175+marouanbentaleb@users.noreply.github.com> Date: Tue, 16 Apr 2019 12:19:08 +0100 Subject: [PATCH] [ADF-4396] Automation test for cancelling new version upload (#4607) --- .../version/version-actions.e2e.ts | 25 ++++++++++++++++++- e2e/pages/adf/trashcanPage.ts | 5 ++++ .../core/pages/data-table-component.page.ts | 2 +- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/e2e/content-services/version/version-actions.e2e.ts b/e2e/content-services/version/version-actions.e2e.ts index b41ee4b305..63bc6b18fe 100644 --- a/e2e/content-services/version/version-actions.e2e.ts +++ b/e2e/content-services/version/version-actions.e2e.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { by, element } from 'protractor'; +import { browser, by, element } from 'protractor'; import { LoginPage } from '@alfresco/adf-testing'; import { ContentServicesPage } from '../../pages/adf/contentServicesPage'; @@ -33,6 +33,8 @@ import { Util } from '../../util/util'; import path = require('path'); import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; import { BrowserVisibility } from '@alfresco/adf-testing'; +import { UploadDialog } from '../../pages/adf/dialog/uploadDialog'; +import { TrashcanPage } from '../../pages/adf/trashcanPage'; describe('Version component actions', () => { @@ -40,6 +42,7 @@ describe('Version component actions', () => { const contentServicesPage = new ContentServicesPage(); const versionManagePage = new VersionManagePage(); const navigationBarPage = new NavigationBarPage(); + const trashcanPage = new TrashcanPage(); const acsUser = new AcsUserModel(); @@ -147,4 +150,24 @@ describe('Version component actions', () => { versionManagePage.checkFileVersionExist('2.0'); }); + it('[C307033] Should be possible to cancel the upload of a new version', async () => { + await browser.refresh(); + contentServicesPage.versionManagerContent(txtFileModel.name); + browser.executeScript(' setTimeout(() => {document.querySelector(\'mat-icon[class*="adf-file-uploading-row__action"]\').click();}, 1000)'); + + versionManagePage.showNewVersionButton.click(); + versionManagePage.uploadNewVersionFile(fileModelVersionTwo.location); + versionManagePage.closeVersionDialog(); + + await expect(new UploadDialog().getTitleText()).toEqual('Upload canceled'); + + navigationBarPage.clickTrashcanButton(); + await trashcanPage.waitForTableBody(); + trashcanPage.checkTrashcanIsEmpty(); + + navigationBarPage.clickContentServicesButton(); + await contentServicesPage.waitForTableBody(); + contentServicesPage.checkContentIsDisplayed(txtFileModel.name); + }); + }); diff --git a/e2e/pages/adf/trashcanPage.ts b/e2e/pages/adf/trashcanPage.ts index 2f624ceeb2..d2c4deb860 100644 --- a/e2e/pages/adf/trashcanPage.ts +++ b/e2e/pages/adf/trashcanPage.ts @@ -24,6 +24,7 @@ export class TrashcanPage { rows = by.css('adf-document-list div[class*="adf-datatable-body"] div[class*="adf-datatable-row"]'); tableBody = element.all(by.css('adf-document-list div[class="adf-datatable-body"]')).first(); pagination = element(by.css('adf-pagination')); + emptyTrashcan = element(by.css('adf-empty-content')); numberOfResultsDisplayed() { return element.all(this.rows).count(); @@ -37,4 +38,8 @@ export class TrashcanPage { BrowserVisibility.waitUntilElementIsVisible(this.pagination); } + checkTrashcanIsEmpty() { + BrowserVisibility.waitUntilElementIsVisible(this.emptyTrashcan); + } + } diff --git a/lib/testing/src/lib/core/pages/data-table-component.page.ts b/lib/testing/src/lib/core/pages/data-table-component.page.ts index 0a67170f13..6f84a10efa 100644 --- a/lib/testing/src/lib/core/pages/data-table-component.page.ts +++ b/lib/testing/src/lib/core/pages/data-table-component.page.ts @@ -224,7 +224,7 @@ export class DataTableComponentPage { } checkContentIsDisplayed(columnName, columnValue) { - const row = this.getRow(columnName, columnValue); + const row = this.getRowElement(columnName, columnValue); BrowserVisibility.waitUntilElementIsVisible(row); return this; }