[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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 226 additions and 92 deletions

View File

@ -25,6 +25,7 @@ import { FileModel } from '../../models/ACS/file.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { DropActions } from '../../actions/drop.actions';
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
import { FolderModel } from '../../models/ACS/folder.model';
describe('Upload component - Excluded Files', () => {
@ -50,6 +51,21 @@ describe('Upload component - Excluded Files', () => {
'location': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_location
});
const folderUpload = new FolderModel({
'name': browser.params.resources.Files.ADF_DOCUMENTS.TEXT_FOLDER.folder_name,
'location': browser.params.resources.Files.ADF_DOCUMENTS.TEXT_FOLDER.folder_location
});
const acceptedFileInsideFolder = new FolderModel({
name: browser.params.resources.Files.ADF_DOCUMENTS.FILE_ACCEPTED_INSIDE_TEXT_FOLDER.file_name,
location: browser.params.resources.Files.ADF_DOCUMENTS.FILE_ACCEPTED_INSIDE_TEXT_FOLDER.file_location
});
const excludedFileInsideFolder = new FolderModel({
name: browser.params.resources.Files.ADF_DOCUMENTS.FILE_EXCLUDED_INSIDE_TEXT_FOLDER.file_name,
location: browser.params.resources.Files.ADF_DOCUMENTS.FILE_EXCLUDED_INSIDE_TEXT_FOLDER.file_location
});
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
@ -110,6 +126,22 @@ describe('Upload component - Excluded Files', () => {
await contentServicesPage.checkContentIsNotDisplayed(txtFileModel.name);
});
it('[C260125] Should not upload excluded file when they are in a Folder', async () => {
await LocalStorageUtil.setConfigField('files', JSON.stringify({
excluded: ['*.cpio'],
'match-options': { 'nocase': true }
}));
await uploadToggles.enableFolderUpload();
await contentServicesPage.uploadFolder(folderUpload.location);
await uploadDialog.clickOnCloseButton();
await uploadDialog.dialogIsNotDisplayed();
await contentServicesPage.openFolder(folderUpload.name);
await contentServicesPage.checkContentIsDisplayed(acceptedFileInsideFolder.name);
await contentServicesPage.checkContentIsNotDisplayed(excludedFileInsideFolder.name);
});
it('[C274688] Should extension type added as excluded and accepted not be uploaded', async () => {
await LocalStorageUtil.setConfigField('files', JSON.stringify({
excluded: ['.DS_Store', 'desktop.ini', '*.png'],

View File

@ -24,6 +24,7 @@ import { FileModel } from '../../models/ACS/file.model';
import { browser } from 'protractor';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { VersionManagePage } from '../../pages/adf/version-manager.page';
import { FolderModel } from '../../models/ACS/folder.model';
describe('Upload component', () => {
@ -62,15 +63,36 @@ describe('Upload component', () => {
const filesLocation = [pdfFileModel.location, docxFileModel.location, pngFileModel.location, firstPdfFileModel.location];
const filesName = [pdfFileModel.name, docxFileModel.name, pngFileModel.name, firstPdfFileModel.name];
beforeAll(async () => {
const parentFolder = new FolderModel({
name: browser.params.resources.Files.ADF_DOCUMENTS.FOLDER_ONE.folder_name,
location: browser.params.resources.Files.ADF_DOCUMENTS.FOLDER_ONE.folder_location
});
const fileInsideParentFolder = new FolderModel({
name: browser.params.resources.Files.ADF_DOCUMENTS.FILE_INSIDE_FOLDER_ONE.file_name,
location: browser.params.resources.Files.ADF_DOCUMENTS.FILE_INSIDE_FOLDER_ONE.file_location
});
const subFolder = new FolderModel({
name: browser.params.resources.Files.ADF_DOCUMENTS.FOLDER_TWO.folder_name,
location: browser.params.resources.Files.ADF_DOCUMENTS.FOLDER_TWO.folder_location
});
const fileInsideSubFolder = new FolderModel({
name: browser.params.resources.Files.ADF_DOCUMENTS.FILE_INSIDE_FOLDER_TWO.file_name,
location: browser.params.resources.Files.ADF_DOCUMENTS.FILE_INSIDE_FOLDER_TWO.file_location
});
const adfBigFolder = new FolderModel({
name: browser.params.resources.Files.ADF_DOCUMENTS.ADF_FOLDER.folder_name,
location: browser.params.resources.Files.ADF_DOCUMENTS.ADF_FOLDER.folder_location
});
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await contentServicesPage.goToDocumentList();
const pdfUploadedFile = await uploadActions.uploadFile(firstPdfFileModel.location, firstPdfFileModel.name, '-my-');
Object.assign(firstPdfFileModel, pdfUploadedFile.entry);
});
beforeEach(async () => {
@ -86,7 +108,6 @@ describe('Upload component', () => {
await uploadActions.deleteFileOrFolder(nodeId);
}
}
});
it('[C260143] Should be possible to maximize/minimize the upload dialog', async () => {
@ -179,5 +200,45 @@ describe('Upload component', () => {
await versionManagePage.closeVersionDialog();
await uploadDialog.removeUploadedFile(pngFileModel.name);
await contentServicesPage.checkContentIsDisplayed(pngFileModel.name);
await uploadDialog.clickOnCloseButton();
await uploadDialog.dialogIsNotDisplayed();
});
it('[C291893] Should enable folder upload in selected node', async () => {
await contentServicesPage.checkUploadButton();
await expect(await uploadToggles.checkFolderUploadToggleIsNotEnabled()).toBe(true);
await uploadToggles.enableFolderUpload();
await expect(await uploadToggles.checkFolderUploadToggleIsEnabled()).toBe(true);
await contentServicesPage.uploadFolder(parentFolder.location);
await uploadDialog.fileIsUploaded(fileInsideParentFolder.name);
await expect(await uploadDialog.numberOfCurrentFilesUploaded()).toEqual('1');
await expect(await uploadDialog.numberOfInitialFilesUploaded()).toEqual('1');
await uploadDialog.clickOnCloseButton();
await uploadDialog.dialogIsNotDisplayed();
await contentServicesPage.openFolder(parentFolder.name);
await expect(await uploadToggles.checkFolderUploadToggleIsNotEnabled()).toBe(true);
await uploadToggles.enableFolderUpload();
await expect(await uploadToggles.checkFolderUploadToggleIsEnabled()).toBe(true);
await contentServicesPage.uploadFolder(subFolder.location);
await uploadDialog.fileIsUploaded(fileInsideSubFolder.name);
await uploadDialog.clickOnCloseButton();
await uploadDialog.dialogIsNotDisplayed();
await uploadToggles.enableFolderUpload();
await browser.executeScript(` setInterval(() => {
if(document.querySelector('[data-automation-id="adf"]')){
document.querySelector("#adf-upload-dialog-cancel-all").click();
document.querySelector("#adf-upload-dialog-cancel").click();
}
}, 2000)`);
await contentServicesPage.uploadFolder(adfBigFolder.location);
await expect(await uploadDialog.getTitleText()).toEqual('Upload canceled');
await uploadDialog.clickOnCloseButton();
await uploadDialog.dialogIsNotDisplayed();
await contentServicesPage.openFolder(adfBigFolder.name);
await expect(contentServicesPage.numberOfResultsDisplayed()).toBe(0);
});
});

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> {

View File

@ -505,6 +505,14 @@ exports.Files = {
folder_location: "/resources/adf/allFileTypes/documents/text",
folder_name: "text"
},
FILE_ACCEPTED_INSIDE_TEXT_FOLDER: {
file_location: "/resources/adf/allFileTypes/documents/text/a_odt_file.odt",
file_name: "a_odt_file.odt"
},
FILE_EXCLUDED_INSIDE_TEXT_FOLDER: {
file_location: "/resources/adf/allFileTypes/documents/text/a_cpio_file.cpio",
file_name: "a_cpio_file.cpio"
},
WORD_FOLDER: {
folder_location: "/resources/adf/allFileTypes/documents/word",
folder_name: "word"
@ -516,7 +524,11 @@ exports.Files = {
IMG_RENDITION_FOLDER: {
folder_location: "/resources/adf/allFileTypes/images-rendition",
folder_name: "images-rendition"
}
},
ADF_FOLDER: {
folder_location: "/resources/adf",
folder_name: "adf"
},
},
PROFILE_IMAGES: {

View File

@ -15,7 +15,7 @@
* limitations under the License.
*/
import { FormControllersPage } from './form-controller.page';
import { TogglePage } from '../../material/pages/toggle.page';
import { browser, by, element, ElementFinder } from 'protractor';
import { BrowserVisibility } from '../utils/browser-visibility';
import { LocalStorageUtil } from '../utils/local-storage.util';
@ -25,7 +25,7 @@ export class LoginPage {
loginURL: string = browser.baseUrl + '/login';
formControllersPage: FormControllersPage = new FormControllersPage();
togglePage: TogglePage = new TogglePage();
txtUsername: ElementFinder = element(by.css('input[id="username"]'));
txtPassword: ElementFinder = element(by.css('input[id="password"]'));
logoImg: ElementFinder = element(by.css('img[id="adf-login-img-logo"]'));
@ -210,23 +210,23 @@ export class LoginPage {
}
async enableFooter(): Promise<void> {
await this.formControllersPage.enableToggle(this.footerSwitch);
await this.togglePage.enableToggle(this.footerSwitch);
}
async disableFooter(): Promise<void> {
await this.formControllersPage.disableToggle(this.footerSwitch);
await this.togglePage.disableToggle(this.footerSwitch);
}
async disableRememberMe(): Promise<void> {
await this.formControllersPage.disableToggle(this.rememberMeSwitch);
await this.togglePage.disableToggle(this.rememberMeSwitch);
}
async enableSuccessRouteSwitch(): Promise<void> {
await this.formControllersPage.enableToggle(this.successRouteSwitch);
await this.togglePage.enableToggle(this.successRouteSwitch);
}
async enableLogoSwitch(): Promise<void> {
await this.formControllersPage.enableToggle(this.logoSwitch);
await this.togglePage.enableToggle(this.logoSwitch);
}
async enterSuccessRoute(route): Promise<void> {

View File

@ -19,7 +19,6 @@ export * from './header.page';
export * from './user-info.page';
export * from './login.page';
export * from './settings.page';
export * from './form-controller.page';
export * from './login-sso.page';
export * from './data-table-component.page';
export * from './pagination.page';

View File

@ -17,14 +17,14 @@
import { BrowserActions } from '../utils/browser-actions';
import { TabsPage } from '../../../lib/material/pages/tabs.page';
import { FormControllersPage } from './form-controller.page';
import { TogglePage } from '../../material/pages/toggle.page';
import { BrowserVisibility } from '../utils/browser-visibility';
import { element, by, ElementFinder, browser, protractor } from 'protractor';
export class ViewerPage {
tabsPage: TabsPage = new TabsPage();
formControllersPage: FormControllersPage = new FormControllersPage();
togglePage: TogglePage = new TogglePage();
closeButton: ElementFinder = element(by.css('button[data-automation-id="adf-toolbar-back"]'));
fileName: ElementFinder = element(by.id('adf-viewer-display-name'));
@ -435,11 +435,11 @@ export class ViewerPage {
}
async disableToolbar(): Promise<void> {
await this.formControllersPage.disableToggle(this.toolbarSwitch);
await this.togglePage.disableToggle(this.toolbarSwitch);
}
async enableToolbar(): Promise<void> {
await this.formControllersPage.enableToggle(this.toolbarSwitch);
await this.togglePage.enableToggle(this.toolbarSwitch);
}
async checkToolbarIsDisplayed(): Promise<void> {
@ -451,11 +451,11 @@ export class ViewerPage {
}
async disableGoBack(): Promise<void> {
await this.formControllersPage.disableToggle(this.goBackSwitch);
await this.togglePage.disableToggle(this.goBackSwitch);
}
async enableGoBack(): Promise<void> {
await this.formControllersPage.enableToggle(this.goBackSwitch);
await this.togglePage.enableToggle(this.goBackSwitch);
}
async checkGoBackIsDisplayed(): Promise<void> {
@ -467,11 +467,11 @@ export class ViewerPage {
}
async disableToolbarOptions(): Promise<void> {
await this.formControllersPage.disableToggle(this.openWithSwitch);
await this.togglePage.disableToggle(this.openWithSwitch);
}
async enableToolbarOptions() {
await this.formControllersPage.enableToggle(this.openWithSwitch);
await this.togglePage.enableToggle(this.openWithSwitch);
}
async checkToolbarOptionsIsDisplayed(): Promise<void> {
@ -483,20 +483,20 @@ export class ViewerPage {
}
async disableDownload(): Promise<void> {
await this.formControllersPage.disableToggle(this.downloadSwitch);
await this.togglePage.disableToggle(this.downloadSwitch);
}
async enableDownload(): Promise<void> {
await this.formControllersPage.enableToggle(this.openWithSwitch);
await this.togglePage.enableToggle(this.openWithSwitch);
}
async enableShowTabWithIcon(): Promise<void> {
await browser.executeScript('arguments[0].scrollIntoView()', this.showTabWithIconSwitch);
await this.formControllersPage.enableToggle(this.showTabWithIconSwitch);
await this.togglePage.enableToggle(this.showTabWithIconSwitch);
}
async enableShowTabWithIconAndLabel(): Promise<void> {
await this.formControllersPage.enableToggle(this.showTabWithIconAndLabelSwitch);
await this.togglePage.enableToggle(this.showTabWithIconAndLabelSwitch);
}
async checkDownloadButtonIsNotDisplayed(): Promise<void> {
@ -504,11 +504,11 @@ export class ViewerPage {
}
async disablePrint(): Promise<void> {
await this.formControllersPage.disableToggle(this.printSwitch);
await this.togglePage.disableToggle(this.printSwitch);
}
async enablePrint(): Promise<void> {
await this.formControllersPage.enableToggle(this.printSwitch);
await this.togglePage.enableToggle(this.printSwitch);
}
async checkPrintButtonIsDisplayed(): Promise<void> {
@ -520,12 +520,12 @@ export class ViewerPage {
}
async disableAllowSidebar(): Promise<void> {
await this.formControllersPage.disableToggle(this.allowSidebarSwitch);
await this.togglePage.disableToggle(this.allowSidebarSwitch);
}
async disableAllowLeftSidebar(): Promise<void> {
await browser.executeScript('arguments[0].scrollIntoView()', this.allowLeftSidebarSwitch);
await this.formControllersPage.disableToggle(this.allowLeftSidebarSwitch);
await this.togglePage.disableToggle(this.allowLeftSidebarSwitch);
}
async checkMoreActionsDisplayed(): Promise<void> {
@ -551,25 +551,25 @@ export class ViewerPage {
}
async disableMoreActions(): Promise<void> {
await this.formControllersPage.disableToggle(this.moreActionsSwitch);
await this.togglePage.disableToggle(this.moreActionsSwitch);
}
async enableMoreActions(): Promise<void> {
await this.formControllersPage.enableToggle(this.moreActionsSwitch);
await this.togglePage.enableToggle(this.moreActionsSwitch);
}
async enableMoreActionsMenu(): Promise<void> {
await this.formControllersPage.enableToggle(this.moreActionsMenuSwitch);
await this.togglePage.enableToggle(this.moreActionsMenuSwitch);
}
async disableCustomToolbar(): Promise<void> {
await browser.executeScript('arguments[0].scrollIntoView()', this.customToolbarToggle);
await this.formControllersPage.disableToggle(this.customToolbarToggle);
await this.togglePage.disableToggle(this.customToolbarToggle);
}
async enableCustomToolbar(): Promise<void> {
await browser.executeScript('arguments[0].scrollIntoView()', this.customToolbarToggle);
await this.formControllersPage.enableToggle(this.customToolbarToggle);
await this.togglePage.enableToggle(this.customToolbarToggle);
}
async checkCustomToolbarIsDisplayed() {
@ -577,11 +577,11 @@ export class ViewerPage {
}
async disableCustomName(): Promise<void> {
await this.formControllersPage.disableToggle(this.customNameSwitch);
await this.togglePage.disableToggle(this.customNameSwitch);
}
async enableCustomName(): Promise<void> {
await this.formControllersPage.enableToggle(this.customNameSwitch);
await this.togglePage.enableToggle(this.customNameSwitch);
}
async clickToggleRightSidebar(): Promise<void> {
@ -599,7 +599,7 @@ export class ViewerPage {
}
async disableOverlay(): Promise<void> {
await this.formControllersPage.disableToggle(element(by.id('adf-viewer-overlay')));
await this.togglePage.disableToggle(element(by.id('adf-viewer-overlay')));
}
async checkOverlayViewerIsDisplayed(): Promise<void> {

View File

@ -23,7 +23,7 @@ export class BrowserActions {
static async click(elementFinder: ElementFinder): Promise<void> {
try {
await BrowserVisibility.waitUntilElementIsVisible(elementFinder);
await BrowserVisibility.waitUntilElementIsPresent(elementFinder);
await BrowserVisibility.waitUntilElementIsClickable(elementFinder);
await elementFinder.click();
} catch (clickErr) {

View File

@ -18,3 +18,4 @@
export * from './tabs.page';
export * from './date-picker.page';
export * from './dropdown.page';
export * from './toggle.page';

View File

@ -16,16 +16,16 @@
*/
import { by, ElementFinder } from 'protractor';
import { BrowserVisibility } from '../utils/browser-visibility';
import { BrowserActions } from '../utils/browser-actions';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
import { BrowserActions } from '../../core/utils/browser-actions';
export class FormControllersPage {
export class TogglePage {
async enableToggle(toggle: ElementFinder): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(toggle);
const check = await toggle.getAttribute('class');
if (check.indexOf('mat-checked') < 0) {
const elem = toggle.all(by.css('div')).first();
const elem = toggle.all(by.css('input')).first();
await BrowserActions.click(elem);
}
}
@ -34,7 +34,7 @@ export class FormControllersPage {
await BrowserVisibility.waitUntilElementIsVisible(toggle);
const check = await toggle.getAttribute('class');
if (check.indexOf('mat-checked') >= 0) {
const elem = toggle.all(by.css('div')).first();
const elem = toggle.all(by.css('input')).first();
await BrowserActions.click(elem);
}
}

View File

@ -35,6 +35,7 @@ show_help() {
echo "-m --maxInstances max instances parallel for tests"
echo "-log or --log print all the browser log"
echo "-db or --debug run the debugger"
echo "-ud build and run dist"
echo "-vjsapi install different version from npm of JS-API defined in the package.json"
echo "-h or --help"
}

View File

@ -12,7 +12,9 @@ AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)";
AFFECTED_E2E="$(./scripts/git-util/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e/$CONTEXT_ENV")";
node ./scripts/check-env/check-cs-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1
RUN_E2E=$(echo ./scripts/test-e2e-lib.sh -host http://localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --use-dist -save -m 2 || exit 1)
#-b is needed to run the Folder upload test that are not workin in Headless chrome
RUN_E2E=$(echo ./scripts/test-e2e-lib.sh -host http://localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --use-dist -b -save -m 2 || exit 1)
if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "$CONTEXT_ENV" || $TRAVIS_PULL_REQUEST == "false" ]];
then
$RUN_CHECK