[AAE-1846] [AAE-1857] automated e2e tests uploading folders (#5483)

* [AAE-1846] automated e2e tests - uploading a folder

* [AAE-1857] added automated e2e test upload folder with excluded file

* changed the script for cancel an uploading folder, added -b condition for the running tests for the uploadFolder method
This commit is contained in:
Alexandra Abrudan
2020-03-09 19:18:41 +00:00
committed by GitHub
parent 8fcdc55595
commit c91458df79
18 changed files with 226 additions and 92 deletions

View File

@@ -15,8 +15,8 @@
* limitations under the License.
*/
import { BrowserActions, BrowserVisibility, DateUtil, DocumentListPage, FormControllersPage } from '@alfresco/adf-testing';
import { $$, browser, by, element, ElementArrayFinder, ElementFinder, protractor } from 'protractor';
import { BrowserActions, BrowserVisibility, DateUtil, DocumentListPage, TogglePage } from '@alfresco/adf-testing';
import { $$, browser, by, element, ElementFinder, ElementArrayFinder, protractor } from 'protractor';
import { DropActions } from '../../actions/drop.actions';
import { CreateLibraryDialogPage } from './dialog/create-library-dialog.page';
import { FolderDialogPage } from './dialog/folder-dialog.page';
@@ -36,7 +36,7 @@ export class ContentServicesPage {
};
contentList: DocumentListPage = new DocumentListPage(element.all(by.css('adf-upload-drag-area adf-document-list')).first());
formControllersPage: FormControllersPage = new FormControllersPage();
togglePage: TogglePage = new TogglePage();
createFolderDialog: FolderDialogPage = new FolderDialogPage();
createLibraryDialog: CreateLibraryDialogPage = new CreateLibraryDialogPage();
dragAndDropAction: DropActions = new DropActions();
@@ -187,12 +187,12 @@ export class ContentServicesPage {
}
async enableDropFilesInAFolder(): Promise<void> {
await this.formControllersPage.enableToggle(this.multipleFileUploadToggle);
await this.togglePage.enableToggle(this.multipleFileUploadToggle);
}
async disableDropFilesInAFolder(): Promise<void> {
await browser.executeScript('arguments[0].scrollIntoView()', this.multipleFileUploadToggle);
await this.formControllersPage.disableToggle(this.multipleFileUploadToggle);
await this.togglePage.disableToggle(this.multipleFileUploadToggle);
}
async getElementsDisplayedId() {
@@ -438,10 +438,9 @@ export class ContentServicesPage {
await BrowserVisibility.waitUntilElementIsPresent(this.uploadMultipleFileButton);
}
async uploadFolder(folderName: string): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(this.uploadFolderButton);
await this.uploadFolderButton.sendKeys(path.resolve(path.join(browser.params.testConfig.main.rootPath, folderName)));
await BrowserVisibility.waitUntilElementIsVisible(this.uploadFolderButton);
async uploadFolder(folderLocation: string): Promise<void> {
await BrowserVisibility.waitUntilElementIsPresent(this.uploadFolderButton);
await this.uploadFolderButton.sendKeys(path.resolve(path.join(browser.params.testConfig.main.rootPath, folderLocation)));
}
async getSingleFileButtonTooltip(): Promise<string> {
@@ -687,5 +686,4 @@ export class ContentServicesPage {
await BrowserVisibility.waitUntilElementIsVisible(item);
await BrowserActions.click(item);
}
}

View File

@@ -17,7 +17,7 @@
import { element, by, browser, ElementFinder, ElementArrayFinder } from 'protractor';
import {
FormControllersPage,
TogglePage,
TaskFiltersCloudComponentPage,
EditTaskFilterCloudComponentPage,
BrowserVisibility,
@@ -49,34 +49,34 @@ export class TasksCloudDemoPage {
modeDropdown = new DropdownPage(element(by.css('mat-form-field[data-automation-id="selectionMode"]')));
formControllersPage: FormControllersPage = new FormControllersPage();
togglePage: TogglePage = new TogglePage();
editTaskFilterCloud: EditTaskFilterCloudComponentPage = new EditTaskFilterCloudComponentPage();
taskFilterCloudComponent = new TaskFiltersCloudComponentPage();
async disableDisplayTaskDetails(): Promise<void> {
await this.formControllersPage.disableToggle(this.displayTaskDetailsToggle);
await this.togglePage.disableToggle(this.displayTaskDetailsToggle);
}
async disableDisplayProcessDetails(): Promise<void> {
await this.formControllersPage.disableToggle(this.displayProcessDetailsToggle);
await this.togglePage.disableToggle(this.displayProcessDetailsToggle);
}
async enableMultiSelection(): Promise<void> {
await this.formControllersPage.enableToggle(this.multiSelectionToggle);
await this.togglePage.enableToggle(this.multiSelectionToggle);
}
async enableActionMenu(): Promise<void> {
await this.formControllersPage.enableToggle(this.actionMenuToggle);
await this.togglePage.enableToggle(this.actionMenuToggle);
}
async enableContextMenu(): Promise<void> {
await this.formControllersPage.enableToggle(this.contextMenuToggle);
await this.togglePage.enableToggle(this.contextMenuToggle);
}
async enableTestingMode(): Promise<void> {
await this.formControllersPage.enableToggle(this.testingModeToggle);
await this.togglePage.enableToggle(this.testingModeToggle);
}
taskListCloudComponent(): TaskListCloudComponentPage {

View File

@@ -16,12 +16,12 @@
*/
import { element, by, ElementFinder } from 'protractor';
import { BrowserVisibility, FormControllersPage, BrowserActions } from '@alfresco/adf-testing';
import { BrowserVisibility, TogglePage, BrowserActions } from '@alfresco/adf-testing';
import moment = require('moment');
export class ShareDialogPage {
formControllersPage = new FormControllersPage();
togglePage = new TogglePage();
shareDialog: ElementFinder = element(by.css('adf-share-dialog'));
dialogTitle: ElementFinder = element(by.css('[data-automation-id="adf-share-dialog-title"]'));
shareToggle: ElementFinder = element(by.css('[data-automation-id="adf-share-toggle"] label'));
@@ -44,7 +44,7 @@ export class ShareDialogPage {
}
async clickUnShareFile() {
await this.formControllersPage.enableToggle(this.shareToggle);
await this.togglePage.enableToggle(this.shareToggle);
}
async clickConfirmationDialogCancelButton(): Promise<void> {

View File

@@ -36,6 +36,7 @@ export class UploadDialogPage {
confirmationDialogNoButton: ElementFinder = element(by.partialButtonText('No'));
confirmationDialogYesButton: ElementFinder = element(by.partialButtonText('Yes'));
cancelUploadsElement: ElementFinder = element((by.css('footer[class*="upload-dialog__actions"] button[id="adf-upload-dialog-cancel-all"]')));
cancelUploadInProgressButton: ElementFinder = element(by.css('div[data-automation-id="cancel-upload-progress"]'));
async clickOnCloseButton(): Promise<void> {
await this.checkCloseButtonIsDisplayed();
@@ -91,6 +92,14 @@ export class UploadDialogPage {
await BrowserActions.click(this.cancelUploadsElement);
}
async cancelProgress(): Promise<void> {
await BrowserActions.click(this.cancelUploadInProgressButton);
}
async checkCancelProgressIsVisible(): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(this.cancelUploadInProgressButton);
}
async fileIsCancelled(content): Promise<void> {
const row = await this.getRowByRowName(content);
await BrowserVisibility.waitUntilElementIsVisible(row.element(this.cancelledStatusIcon));

View File

@@ -16,13 +16,13 @@
*/
import { browser, by, element, ElementFinder } from 'protractor';
import { BrowserActions, BrowserVisibility, FormControllersPage } from '@alfresco/adf-testing';
import { BrowserActions, BrowserVisibility, TogglePage } from '@alfresco/adf-testing';
export class UploadTogglesPage {
formControllersPage: FormControllersPage = new FormControllersPage();
togglePage: TogglePage = new TogglePage();
multipleFileUploadToggle: ElementFinder = element(by.id('adf-multiple-upload-switch'));
uploadFolderToggle: ElementFinder = element(by.id('adf-folder-upload-switch'));
uploadFolderToggle: ElementFinder = element(by.css('#adf-folder-upload-switch'));
extensionFilterToggle: ElementFinder = element(by.id('adf-extension-filter-upload-switch'));
maxSizeToggle: ElementFinder = element(by.id('adf-max-size-filter-upload-switch'));
versioningToggle: ElementFinder = element(by.id('adf-version-upload-switch'));
@@ -32,16 +32,26 @@ export class UploadTogglesPage {
async enableMultipleFileUpload(): Promise<void> {
await browser.executeScript('arguments[0].scrollIntoView()', this.multipleFileUploadToggle);
await this.formControllersPage.enableToggle(this.multipleFileUploadToggle);
await this.togglePage.enableToggle(this.multipleFileUploadToggle);
}
async disableMultipleFileUpload(): Promise<void> {
await browser.executeScript('arguments[0].scrollIntoView()', this.multipleFileUploadToggle);
await this.formControllersPage.disableToggle(this.multipleFileUploadToggle);
await this.togglePage.disableToggle(this.multipleFileUploadToggle);
}
async enableFolderUpload(): Promise<void> {
await this.formControllersPage.enableToggle(this.uploadFolderToggle);
await this.togglePage.enableToggle(this.uploadFolderToggle);
}
async checkFolderUploadToggleIsEnabled(): Promise<boolean> {
try {
const enabledFolderUpload: ElementFinder = element(by.css('mat-slide-toggle[id="adf-folder-upload-switch"][class*="mat-checked"]'));
await BrowserVisibility.waitUntilElementIsVisible(enabledFolderUpload);
return true;
} catch {
return false;
}
}
async checkMultipleFileUploadToggleIsEnabled(): Promise<void> {
@@ -60,33 +70,42 @@ export class UploadTogglesPage {
}
async disableFolderUpload(): Promise<void> {
await this.formControllersPage.disableToggle(this.uploadFolderToggle);
await this.togglePage.disableToggle(this.uploadFolderToggle);
}
async checkFolderUploadToggleIsNotEnabled(): Promise<boolean> {
try {
const inactiveToggleFolder: ElementFinder = element(by.css('#adf-folder-upload-switch .mat-slide-toggle-label'));
await BrowserVisibility.waitUntilElementIsVisible(inactiveToggleFolder);
return true;
} catch {
return false;
}
}
async enableExtensionFilter(): Promise<void> {
await browser.executeScript('arguments[0].scrollIntoView()', this.extensionFilterToggle);
await this.formControllersPage.enableToggle(this.extensionFilterToggle);
await this.togglePage.enableToggle(this.extensionFilterToggle);
}
async disableExtensionFilter(): Promise<void> {
await browser.executeScript('arguments[0].scrollIntoView()', this.extensionFilterToggle);
await this.formControllersPage.disableToggle(this.extensionFilterToggle);
await this.togglePage.disableToggle(this.extensionFilterToggle);
}
async enableMaxSize(): Promise<void> {
await this.formControllersPage.enableToggle(this.maxSizeToggle);
await this.togglePage.enableToggle(this.maxSizeToggle);
}
async disableMaxSize(): Promise<void> {
await this.formControllersPage.disableToggle(this.maxSizeToggle);
await this.togglePage.disableToggle(this.maxSizeToggle);
}
async enableVersioning(): Promise<void> {
await this.formControllersPage.enableToggle(this.versioningToggle);
await this.togglePage.enableToggle(this.versioningToggle);
}
async disableVersioning(): Promise<void> {
await this.formControllersPage.disableToggle(this.versioningToggle);
await this.togglePage.disableToggle(this.versioningToggle);
}
async clickCheckboxDisableUpload(): Promise<void> {

View File

@@ -15,31 +15,31 @@
* limitations under the License.
*/
import { FormControllersPage } from '@alfresco/adf-testing';
import { TogglePage } from '@alfresco/adf-testing';
import { element, by, ElementFinder } from 'protractor';
export class AppSettingsTogglesPage {
formControllersPage: FormControllersPage = new FormControllersPage();
togglePage: TogglePage = new TogglePage();
showDetailsHeaderToggle: ElementFinder = element(by.id('adf-show-header'));
showTaskFilterIconsToggle: ElementFinder = element(by.id('adf-show-task-filter-icon'));
showProcessFilterIconsToggle: ElementFinder = element(by.id('adf-show-process-filter-icon'));
async enableShowHeader(): Promise<void> {
await this.formControllersPage.enableToggle(this.showDetailsHeaderToggle);
await this.togglePage.enableToggle(this.showDetailsHeaderToggle);
}
async disableShowHeader(): Promise<void> {
await this.formControllersPage.disableToggle(this.showDetailsHeaderToggle);
await this.togglePage.disableToggle(this.showDetailsHeaderToggle);
}
async enableTaskFiltersIcon(): Promise<void> {
await this.formControllersPage.enableToggle(this.showTaskFilterIconsToggle);
await this.togglePage.enableToggle(this.showTaskFilterIconsToggle);
}
async enableProcessFiltersIcon(): Promise<void> {
await this.formControllersPage.enableToggle(this.showProcessFilterIconsToggle);
await this.togglePage.enableToggle(this.showProcessFilterIconsToggle);
}
}

View File

@@ -16,12 +16,12 @@
*/
import path = require('path');
import { BrowserActions, BrowserVisibility, FormControllersPage } from '@alfresco/adf-testing';
import { BrowserActions, BrowserVisibility, TogglePage } from '@alfresco/adf-testing';
import { browser, by, element, ElementFinder } from 'protractor';
export class VersionManagePage {
formControllersPage: FormControllersPage = new FormControllersPage();
togglePage: TogglePage = new TogglePage();
showNewVersionButton: ElementFinder = element(by.id('adf-show-version-upload-button'));
uploadNewVersionInput: ElementFinder = element(by.css('adf-upload-version-button input[data-automation-id="upload-single-file"]'));
@@ -92,28 +92,28 @@ export class VersionManagePage {
* disables readOnly
*/
async disableReadOnly(): Promise<void> {
await this.formControllersPage.disableToggle(this.readOnlySwitch);
await this.togglePage.disableToggle(this.readOnlySwitch);
}
/**
* enables readOnly
*/
async enableReadOnly(): Promise<void> {
await this.formControllersPage.enableToggle(this.readOnlySwitch);
await this.togglePage.enableToggle(this.readOnlySwitch);
}
/**
* disables download
*/
async disableDownload(): Promise<void> {
await this.formControllersPage.disableToggle(this.downloadSwitch);
await this.togglePage.disableToggle(this.downloadSwitch);
}
/**
* enables download
*/
async enableDownload(): Promise<void> {
await this.formControllersPage.enableToggle(this.downloadSwitch);
await this.togglePage.enableToggle(this.downloadSwitch);
}
/**
@@ -121,14 +121,14 @@ export class VersionManagePage {
* disables comments
*/
async disableComments(): Promise<void> {
await this.formControllersPage.disableToggle(this.commentsSwitch);
await this.togglePage.disableToggle(this.commentsSwitch);
}
/**
* enables comments
*/
async enableComments(): Promise<void> {
await this.formControllersPage.enableToggle(this.commentsSwitch);
await this.togglePage.enableToggle(this.commentsSwitch);
}
async clickActionButton(version): Promise<void> {