mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-06-30 18:15:11 +00:00
[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:
parent
8fcdc55595
commit
c91458df79
@ -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'],
|
||||
|
@ -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);
|
||||
});
|
||||
});
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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> {
|
||||
|
@ -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));
|
||||
|
@ -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> {
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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> {
|
||||
|
@ -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: {
|
||||
|
@ -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> {
|
||||
|
@ -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';
|
||||
|
@ -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> {
|
||||
|
@ -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) {
|
||||
|
@ -18,3 +18,4 @@
|
||||
export * from './tabs.page';
|
||||
export * from './date-picker.page';
|
||||
export * from './dropdown.page';
|
||||
export * from './toggle.page';
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
@ -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"
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user