[ADF-4701] Upgrade angular libs (#4877)

* [ADF-4701] Upgrade angular material to 7.3.7 version

* [ADF-4701] upgrade angular libs

* [ADF-4701] upgrade angular libs

* [ADF-4530] temporary disable test

- will be fixed in a separate PR for https://issues.alfresco.com/jira/browse/ADF-4704
- the 'expected behavior' of the ADF-4530 corresponding bug is that should display 'all the available Process Definitions defined in the app'

* e2e test does not need bpm user

* e2e FIX waitUntilElementIsClickable

* Revert "e2e test does not need bpm user"

This reverts commit 9a5c4d4 - Travis seems to need initial code

* e2e fix button selector

- caused TimeoutError: Element is not Clickable

* e2e scroll into view fix

* e2e fixes scroll into view & selectors

* e2e fixed close action menu

- close menu with all disabled items fix - opened related issue https://issues.alfresco.com/jira/browse/ADF-4712
- checkContextActionIsVisible should check only visibility - all items might be disabled, so un-clickable
- close menu changed bcs. overlay backdrop caused TimeoutError: Element is not Clickable

* e2e disabled button is not supposed to be clickable

- fixed TimeoutError: Element is not Clickable

* e2e update messages

* e2e check invisibilityOf item

* e2e extra filter

* e2e wait waitTillContentLoaded

- created related issue https://issues.alfresco.com/jira/browse/ADF-4715

* [ADF-4715] a process never has CREATED status

* [ADF-4717] wait for filtered content to be loaded

- initiator filter must have 'username' value
This commit is contained in:
Suzana Dirla
2019-07-02 12:07:15 +01:00
committed by Eugenio Romano
parent 028916e386
commit 87b80235a7
15 changed files with 305 additions and 219 deletions
@@ -90,14 +90,14 @@ describe('Version component actions', () => {
it('[C280003] Should not be possible delete a file version if there is only one version', () => {
versionManagePage.clickActionButton('1.0');
expect(element(by.css(`[id="adf-version-list-action-delete-1.0"]`)).isEnabled()).toBe(false);
versionManagePage.closeActionButton();
versionManagePage.closeActionsMenu();
BrowserVisibility.waitUntilElementIsNotOnPage(element(by.css(`[id="adf-version-list-action-delete-1.0"]`)));
});
it('[C280004] Should not be possible restore the version if there is only one version', () => {
versionManagePage.clickActionButton('1.0');
expect(element(by.css(`[id="adf-version-list-action-restore-1.0"]`)).isEnabled()).toBe(false);
versionManagePage.closeActionButton();
versionManagePage.closeActionsMenu();
BrowserVisibility.waitUntilElementIsNotOnPage(element(by.css(`[id="adf-version-list-action-restore-1.0"]`)));
});
@@ -108,7 +108,7 @@ describe('Version component actions', () => {
versionManagePage.clickActionButton('1.1').checkActionsArePresent('1.1');
versionManagePage.closeActionButton();
versionManagePage.closeActionsMenu();
});
it('[C269081] Should be possible download all the version of a file', () => {
@@ -316,7 +316,7 @@ describe('Version component permissions', () => {
expect(element(by.css(`[id="adf-version-list-action-delete-1.1"]`)).isEnabled()).toBe(false);
versionManagePage.closeActionButton();
versionManagePage.closeActionsMenu();
versionManagePage.closeVersionDialog();
});
@@ -79,7 +79,7 @@ describe('Version Properties', () => {
BrowserVisibility.waitUntilElementIsNotVisible(element(by.css(`[id="adf-version-list-action-download-1.0"]`)));
versionManagePage.closeActionButton();
versionManagePage.closeDisabledActionsMenu();
});
it('[C279992] Should be present the download action when allowDownload property is true', () => {
@@ -89,7 +89,7 @@ describe('Version Properties', () => {
BrowserVisibility.waitUntilElementIsVisible(element(by.css(`[id="adf-version-list-action-download-1.0"]`)));
versionManagePage.closeActionButton();
versionManagePage.closeActionsMenu();
});
it('[C269085] Should show/hide comments when showComments true/false', () => {
+5 -5
View File
@@ -48,7 +48,8 @@ export class ContentServicesPage {
createLibraryButton = element(by.css('button[data-automation-id="create-new-library"]'));
activeBreadcrumb = element(by.css('div[class*="active"]'));
tooltip = by.css('div[class*="--text adf-full-width"] span');
uploadFileButton = element(by.css('input[data-automation-id="upload-single-file"]'));
uploadFileButton = element(by.css('.adf-upload-button-file-container button'));
uploadFileButtonInput = element(by.css('input[data-automation-id="upload-single-file"]'));
uploadMultipleFileButton = element(by.css('input[data-automation-id="upload-multiple-files"]'));
uploadFolderButton = element(by.css('input[data-automation-id="uploadFolder"]'));
errorSnackBar = element(by.css('simple-snack-bar[class*="mat-simple-snackbar"]'));
@@ -90,7 +91,6 @@ export class ContentServicesPage {
checkContextActionIsVisible(actionName) {
const actionButton = element(by.css(`button[data-automation-id="context-${actionName}"`));
BrowserVisibility.waitUntilElementIsVisible(actionButton);
BrowserVisibility.waitUntilElementIsClickable(actionButton);
return actionButton;
}
@@ -178,6 +178,7 @@ export class ContentServicesPage {
}
disableDropFilesInAFolder() {
browser.executeScript('arguments[0].scrollIntoView()', this.multipleFileUploadToggle);
this.formControllersPage.disableToggle(this.multipleFileUploadToggle);
return this;
}
@@ -390,8 +391,7 @@ export class ContentServicesPage {
uploadFile(fileLocation) {
this.checkUploadButton();
BrowserVisibility.waitUntilElementIsVisible(this.uploadFileButton);
this.uploadFileButton.sendKeys(path.resolve(path.join(browser.params.testConfig.main.rootPath, fileLocation)));
this.uploadFileButtonInput.sendKeys(path.resolve(path.join(browser.params.testConfig.main.rootPath, fileLocation)));
this.checkUploadButton();
return this;
}
@@ -416,7 +416,7 @@ export class ContentServicesPage {
getSingleFileButtonTooltip() {
BrowserVisibility.waitUntilElementIsVisible(this.uploadFileButton);
return this.uploadFileButton.getAttribute('title');
return this.uploadFileButtonInput.getAttribute('title');
}
getMultipleFileButtonTooltip() {
+4 -1
View File
@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { by, element, protractor } from 'protractor';
import { browser, by, element, protractor } from 'protractor';
import { BrowserVisibility, FormControllersPage } from '@alfresco/adf-testing';
export class UploadToggles {
@@ -31,6 +31,7 @@ export class UploadToggles {
disableUploadCheckbox = element(by.css('[id="adf-disable-upload"]'));
enableMultipleFileUpload() {
browser.executeScript('arguments[0].scrollIntoView()', this.multipleFileUploadToggle);
this.formControllersPage.enableToggle(this.multipleFileUploadToggle);
return this;
}
@@ -75,11 +76,13 @@ export class UploadToggles {
}
enableExtensionFilter() {
browser.executeScript('arguments[0].scrollIntoView()', this.extensionFilterToggle);
this.formControllersPage.enableToggle(this.extensionFilterToggle);
return this;
}
disableExtensionFilter() {
browser.executeScript('arguments[0].scrollIntoView()', this.extensionFilterToggle);
this.formControllersPage.disableToggle(this.extensionFilterToggle);
return this;
}
+9 -2
View File
@@ -153,9 +153,16 @@ export class VersionManagePage {
return this;
}
closeActionButton() {
closeActionsMenu() {
const container = element(by.css('div.cdk-overlay-backdrop.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing'));
BrowserActions.click(container);
BrowserActions.closeMenuAndDialogs();
BrowserVisibility.waitUntilElementIsNotVisible(container);
return this;
}
closeDisabledActionsMenu() {
const container = element(by.css('div.cdk-overlay-backdrop.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing'));
BrowserActions.closeDisabledMenu();
BrowserVisibility.waitUntilElementIsNotVisible(container);
return this;
}
+4
View File
@@ -508,6 +508,7 @@ export class ViewerPage {
}
enableShowTabWithIcon() {
browser.executeScript('arguments[0].scrollIntoView()', this.showTabWithIconSwitch);
this.formControllersPage.enableToggle(this.showTabWithIconSwitch);
}
@@ -552,6 +553,7 @@ export class ViewerPage {
}
disableAllowLeftSidebar() {
browser.executeScript('arguments[0].scrollIntoView()', this.allowLeftSidebarSwitch);
this.formControllersPage.disableToggle(this.allowLeftSidebarSwitch);
}
@@ -582,11 +584,13 @@ export class ViewerPage {
}
disableCustomToolbar() {
browser.executeScript('arguments[0].scrollIntoView()', this.customToolbarToggle);
this.formControllersPage.disableToggle(this.customToolbarToggle);
return this;
}
enableCustomToolbar() {
browser.executeScript('arguments[0].scrollIntoView()', this.customToolbarToggle);
this.formControllersPage.enableToggle(this.customToolbarToggle);
return this;
}
@@ -142,47 +142,51 @@ describe('Process filters cloud', () => {
});
it('[C306887] Should be able to filter by appName', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setAppNameDropDown(candidateBaseApp).setProperty('initiator', testUser.email);
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setAppNameDropDown(candidateBaseApp).setProperty('initiator', testUser.username);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(differentAppUserProcessInstance.entry.name);
});
it('[C306889] Should be able to see "No process found" when using an app with no processes in the appName field', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setAppNameDropDown('subprocessapp').setProperty('initiator', testUser.email);
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setAppNameDropDown('subprocessapp').setProperty('initiator', testUser.username);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
expect(processListPage.checkProcessListTitleIsDisplayed()).toEqual('No Processes Found');
});
it('[C306890] Should be able to filter by initiator', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('initiator', testUser.email);
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('initiator', testUser.username);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(differentAppUserProcessInstance.entry.name);
});
it('[C306891] Should be able to see "No process found" when providing an initiator whitout processes', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('initiator', anotherUser.email);
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('initiator', anotherUser.username);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
expect(processListPage.checkProcessListTitleIsDisplayed()).toEqual('No Processes Found');
});
it('[C311315] Should be able to filter by process definition id', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('processDefinitionId', processDefinition.entry.id);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name);
processCloudDemoPage.editProcessFilterCloudComponent().setProperty('processDefinitionId', anotherProcessDefinition.entry.id);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(anotherProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name);
});
it('[C311316] Should be able to filter by process definition key', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('processDefinitionKey', processDefinition.entry.key);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name);
processCloudDemoPage.editProcessFilterCloudComponent().setProperty('processDefinitionKey', anotherProcessDefinition.entry.key);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(anotherProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name);
});
it('[C311317] Should be able to filter by process instance id', async () => {
@@ -196,36 +200,31 @@ describe('Process filters cloud', () => {
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(anotherProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name);
expect(processCloudDemoPage.processListCloudComponent().getDataTable().getNumberOfRows()).toBe(1);
});
it('[C311321] Should be able to filter by process name', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('processName', runningProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name);
processCloudDemoPage.editProcessFilterCloudComponent().setProperty('processName', anotherProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(anotherProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name);
});
it('[C306892] Should be able to filter by process status - Running', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setStatusFilterDropDown('RUNNING');
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(suspendProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(anotherProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(completedProcess.entry.name);
});
it('[C306892] Should be able to filter by process status - Created', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setStatusFilterDropDown('CREATED');
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(anotherProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(suspendProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(completedProcess.entry.name);
});
it('[C306892] Should be able to filter by process status - Completed', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setStatusFilterDropDown('COMPLETED');
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(completedProcess.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(suspendProcessInstance.entry.name);
@@ -234,6 +233,7 @@ describe('Process filters cloud', () => {
it('[C306892] Should be able to filter by process status - Suspended', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setStatusFilterDropDown('SUSPENDED');
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(suspendProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(anotherProcessInstance.entry.name);
@@ -242,6 +242,7 @@ describe('Process filters cloud', () => {
it('[C306892] Should be able to filter by process status - All', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setStatusFilterDropDown('ALL');
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(anotherProcessInstance.entry.name);
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(suspendProcessInstance.entry.name);
@@ -250,48 +251,44 @@ describe('Process filters cloud', () => {
it('[C311318] Should be able to filter by lastModifiedFrom - displays record when date = currentDate', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('lastModifiedFrom', currentDate);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name);
});
it('[C311318] Should be able to filter by lastModifiedFrom - displays record when date = beforeDate', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('lastModifiedFrom', beforeDate);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name);
});
it('[C311318] Should be able to filter by lastModifiedFrom - does not display record when date = afterDate', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('lastModifiedFrom', afterDate);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name);
});
it('[C311319] Should be able to filter by lastModifiedTo - displays record when date = currentDate', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('lastModifiedTo', currentDate);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name);
});
it('[C311319] Should be able to filter by lastModifiedTo - does not display record when date = beforeDate', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('lastModifiedTo', beforeDate);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsNotDisplayedByName(runningProcessInstance.entry.name);
});
it('[C311319] Should be able to filter by lastModifiedTo - displays record when date = afterDate', async () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('lastModifiedTo', afterDate);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
processCloudDemoPage.processListCloudComponent().checkContentIsDisplayedByName(runningProcessInstance.entry.name);
});
it('[C311319] Should not display any processes when the lastModifiedFrom and lastModifiedTo are set to a future date', () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().setProperty('lastModifiedFrom', afterDate);
processCloudDemoPage.editProcessFilterCloudComponent().setProperty('lastModifiedTo', afterDate);
processCloudDemoPage.processListCloudComponent().getDataTable().waitTillContentLoaded();
expect(processListPage.checkProcessListTitleIsDisplayed()).toEqual('No Processes Found');
});