diff --git a/e2e/content-services/comments/comment-component.e2e.ts b/e2e/content-services/comments/comment-component.e2e.ts index 1bce90171f..fa281e77da 100644 --- a/e2e/content-services/comments/comment-component.e2e.ts +++ b/e2e/content-services/comments/comment-component.e2e.ts @@ -33,7 +33,7 @@ describe('Comment Component', () => { const contentServicesPage = new ContentServicesPage(); const viewerPage = new ViewerPage(); const commentsPage = new CommentsPage(); - const navigationBar = new NavigationBarPage(); + const navigationBarPage = new NavigationBarPage(); const acsUser = new AcsUserModel(); let userFullName, nodeId; @@ -44,7 +44,7 @@ describe('Comment Component', () => { }); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -61,15 +61,17 @@ describe('Comment Component', () => { }; beforeAll(async (done) => { - await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser); done(); }); - beforeEach(async (done) => { + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + beforeEach(async (done) => { await this.alfrescoJsApi.login(acsUser.id, acsUser.password); const pngUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, '-my-'); @@ -80,19 +82,15 @@ describe('Comment Component', () => { await loginPage.loginToContentServicesUsingUserModel(acsUser); - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); contentServicesPage.waitForTableBody(); done(); }); afterEach(async (done) => { - try { - await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); - await uploadActions.deleteFileOrFolder(nodeId); - } catch (error) { - - } + await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); + await uploadActions.deleteFileOrFolder(nodeId); done(); }); @@ -190,7 +188,7 @@ describe('Comment Component', () => { loginPage.loginToContentServicesUsingUserModel(acsUser); - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); done(); }); @@ -202,7 +200,7 @@ describe('Comment Component', () => { }); it('[C290147] Should NOT be able to add comments to a site file with Consumer permissions', () => { - navigationBar.goToSite(site); + navigationBarPage.goToSite(site); contentServicesPage.checkAcsContainer(); viewerPage.viewFile(pngUploadedFile.entry.name); diff --git a/e2e/content-services/directives/create-folder-directive.e2e.ts b/e2e/content-services/directives/create-folder-directive.e2e.ts index 527f5063d4..ad0b249651 100644 --- a/e2e/content-services/directives/create-folder-directive.e2e.ts +++ b/e2e/content-services/directives/create-folder-directive.e2e.ts @@ -22,6 +22,7 @@ import { MetadataViewPage } from '../../pages/adf/metadataViewPage'; import { AcsUserModel } from '../../models/ACS/acsUserModel'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; import { browser, Key } from 'protractor'; +import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; describe('Create folder directive', function () { @@ -31,11 +32,12 @@ describe('Create folder directive', function () { const notificationHistoryPage = new NotificationHistoryPage(); const metadataViewPage = new MetadataViewPage(); const acsUser = new AcsUserModel(); + const navigationBarPage = new NavigationBarPage(); beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -49,6 +51,10 @@ describe('Create folder directive', function () { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + beforeEach(async (done) => { await browser.actions().sendKeys(Key.ESCAPE).perform(); done(); diff --git a/e2e/content-services/directives/create-library-directive.e2e.ts b/e2e/content-services/directives/create-library-directive.e2e.ts index dccc37f19c..200e892bb1 100644 --- a/e2e/content-services/directives/create-library-directive.e2e.ts +++ b/e2e/content-services/directives/create-library-directive.e2e.ts @@ -24,6 +24,7 @@ import { AcsUserModel } from '../../models/ACS/acsUserModel'; import { browser } from 'protractor'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; import { StringUtil } from '@alfresco/adf-testing'; +import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; describe('Create library directive', function () { @@ -31,6 +32,7 @@ describe('Create library directive', function () { const contentServicesPage = new ContentServicesPage(); const createLibraryDialog = new CreateLibraryDialog(); const customSourcesPage = new CustomSources(); + const navigationBarPage = new NavigationBarPage(); const visibility = { public: 'Public', @@ -45,7 +47,7 @@ describe('Create library directive', function () { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -62,6 +64,10 @@ describe('Create library directive', function () { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + beforeEach((done) => { contentServicesPage.goToDocumentList(); contentServicesPage.openCreateLibraryDialog(); diff --git a/e2e/content-services/directives/download-directive.e2e.ts b/e2e/content-services/directives/download-directive.e2e.ts index 4254f303f1..252050ef4b 100644 --- a/e2e/content-services/directives/download-directive.e2e.ts +++ b/e2e/content-services/directives/download-directive.e2e.ts @@ -61,7 +61,7 @@ describe('Version component actions', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -88,6 +88,10 @@ describe('Version component actions', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + afterEach(async () => { BrowserVisibility.waitUntilDialogIsClose(); }); diff --git a/e2e/content-services/directives/edit-folder-directive.e2e.ts b/e2e/content-services/directives/edit-folder-directive.e2e.ts index 757aeb3759..19f3cbc81a 100644 --- a/e2e/content-services/directives/edit-folder-directive.e2e.ts +++ b/e2e/content-services/directives/edit-folder-directive.e2e.ts @@ -34,9 +34,10 @@ describe('Edit folder directive', function () { const anotherAcsUser = new AcsUserModel(); const navigationBarPage = new NavigationBarPage(); const notificationHistoryPage = new NotificationHistoryPage(); + this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const pdfFile = new FileModel({ @@ -77,6 +78,7 @@ describe('Edit folder directive', function () { }); afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); await uploadActions.deleteFileOrFolder(editFolder.entry.id); await uploadActions.deleteFileOrFolder(anotherFolder.entry.id); diff --git a/e2e/content-services/directives/favorite-directive.e2e.ts b/e2e/content-services/directives/favorite-directive.e2e.ts index 85dbf60962..5291c6ed6a 100644 --- a/e2e/content-services/directives/favorite-directive.e2e.ts +++ b/e2e/content-services/directives/favorite-directive.e2e.ts @@ -37,9 +37,10 @@ describe('Favorite directive', function () { const trashcanPage = new TrashcanPage(); const contentListPage = contentServicesPage.getDocumentList(); const contentNodeSelector = new ContentNodeSelectorDialogPage(); + this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const pdfFile = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF.file_name, @@ -66,6 +67,7 @@ describe('Favorite directive', function () { }); afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); await uploadActions.deleteFileOrFolder(testFolder1.entry.id); await uploadActions.deleteFileOrFolder(testFolder2.entry.id); diff --git a/e2e/content-services/directives/restore-content-directive.e2e.ts b/e2e/content-services/directives/restore-content-directive.e2e.ts index deea2fa5e2..9b9e528e07 100644 --- a/e2e/content-services/directives/restore-content-directive.e2e.ts +++ b/e2e/content-services/directives/restore-content-directive.e2e.ts @@ -40,7 +40,7 @@ describe('Restore content directive', function () { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const pdfFileModel = new FileModel({ @@ -61,7 +61,8 @@ describe('Restore content directive', function () { const folderName = StringUtil.generateRandomString(5); const uploadActions = new UploadActions(this.alfrescoJsApi); - let folderWithContent, folderWithFolder, subFolder, subFile, testFile, restoreFile, publicSite, siteFolder, siteFile; + let folderWithContent, folderWithFolder, subFolder, subFile, testFile, restoreFile, publicSite, siteFolder, + siteFile; beforeAll(async (done) => { await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -81,12 +82,13 @@ describe('Restore content directive', function () { done(); }); - afterAll(async (done) => { + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); await uploadActions.deleteFileOrFolder(folderWithContent.entry.id); await uploadActions.deleteFileOrFolder(folderWithFolder.entry.id); await this.alfrescoJsApi.core.sitesApi.deleteSite(publicSite.entry.id); - done(); }); beforeEach(async (done) => { @@ -241,92 +243,92 @@ describe('Restore content directive', function () { describe('Restore deleted library', () => { - beforeAll(async (done) => { - await this.alfrescoJsApi.login(acsUser.id, acsUser.password); - const publicSiteName = `00${StringUtil.generateRandomString(5)}`; - const publicSiteBody = {visibility: 'PUBLIC', title: publicSiteName}; - publicSite = await this.alfrescoJsApi.core.sitesApi.createSite(publicSiteBody); - siteFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), publicSite.entry.guid); - siteFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, siteFolder.entry.id); - await this.alfrescoJsApi.core.sitesApi.deleteSite(publicSite.entry.id); - done(); + beforeAll(async (done) => { + await this.alfrescoJsApi.login(acsUser.id, acsUser.password); + const publicSiteName = `00${StringUtil.generateRandomString(5)}`; + const publicSiteBody = { visibility: 'PUBLIC', title: publicSiteName }; + publicSite = await this.alfrescoJsApi.core.sitesApi.createSite(publicSiteBody); + siteFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), publicSite.entry.guid); + siteFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, siteFolder.entry.id); + await this.alfrescoJsApi.core.sitesApi.deleteSite(publicSite.entry.id); + done(); + }); + + it('[C260241] Should restore the deleted library along with contents inside', async () => { + navigationBarPage.clickTrashcanButton(); + trashcanPage.waitForTableBody(); + trashcanPage.getDocumentList().dataTablePage().checkRowContentIsDisplayed(publicSite.entry.id); + trashcanPage.getDocumentList().dataTablePage().clickRowByContentCheckbox(publicSite.entry.id); + trashcanPage.getDocumentList().dataTablePage().checkRowByContentIsSelected(publicSite.entry.id); + trashcanPage.clickRestore(); + + navigationBarPage.clickContentServicesButton(); + contentServicesPage.waitForTableBody(); + contentServicesPage.selectSite(publicSite.entry.title); + contentServicesPage.waitForTableBody(); + contentServicesPage.checkContentIsDisplayed(siteFolder.entry.name); + contentServicesPage.doubleClickRow(siteFolder.entry.name); + contentServicesPage.checkContentIsDisplayed(siteFile.entry.name); + notificationHistoryPage.checkNotifyContains(publicSite.entry.id + ' item restored'); + + }); }); - it('[C260241] Should restore the deleted library along with contents inside', async () => { - navigationBarPage.clickTrashcanButton(); - trashcanPage.waitForTableBody(); - trashcanPage.getDocumentList().dataTablePage().checkRowContentIsDisplayed(publicSite.entry.id); - trashcanPage.getDocumentList().dataTablePage().clickRowByContentCheckbox(publicSite.entry.id); - trashcanPage.getDocumentList().dataTablePage().checkRowByContentIsSelected(publicSite.entry.id); - trashcanPage.clickRestore(); - - navigationBarPage.clickContentServicesButton(); - contentServicesPage.waitForTableBody(); - contentServicesPage.selectSite(publicSite.entry.title); - contentServicesPage.waitForTableBody(); - contentServicesPage.checkContentIsDisplayed(siteFolder.entry.name); - contentServicesPage.doubleClickRow(siteFolder.entry.name); - contentServicesPage.checkContentIsDisplayed(siteFile.entry.name); - notificationHistoryPage.checkNotifyContains(publicSite.entry.id + ' item restored'); - - }); -}); - describe('Restore with folder hierarchies', () => { - let parentFolder, folderWithin, pdfFile, pngFile, mainFile, mainFolder; + let parentFolder, folderWithin, pdfFile, pngFile, mainFile, mainFolder; - beforeAll(async (done) => { - await this.alfrescoJsApi.login(anotherAcsUser.id, anotherAcsUser.password); - await uploadActions.createFolder(folderName, '-my-'); - parentFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-'); - folderWithin = await uploadActions.createFolder(StringUtil.generateRandomString(5), parentFolder.entry.id); - pdfFile = await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, folderWithin.entry.id); - pngFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, folderWithin.entry.id); - mainFile = await uploadActions.uploadFile(testFileModel.location, testFileModel.name, '-my-'); - mainFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-'); + beforeAll(async (done) => { + await this.alfrescoJsApi.login(anotherAcsUser.id, anotherAcsUser.password); + await uploadActions.createFolder(folderName, '-my-'); + parentFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-'); + folderWithin = await uploadActions.createFolder(StringUtil.generateRandomString(5), parentFolder.entry.id); + pdfFile = await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, folderWithin.entry.id); + pngFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, folderWithin.entry.id); + mainFile = await uploadActions.uploadFile(testFileModel.location, testFileModel.name, '-my-'); + mainFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-'); - await loginPage.loginToContentServicesUsingUserModel(anotherAcsUser); - contentServicesPage.goToDocumentList(); - contentServicesPage.waitForTableBody(); - done(); + await loginPage.loginToContentServicesUsingUserModel(anotherAcsUser); + contentServicesPage.goToDocumentList(); + contentServicesPage.waitForTableBody(); + done(); + }); + + afterAll(async (done) => { + await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); + await uploadActions.deleteFileOrFolder(parentFolder.entry.id); + await uploadActions.deleteFileOrFolder(mainFolder.entry.id); + await uploadActions.deleteFileOrFolder(mainFile.entry.id); + done(); + }); + + it('[C216431] Should restore hierarchy of folders', async () => { + contentServicesPage.deleteContent(parentFolder.entry.name); + contentServicesPage.deleteContent(mainFolder.entry.name); + contentServicesPage.deleteContent(mainFile.entry.name); + + navigationBarPage.clickTrashcanButton(); + trashcanPage.waitForTableBody(); + trashcanPage.checkRestoreButtonIsNotDisplayed(); + trashcanPage.getDocumentList().dataTablePage().clickRowByContentCheckbox(parentFolder.entry.name); + trashcanPage.getDocumentList().dataTablePage().checkRowByContentIsSelected(parentFolder.entry.name); + trashcanPage.getDocumentList().dataTablePage().clickRowByContentCheckbox(mainFolder.entry.name); + trashcanPage.getDocumentList().dataTablePage().checkRowByContentIsSelected(mainFolder.entry.name); + trashcanPage.getDocumentList().dataTablePage().clickRowByContentCheckbox(mainFile.entry.name); + trashcanPage.getDocumentList().dataTablePage().checkRowByContentIsSelected(mainFile.entry.name); + trashcanPage.clickRestore(); + + navigationBarPage.clickContentServicesButton(); + contentServicesPage.waitForTableBody(); + contentServicesPage.checkContentIsDisplayed(parentFolder.entry.name); + contentServicesPage.checkContentIsDisplayed(mainFolder.entry.name); + contentServicesPage.checkContentIsDisplayed(mainFile.entry.name); + contentServicesPage.doubleClickRow(parentFolder.entry.name); + contentServicesPage.checkContentIsDisplayed(folderWithin.entry.name); + contentServicesPage.doubleClickRow(folderWithin.entry.name); + contentServicesPage.checkContentIsDisplayed(pdfFile.entry.name); + contentServicesPage.checkContentIsDisplayed(pngFile.entry.name); + }); }); - afterAll(async (done) => { - await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); - await uploadActions.deleteFileOrFolder(parentFolder.entry.id); - await uploadActions.deleteFileOrFolder(mainFolder.entry.id); - await uploadActions.deleteFileOrFolder(mainFile.entry.id); - done(); - }); - - it('[C216431] Should restore hierarchy of folders', async () => { - contentServicesPage.deleteContent(parentFolder.entry.name); - contentServicesPage.deleteContent(mainFolder.entry.name); - contentServicesPage.deleteContent(mainFile.entry.name); - - navigationBarPage.clickTrashcanButton(); - trashcanPage.waitForTableBody(); - trashcanPage.checkRestoreButtonIsNotDisplayed(); - trashcanPage.getDocumentList().dataTablePage().clickRowByContentCheckbox(parentFolder.entry.name); - trashcanPage.getDocumentList().dataTablePage().checkRowByContentIsSelected(parentFolder.entry.name); - trashcanPage.getDocumentList().dataTablePage().clickRowByContentCheckbox(mainFolder.entry.name); - trashcanPage.getDocumentList().dataTablePage().checkRowByContentIsSelected(mainFolder.entry.name); - trashcanPage.getDocumentList().dataTablePage().clickRowByContentCheckbox(mainFile.entry.name); - trashcanPage.getDocumentList().dataTablePage().checkRowByContentIsSelected(mainFile.entry.name); - trashcanPage.clickRestore(); - - navigationBarPage.clickContentServicesButton(); - contentServicesPage.waitForTableBody(); - contentServicesPage.checkContentIsDisplayed(parentFolder.entry.name); - contentServicesPage.checkContentIsDisplayed(mainFolder.entry.name); - contentServicesPage.checkContentIsDisplayed(mainFile.entry.name); - contentServicesPage.doubleClickRow(parentFolder.entry.name); - contentServicesPage.checkContentIsDisplayed(folderWithin.entry.name); - contentServicesPage.doubleClickRow(folderWithin.entry.name); - contentServicesPage.checkContentIsDisplayed(pdfFile.entry.name); - contentServicesPage.checkContentIsDisplayed(pngFile.entry.name); - }); -}); - }); diff --git a/e2e/content-services/document-list/document-list-actions.e2e.ts b/e2e/content-services/document-list/document-list-actions.e2e.ts index 171c1746cf..e2558eac7f 100644 --- a/e2e/content-services/document-list/document-list-actions.e2e.ts +++ b/e2e/content-services/document-list/document-list-actions.e2e.ts @@ -41,7 +41,7 @@ describe('Document List Component - Actions', () => { const breadCrumbPage = new BreadCrumbPage(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); const infinitePaginationPage = new InfinitePaginationPage(element(by.css('adf-content-node-selector'))); @@ -85,12 +85,16 @@ describe('Document List Component - Actions', () => { await loginPage.loginToContentServicesUsingUserModel(acsUser); - browser.driver.sleep(10000); + browser.driver.sleep(12000); done(); }); - beforeEach((done) => { - navigationBarPage.clickContentServicesButton(); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + + beforeEach(async(done) => { + await navigationBarPage.clickContentServicesButton(); done(); }); diff --git a/e2e/content-services/document-list/document-list-component.e2e.ts b/e2e/content-services/document-list/document-list-component.e2e.ts index d94731f59a..adc08746e2 100644 --- a/e2e/content-services/document-list/document-list-component.e2e.ts +++ b/e2e/content-services/document-list/document-list-component.e2e.ts @@ -32,7 +32,7 @@ describe('Document List Component', () => { let uploadedFolder, uploadedFolderExtra; this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); let acsUser = null; diff --git a/e2e/content-services/document-list/document-list-copy-move-actions.e2e.ts b/e2e/content-services/document-list/document-list-copy-move-actions.e2e.ts index 381010aeaa..39fa4b7278 100644 --- a/e2e/content-services/document-list/document-list-copy-move-actions.e2e.ts +++ b/e2e/content-services/document-list/document-list-copy-move-actions.e2e.ts @@ -27,7 +27,7 @@ import { ContentServicesPage } from '../../pages/adf/contentServicesPage'; import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; import { AcsUserModel } from '../../models/ACS/acsUserModel'; import resources = require('../../util/resources'); -import {AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; +import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; import { FileModel } from '../../models/ACS/fileModel'; describe('Document List Component', () => { @@ -40,11 +40,12 @@ describe('Document List Component', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); - let uploadedFolder, uploadedFile, sourceFolder, destinationFolder, subFolder, subFolder2, copyFolder, subFile, duplicateFolderName; + let uploadedFolder, uploadedFile, sourceFolder, destinationFolder, subFolder, subFolder2, copyFolder, subFile, + duplicateFolderName; let acsUser = null, anotherAcsUser: AcsUserModel; let folderName, sameNameFolder; @@ -89,16 +90,23 @@ describe('Document List Component', () => { } }); - browser.driver.sleep(10000); + browser.driver.sleep(12000); done(); }); afterAll(async (done) => { - await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); - uploadActions.deleteFileOrFolder(uploadedFolder.entry.id); - uploadActions.deleteFileOrFolder(uploadedFile.entry.id); - uploadActions.deleteFileOrFolder(sourceFolder.entry.id); - uploadActions.deleteFileOrFolder(destinationFolder.entry.id); + await navigationBarPage.clickLogoutButton(); + + try { + await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); + await uploadActions.deleteFileOrFolder(uploadedFolder.entry.id); + await uploadActions.deleteFileOrFolder(uploadedFile.entry.id); + await uploadActions.deleteFileOrFolder(sourceFolder.entry.id); + await uploadActions.deleteFileOrFolder(destinationFolder.entry.id); + } catch (error) { + // tslint:disable-next-line:no-console + console.log('Error delete file or folder' + error); + } done(); }); diff --git a/e2e/content-services/document-list/document-list-gallery.e2e.ts b/e2e/content-services/document-list/document-list-gallery.e2e.ts index 9425d362fd..ecc55f5b10 100644 --- a/e2e/content-services/document-list/document-list-gallery.e2e.ts +++ b/e2e/content-services/document-list/document-list-gallery.e2e.ts @@ -30,11 +30,12 @@ describe('Document List Component', () => { const contentServicesPage = new ContentServicesPage(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); let acsUser = null; const navBar = new NavigationBarPage(); + const navigationBarPage = new NavigationBarPage(); describe('Gallery View', () => { @@ -81,6 +82,10 @@ describe('Document List Component', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + beforeEach(async () => { navBar.clickHomeButton(); contentServicesPage.goToDocumentList(); diff --git a/e2e/content-services/document-list/document-list-pagination.e2e.ts b/e2e/content-services/document-list/document-list-pagination.e2e.ts index 4fd9632ff6..f730c0a5b7 100644 --- a/e2e/content-services/document-list/document-list-pagination.e2e.ts +++ b/e2e/content-services/document-list/document-list-pagination.e2e.ts @@ -59,7 +59,7 @@ describe('Document List - Pagination', function () { const folderThreeModel = new FolderModel({ 'name': 'folderThree' }); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -85,6 +85,10 @@ describe('Document List - Pagination', function () { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + beforeEach((done) => { contentServicesPage.goToDocumentList(); contentServicesPage.checkAcsContainer(); diff --git a/e2e/content-services/document-list/document-list-permissions.e2e.ts b/e2e/content-services/document-list/document-list-permissions.e2e.ts index e7889aa9d5..f2de5f475a 100644 --- a/e2e/content-services/document-list/document-list-permissions.e2e.ts +++ b/e2e/content-services/document-list/document-list-permissions.e2e.ts @@ -28,13 +28,15 @@ describe('Document List Component', () => { const contentServicesPage = new ContentServicesPage(); const navBar = new NavigationBarPage(); const errorPage = new ErrorPage(); + const navigationBarPage = new NavigationBarPage(); + let privateSite; let acsUser = null; beforeAll(() => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); }); @@ -57,6 +59,7 @@ describe('Document List Component', () => { }); afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); await this.alfrescoJsApi.core.sitesApi.deleteSite(privateSite.entry.id); navBar.openLanguageMenu(); navBar.chooseLanguage('English'); diff --git a/e2e/content-services/document-list/document-list-properties.e2e.ts b/e2e/content-services/document-list/document-list-properties.e2e.ts index 42c723bb6c..9b6d87d18d 100644 --- a/e2e/content-services/document-list/document-list-properties.e2e.ts +++ b/e2e/content-services/document-list/document-list-properties.e2e.ts @@ -29,12 +29,12 @@ describe('Document List Component - Properties', () => { const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); - const navigationBar = new NavigationBarPage(); + const navigationBarPage = new NavigationBarPage(); let subFolder, parentFolder; this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); let acsUser = null; @@ -72,7 +72,7 @@ describe('Document List Component - Properties', () => { }); it('[C299154] Should disallow upload content on a folder row if allowDropFiles is false', () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); contentServicesPage.doubleClickRow(parentFolder.entry.name); contentServicesPage.disableDropFilesInAFolder(); @@ -88,7 +88,7 @@ describe('Document List Component - Properties', () => { }); it('[C91319] Should allow upload content on a folder row if allowDropFiles is true', () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); contentServicesPage.doubleClickRow(parentFolder.entry.name); contentServicesPage.enableDropFilesInAFolder(); diff --git a/e2e/content-services/document-list/document-list-thumbnails-tooltips.e2e.ts b/e2e/content-services/document-list/document-list-thumbnails-tooltips.e2e.ts index afa17a2dd3..0bcafdd9f5 100644 --- a/e2e/content-services/document-list/document-list-thumbnails-tooltips.e2e.ts +++ b/e2e/content-services/document-list/document-list-thumbnails-tooltips.e2e.ts @@ -22,6 +22,7 @@ import resources = require('../../util/resources'); import { LoginPage, StringUtil, UploadActions } from '@alfresco/adf-testing'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; import { FileModel } from '../../models/ACS/fileModel'; +import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; describe('Document List Component', () => { @@ -30,11 +31,12 @@ describe('Document List Component', () => { let uploadedFolder, uploadedFolderExtra; this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); let acsUser = null; let testFileNode, pdfBFileNode; + const navigationBarPage = new NavigationBarPage(); afterEach(async (done) => { await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -92,6 +94,8 @@ describe('Document List Component', () => { }); afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); if (filePdfNode) { await uploadActions.deleteFileOrFolder(filePdfNode.entry.id); diff --git a/e2e/content-services/lock-file.e2e.ts b/e2e/content-services/lock-file.e2e.ts index 53ea5bbb7e..a2c7cd46aa 100644 --- a/e2e/content-services/lock-file.e2e.ts +++ b/e2e/content-services/lock-file.e2e.ts @@ -36,7 +36,7 @@ describe('Lock File', () => { const managerUser = new AcsUserModel(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); diff --git a/e2e/content-services/metadata/aspect-oriented-config.e2e.ts b/e2e/content-services/metadata/aspect-oriented-config.e2e.ts index f15eb6008b..101312dc09 100644 --- a/e2e/content-services/metadata/aspect-oriented-config.e2e.ts +++ b/e2e/content-services/metadata/aspect-oriented-config.e2e.ts @@ -51,7 +51,7 @@ describe('Aspect oriented config', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); uploadActions = new UploadActions(this.alfrescoJsApi); @@ -86,6 +86,10 @@ describe('Aspect oriented config', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + afterEach(async (done) => { viewerPage.clickCloseButton(); contentServicesPage.checkAcsContainer(); diff --git a/e2e/content-services/metadata/metadata-permissions.e2e.ts b/e2e/content-services/metadata/metadata-permissions.e2e.ts index 084ecf2420..4ebf8846b8 100644 --- a/e2e/content-services/metadata/metadata-permissions.e2e.ts +++ b/e2e/content-services/metadata/metadata-permissions.e2e.ts @@ -57,7 +57,7 @@ describe('permissions', () => { }); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -94,9 +94,9 @@ describe('permissions', () => { done(); }); - afterAll(async (done) => { + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id); - done(); }); it('[C274692] Should not be possible edit metadata properties when the user is a consumer user', async () => { diff --git a/e2e/content-services/metadata/metadata-properties.e2e.ts b/e2e/content-services/metadata/metadata-properties.e2e.ts index bb4edbc6c5..fa2813a62b 100644 --- a/e2e/content-services/metadata/metadata-properties.e2e.ts +++ b/e2e/content-services/metadata/metadata-properties.e2e.ts @@ -56,7 +56,7 @@ describe('CardView Component - properties', () => { }); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -80,6 +80,10 @@ describe('CardView Component - properties', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + afterEach(() => { viewerPage.clickCloseButton(); }); diff --git a/e2e/content-services/metadata/metadata-smoke-tests.e2e.ts b/e2e/content-services/metadata/metadata-smoke-tests.e2e.ts index 45bf0b26b4..4fd859b654 100644 --- a/e2e/content-services/metadata/metadata-smoke-tests.e2e.ts +++ b/e2e/content-services/metadata/metadata-smoke-tests.e2e.ts @@ -62,7 +62,7 @@ describe('Metadata component', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -84,6 +84,10 @@ describe('Metadata component', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + describe('Viewer Metadata', () => { beforeAll(async () => { diff --git a/e2e/content-services/notifications-component.e2e.ts b/e2e/content-services/notifications-component.e2e.ts index 391dde571d..bcd2721f04 100644 --- a/e2e/content-services/notifications-component.e2e.ts +++ b/e2e/content-services/notifications-component.e2e.ts @@ -20,11 +20,13 @@ import { AcsUserModel } from '../models/ACS/acsUserModel'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; import { NotificationPage } from '../pages/adf/notificationPage'; import { browser } from 'protractor'; +import { NavigationBarPage } from '../pages/adf/navigationBarPage'; describe('Notifications Component', () => { const loginPage = new LoginPage(); const notificationHistoryPage = new NotificationPage(); + const navigationBarPage = new NavigationBarPage(); const acsUser = new AcsUserModel(); @@ -32,7 +34,7 @@ describe('Notifications Component', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -50,6 +52,10 @@ describe('Notifications Component', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + afterEach( () => { browser.executeScript(`document.querySelector('button[data-automation-id="notification-custom-dismiss-button"]').click();`); notificationHistoryPage.enterDurationField(3000); diff --git a/e2e/content-services/permissions/permissions-component.e2e.ts b/e2e/content-services/permissions/permissions-component.e2e.ts index 77c9841e09..6832103591 100644 --- a/e2e/content-services/permissions/permissions-component.e2e.ts +++ b/e2e/content-services/permissions/permissions-component.e2e.ts @@ -21,7 +21,7 @@ import { AcsUserModel } from '../../models/ACS/acsUserModel'; import resources = require('../../util/resources'); import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; import { FileModel } from '../../models/ACS/fileModel'; -import { StringUtil, BrowserActions, NotificationHistoryPage, LoginPage, UploadActions } from '@alfresco/adf-testing'; +import { StringUtil, BrowserActions, NotificationHistoryPage, LoginPage, UploadActions } from '@alfresco/adf-testing'; import { browser } from 'protractor'; import { FolderModel } from '../../models/ACS/folderModel'; import { ViewerPage } from '../../pages/adf/viewerPage'; @@ -33,7 +33,7 @@ describe('Permissions Component', function () { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); @@ -165,6 +165,8 @@ describe('Permissions Component', function () { }); afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); await folders.forEach(function (folder) { uploadActions.deleteFileOrFolder(folder.entry.id); @@ -174,7 +176,7 @@ describe('Permissions Component', function () { done(); }); - describe('Inherit and assigning permissions', () => { + describe('Inherit and assigning permissions', () => { beforeEach(async (done) => { @@ -254,7 +256,7 @@ describe('Permissions Component', function () { }); - describe('Changing and duplicate Permissions', () => { + describe('Changing and duplicate Permissions', () => { beforeEach(async (done) => { @@ -285,15 +287,8 @@ describe('Permissions Component', function () { }); afterEach(async (done) => { - - try { - await uploadActions.deleteFileOrFolder(file.entry.id); - - } catch (error) { - - } + await uploadActions.deleteFileOrFolder(file.entry.id); done(); - }); it('[C274691] Should be able to add a new User with permission to the file and also change locally set permissions', () => { diff --git a/e2e/content-services/permissions/site-permissions.e2e.ts b/e2e/content-services/permissions/site-permissions.e2e.ts index 457e1a1b2b..f6608c6574 100644 --- a/e2e/content-services/permissions/site-permissions.e2e.ts +++ b/e2e/content-services/permissions/site-permissions.e2e.ts @@ -33,7 +33,7 @@ describe('Permissions Component', function () { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); @@ -149,6 +149,8 @@ describe('Permissions Component', function () { }); afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); await this.alfrescoJsApi.core.sitesApi.deleteSite(publicSite.entry.id); await this.alfrescoJsApi.core.sitesApi.deleteSite(privateSite.entry.id); diff --git a/e2e/content-services/share-file/share-file.e2e.ts b/e2e/content-services/share-file/share-file.e2e.ts index 2221425961..c70dec04fa 100644 --- a/e2e/content-services/share-file/share-file.e2e.ts +++ b/e2e/content-services/share-file/share-file.e2e.ts @@ -15,7 +15,13 @@ * limitations under the License. */ -import { LoginPage, BrowserActions, LocalStorageUtil, NotificationHistoryPage, UploadActions } from '@alfresco/adf-testing'; +import { + LoginPage, + BrowserActions, + LocalStorageUtil, + NotificationHistoryPage, + UploadActions +} from '@alfresco/adf-testing'; import { ContentServicesPage } from '../../pages/adf/contentServicesPage'; import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; import { ViewerPage } from '../../pages/adf/viewerPage'; @@ -29,9 +35,9 @@ import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; describe('Share file', () => { this.alfrescoJsApi = new AlfrescoApi({ - provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url - }); + provider: 'ECM', + hostEcm: browser.params.testConfig.adf_acs.host + }); const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); const contentListPage = contentServicesPage.getDocumentList(); @@ -57,19 +63,16 @@ describe('Share file', () => { nodeId = pngUploadedFile.entry.id; - loginPage.loginToContentServicesUsingUserModel(acsUser); + await loginPage.loginToContentServicesUsingUserModel(acsUser); - navigationBarPage.clickContentServicesButton(); + await navigationBarPage.clickContentServicesButton(); done(); }); afterAll(async (done) => { - try { - await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); - await uploadActions.deleteFileOrFolder(nodeId); - } catch (error) { - } + await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); + await uploadActions.deleteFileOrFolder(nodeId); done(); }); diff --git a/e2e/content-services/share-file/unshare-file.e2e.ts b/e2e/content-services/share-file/unshare-file.e2e.ts index a9b3da4e7b..b2afee6303 100644 --- a/e2e/content-services/share-file/unshare-file.e2e.ts +++ b/e2e/content-services/share-file/unshare-file.e2e.ts @@ -30,7 +30,7 @@ describe('Unshare file', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); @@ -38,6 +38,8 @@ describe('Unshare file', () => { const navBar = new NavigationBarPage(); const errorPage = new ErrorPage(); const notificationHistoryPage = new NotificationHistoryPage(); + const navigationBarPage = new NavigationBarPage(); + const shareDialog = new ShareDialog(); const siteName = `PRIVATE-TEST-SITE-${StringUtil.generateRandomString(5)}`; const acsUser = new AcsUserModel(); @@ -101,6 +103,10 @@ describe('Unshare file', () => { done(); }); + afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + }); + afterEach(async (done) => { await browser.refresh(); done(); @@ -149,7 +155,7 @@ describe('Unshare file', () => { shareDialog.confirmationDialogIsDisplayed(); shareDialog.clickConfirmationDialogRemoveButton(); shareDialog.dialogIsClosed(); - BrowserActions.getUrl(sharedLink); + BrowserActions.getUrl(sharedLink.replace(browser.params.testConfig.adf_acs.host, browser.params.testConfig.adf.host)); errorPage.checkErrorCode(); }); }); diff --git a/e2e/content-services/social/social.component.e2e.ts b/e2e/content-services/social/social.component.e2e.ts index 660c5468fb..1ae79694de 100644 --- a/e2e/content-services/social/social.component.e2e.ts +++ b/e2e/content-services/social/social.component.e2e.ts @@ -36,7 +36,7 @@ describe('Social component', () => { const secondComponentVisitor = new AcsUserModel(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -85,6 +85,7 @@ describe('Social component', () => { }); afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); await uploadActions.deleteFileOrFolder(emptyFile.entry.id); done(); }); diff --git a/e2e/content-services/sso/sso-download-directive-component.e2e.ts b/e2e/content-services/sso/sso-download-directive-component.e2e.ts index 4aa65f8de5..8c5322d139 100644 --- a/e2e/content-services/sso/sso-download-directive-component.e2e.ts +++ b/e2e/content-services/sso/sso-download-directive-component.e2e.ts @@ -51,7 +51,7 @@ describe('SSO in ADF using ACS and AIS, Download Directive, Viewer, DocumentList this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url, + hostEcm: browser.params.testConfig.adf_acs.host, authType: 'OAUTH', oauth2: { host: browser.params.testConfig.adf.hostSso, @@ -74,7 +74,7 @@ describe('SSO in ADF using ACS and AIS, Download Directive, Viewer, DocumentList describe('SSO in ADF using ACS and AIS, implicit flow set', () => { beforeAll(async (done) => { - const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.testConfig.adf.url, browser.params.testConfig.adf.hostSso, 'ECM'); + const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.testConfig.adf_acs.host, browser.params.testConfig.adf.hostSso, 'ECM'); await apiService.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); identityService = new IdentityService(apiService); @@ -90,18 +90,18 @@ describe('SSO in ADF using ACS and AIS, Download Directive, Viewer, DocumentList silentLogin = false; implicitFlow = true; - settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url, + + await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host, browser.params.testConfig.adf.hostSso, - browser.params.testConfig.adf.hostIdentity, - silentLogin, implicitFlow, browser.params.config.oauth2.clientId); + browser.params.testConfig.adf.hostIdentity, silentLogin, implicitFlow, browser.params.config.oauth2.clientId); - loginSsoPage.clickOnSSOButton(); - loginSsoPage.loginSSOIdentityService(acsUser.id, acsUser.password); + await loginSsoPage.clickOnSSOButton(); + await loginSsoPage.loginSSOIdentityService(acsUser.id, acsUser.password); - navigationBarPage.clickContentServicesButton(); - contentServicesPage.checkAcsContainer(); + await navigationBarPage.clickContentServicesButton(); + await contentServicesPage.checkAcsContainer(); contentListPage.doubleClickRow(folderName); - contentListPage.waitForTableBody(); + await contentListPage.waitForTableBody(); done(); }); diff --git a/e2e/content-services/tag-component.e2e.ts b/e2e/content-services/tag-component.e2e.ts index 0abf367d86..26845fefeb 100644 --- a/e2e/content-services/tag-component.e2e.ts +++ b/e2e/content-services/tag-component.e2e.ts @@ -33,7 +33,7 @@ describe('Tag component', () => { const acsUser = new AcsUserModel(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); const pdfFileModel = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF.file_name }); @@ -82,10 +82,9 @@ describe('Tag component', () => { }); afterAll(async (done) => { - try { - await uploadActions.deleteFileOrFolder(pdfUploadedFile.entry.id); - } catch (error) { - } + await navigationBarPage.clickLogoutButton(); + + await uploadActions.deleteFileOrFolder(pdfUploadedFile.entry.id); done(); }); diff --git a/e2e/content-services/trashcan-pagination.e2e.ts b/e2e/content-services/trashcan-pagination.e2e.ts index f9514381f7..762377e2be 100644 --- a/e2e/content-services/trashcan-pagination.e2e.ts +++ b/e2e/content-services/trashcan-pagination.e2e.ts @@ -60,7 +60,7 @@ describe('Trashcan - Pagination', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -89,6 +89,11 @@ describe('Trashcan - Pagination', () => { done(); }); + afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + done(); + }); + afterEach((done) => { browser.refresh(); trashcanPage.waitForTableBody(); diff --git a/e2e/content-services/tree-view-component.e2e.ts b/e2e/content-services/tree-view-component.e2e.ts index 012e1829db..7c26f87e7f 100644 --- a/e2e/content-services/tree-view-component.e2e.ts +++ b/e2e/content-services/tree-view-component.e2e.ts @@ -30,9 +30,9 @@ describe('Tree View Component', () => { const acsUser = new AcsUserModel(); this.alfrescoJsApi = new AlfrescoApi({ - provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url - }); + provider: 'ECM', + hostEcm: browser.params.testConfig.adf_acs.host + }); const uploadActions = new UploadActions(this.alfrescoJsApi); let treeFolder, secondTreeFolder, thirdTreeFolder; @@ -52,10 +52,22 @@ describe('Tree View Component', () => { await this.alfrescoJsApi.login(acsUser.id, acsUser.password); - treeFolder = await this.alfrescoJsApi.nodes.addNode(nodeNames.parentFolder, { name: nodeNames.folder, nodeType: 'cm:folder' }); - secondTreeFolder = await this.alfrescoJsApi.nodes.addNode(nodeNames.parentFolder, { name: nodeNames.secondFolder, nodeType: 'cm:folder' }); - thirdTreeFolder = await this.alfrescoJsApi.nodes.addNode(secondTreeFolder.entry.id, { name: nodeNames.thirdFolder, nodeType: 'cm:folder' }); - await this.alfrescoJsApi.nodes.addNode(thirdTreeFolder.entry.id, { name: nodeNames.document, nodeType: 'cm:content' }); + treeFolder = await this.alfrescoJsApi.nodes.addNode(nodeNames.parentFolder, { + name: nodeNames.folder, + nodeType: 'cm:folder' + }); + secondTreeFolder = await this.alfrescoJsApi.nodes.addNode(nodeNames.parentFolder, { + name: nodeNames.secondFolder, + nodeType: 'cm:folder' + }); + thirdTreeFolder = await this.alfrescoJsApi.nodes.addNode(secondTreeFolder.entry.id, { + name: nodeNames.thirdFolder, + nodeType: 'cm:folder' + }); + await this.alfrescoJsApi.nodes.addNode(thirdTreeFolder.entry.id, { + name: nodeNames.document, + nodeType: 'cm:content' + }); loginPage.loginToContentServicesUsingUserModel(acsUser); @@ -65,13 +77,12 @@ describe('Tree View Component', () => { }); afterAll(async (done) => { - try { - await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); + await navigationBarPage.clickLogoutButton(); - await uploadActions.deleteFileOrFolder(treeFolder.entry.id); - await uploadActions.deleteFileOrFolder(secondTreeFolder.entry.id); - } catch (error) { - } + await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); + + await uploadActions.deleteFileOrFolder(treeFolder.entry.id); + await uploadActions.deleteFileOrFolder(secondTreeFolder.entry.id); done(); }); diff --git a/e2e/content-services/upload/cancel-upload.e2e.ts b/e2e/content-services/upload/cancel-upload.e2e.ts index b02bb5a577..87a892d938 100644 --- a/e2e/content-services/upload/cancel-upload.e2e.ts +++ b/e2e/content-services/upload/cancel-upload.e2e.ts @@ -24,12 +24,13 @@ import { AcsUserModel } from '../../models/ACS/acsUserModel'; import { FileModel } from '../../models/ACS/fileModel'; import resources = require('../../util/resources'); import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; +import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; describe('Upload component', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const contentServicesPage = new ContentServicesPage(); const uploadDialog = new UploadDialog(); @@ -37,6 +38,7 @@ describe('Upload component', () => { const loginPage = new LoginPage(); const acsUser = new AcsUserModel(); const uploadActions = new UploadActions(this.alfrescoJsApi); + const navigationBarPage = new NavigationBarPage(); const firstPdfFileModel = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF_B.file_name, @@ -69,6 +71,11 @@ describe('Upload component', () => { done(); }); + afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + done(); + }); + beforeEach(() => { contentServicesPage.goToDocumentList(); }); diff --git a/e2e/content-services/upload/excluded-file.e2e.ts b/e2e/content-services/upload/excluded-file.e2e.ts index 3847dbca27..1c6cf09486 100644 --- a/e2e/content-services/upload/excluded-file.e2e.ts +++ b/e2e/content-services/upload/excluded-file.e2e.ts @@ -29,6 +29,7 @@ import resources = require('../../util/resources'); import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; import { DropActions } from '../../actions/drop.actions'; +import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; describe('Upload component - Excluded Files', () => { @@ -37,6 +38,7 @@ describe('Upload component - Excluded Files', () => { const uploadToggles = new UploadToggles(); const loginPage = new LoginPage(); const acsUser = new AcsUserModel(); + const navigationBarPage = new NavigationBarPage(); const iniExcludedFile = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.INI.file_name, @@ -56,7 +58,7 @@ describe('Upload component - Excluded Files', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -72,6 +74,11 @@ describe('Upload component - Excluded Files', () => { done(); }); + afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + done(); + }); + afterEach(async (done) => { contentServicesPage.goToDocumentList(); diff --git a/e2e/content-services/upload/upload-dialog.ts b/e2e/content-services/upload/upload-dialog.ts index 4d160fffa1..1e8aa47f30 100644 --- a/e2e/content-services/upload/upload-dialog.ts +++ b/e2e/content-services/upload/upload-dialog.ts @@ -25,6 +25,7 @@ import { browser } from 'protractor'; import resources = require('../../util/resources'); import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; import { VersionManagePage } from '../../pages/adf/versionManagerPage'; +import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; describe('Upload component', () => { @@ -34,9 +35,11 @@ describe('Upload component', () => { const loginPage = new LoginPage(); const acsUser = new AcsUserModel(); const versionManagePage = new VersionManagePage(); + const navigationBarPage = new NavigationBarPage(); + this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -75,6 +78,11 @@ describe('Upload component', () => { done(); }); + afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + done(); + }); + beforeEach(() => { contentServicesPage.goToDocumentList(); }); diff --git a/e2e/content-services/upload/uploader-component.e2e.ts b/e2e/content-services/upload/uploader-component.e2e.ts index 24bf28027a..e13ff024ea 100644 --- a/e2e/content-services/upload/uploader-component.e2e.ts +++ b/e2e/content-services/upload/uploader-component.e2e.ts @@ -37,7 +37,7 @@ describe('Upload component', () => { const acsUser = new AcsUserModel(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); const navigationBarPage = new NavigationBarPage(); @@ -86,6 +86,11 @@ describe('Upload component', () => { done(); }); + afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + done(); + }); + beforeEach(() => { contentServicesPage.goToDocumentList(); }); diff --git a/e2e/content-services/upload/user-permission.e2e.ts b/e2e/content-services/upload/user-permission.e2e.ts index 1afc3526ab..98722e5a68 100644 --- a/e2e/content-services/upload/user-permission.e2e.ts +++ b/e2e/content-services/upload/user-permission.e2e.ts @@ -59,7 +59,7 @@ describe('Upload - User permission', () => { beforeAll(() => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); }); @@ -98,6 +98,11 @@ describe('Upload - User permission', () => { done(); }); + afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + done(); + }); + describe('Consumer permissions', () => { beforeEach(async (done) => { diff --git a/e2e/content-services/version/version-actions.e2e.ts b/e2e/content-services/version/version-actions.e2e.ts index 1d369300b5..5f8cb72f53 100644 --- a/e2e/content-services/version/version-actions.e2e.ts +++ b/e2e/content-services/version/version-actions.e2e.ts @@ -62,7 +62,7 @@ describe('Version component actions', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); uploadActions = new UploadActions(this.alfrescoJsApi); @@ -87,6 +87,10 @@ describe('Version component actions', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + 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); diff --git a/e2e/content-services/version/version-permissions.e2e.ts b/e2e/content-services/version/version-permissions.e2e.ts index eb0c73fd90..2c807b432e 100644 --- a/e2e/content-services/version/version-permissions.e2e.ts +++ b/e2e/content-services/version/version-permissions.e2e.ts @@ -64,7 +64,7 @@ describe('Version component permissions', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); const nodeActions = new NodeActions(); @@ -142,6 +142,8 @@ describe('Version component permissions', () => { }); afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + await this.alfrescoJsApi.nodes.deleteNode(sameCreatorFile.id); done(); }); @@ -184,6 +186,10 @@ describe('Version component permissions', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + it('[C277197] Should a user with Consumer permission not be able to upload a new version for a file with different creator', () => { contentServices.versionManagerContent(differentCreatorFile.name); @@ -218,6 +224,8 @@ describe('Version component permissions', () => { }); afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + await this.alfrescoJsApi.nodes.deleteNode(sameCreatorFile.id); done(); }); @@ -276,6 +284,7 @@ describe('Version component permissions', () => { }); afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); await this.alfrescoJsApi.nodes.deleteNode(sameCreatorFile.id); done(); }); diff --git a/e2e/content-services/version/version-properties.e2e.ts b/e2e/content-services/version/version-properties.e2e.ts index b46c10f4d0..ea485c9c3b 100644 --- a/e2e/content-services/version/version-properties.e2e.ts +++ b/e2e/content-services/version/version-properties.e2e.ts @@ -45,7 +45,7 @@ describe('Version Properties', () => { }); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -72,6 +72,11 @@ describe('Version Properties', () => { done(); }); + afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + done(); + }); + it('[C272817] Should NOT be present the download action when allowDownload property is false', () => { versionManagePage.disableDownload(); diff --git a/e2e/content-services/version/version-smoke-tests.e2e.ts b/e2e/content-services/version/version-smoke-tests.e2e.ts index 5aec178cd5..bfff41c072 100644 --- a/e2e/content-services/version/version-smoke-tests.e2e.ts +++ b/e2e/content-services/version/version-smoke-tests.e2e.ts @@ -62,7 +62,7 @@ describe('Version component', () => { }); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -88,6 +88,11 @@ describe('Version component', () => { done(); }); + afterAll(async (done) => { + await navigationBarPage.clickLogoutButton(); + done(); + }); + it('[C272768] Should be visible the first file version when you upload a file', () => { versionManagePage.checkUploadNewVersionsButtonIsDisplayed(); diff --git a/e2e/core/auth-guard/auth-guard-sso.e2e.ts b/e2e/core/auth-guard/auth-guard-sso.e2e.ts index 042dd698d5..63555a91bd 100644 --- a/e2e/core/auth-guard/auth-guard-sso.e2e.ts +++ b/e2e/core/auth-guard/auth-guard-sso.e2e.ts @@ -25,15 +25,18 @@ describe('Auth Guard SSO', () => { const errorPage = new ErrorPage(); it('[C307058] Should be redirected to 403 when user doesn\'t have permissions', async () => { - settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url, + settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host, browser.params.testConfig.adf.hostSso, browser.params.testConfig.adf.hostIdentity, false, true, browser.params.config.oauth2.clientId); + browser.driver.sleep(5000); + loginSSOPage.clickOnSSOButton(); + await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); BrowserActions.getUrl(browser.params.testConfig.adf.url + '/cloud/simple-app'); - browser.driver.sleep(1000); + browser.driver.sleep(2000); expect(errorPage.getErrorCode()).toBe('403'); }); diff --git a/e2e/core/card-view/card-view-component.e2e.ts b/e2e/core/card-view/card-view-component.e2e.ts index 3af67ff516..c65b941d2f 100644 --- a/e2e/core/card-view/card-view-component.e2e.ts +++ b/e2e/core/card-view/card-view-component.e2e.ts @@ -37,6 +37,10 @@ describe('CardView Component', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + afterEach(() => { cardViewPageComponent.clickOnResetButton(); }); diff --git a/e2e/core/datatable/data-table-component-selection.e2e.ts b/e2e/core/datatable/data-table-component-selection.e2e.ts index b6dcc8ddf5..74c32aa723 100644 --- a/e2e/core/datatable/data-table-component-selection.e2e.ts +++ b/e2e/core/datatable/data-table-component-selection.e2e.ts @@ -35,7 +35,7 @@ describe('Datatable component - selection', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -49,6 +49,10 @@ describe('Datatable component - selection', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + it('[C213258] Should be possible change the selection modes when change the selectionMode property', () => { dataTablePage.selectRow('2'); dataTableComponent.checkRowIsSelected('Id', '2'); diff --git a/e2e/core/datatable/data-table-component.e2e.ts b/e2e/core/datatable/data-table-component.e2e.ts index f55665236f..1aeff582d0 100644 --- a/e2e/core/datatable/data-table-component.e2e.ts +++ b/e2e/core/datatable/data-table-component.e2e.ts @@ -46,7 +46,7 @@ describe('Datatable component', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -58,6 +58,10 @@ describe('Datatable component', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + describe('Datatable component', () => { beforeAll(async (done) => { diff --git a/e2e/core/error-component.e2e.ts b/e2e/core/error-component.e2e.ts index f98b5747e1..ba696c1485 100644 --- a/e2e/core/error-component.e2e.ts +++ b/e2e/core/error-component.e2e.ts @@ -19,17 +19,19 @@ import { LoginPage, ErrorPage, BrowserActions } from '@alfresco/adf-testing'; import { AcsUserModel } from '../models/ACS/acsUserModel'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; import { browser } from 'protractor'; +import { NavigationBarPage } from '../pages/adf/navigationBarPage'; describe('Error Component', () => { const acsUser = new AcsUserModel(); const loginPage = new LoginPage(); const errorPage = new ErrorPage(); + const navigationBarPage = new NavigationBarPage(); beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -40,6 +42,10 @@ describe('Error Component', () => { }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + it('[C277302] Should display the error 403 when access to unauthorized page - My Change', () => { BrowserActions.getUrl(browser.params.testConfig.adf.url + '/error/403'); expect(errorPage.getErrorCode()).toBe('403'); diff --git a/e2e/core/header-component.e2e.ts b/e2e/core/header-component.e2e.ts index bd9463c621..96892a2bd7 100644 --- a/e2e/core/header-component.e2e.ts +++ b/e2e/core/header-component.e2e.ts @@ -49,7 +49,7 @@ describe('Header Component', () => { beforeAll(async(done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); const users = new UsersActions(); @@ -73,6 +73,7 @@ describe('Header Component', () => { }); afterAll(async(done) => { + await navigationBarPage.clickLogoutButton(); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId); done(); diff --git a/e2e/core/icons-component.e2e.ts b/e2e/core/icons-component.e2e.ts index 6bf379a450..11c2647a2c 100644 --- a/e2e/core/icons-component.e2e.ts +++ b/e2e/core/icons-component.e2e.ts @@ -33,7 +33,7 @@ describe('Universal Icon component', function () { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -43,6 +43,10 @@ describe('Universal Icon component', function () { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + beforeEach(async (done) => { navigationBarPage.navigateToIconsPage(); done(); diff --git a/e2e/core/infinite-scrolling.e2e.ts b/e2e/core/infinite-scrolling.e2e.ts index 683d485df1..d5c35cce79 100644 --- a/e2e/core/infinite-scrolling.e2e.ts +++ b/e2e/core/infinite-scrolling.e2e.ts @@ -55,7 +55,7 @@ describe('Enable infinite scrolling', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -82,6 +82,10 @@ describe('Enable infinite scrolling', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + beforeEach(async (done) => { navigationBarPage.clickContentServicesButton(); contentServicesPage.checkAcsContainer(); diff --git a/e2e/core/login/login-component.e2e.ts b/e2e/core/login/login-component.e2e.ts index 03a93dff51..8839665335 100644 --- a/e2e/core/login/login-component.e2e.ts +++ b/e2e/core/login/login-component.e2e.ts @@ -59,8 +59,8 @@ describe('Login component', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ALL', - hostEcm: browser.params.testConfig.adf.url, - hostBpm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host, + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/core/login/login-sso/login-sso-error.e2e.ts b/e2e/core/login/login-sso/login-sso-error.e2e.ts new file mode 100644 index 0000000000..c9b668c746 --- /dev/null +++ b/e2e/core/login/login-sso/login-sso-error.e2e.ts @@ -0,0 +1,43 @@ +/*! + * @license + * Copyright 2019 Alfresco Software, Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { LoginSSOPage, SettingsPage } from '@alfresco/adf-testing'; +import { browser } from 'protractor'; + +describe('Login component - SSO', () => { + + const settingsPage = new SettingsPage(); + const loginSSOPage = new LoginSSOPage(); + + describe('SSO Login Error for login component', () => { + + afterEach(async () => { + await browser.executeScript('window.sessionStorage.clear();'); + await browser.executeScript('window.localStorage.clear();'); + }); + + it('[C299205] Should display the login error message when the SSO identity service is wrongly configured', async () => { + await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host, + 'http://aps22/auth/realms/alfresco', + browser.params.testConfig.adf.hostIdentity, false, true, browser.params.config.oauth2.clientId); + await loginSSOPage.clickOnSSOButton(); + await loginSSOPage.checkLoginErrorIsDisplayed(); + expect(loginSSOPage.getLoginErrorMessage()).toContain('SSO Authentication server unreachable'); + }); + }); + +}); diff --git a/e2e/core/login/login-sso/login-sso.e2e.ts b/e2e/core/login/login-sso/login-sso.e2e.ts index 0c06f1f72f..c17c891641 100644 --- a/e2e/core/login/login-sso/login-sso.e2e.ts +++ b/e2e/core/login/login-sso/login-sso.e2e.ts @@ -29,65 +29,39 @@ describe('Login component - SSO', () => { const silentLogin = false; let implicitFlow; - describe('Login component - SSO implicit Flow', () => { + it('[C280665] Should be possible change the logout redirect URL', async () => { + await settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url, + browser.params.testConfig.adf.hostSso, + browser.params.testConfig.adf.hostIdentity, false, true, browser.params.config.oauth2.clientId, '/login'); + await loginSSOPage.clickOnSSOButton(); + await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); + await navigationBarPage.clickLogoutButton(); - afterEach(() => { - navigationBarPage.clickLogoutButton(); - browser.executeScript('window.sessionStorage.clear();'); - browser.executeScript('window.localStorage.clear();'); - }); + browser.sleep(2000); - it('[C261050] Should be possible login with SSO', () => { - settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url, - browser.params.testConfig.adf.hostSso, - browser.params.testConfig.adf.hostIdentity, false, true, browser.params.config.oauth2.clientId); - loginSSOPage.clickOnSSOButton(); - loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); - }); - - it('[C280667] Should be redirect directly to keycloak without show the login page with silent login', () => { - settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url, - browser.params.testConfig.adf.hostSso, - browser.params.testConfig.adf.hostIdentity, true, true, browser.params.config.oauth2.clientId); - loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); - }); - }); - - describe('SSO Login Error for login component', () => { - - afterEach(() => { - browser.executeScript('window.sessionStorage.clear();'); - browser.executeScript('window.localStorage.clear();'); - }); - - it('[C299205] Should display the login error message when the SSO identity service is wrongly configured', () => { - settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url, - 'http://aps22/auth/realms/alfresco', - browser.params.testConfig.adf.hostIdentity, false, true, browser.params.config.oauth2.clientId); - loginSSOPage.clickOnSSOButton(); - loginSSOPage.checkLoginErrorIsDisplayed(); - expect(loginSSOPage.getLoginErrorMessage()).toContain('SSO Authentication server unreachable'); + browser.getCurrentUrl().then((actualUrl) => { + expect(actualUrl).toEqual(browser.params.testConfig.adf.url + '/login'); }); }); describe('Login component - SSO Grant type password (implicit flow false)', () => { - it('[C299158] Should be possible to login with SSO, with grant type password (Implicit Flow false)', () => { + it('[C299158] Should be possible to login with SSO, with grant type password (Implicit Flow false)', async () => { implicitFlow = false; - settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url, + await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host, browser.params.testConfig.adf.hostSso, browser.params.testConfig.adf.hostIdentity, silentLogin, implicitFlow, browser.params.config.oauth2.clientId); - loginPage.waitForElements(); + await loginPage.waitForElements(); - settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url, + await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host, browser.params.testConfig.adf.hostSso, browser.params.testConfig.adf.hostIdentity, silentLogin, implicitFlow, browser.params.config.oauth2.clientId); browser.ignoreSynchronization = true; - loginPage.enterUsername(browser.params.testConfig.adf.adminEmail); - loginPage.enterPassword(browser.params.testConfig.adf.adminPassword); - loginPage.clickSignInButton(); + await loginPage.enterUsername(browser.params.testConfig.adf.adminEmail); + await loginPage.enterPassword(browser.params.testConfig.adf.adminPassword); + await loginPage.clickSignInButton(); let isDisplayed = false; @@ -105,17 +79,29 @@ describe('Login component - SSO', () => { }); }); - it('[C280665] Should be possible change the logout redirect URL', () => { - settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url, - browser.params.testConfig.adf.hostSso, - browser.params.testConfig.adf.hostIdentity, false, true, browser.params.config.oauth2.clientId, '/login'); - loginSSOPage.clickOnSSOButton(); - loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); - navigationBarPage.clickLogoutButton(); + describe('Login component - SSO implicit Flow', () => { - browser.getCurrentUrl().then((actualUrl) => { - expect(actualUrl).toEqual(browser.params.testConfig.adf.url + '/login'); + afterEach(() => { + navigationBarPage.clickLogoutButton(); + browser.executeScript('window.sessionStorage.clear();'); + browser.executeScript('window.localStorage.clear();'); + }); + + it('[C261050] Should be possible login with SSO', async () => { + await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host, + browser.params.testConfig.adf.hostSso, + browser.params.testConfig.adf.hostIdentity, false, true, browser.params.config.oauth2.clientId); + await loginSSOPage.clickOnSSOButton(); + await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); + }); + + it('[C280667] Should be redirect directly to keycloak without show the login page with silent login', async () => { + await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host, + browser.params.testConfig.adf.hostSso, + browser.params.testConfig.adf.hostIdentity, true, true, browser.params.config.oauth2.clientId); + await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); }); }); + }); diff --git a/e2e/core/login/redirection.e2e.ts b/e2e/core/login/redirection.e2e.ts index f8bdf1378e..4e8cdff225 100644 --- a/e2e/core/login/redirection.e2e.ts +++ b/e2e/core/login/redirection.e2e.ts @@ -42,8 +42,8 @@ describe('Login component - Redirect', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url, - hostBpm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host, + hostBpm: browser.params.testConfig.adf_aps.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); const logoutPage = new LogoutPage(); diff --git a/e2e/core/pagination-empty-current-page.e2e.ts b/e2e/core/pagination-empty-current-page.e2e.ts index 4ddb108202..7ff27bbeb3 100644 --- a/e2e/core/pagination-empty-current-page.e2e.ts +++ b/e2e/core/pagination-empty-current-page.e2e.ts @@ -30,6 +30,7 @@ import { UploadActions } from '@alfresco/adf-testing'; import { Util } from '../util/util'; import resources = require('../util/resources'); import { browser } from 'protractor'; +import { NavigationBarPage } from '../pages/adf/navigationBarPage'; describe('Pagination - returns to previous page when current is empty', () => { @@ -37,6 +38,7 @@ describe('Pagination - returns to previous page when current is empty', () => { const contentServicesPage = new ContentServicesPage(); const paginationPage = new PaginationPage(); const viewerPage = new ViewerPage(); + const navigationBarPage = new NavigationBarPage(); const acsUser = new AcsUserModel(); const folderModel = new FolderModel({ 'name': 'folderOne' }); @@ -68,7 +70,7 @@ describe('Pagination - returns to previous page when current is empty', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -101,6 +103,10 @@ describe('Pagination - returns to previous page when current is empty', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + it('[C274710] Should redirect to previous page when current is emptied', () => { contentServicesPage.doubleClickRow(folderModel.name); contentServicesPage.checkAcsContainer(); diff --git a/e2e/core/settings-component.e2e.ts b/e2e/core/settings-component.e2e.ts index 6a1e113a17..4900537f27 100644 --- a/e2e/core/settings-component.e2e.ts +++ b/e2e/core/settings-component.e2e.ts @@ -56,8 +56,8 @@ describe('Settings component', () => { loginPage.waitForElements(); settingsPage.goToSettingsPage(); expect(settingsPage.getSelectedOptionText()).toEqual('ALL', 'The Settings changes are not saved'); - expect(settingsPage.getBpmHostUrl()).toEqual(browser.params.testConfig.adf.url, 'The BPM Settings changes are not saved'); - expect(settingsPage.getEcmHostUrl()).toEqual(browser.params.testConfig.adf.url, 'The ECM Settings changes are not saved'); + expect(settingsPage.getBpmHostUrl()).toEqual(browser.params.testConfig.adf_aps.host, 'The BPM Settings changes are not saved'); + expect(settingsPage.getEcmHostUrl()).toEqual(browser.params.testConfig.adf_acs.host, 'The ECM Settings changes are not saved'); }); @@ -104,8 +104,8 @@ describe('Settings component', () => { beforeAll( (done) => { settingsPage.goToSettingsPage(); settingsPage.setProvider(settingsPage.getEcmAndBpmOption(), 'ALL'); - settingsPage.setContentServicesURL(browser.params.testConfig.adf.url); - settingsPage.setProcessServicesURL(browser.params.testConfig.adf.url); + settingsPage.setContentServicesURL(browser.params.testConfig.adf_acs.host); + settingsPage.setProcessServicesURL(browser.params.testConfig.adf_aps.host); settingsPage.clickApply(); done(); }); @@ -121,8 +121,8 @@ describe('Settings component', () => { settingsPage.checkProviderOptions(); settingsPage.checkBasicAuthRadioIsSelected(); settingsPage.checkSsoRadioIsNotSelected(); - expect(settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf.url); - expect(settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf.url); + expect(settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host); + expect(settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host); expect(settingsPage.getBackButton().isEnabled()).toBe(true); expect(settingsPage.getApplyButton().isEnabled()).toBe(true); loginPage.goToLoginPage(); @@ -145,7 +145,7 @@ describe('Settings component', () => { expect(settingsPage.getSelectedOptionText()).toBe('BPM'); settingsPage.checkBasicAuthRadioIsSelected(); settingsPage.checkSsoRadioIsNotSelected(); - expect(settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf.url); + expect(settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host); expect(settingsPage.getBackButton().isEnabled()).toBe(true); expect(settingsPage.getApplyButton().isEnabled()).toBe(true); settingsPage.clickBackButton(); @@ -172,7 +172,7 @@ describe('Settings component', () => { expect(settingsPage.getSelectedOptionText()).toBe('ECM'); settingsPage.checkBasicAuthRadioIsSelected(); settingsPage.checkSsoRadioIsNotSelected(); - expect(settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf.url); + expect(settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host); expect(settingsPage.getBackButton().isEnabled()).toBe(true); expect(settingsPage.getApplyButton().isEnabled()).toBe(true); settingsPage.clickBackButton(); @@ -201,8 +201,8 @@ describe('Settings component', () => { expect(settingsPage.getSelectedOptionText()).toBe('ALL'); settingsPage.checkBasicAuthRadioIsSelected(); settingsPage.checkSsoRadioIsNotSelected(); - expect(settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf.url); - expect(settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf.url); + expect(settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host); + expect(settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host); expect(settingsPage.getBackButton().isEnabled()).toBe(true); expect(settingsPage.getApplyButton().isEnabled()).toBe(true); settingsPage.clickBackButton(); diff --git a/e2e/core/user-info-component.e2e.ts b/e2e/core/user-info-component.e2e.ts index 7e7905c623..0cb7f5e5d8 100644 --- a/e2e/core/user-info-component.e2e.ts +++ b/e2e/core/user-info-component.e2e.ts @@ -28,12 +28,15 @@ import resources = require('../util/resources'); import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; import { UsersActions } from '../actions/users.actions'; +import { NavigationBarPage } from '../pages/adf/navigationBarPage'; describe('User Info component', () => { const loginPage = new LoginPage(); const userInfoPage = new UserInfoPage(); let processUserModel, contentUserModel; + const navigationBarPage = new NavigationBarPage(); + const acsAvatarFileModel = new FileModel({ 'name': resources.Files.PROFILE_IMAGES.ECM.file_name, 'location': resources.Files.PROFILE_IMAGES.ECM.file_location @@ -48,8 +51,8 @@ describe('User Info component', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ALL', - hostEcm: browser.params.testConfig.adf.url, - hostBpm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host, + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -69,6 +72,10 @@ describe('User Info component', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + it('[C260111] Should display UserInfo when Process Services and Content Services are enabled', async () => { await loginPage.loginToAllUsingUserModel(contentUserModel); diff --git a/e2e/core/viewer/file-extensions/viewer-arcive.component.e2e.ts b/e2e/core/viewer/file-extensions/viewer-arcive.component.e2e.ts index 86e801b7da..1cfd2d7943 100644 --- a/e2e/core/viewer/file-extensions/viewer-arcive.component.e2e.ts +++ b/e2e/core/viewer/file-extensions/viewer-arcive.component.e2e.ts @@ -25,17 +25,20 @@ import resources = require('../../../util/resources'); import { FolderModel } from '../../../models/ACS/folderModel'; import { AcsUserModel } from '../../../models/ACS/acsUserModel'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; +import { NavigationBarPage } from '../../../pages/adf/navigationBarPage'; describe('Viewer', () => { const viewerPage = new ViewerPage(); const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); + const navigationBarPage = new NavigationBarPage(); + let site; const acsUser = new AcsUserModel(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -64,6 +67,10 @@ describe('Viewer', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + describe('Archive Folder Uploaded', () => { let uploadedArchives; let archiveFolderUploaded; diff --git a/e2e/core/viewer/file-extensions/viewer-component.e2e.ts b/e2e/core/viewer/file-extensions/viewer-component.e2e.ts index a4e5d8f824..af51099397 100644 --- a/e2e/core/viewer/file-extensions/viewer-component.e2e.ts +++ b/e2e/core/viewer/file-extensions/viewer-component.e2e.ts @@ -30,12 +30,13 @@ import { NavigationBarPage } from '../../..//pages/adf/navigationBarPage'; describe('Viewer', () => { const viewerPage = new ViewerPage(); - const navigationBarPage = new NavigationBarPage(); const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); + const navigationBarPage = new NavigationBarPage(); + this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); let site; @@ -72,6 +73,10 @@ describe('Viewer', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + it('[C272813] Should be redirected to site when opening and closing a file in a site', async () => { await loginPage.loginToContentServicesUsingUserModel(acsUser); diff --git a/e2e/core/viewer/file-extensions/viewer-excel.component.e2e.ts b/e2e/core/viewer/file-extensions/viewer-excel.component.e2e.ts index 2053362b92..d760b79953 100644 --- a/e2e/core/viewer/file-extensions/viewer-excel.component.e2e.ts +++ b/e2e/core/viewer/file-extensions/viewer-excel.component.e2e.ts @@ -24,12 +24,15 @@ import resources = require('../../../util/resources'); import { FolderModel } from '../../../models/ACS/folderModel'; import { AcsUserModel } from '../../../models/ACS/acsUserModel'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; +import { NavigationBarPage } from '../../../pages/adf/navigationBarPage'; describe('Viewer', () => { const viewerPage = new ViewerPage(); const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); + const navigationBarPage = new NavigationBarPage(); + let site; const acsUser = new AcsUserModel(); @@ -39,7 +42,7 @@ describe('Viewer', () => { }); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -61,6 +64,11 @@ describe('Viewer', () => { done(); }); + + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + describe('Excel Folder Uploaded', () => { let uploadedExcels; @@ -92,7 +100,7 @@ describe('Viewer', () => { viewerPage.clickCloseButton(); } }); - }); + }, 5 * 60 * 1000); }); diff --git a/e2e/core/viewer/file-extensions/viewer-image.component.e2e.ts b/e2e/core/viewer/file-extensions/viewer-image.component.e2e.ts index e78186fd08..f6b1a15a87 100644 --- a/e2e/core/viewer/file-extensions/viewer-image.component.e2e.ts +++ b/e2e/core/viewer/file-extensions/viewer-image.component.e2e.ts @@ -24,15 +24,18 @@ import resources = require('../../../util/resources'); import { FolderModel } from '../../../models/ACS/folderModel'; import { AcsUserModel } from '../../../models/ACS/acsUserModel'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; +import { NavigationBarPage } from '../../../pages/adf/navigationBarPage'; describe('Viewer', () => { const viewerPage = new ViewerPage(); const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); + const navigationBarPage = new NavigationBarPage(); + this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); let site; @@ -67,6 +70,10 @@ describe('Viewer', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + describe('Image Folder Uploaded', () => { let uploadedImages, uploadedImgRenditionFolderInfo; @@ -112,7 +119,7 @@ describe('Viewer', () => { viewerPage.clickCloseButton(); } }); - }); + }, 5 * 60 * 1000); }); diff --git a/e2e/core/viewer/file-extensions/viewer-powerpoint.component.e2e.ts b/e2e/core/viewer/file-extensions/viewer-powerpoint.component.e2e.ts index 7092b0a44c..db9995caf0 100644 --- a/e2e/core/viewer/file-extensions/viewer-powerpoint.component.e2e.ts +++ b/e2e/core/viewer/file-extensions/viewer-powerpoint.component.e2e.ts @@ -24,15 +24,18 @@ import { FolderModel } from '../../../models/ACS/folderModel'; import { AcsUserModel } from '../../../models/ACS/acsUserModel'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; import { browser } from 'protractor'; +import { NavigationBarPage } from '../../../pages/adf/navigationBarPage'; describe('Viewer', () => { const viewerPage = new ViewerPage(); const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); + const navigationBarPage = new NavigationBarPage(); + this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -63,6 +66,10 @@ describe('Viewer', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + describe('PowerPoint Folder Uploaded', () => { let uploadedPpt; @@ -94,7 +101,7 @@ describe('Viewer', () => { viewerPage.clickCloseButton(); } }); - }); + }, 5 * 60 * 1000); }); diff --git a/e2e/core/viewer/file-extensions/viewer-text.component.e2e.ts b/e2e/core/viewer/file-extensions/viewer-text.component.e2e.ts index cdd33466ec..bfa2b7f34e 100644 --- a/e2e/core/viewer/file-extensions/viewer-text.component.e2e.ts +++ b/e2e/core/viewer/file-extensions/viewer-text.component.e2e.ts @@ -24,15 +24,18 @@ import resources = require('../../../util/resources'); import { FolderModel } from '../../../models/ACS/folderModel'; import { AcsUserModel } from '../../../models/ACS/acsUserModel'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; +import { NavigationBarPage } from '../../../pages/adf/navigationBarPage'; describe('Viewer', () => { const viewerPage = new ViewerPage(); const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); + const navigationBarPage = new NavigationBarPage(); + this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); let site; @@ -62,6 +65,10 @@ describe('Viewer', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + describe('Text Folder Uploaded', () => { let uploadedTexts; diff --git a/e2e/core/viewer/file-extensions/viewer-word.component.e2e.ts b/e2e/core/viewer/file-extensions/viewer-word.component.e2e.ts index 03339f361a..e07443245c 100644 --- a/e2e/core/viewer/file-extensions/viewer-word.component.e2e.ts +++ b/e2e/core/viewer/file-extensions/viewer-word.component.e2e.ts @@ -24,15 +24,18 @@ import resources = require('../../../util/resources'); import { FolderModel } from '../../../models/ACS/folderModel'; import { AcsUserModel } from '../../../models/ACS/acsUserModel'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; +import { NavigationBarPage } from '../../../pages/adf/navigationBarPage'; describe('Viewer', () => { const viewerPage = new ViewerPage(); const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); + const navigationBarPage = new NavigationBarPage(); + this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); let site; @@ -62,6 +65,10 @@ describe('Viewer', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + describe('Word Folder Uploaded', () => { let uploadedWords; diff --git a/e2e/core/viewer/info-drawer.component.e2e.ts b/e2e/core/viewer/info-drawer.component.e2e.ts index 7138379f08..5e4596c347 100644 --- a/e2e/core/viewer/info-drawer.component.e2e.ts +++ b/e2e/core/viewer/info-drawer.component.e2e.ts @@ -34,7 +34,7 @@ describe('Info Drawer', () => { const contentServicesPage = new ContentServicesPage(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); let site; @@ -79,6 +79,10 @@ describe('Info Drawer', () => { contentServicesPage.checkAcsContainer(); }); + afterEach(async () => { + await navigationBarPage.clickLogoutButton(); + }); + it('[C277251] Should display the icon when the icon property is defined', () => { viewerPage.viewFile(pngFileUploaded.entry.name); viewerPage.clickLeftSidebarButton(); diff --git a/e2e/core/viewer/viewer-content-services-component.e2e.ts b/e2e/core/viewer/viewer-content-services-component.e2e.ts index 0361605c02..48183c1728 100644 --- a/e2e/core/viewer/viewer-content-services-component.e2e.ts +++ b/e2e/core/viewer/viewer-content-services-component.e2e.ts @@ -24,12 +24,15 @@ import resources = require('../../util/resources'); import { FileModel } from '../../models/ACS/fileModel'; import { AcsUserModel } from '../../models/ACS/acsUserModel'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; +import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; describe('Content Services Viewer', () => { const acsUser = new AcsUserModel(); const viewerPage = new ViewerPage(); const contentServicesPage = new ContentServicesPage(); const loginPage = new LoginPage(); + const navigationBarPage = new NavigationBarPage(); + let zoom; const pdfFile = new FileModel({ @@ -70,7 +73,7 @@ describe('Content Services Viewer', () => { }); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -111,7 +114,6 @@ describe('Content Services Viewer', () => { }); afterAll(async (done) => { - await uploadActions.deleteFileOrFolder(pdfFile.getId()); await uploadActions.deleteFileOrFolder(protectedFile.getId()); await uploadActions.deleteFileOrFolder(docxFile.getId()); @@ -119,6 +121,7 @@ describe('Content Services Viewer', () => { await uploadActions.deleteFileOrFolder(mp4File.getId()); await uploadActions.deleteFileOrFolder(pptFile.getId()); await uploadActions.deleteFileOrFolder(unsupportedFile.getId()); + await navigationBarPage.clickLogoutButton(); done(); }); diff --git a/e2e/core/viewer/viewer-custom-toolbar-info-drawer.e2e.ts b/e2e/core/viewer/viewer-custom-toolbar-info-drawer.e2e.ts index a68194dfe6..777b6fd7ef 100644 --- a/e2e/core/viewer/viewer-custom-toolbar-info-drawer.e2e.ts +++ b/e2e/core/viewer/viewer-custom-toolbar-info-drawer.e2e.ts @@ -23,15 +23,17 @@ import resources = require('../../util/resources'); import { FileModel } from '../../models/ACS/fileModel'; import { AcsUserModel } from '../../models/ACS/acsUserModel'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; +import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; describe('Viewer', () => { + const navigationBarPage = new NavigationBarPage(); const viewerPage = new ViewerPage(); const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); const acsUser = new AcsUserModel(); @@ -57,6 +59,7 @@ describe('Viewer', () => { afterAll(async (done) => { await uploadActions.deleteFileOrFolder(txtFileUploaded.entry.id); + await navigationBarPage.clickLogoutButton(); done(); }); diff --git a/e2e/core/viewer/viewer-extension.e2e.ts b/e2e/core/viewer/viewer-extension.e2e.ts index ecf5e57248..349987dd4f 100644 --- a/e2e/core/viewer/viewer-extension.e2e.ts +++ b/e2e/core/viewer/viewer-extension.e2e.ts @@ -35,7 +35,7 @@ describe('Viewer', () => { const contentServicesPage = new ContentServicesPage(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); let site; @@ -75,6 +75,7 @@ describe('Viewer', () => { afterAll(async (done) => { await this.alfrescoJsApi.login(acsUser.id, acsUser.password); await uploadActions.deleteFileOrFolder(jsFileUploaded.entry.id); + await navigationBarPage.clickLogoutButton(); done(); }); diff --git a/e2e/core/viewer/viewer-properties.e2e.ts b/e2e/core/viewer/viewer-properties.e2e.ts index 26b76ad8e4..97829f30b4 100644 --- a/e2e/core/viewer/viewer-properties.e2e.ts +++ b/e2e/core/viewer/viewer-properties.e2e.ts @@ -45,7 +45,7 @@ describe('Viewer - properties', () => { }); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -78,6 +78,7 @@ describe('Viewer - properties', () => { afterAll(async (done) => { await uploadActions.deleteFileOrFolder(pngFile.getId()); + await navigationBarPage.clickLogoutButton(); done(); }); diff --git a/e2e/core/viewer/viewer-share-content.ts b/e2e/core/viewer/viewer-share-content.ts index aefc8cbbad..5d9554040e 100644 --- a/e2e/core/viewer/viewer-share-content.ts +++ b/e2e/core/viewer/viewer-share-content.ts @@ -35,7 +35,7 @@ describe('Viewer', () => { const contentServicesPage = new ContentServicesPage(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); let site; @@ -86,6 +86,7 @@ describe('Viewer', () => { afterAll(async (done) => { await this.alfrescoJsApi.login(acsUser.id, acsUser.password); await uploadActions.deleteFileOrFolder(wordFileUploaded.entry.id); + await navigationBarPage.clickLogoutButton(); done(); }); diff --git a/e2e/insights/analytics-component.e2e.ts b/e2e/insights/analytics-component.e2e.ts index 8cce0e016d..346f954515 100644 --- a/e2e/insights/analytics-component.e2e.ts +++ b/e2e/insights/analytics-component.e2e.ts @@ -39,7 +39,7 @@ describe('Analytics Smoke Test', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/lite-server-proxy.js b/e2e/lite-server-proxy.js index d5b28e43c1..3559064f54 100644 --- a/e2e/lite-server-proxy.js +++ b/e2e/lite-server-proxy.js @@ -1,9 +1,3 @@ -var PROXY_HOST_ADF = process.env.PROXY_HOST_ADF; -var HOST = process.env.URL_HOST_ADF; - -let proxy = require('http-proxy-middleware'); - -let targetProxy = (PROXY_HOST_ADF || HOST); let fallback = require('connect-history-api-fallback'); module.exports = { @@ -12,21 +6,7 @@ module.exports = { open: false, server: { middleware: { - 1: proxy('/alfresco', { - "target": targetProxy, - changeOrigin: true, - pathRewrite: { - "^/alfresco/alfresco": "" - } - }), - 2: proxy('/activiti-app', { - "target": targetProxy, - changeOrigin: true, - "pathRewrite": { - "^/activiti-app/activiti-app": "" - } - }), - 3: fallback({index: '/index.html', verbose: true}) + 1: fallback({index: '/index.html', verbose: true}) } } }; diff --git a/e2e/pages/adf/demo-shell/process-services/processCloudDemoPage.ts b/e2e/pages/adf/demo-shell/process-services/processCloudDemoPage.ts index 9c6cee16e2..22ebeba01c 100644 --- a/e2e/pages/adf/demo-shell/process-services/processCloudDemoPage.ts +++ b/e2e/pages/adf/demo-shell/process-services/processCloudDemoPage.ts @@ -68,7 +68,6 @@ export class ProcessCloudDemoPage { } getActiveFilterName() { - BrowserVisibility.waitUntilElementIsVisible(this.activeFilter); return BrowserActions.getText(this.activeFilter); } diff --git a/e2e/pages/adf/demo-shell/process-services/tasksCloudDemoPage.ts b/e2e/pages/adf/demo-shell/process-services/tasksCloudDemoPage.ts index 8d7ff342af..f4ed0a4afa 100644 --- a/e2e/pages/adf/demo-shell/process-services/tasksCloudDemoPage.ts +++ b/e2e/pages/adf/demo-shell/process-services/tasksCloudDemoPage.ts @@ -100,7 +100,7 @@ export class TasksCloudDemoPage { openNewTaskForm() { BrowserActions.click(this.createButton); - BrowserActions.click(this.newTaskButton); + BrowserActions.clickExecuteScript('button[data-automation-id="btn-start-task"]'); return this; } diff --git a/e2e/pages/adf/navigationBarPage.ts b/e2e/pages/adf/navigationBarPage.ts index bd345afea7..7cec24967e 100644 --- a/e2e/pages/adf/navigationBarPage.ts +++ b/e2e/pages/adf/navigationBarPage.ts @@ -135,7 +135,7 @@ export class NavigationBarPage { async clickLogoutButton() { BrowserActions.closeMenuAndDialogs(); - BrowserActions.click(this.logoutButton); + BrowserActions.clickExecuteScript('.adf-sidenav-link[adf-logout]'); } async clickCardViewButton() { diff --git a/e2e/process-services-cloud/apps-section-cloud.e2e.ts b/e2e/process-services-cloud/apps-section-cloud.e2e.ts index c9eb37b9cc..465f1e61db 100644 --- a/e2e/process-services-cloud/apps-section-cloud.e2e.ts +++ b/e2e/process-services-cloud/apps-section-cloud.e2e.ts @@ -43,7 +43,7 @@ describe('Applications list', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); await apiService.login(testUser.email, testUser.password); applicationsService = new ApplicationsService(apiService); applications = await applicationsService.getApplicationsByStatus('RUNNING'); diff --git a/e2e/process-services-cloud/edit-process-filters-component.e2e.ts b/e2e/process-services-cloud/edit-process-filters-component.e2e.ts index 50d79e9a85..6af8babdfe 100644 --- a/e2e/process-services-cloud/edit-process-filters-component.e2e.ts +++ b/e2e/process-services-cloud/edit-process-filters-component.e2e.ts @@ -51,7 +51,7 @@ describe('Edit process filters cloud', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }); @@ -95,6 +95,8 @@ describe('Edit process filters cloud', () => { processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton(); processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New').clickOnSaveButton(); + browser.driver.sleep(1000); + expect(processCloudDemoPage.getActiveFilterName()).toBe('New'); processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader(); expect(processCloudDemoPage.editProcessFilterCloudComponent().checkSaveButtonIsEnabled()).toEqual(false); @@ -114,6 +116,9 @@ describe('Edit process filters cloud', () => { processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id'); processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton(); processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New').clickOnSaveButton(); + + browser.driver.sleep(1000); + processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().checkCustomiseFilterHeaderIsExpanded(); expect(processCloudDemoPage.getActiveFilterName()).toBe('New'); expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id'); @@ -121,9 +126,15 @@ describe('Edit process filters cloud', () => { expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name'); processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton().setFilterName('New').clickOnSaveButton(); processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().checkCustomiseFilterHeaderIsExpanded(); + + browser.driver.sleep(1000); + expect(processCloudDemoPage.getActiveFilterName()).toBe('New'); expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name'); processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton(); + + browser.driver.sleep(1000); + processCloudDemoPage.customProcessFilter('custom-new').clickProcessFilter(); processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().checkCustomiseFilterHeaderIsExpanded(); expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id'); @@ -137,6 +148,9 @@ describe('Edit process filters cloud', () => { processCloudDemoPage.allProcessesFilter().checkProcessFilterIsDisplayed(); processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton(); processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New').clickOnSaveButton(); + + browser.driver.sleep(1000); + expect(processCloudDemoPage.getActiveFilterName()).toBe('New'); processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().checkCustomiseFilterHeaderIsExpanded(); expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id'); @@ -144,6 +158,9 @@ describe('Edit process filters cloud', () => { expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name'); processCloudDemoPage.editProcessFilterCloudComponent().clickSaveButton(); processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().checkCustomiseFilterHeaderIsExpanded(); + + browser.driver.sleep(1000); + expect(processCloudDemoPage.getActiveFilterName()).toBe('New'); expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name'); processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton(); @@ -156,10 +173,17 @@ describe('Edit process filters cloud', () => { processCloudDemoPage.allProcessesFilter().checkProcessFilterIsDisplayed(); processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton(); processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New').clickOnSaveButton(); + + browser.driver.sleep(1000); + processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader(); expect(processCloudDemoPage.getActiveFilterName()).toBe('New'); + expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id'); processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton(); + + browser.driver.sleep(1000); + expect(processCloudDemoPage.getActiveFilterName()).toBe('All Processes'); processCloudDemoPage.customProcessFilter('New').checkProcessFilterNotDisplayed(); }); diff --git a/e2e/process-services-cloud/edit-task-filters-component.e2e.ts b/e2e/process-services-cloud/edit-task-filters-component.e2e.ts index b94c50c038..19c30632c2 100644 --- a/e2e/process-services-cloud/edit-task-filters-component.e2e.ts +++ b/e2e/process-services-cloud/edit-task-filters-component.e2e.ts @@ -57,7 +57,7 @@ describe('Edit task filters cloud', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }); @@ -119,6 +119,7 @@ describe('Edit task filters cloud', () => { tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton(); tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('New').clickOnSaveButton(); + browser.driver.sleep(1000); expect(tasksCloudDemoPage.getActiveFilterName()).toBe('New'); tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader(); expect(tasksCloudDemoPage.editTaskFilterCloudComponent().checkSaveButtonIsEnabled()).toEqual(false); @@ -139,18 +140,22 @@ describe('Edit task filters cloud', () => { tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton(); tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('New').clickOnSaveButton(); + + browser.driver.sleep(1000); expect(tasksCloudDemoPage.getActiveFilterName()).toBe('New'); tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader(); expect(tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id'); tasksCloudDemoPage.editTaskFilterCloudComponent().setSortFilterDropDown('Priority'); tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton(); tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('New').clickOnSaveButton(); + + browser.driver.sleep(1000); expect(tasksCloudDemoPage.getActiveFilterName()).toBe('New'); tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader(); expect(tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Priority'); tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton(); tasksCloudDemoPage.customTaskFilter('custom-new').clickTaskFilter(); - tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsNotDisplayed(); + browser.driver.sleep(1000); tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader(); expect(tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id'); tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton(); @@ -162,12 +167,16 @@ describe('Edit task filters cloud', () => { tasksCloudDemoPage.myTasksFilter().checkTaskFilterIsDisplayed(); tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton(); tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('New').clickOnSaveButton(); + + browser.driver.sleep(1000); expect(tasksCloudDemoPage.getActiveFilterName()).toBe('New'); tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader(); expect(tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id'); tasksCloudDemoPage.editTaskFilterCloudComponent().setSortFilterDropDown('Name'); tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveButton(); tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader(); + + browser.driver.sleep(1000); expect(tasksCloudDemoPage.getActiveFilterName()).toBe('New'); expect(tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name'); tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton(); @@ -179,10 +188,16 @@ describe('Edit task filters cloud', () => { tasksCloudDemoPage.myTasksFilter().checkTaskFilterIsDisplayed(); tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton(); tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('New').clickOnSaveButton(); + + browser.driver.sleep(1000); + expect(tasksCloudDemoPage.getActiveFilterName()).toBe('New'); tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader(); expect(tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id'); tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton(); + + browser.driver.sleep(1000); + expect(tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks'); tasksCloudDemoPage.customTaskFilter('New').checkTaskFilterNotDisplayed(); }); diff --git a/e2e/process-services-cloud/form-field/dropdown-widget.e2e.ts b/e2e/process-services-cloud/form-field/dropdown-widget.e2e.ts index 7d6e97423d..be21a04dd6 100644 --- a/e2e/process-services-cloud/form-field/dropdown-widget.e2e.ts +++ b/e2e/process-services-cloud/form-field/dropdown-widget.e2e.ts @@ -82,7 +82,7 @@ describe('Form Field Component - Dropdown Widget', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }); diff --git a/e2e/process-services-cloud/form-field/visibility-condition.e2e.ts b/e2e/process-services-cloud/form-field/visibility-condition.e2e.ts index 726f0a792f..1073e31b0b 100644 --- a/e2e/process-services-cloud/form-field/visibility-condition.e2e.ts +++ b/e2e/process-services-cloud/form-field/visibility-condition.e2e.ts @@ -15,24 +15,24 @@ * limitations under the License. */ -import { LoginPage, Widget } from '@alfresco/adf-testing'; +import { LoginSSOPage, SettingsPage, Widget } from '@alfresco/adf-testing'; import { browser } from 'protractor'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; -import { UsersActions } from '../../actions/users.actions'; import { FormCloudDemoPage } from '../../pages/adf/demo-shell/process-services-cloud/cloudFormDemoPage'; import { checkboxVisibilityForm } from '../../resources/forms/checkbox-visibility-condition'; describe('Visibility conditions - cloud', () => { - const loginPage = new LoginPage(); + const settingsPage = new SettingsPage(); + const loginSSOPage = new LoginSSOPage(); + const navigationBarPage = new NavigationBarPage(); const formCloudDemoPage = new FormCloudDemoPage(); const checkboxVisibilityFormJson = JSON.parse(checkboxVisibilityForm); const widget = new Widget(); - let tenantId, user; let visibleCheckbox; const widgets = { @@ -46,7 +46,7 @@ describe('Visibility conditions - cloud', () => { }; const checkbox = { - checkboxFieldValue : 'CheckboxFieldValue', + checkboxFieldValue: 'CheckboxFieldValue', checkboxVariableField: 'CheckboxVariableField', checkboxFieldVariable: 'CheckboxFieldVariable', checkboxFieldField: 'CheckboxFieldField', @@ -57,20 +57,14 @@ describe('Visibility conditions - cloud', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); - const users = new UsersActions(); - - await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); - - user = await users.createTenantAndUser(this.alfrescoJsApi); - - tenantId = user.tenantId; - - await this.alfrescoJsApi.login(user.email, user.password); - - await loginPage.loginToProcessServicesUsingUserModel(user); + await settingsPage.setProviderBpmSso( + browser.params.config.bpmHost, + browser.params.config.oauth2.host, + browser.params.config.identityHost); + await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); navigationBarPage.clickFormCloudButton(); @@ -79,12 +73,6 @@ describe('Visibility conditions - cloud', () => { done(); }); - afterAll(async (done) => { - await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); - await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId); - done(); - }); - it('[C309647] Should be able to see Checkbox widget when visibility condition refers to another field with specific value', () => { widget.textWidget().isWidgetVisible(widgets.textOneId); diff --git a/e2e/process-services-cloud/people-group-cloud-component.e2e.ts b/e2e/process-services-cloud/people-group-cloud-component.e2e.ts index fd89a50d9a..bf69634306 100644 --- a/e2e/process-services-cloud/people-group-cloud-component.e2e.ts +++ b/e2e/process-services-cloud/people-group-cloud-component.e2e.ts @@ -91,7 +91,7 @@ describe('People Groups Cloud Component', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }); diff --git a/e2e/process-services-cloud/people-group-cloud-filter-component.e2e.ts b/e2e/process-services-cloud/people-group-cloud-filter-component.e2e.ts index 97eec803f5..ffeacbb601 100644 --- a/e2e/process-services-cloud/people-group-cloud-filter-component.e2e.ts +++ b/e2e/process-services-cloud/people-group-cloud-filter-component.e2e.ts @@ -77,8 +77,8 @@ describe('People Groups Cloud Component', () => { await groupIdentityService.assignRole(groupActiviti.id, activitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN); groupNoRole = await groupIdentityService.createIdentityGroup(); - await groupIdentityService.addClientRole(groupAps.id, clientId, clientActivitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN ); - await groupIdentityService.addClientRole(groupActiviti.id, clientId, clientActivitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN ); + await groupIdentityService.addClientRole(groupAps.id, clientId, clientActivitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN); + await groupIdentityService.addClientRole(groupActiviti.id, clientId, clientActivitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN); users = [`${apsUser.idIdentityService}`, `${activitiUser.idIdentityService}`, `${noRoleUser.idIdentityService}`, `${testUser.idIdentityService}`]; groups = [`${groupAps.id}`, `${groupActiviti.id}`, `${groupNoRole.id}`]; @@ -86,7 +86,7 @@ describe('People Groups Cloud Component', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }); @@ -102,6 +102,7 @@ describe('People Groups Cloud Component', () => { await identityService.deleteIdentityUser(testUser.idIdentityService); await identityService.deleteIdentityUser(apsUser.idIdentityService); await identityService.deleteIdentityUser(activitiUser.idIdentityService); + }); beforeEach(() => { diff --git a/e2e/process-services-cloud/process-custom-filters.e2e.ts b/e2e/process-services-cloud/process-custom-filters.e2e.ts index d92bf522ca..04452998af 100644 --- a/e2e/process-services-cloud/process-custom-filters.e2e.ts +++ b/e2e/process-services-cloud/process-custom-filters.e2e.ts @@ -109,7 +109,7 @@ describe('Process list cloud', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); await LocalStorageUtil.setConfigField('adf-edit-process-filter', JSON.stringify(editProcessFilterConfigFile)); await LocalStorageUtil.setConfigField('adf-cloud-process-list', JSON.stringify(processListCloudConfigFile)); done(); diff --git a/e2e/process-services-cloud/process-filter-results.e2e.ts b/e2e/process-services-cloud/process-filter-results.e2e.ts index 2e374fdde2..89fbe65a4d 100644 --- a/e2e/process-services-cloud/process-filter-results.e2e.ts +++ b/e2e/process-services-cloud/process-filter-results.e2e.ts @@ -126,7 +126,7 @@ describe('Process filters cloud', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); await LocalStorageUtil.setConfigField('adf-edit-process-filter', JSON.stringify(editProcessFilterConfigFile)); await LocalStorageUtil.setConfigField('adf-cloud-process-list', JSON.stringify(processListCloudConfigFile)); done(); diff --git a/e2e/process-services-cloud/process-filters-cloud.e2e.ts b/e2e/process-services-cloud/process-filters-cloud.e2e.ts index fb433311a6..ebaf31278c 100644 --- a/e2e/process-services-cloud/process-filters-cloud.e2e.ts +++ b/e2e/process-services-cloud/process-filters-cloud.e2e.ts @@ -87,7 +87,7 @@ describe('Process filters cloud', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }, 5 * 60 * 1000); diff --git a/e2e/process-services-cloud/process-header-cloud.e2e.ts b/e2e/process-services-cloud/process-header-cloud.e2e.ts index 696500f04c..af9ce23c23 100644 --- a/e2e/process-services-cloud/process-header-cloud.e2e.ts +++ b/e2e/process-services-cloud/process-header-cloud.e2e.ts @@ -100,7 +100,7 @@ describe('Process Header cloud component', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }); diff --git a/e2e/process-services-cloud/process-list-cloud-component.e2e.ts b/e2e/process-services-cloud/process-list-cloud-component.e2e.ts index e81d08328e..1c082a0ae9 100644 --- a/e2e/process-services-cloud/process-list-cloud-component.e2e.ts +++ b/e2e/process-services-cloud/process-list-cloud-component.e2e.ts @@ -72,7 +72,7 @@ describe('Process list cloud', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }); diff --git a/e2e/process-services-cloud/process-list-selection-cloud.e2e.ts b/e2e/process-services-cloud/process-list-selection-cloud.e2e.ts index 2e7a5f5a65..3de28281db 100644 --- a/e2e/process-services-cloud/process-list-selection-cloud.e2e.ts +++ b/e2e/process-services-cloud/process-list-selection-cloud.e2e.ts @@ -71,7 +71,7 @@ describe('Process list cloud', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }); diff --git a/e2e/process-services-cloud/start-process-cloud.e2e.ts b/e2e/process-services-cloud/start-process-cloud.e2e.ts index 1af4bff66d..ce5a45a8cf 100644 --- a/e2e/process-services-cloud/start-process-cloud.e2e.ts +++ b/e2e/process-services-cloud/start-process-cloud.e2e.ts @@ -36,7 +36,6 @@ describe('Start Process', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.providers ); - const processDefinitionWithoutName = 'process-'; const processName = StringUtil.generateRandomString(10); const processName255Characters = StringUtil.generateRandomString(255); const processNameBiggerThen255Characters = StringUtil.generateRandomString(256); @@ -58,7 +57,7 @@ describe('Start Process', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); navigationBarPage.navigateToProcessServicesCloudPage(); appListCloudComponent.checkApsContainer(); @@ -109,7 +108,6 @@ describe('Start Process', () => { startProcessPage.enterProcessName(processName); expect(startProcessPage.checkStartProcessButtonIsEnabled()).toBe(true); startProcessPage.clickStartProcessButton(); - processCloudDemoPage.clickOnProcessFilters(); processCloudDemoPage.runningProcessesFilter().clickProcessFilter(); expect(processCloudDemoPage.getActiveFilterName()).toBe('Running Processes'); @@ -117,14 +115,4 @@ describe('Start Process', () => { }); - it('[C309875] Should display the processId when Process Definition has process name missing', async () => { - appListCloudComponent.checkAppIsDisplayed(simpleApp); - appListCloudComponent.goToApp(simpleApp); - processCloudDemoPage.openNewProcessForm(); - startProcessPage.clearField(startProcessPage.processNameInput); - startProcessPage.enterProcessName(processName); - startProcessPage.selectFromProcessDropdown(processDefinitionWithoutName); - expect(startProcessPage.checkStartProcessButtonIsEnabled()).toBe(true); - - }); }); diff --git a/e2e/process-services-cloud/start-task-form-cloud.e2e.ts b/e2e/process-services-cloud/start-task-form-cloud.e2e.ts index 5436c231ff..bcbc5a80d3 100644 --- a/e2e/process-services-cloud/start-task-form-cloud.e2e.ts +++ b/e2e/process-services-cloud/start-task-form-cloud.e2e.ts @@ -83,9 +83,10 @@ describe('Start Task Form', () => { let testUser, acsUser, groupInfo; let processDefinitionService: ProcessDefinitionsService; let processInstancesService: ProcessInstancesService; - let processDefinition, uploadLocalFileProcess, uploadContentFileProcess, uploadDefaultFileProcess, cancelUploadFileProcess, completeUploadFileProcess; + let processDefinition, uploadLocalFileProcess, uploadContentFileProcess, uploadDefaultFileProcess, + cancelUploadFileProcess, completeUploadFileProcess; const candidateBaseApp = resources.ACTIVITI7_APPS.CANDIDATE_BASE_APP.name; - const pdfFile = new FileModel({'name': resources.Files.ADF_DOCUMENTS.PDF.file_name}); + const pdfFile = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF.file_name }); const pdfFileModel = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF.file_name, 'location': resources.Files.ADF_DOCUMENTS.PDF.file_location @@ -163,22 +164,19 @@ describe('Start Task Form', () => { browser.params.config.oauth2.host, browser.params.config.identityHost, browser.params.config.oauth2.clientId); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); await LocalStorageUtil.setConfigField('adf-cloud-start-process', JSON.stringify(startProcessCloudConfig)); done(); }); afterAll(async (done) => { - try { - await this.alfrescoJsApi.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password); - await uploadActions.deleteFileOrFolder(uploadedFolder.entry.id); - await apiService.login(testUser.email, testUser.password); - const tasksService = new TasksService(apiService); - const standAloneTaskId = await tasksService.getTaskId(standaloneTaskName, candidateBaseApp); - await tasksService.deleteTask(standAloneTaskId, candidateBaseApp); - await identityService.deleteIdentityUser(testUser.idIdentityService); - } catch (error) { - } + await this.alfrescoJsApi.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password); + await uploadActions.deleteFileOrFolder(uploadedFolder.entry.id); + await apiService.login(testUser.email, testUser.password); + const tasksService = new TasksService(apiService); + const standAloneTaskId = await tasksService.getTaskId(standaloneTaskName, candidateBaseApp); + await tasksService.deleteTask(standAloneTaskId, candidateBaseApp); + await identityService.deleteIdentityUser(testUser.idIdentityService); done(); }); diff --git a/e2e/process-services-cloud/start-task/start-task-custom-app-cloud.e2e.ts b/e2e/process-services-cloud/start-task/start-task-custom-app-cloud.e2e.ts index 9109e0f863..5aeafc8bf0 100644 --- a/e2e/process-services-cloud/start-task/start-task-custom-app-cloud.e2e.ts +++ b/e2e/process-services-cloud/start-task/start-task-custom-app-cloud.e2e.ts @@ -19,8 +19,17 @@ import { browser } from 'protractor'; import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; import { TasksCloudDemoPage } from '../../pages/adf/demo-shell/process-services/tasksCloudDemoPage'; import { - LoginSSOPage, AppListCloudPage, StringUtil, TaskHeaderCloudPage, - StartTasksCloudPage, PeopleCloudComponentPage, TasksService, ApiService, IdentityService, SettingsPage, GroupIdentityService + LoginSSOPage, + AppListCloudPage, + StringUtil, + TaskHeaderCloudPage, + StartTasksCloudPage, + PeopleCloudComponentPage, + TasksService, + ApiService, + IdentityService, + SettingsPage, + GroupIdentityService } from '@alfresco/adf-testing'; import resources = require('../../util/resources'); @@ -70,27 +79,24 @@ describe('Start Task', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }); afterAll(async (done) => { - try { - await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password); - const tasksService = new TasksService(apiService); + await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password); + const tasksService = new TasksService(apiService); - const tasks = [standaloneTaskName, unassignedTaskName, reassignTaskName]; - for (let i = 0; i < tasks.length; i++) { - const taskId = await tasksService.getTaskId(tasks[i], simpleApp); - if (taskId) { - await tasksService.deleteTask(taskId, simpleApp); - } + const tasks = [standaloneTaskName, unassignedTaskName, reassignTaskName]; + for (let i = 0; i < tasks.length; i++) { + const taskId = await tasksService.getTaskId(tasks[i], simpleApp); + if (taskId) { + await tasksService.deleteTask(taskId, simpleApp); } - await identityService.deleteIdentityUser(activitiUser.idIdentityService); - await identityService.deleteIdentityUser(apsUser.idIdentityService); - await identityService.deleteIdentityUser(testUser.idIdentityService); - } catch (error) { } + await identityService.deleteIdentityUser(activitiUser.idIdentityService); + await identityService.deleteIdentityUser(apsUser.idIdentityService); + await identityService.deleteIdentityUser(testUser.idIdentityService); done(); }); diff --git a/e2e/process-services-cloud/start-task/start-task-group-cloud.e2e.ts b/e2e/process-services-cloud/start-task/start-task-group-cloud.e2e.ts index a4bbdeaa1d..2ceb80de4a 100644 --- a/e2e/process-services-cloud/start-task/start-task-group-cloud.e2e.ts +++ b/e2e/process-services-cloud/start-task/start-task-group-cloud.e2e.ts @@ -19,8 +19,17 @@ import { browser } from 'protractor'; import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; import { TasksCloudDemoPage } from '../../pages/adf/demo-shell/process-services/tasksCloudDemoPage'; import { - LoginSSOPage, AppListCloudPage, StringUtil, GroupCloudComponentPage, - StartTasksCloudPage, PeopleCloudComponentPage, TasksService, ApiService, IdentityService, SettingsPage, GroupIdentityService + LoginSSOPage, + AppListCloudPage, + StringUtil, + GroupCloudComponentPage, + StartTasksCloudPage, + PeopleCloudComponentPage, + TasksService, + ApiService, + IdentityService, + SettingsPage, + GroupIdentityService, RolesService } from '@alfresco/adf-testing'; import resources = require('../../util/resources'); @@ -57,6 +66,11 @@ describe('Start Task - Group Cloud Component', () => { hrGroup = await groupIdentityService.getGroupInfoByGroupName('hr'); testGroup = await groupIdentityService.getGroupInfoByGroupName('testgroup'); + + const rolesService = new RolesService(apiService); + const apsAdminRoleId = await rolesService.getRoleIdByRoleName(identityService.ROLES.APS_USER); + await groupIdentityService.assignRole(testGroup.id, apsAdminRoleId, identityService.ROLES.APS_USER); + await identityService.addUserToGroup(testUser.idIdentityService, testGroup.id); await identityService.addUserToGroup(apsUser.idIdentityService, hrGroup.id); @@ -64,29 +78,28 @@ describe('Start Task - Group Cloud Component', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); + done(); }); afterAll(async (done) => { - try { - await apiService.login(testUser.email, testUser.password); - const tasksService = new TasksService(apiService); + await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password); + const tasksService = new TasksService(apiService); - const bothGroupsTaskId = await tasksService.getTaskId(bothGroupsTaskName, simpleApp); - await tasksService.deleteTask(bothGroupsTaskId, simpleApp); + const bothGroupsTaskId = await tasksService.getTaskId(bothGroupsTaskName, simpleApp); + await tasksService.deleteTask(bothGroupsTaskId, simpleApp); - const oneGroupTaskId = await tasksService.getTaskId(oneGroupTaskName, simpleApp); - await tasksService.deleteTask(oneGroupTaskId, simpleApp); + const oneGroupTaskId = await tasksService.getTaskId(oneGroupTaskName, simpleApp); + await tasksService.deleteTask(oneGroupTaskId, simpleApp); + + await identityService.deleteIdentityUser(apsUser.idIdentityService); + await identityService.deleteIdentityUser(testUser.idIdentityService); - await identityService.deleteIdentityUser(apsUser.idIdentityService); - await identityService.deleteIdentityUser(testUser.idIdentityService); - } catch (error) { - } done(); }); - beforeEach(() => { - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + beforeEach(async () => { + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); navigationBarPage.navigateToProcessServicesCloudPage(); appListCloudComponent.checkApsContainer(); appListCloudComponent.checkAppIsDisplayed(simpleApp); @@ -100,10 +113,11 @@ describe('Start Task - Group Cloud Component', () => { navigationBarPage.clickLogoutButton(); }); - it('[C291954] Should be able to select/delete an group for a standalone task', () => { + it('[C291954] Should be able to select/delete an group for a standalone task', async () => { peopleCloudComponent.clearAssignee(); groupCloud.searchGroups(testGroup.name); + groupCloud.checkGroupIsDisplayed(testGroup.name); groupCloud.selectGroupFromList(testGroup.name); groupCloud.checkSelectedGroup(testGroup.name); @@ -120,7 +134,7 @@ describe('Start Task - Group Cloud Component', () => { startTask.clickStartButton(); navigationBarPage.clickLogoutButton(); - loginSSOPage.loginSSOIdentityService(apsUser.email, apsUser.password); + await loginSSOPage.loginSSOIdentityService(apsUser.email, apsUser.password); navigationBarPage.navigateToProcessServicesCloudPage(); appListCloudComponent.checkApsContainer(); appListCloudComponent.checkAppIsDisplayed(simpleApp); @@ -136,7 +150,7 @@ describe('Start Task - Group Cloud Component', () => { tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(oneGroupTaskName); }); - it('[C291955] Should be able to select multiple groups when the selection mode=multiple', () => { + it('[C291955] Should be able to select multiple groups when the selection mode=multiple', async () => { peopleCloudComponent.clearAssignee(); groupCloud.searchGroups(testGroup.name); @@ -153,7 +167,7 @@ describe('Start Task - Group Cloud Component', () => { startTask.clickStartButton(); navigationBarPage.clickLogoutButton(); - loginSSOPage.loginSSOIdentityService(apsUser.email, apsUser.password); + await loginSSOPage.loginSSOIdentityService(apsUser.email, apsUser.password); navigationBarPage.navigateToProcessServicesCloudPage(); appListCloudComponent.checkApsContainer(); appListCloudComponent.checkAppIsDisplayed(simpleApp); diff --git a/e2e/process-services-cloud/task-filters-cloud.e2e.ts b/e2e/process-services-cloud/task-filters-cloud.e2e.ts index c9791119e7..4051b67501 100644 --- a/e2e/process-services-cloud/task-filters-cloud.e2e.ts +++ b/e2e/process-services-cloud/task-filters-cloud.e2e.ts @@ -52,7 +52,7 @@ describe('Task filters cloud', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }); diff --git a/e2e/process-services-cloud/task-form-cloud-component.e2e.ts b/e2e/process-services-cloud/task-form-cloud-component.e2e.ts index a5d0abe7e7..0846840b5f 100644 --- a/e2e/process-services-cloud/task-form-cloud-component.e2e.ts +++ b/e2e/process-services-cloud/task-form-cloud-component.e2e.ts @@ -15,20 +15,19 @@ * limitations under the License. */ -import { browser } from 'protractor'; +import { browser, protractor } from 'protractor'; import { AppListCloudPage, StringUtil, ApiService, LoginSSOPage, TasksService, - QueryService, ProcessDefinitionsService, ProcessInstancesService, SettingsPage, TaskHeaderCloudPage, TaskFormCloudComponent, - Widget + Widget, IdentityService } from '@alfresco/adf-testing'; import { NavigationBarPage } from '../pages/adf/navigationBarPage'; import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasksCloudDemoPage'; @@ -50,21 +49,24 @@ describe('Task form cloud component', () => { let tasksService: TasksService; let processDefinitionService: ProcessDefinitionsService; let processInstancesService: ProcessInstancesService; - let queryService: QueryService; + let identityService: IdentityService; - let completedTask, createdTask, assigneeTask, toBeCompletedTask, completedProcess, claimedTask, formValidationsTask; + let completedTask, createdTask, assigneeTask, toBeCompletedTask, formValidationsTask, testUser; const candidateBaseApp = resources.ACTIVITI7_APPS.CANDIDATE_BASE_APP.name; const completedTaskName = StringUtil.generateRandomString(), assignedTaskName = StringUtil.generateRandomString(); beforeAll(async (done) => { const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.providers); - await apiService.login(browser.params.identityUser.email, browser.params.identityUser.password); + await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password); + + identityService = new IdentityService(apiService); + testUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.APS_USER]); + await apiService.login(testUser.email, testUser.password); tasksService = new TasksService(apiService); - queryService = new QueryService(apiService); createdTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), candidateBaseApp); - assigneeTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), candidateBaseApp); + await tasksService.claimTask(assigneeTask.entry.id, candidateBaseApp); formValidationsTask = await tasksService.createStandaloneTaskWithForm(StringUtil.generateRandomString(), candidateBaseApp, formToTestValidationsKey); @@ -78,29 +80,38 @@ describe('Task form cloud component', () => { await tasksService.createAndCompleteTask(completedTaskName, candidateBaseApp); processDefinitionService = new ProcessDefinitionsService(apiService); + const processDefinition = await processDefinitionService .getProcessDefinitionByName(resources.ACTIVITI7_APPS.CANDIDATE_BASE_APP.processes.candidateUserProcess, candidateBaseApp); processInstancesService = new ProcessInstancesService(apiService); - completedProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp); - - await browser.driver.sleep(4000); // eventual consistency query - const task = await queryService.getProcessInstanceTasks(completedProcess.entry.id, candidateBaseApp); - claimedTask = await tasksService.claimTask(task.list.entries[0].entry.id, candidateBaseApp); + await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp); await settingsPage.setProviderBpmSso( browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(browser.params.identityUser.email, browser.params.identityUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }, 5 * 60 * 1000); + afterAll(async (done) => { + try { + await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); + await identityService.deleteIdentityUser(testUser.id); + } catch (error) { + } + await this.alfrescoJsApi.logout(); + browser.executeScript('window.sessionStorage.clear();'); + browser.executeScript('window.localStorage.clear();'); + done(); + }); + it('[C307032] Should display the appropriate title for the unclaim option of a Task', async () => { navigationBarPage.navigateToProcessServicesCloudPage(); appListCloudComponent.checkApsContainer(); appListCloudComponent.goToApp(candidateBaseApp); - tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); + await tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assigneeTask.entry.name); tasksCloudDemoPage.taskListCloudComponent().selectRow(assigneeTask.entry.name); expect(taskFormCloudComponent.getReleaseButtonText()).toBe('RELEASE'); @@ -110,7 +121,7 @@ describe('Task form cloud component', () => { navigationBarPage.navigateToProcessServicesCloudPage(); appListCloudComponent.checkApsContainer(); appListCloudComponent.goToApp(candidateBaseApp); - tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); + await tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assigneeTask.entry.name); tasksCloudDemoPage.taskListCloudComponent().selectRow(assigneeTask.entry.name); taskFormCloudComponent.checkFormIsNotDisplayed(); @@ -124,7 +135,7 @@ describe('Task form cloud component', () => { navigationBarPage.navigateToProcessServicesCloudPage(); appListCloudComponent.checkApsContainer(); appListCloudComponent.goToApp(candidateBaseApp); - tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); + await tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(formValidationsTask.entry.name); tasksCloudDemoPage.taskListCloudComponent().selectRow(formValidationsTask.entry.name); taskFormCloudComponent.checkFormIsDisplayed(); @@ -139,11 +150,11 @@ describe('Task form cloud component', () => { expect(taskFormCloudComponent.getCompleteButton().isEnabled()).toBe(true); widget.dateWidget().setDateInput('Date0m1moq', 'invalid date'); - widget.dateWidget().clickOutsideWidget('Date0m1moq'); + await browser.actions().sendKeys(protractor.Key.ENTER).perform(); expect(taskFormCloudComponent.getCompleteButton().isEnabled()).toBe(false); widget.dateWidget().setDateInput('Date0m1moq', '20-10-2018'); - widget.dateWidget().clickOutsideWidget('Date0m1moq'); + await browser.actions().sendKeys(protractor.Key.ENTER).perform(); expect(taskFormCloudComponent.getCompleteButton().isEnabled()).toBe(true); widget.numberWidget().setFieldValue('Number0klykr', 'invalid number'); @@ -169,8 +180,8 @@ describe('Task form cloud component', () => { done(); }); - it('[C307093] Complete button is not displayed when the task is already completed', () => { - tasksCloudDemoPage.completedTasksFilter().clickTaskFilter(); + it('[C307093] Complete button is not displayed when the task is already completed', async () => { + await tasksCloudDemoPage.completedTasksFilter().clickTaskFilter(); expect(tasksCloudDemoPage.getActiveFilterName()).toBe('Completed Tasks'); tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTaskName); tasksCloudDemoPage.taskListCloudComponent().selectRow(completedTaskName); @@ -178,10 +189,12 @@ describe('Task form cloud component', () => { taskFormCloudComponent.checkCompleteButtonIsNotDisplayed(); }); - it('[C307095] Task can not be completed by owner user', () => { - tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); + it('[C307095] Task can not be completed by owner user', async () => { + await tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); expect(tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks'); - tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader().clearAssignee().setStatusFilterDropDown('CREATED'); + await tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader(); + browser.driver.sleep(1000); + tasksCloudDemoPage.editTaskFilterCloudComponent().clearAssignee().setStatusFilterDropDown('CREATED'); tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(createdTask.entry.name); tasksCloudDemoPage.taskListCloudComponent().selectRow(createdTask.entry.name); @@ -189,8 +202,8 @@ describe('Task form cloud component', () => { taskFormCloudComponent.checkCompleteButtonIsNotDisplayed(); }); - it('[C307110] Task list is displayed after clicking on Cancel button', () => { - tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); + it('[C307110] Task list is displayed after clicking on Cancel button', async () => { + await tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); expect(tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks'); tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assigneeTask.entry.name); @@ -202,8 +215,8 @@ describe('Task form cloud component', () => { tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assigneeTask.entry.name); }); - it('[C307094] Standalone Task can be completed by a user that is owner and assignee', () => { - tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); + it('[C307094] Standalone Task can be completed by a user that is owner and assignee', async () => { + await tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); expect(tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks'); tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(toBeCompletedTask.entry.name); @@ -212,7 +225,7 @@ describe('Task form cloud component', () => { taskFormCloudComponent.checkCompleteButtonIsDisplayed().clickCompleteButton(); tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(toBeCompletedTask.entry.name); - tasksCloudDemoPage.completedTasksFilter().clickTaskFilter(); + await tasksCloudDemoPage.completedTasksFilter().clickTaskFilter(); tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(toBeCompletedTask.entry.name); taskFormCloudComponent.checkCompleteButtonIsNotDisplayed(); }); @@ -221,14 +234,14 @@ describe('Task form cloud component', () => { tasksCloudDemoPage.myTasksFilter().clickTaskFilter(); expect(tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks'); - tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(claimedTask.entry.name); - tasksCloudDemoPage.taskListCloudComponent().selectRow(claimedTask.entry.name); + tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTask.entry.name); + tasksCloudDemoPage.taskListCloudComponent().selectRow(completedTask.entry.name); taskHeaderCloudPage.checkTaskPropertyListIsDisplayed(); taskFormCloudComponent.checkCompleteButtonIsDisplayed().clickCompleteButton(); - tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(claimedTask.entry.name); + tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(completedTask.entry.name); tasksCloudDemoPage.completedTasksFilter().clickTaskFilter(); - tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(claimedTask.entry.name); + tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTask.entry.name); taskFormCloudComponent.checkCompleteButtonIsNotDisplayed(); }); }); diff --git a/e2e/process-services-cloud/task-header-cloud.e2e.ts b/e2e/process-services-cloud/task-header-cloud.e2e.ts index 55b8a66540..1354ed6338 100644 --- a/e2e/process-services-cloud/task-header-cloud.e2e.ts +++ b/e2e/process-services-cloud/task-header-cloud.e2e.ts @@ -90,7 +90,7 @@ describe('Task Header cloud component', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }); diff --git a/e2e/process-services-cloud/task-list-properties.e2e.ts b/e2e/process-services-cloud/task-list-properties.e2e.ts index 49a7c45a7b..ea5545c113 100644 --- a/e2e/process-services-cloud/task-list-properties.e2e.ts +++ b/e2e/process-services-cloud/task-list-properties.e2e.ts @@ -68,21 +68,25 @@ describe('Edit task filters and task list properties', () => { groupInfo = await groupIdentityService.getGroupInfoByGroupName('hr'); await identityService.addUserToGroup(testUser.idIdentityService, groupInfo.id); + await apiService.login(testUser.email, testUser.password); + otherOwnerTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), simpleApp); await tasksService.claimTask(otherOwnerTask.entry.id, simpleApp); createdTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), simpleApp); await tasksService.claimTask(createdTask.entry.id, simpleApp); + notAssigned = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), simpleApp); priorityTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), simpleApp, { priority: priority }); await tasksService.claimTask(priorityTask.entry.id, simpleApp); + notDisplayedTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), candidateBaseApp); await tasksService.claimTask(notDisplayedTask.entry.id, candidateBaseApp); processDefinitionService = new ProcessDefinitionsService(apiService); processDefinition = await processDefinitionService - .getProcessDefinitionByName(resources.ACTIVITI7_APPS.SIMPLE_APP.processes.simpleProcess, simpleApp); + .getProcessDefinitionByName(resources.ACTIVITI7_APPS.SIMPLE_APP.processes.dropdownrestprocess, simpleApp); processInstancesService = new ProcessInstancesService(apiService); processInstance = await processInstancesService.createProcessInstance(processDefinition.entry.key, simpleApp); @@ -96,7 +100,7 @@ describe('Edit task filters and task list properties', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); await LocalStorageUtil.setConfigField('adf-cloud-task-list', JSON.stringify(jsonFile)); await LocalStorageUtil.setConfigField('adf-edit-task-filter', JSON.stringify({ 'filterProperties': [ @@ -219,10 +223,11 @@ describe('Edit task filters and task list properties', () => { tasksCloudDemoPage.editTaskFilterCloudComponent().setProcessInstanceId(processInstance.entry.id) .setStatusFilterDropDown('ALL').clearAssignee(); - tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsDisplayed(); - tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsNotDisplayed(); + + browser.sleep(1000); expect(tasksCloudDemoPage.taskListCloudComponent().getDataTable().getNumberOfRows()).toBe(1); + tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByProcessInstanceId(processInstance.entry.id); }); diff --git a/e2e/process-services-cloud/task-list-selection.e2e.ts b/e2e/process-services-cloud/task-list-selection.e2e.ts index 50f59d6d64..03e9d743a0 100644 --- a/e2e/process-services-cloud/task-list-selection.e2e.ts +++ b/e2e/process-services-cloud/task-list-selection.e2e.ts @@ -68,7 +68,7 @@ describe('Task list cloud - selection', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }); diff --git a/e2e/process-services-cloud/tasks-custom-filters.e2e.ts b/e2e/process-services-cloud/tasks-custom-filters.e2e.ts index dc4aeb7e31..019a01fb25 100644 --- a/e2e/process-services-cloud/tasks-custom-filters.e2e.ts +++ b/e2e/process-services-cloud/tasks-custom-filters.e2e.ts @@ -103,7 +103,7 @@ describe('Task filters cloud', () => { browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.identityHost); - loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); + await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password); done(); }, 5 * 60 * 1000 ); diff --git a/e2e/process-services/apps-section.e2e.ts b/e2e/process-services/apps-section.e2e.ts index 0e4e26e6de..b95110d82a 100644 --- a/e2e/process-services/apps-section.e2e.ts +++ b/e2e/process-services/apps-section.e2e.ts @@ -46,7 +46,7 @@ describe('Modify applications', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/attach-file-widget.e2e.ts b/e2e/process-services/attach-file-widget.e2e.ts index 1d8ebb1b2c..2f48b2f101 100644 --- a/e2e/process-services/attach-file-widget.e2e.ts +++ b/e2e/process-services/attach-file-widget.e2e.ts @@ -51,7 +51,7 @@ describe('Start Task - Task App', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -70,7 +70,7 @@ describe('Start Task - Task App', () => { afterAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/attach-form-component.e2e.ts b/e2e/process-services/attach-form-component.e2e.ts index b0bb770d21..b16f0bd73c 100644 --- a/e2e/process-services/attach-form-component.e2e.ts +++ b/e2e/process-services/attach-form-component.e2e.ts @@ -54,7 +54,7 @@ describe('Attach Form Component', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); const users = new UsersActions(); @@ -80,12 +80,9 @@ describe('Attach Form Component', () => { }); afterAll(async (done) => { - try { - await this.alfrescoJsApi.activiti.modelsApi.deleteModel(appId); - await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); - await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId); - } catch (error) { - } + await this.alfrescoJsApi.activiti.modelsApi.deleteModel(appId); + await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); + await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId); done(); }); diff --git a/e2e/process-services/checklist-component.e2e.ts b/e2e/process-services/checklist-component.e2e.ts index a2e4625dc8..a2fb2baf8f 100644 --- a/e2e/process-services/checklist-component.e2e.ts +++ b/e2e/process-services/checklist-component.e2e.ts @@ -53,7 +53,7 @@ describe('Checklist component', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/comment-component-processes.e2e.ts b/e2e/process-services/comment-component-processes.e2e.ts index 6dbb8e2aef..e5e534262c 100644 --- a/e2e/process-services/comment-component-processes.e2e.ts +++ b/e2e/process-services/comment-component-processes.e2e.ts @@ -40,7 +40,7 @@ describe('Comment component for Processes', () => { beforeAll(async(done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); const apps = new AppsActions(); diff --git a/e2e/process-services/comment-component-tasks.e2e.ts b/e2e/process-services/comment-component-tasks.e2e.ts index 4246089994..be312480ef 100644 --- a/e2e/process-services/comment-component-tasks.e2e.ts +++ b/e2e/process-services/comment-component-tasks.e2e.ts @@ -49,7 +49,7 @@ describe('Comment component for Processes', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); const apps = new AppsActions(); @@ -74,15 +74,11 @@ describe('Comment component for Processes', () => { }); afterAll(async (done) => { - try { - await this.alfrescoJsApi.activiti.modelsApi.deleteModel(appId); + await this.alfrescoJsApi.activiti.modelsApi.deleteModel(appId); - await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); + await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); - await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId); - } catch (error) { - - } + await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId); done(); }); diff --git a/e2e/process-services/custom-process-filters-sorting.e2e.ts b/e2e/process-services/custom-process-filters-sorting.e2e.ts index e03c2b9487..801c7b8445 100644 --- a/e2e/process-services/custom-process-filters-sorting.e2e.ts +++ b/e2e/process-services/custom-process-filters-sorting.e2e.ts @@ -54,7 +54,7 @@ describe('Sorting for process filters', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); done(); diff --git a/e2e/process-services/custom-process-filters.e2e.ts b/e2e/process-services/custom-process-filters.e2e.ts index fafda3e16e..2cbb0a5d15 100644 --- a/e2e/process-services/custom-process-filters.e2e.ts +++ b/e2e/process-services/custom-process-filters.e2e.ts @@ -52,7 +52,7 @@ describe('New Process Filters', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/custom-tasks-filters.e2e.ts b/e2e/process-services/custom-tasks-filters.e2e.ts index 326d0732c2..3b8391b93d 100644 --- a/e2e/process-services/custom-tasks-filters.e2e.ts +++ b/e2e/process-services/custom-tasks-filters.e2e.ts @@ -79,7 +79,7 @@ describe('Start Task - Custom App', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/dynamic-table-date-picker.e2e.ts b/e2e/process-services/dynamic-table-date-picker.e2e.ts index 76914349e9..40c0e711ba 100644 --- a/e2e/process-services/dynamic-table-date-picker.e2e.ts +++ b/e2e/process-services/dynamic-table-date-picker.e2e.ts @@ -40,7 +40,7 @@ describe('Dynamic Table', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); apps = new AppsActions(); diff --git a/e2e/process-services/empty-process-list-component.e2e.ts b/e2e/process-services/empty-process-list-component.e2e.ts index 9cf6096424..7c76cf703d 100644 --- a/e2e/process-services/empty-process-list-component.e2e.ts +++ b/e2e/process-services/empty-process-list-component.e2e.ts @@ -50,7 +50,7 @@ describe('Empty Process List Test', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/form-component.e2e.ts b/e2e/process-services/form-component.e2e.ts index 21acc54db6..0c2f3dcc63 100644 --- a/e2e/process-services/form-component.e2e.ts +++ b/e2e/process-services/form-component.e2e.ts @@ -50,7 +50,7 @@ describe('Form Component', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); const users = new UsersActions(); diff --git a/e2e/process-services/form-people-widget.e2e.ts b/e2e/process-services/form-people-widget.e2e.ts index dcd61d80ac..9d80da1ec1 100644 --- a/e2e/process-services/form-people-widget.e2e.ts +++ b/e2e/process-services/form-people-widget.e2e.ts @@ -42,7 +42,7 @@ describe('Form widgets - People', () => { const startProcess = new StartProcessPage(); const processDetailsPage = new ProcessDetailsPage(); const taskDetails = new TaskDetailsPage(); - const appNavigationBar = new ProcessServiceTabBarPage(); + const processServiceTabBarPage = new ProcessServiceTabBarPage(); beforeAll(async (done) => { const users = new UsersActions(); @@ -50,7 +50,7 @@ describe('Form widgets - People', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -108,7 +108,7 @@ describe('Form widgets - People', () => { taskDetails.checkCompleteFormButtonIsDisplayed(); taskDetails.clickCompleteFormTask(); - appNavigationBar.clickProcessButton(); + processServiceTabBarPage.clickProcessButton(); processFiltersPage.clickCompletedFilterButton(); processFiltersPage.selectFromProcessList(app.processName); diff --git a/e2e/process-services/form-widgets-component.e2e.ts b/e2e/process-services/form-widgets-component.e2e.ts index 204537f1d4..684695eca5 100644 --- a/e2e/process-services/form-widgets-component.e2e.ts +++ b/e2e/process-services/form-widgets-component.e2e.ts @@ -51,7 +51,7 @@ describe('Form widgets', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -207,7 +207,7 @@ describe('Form widgets', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/pagination-processlist-addingProcesses.e2e.ts b/e2e/process-services/pagination-processlist-addingProcesses.e2e.ts index 88de1f1a7c..12837df662 100644 --- a/e2e/process-services/pagination-processlist-addingProcesses.e2e.ts +++ b/e2e/process-services/pagination-processlist-addingProcesses.e2e.ts @@ -53,7 +53,7 @@ describe('Process List - Pagination when adding processes', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/pagination-tasklist-addingTasks.e2e.ts b/e2e/process-services/pagination-tasklist-addingTasks.e2e.ts index ebf1bb638c..0d3d2f09b9 100644 --- a/e2e/process-services/pagination-tasklist-addingTasks.e2e.ts +++ b/e2e/process-services/pagination-tasklist-addingTasks.e2e.ts @@ -55,7 +55,7 @@ describe('Items per page set to 15 and adding of tasks', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/people-component.e2e.ts b/e2e/process-services/people-component.e2e.ts index 9adcb37f4a..4bd549dc53 100644 --- a/e2e/process-services/people-component.e2e.ts +++ b/e2e/process-services/people-component.e2e.ts @@ -49,7 +49,7 @@ describe('People component', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/process-attachmentList-actionMenu.e2e.ts b/e2e/process-services/process-attachmentList-actionMenu.e2e.ts index eb7ce016b5..9c3df57f3e 100644 --- a/e2e/process-services/process-attachmentList-actionMenu.e2e.ts +++ b/e2e/process-services/process-attachmentList-actionMenu.e2e.ts @@ -63,7 +63,7 @@ describe('Attachment list action menu for processes', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/process-filters-component.e2e.ts b/e2e/process-services/process-filters-component.e2e.ts index a0b1717d2b..6916daf542 100644 --- a/e2e/process-services/process-filters-component.e2e.ts +++ b/e2e/process-services/process-filters-component.e2e.ts @@ -62,7 +62,7 @@ describe('Process Filters Test', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/process-instance-details.e2e.ts b/e2e/process-services/process-instance-details.e2e.ts index 3e6b453d4f..d8f44ec9ad 100644 --- a/e2e/process-services/process-instance-details.e2e.ts +++ b/e2e/process-services/process-instance-details.e2e.ts @@ -48,7 +48,7 @@ describe('Process Instance Details', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/processList-component.e2e.ts b/e2e/process-services/processList-component.e2e.ts index de5687b45c..62b1aee1e0 100644 --- a/e2e/process-services/processList-component.e2e.ts +++ b/e2e/process-services/processList-component.e2e.ts @@ -57,7 +57,7 @@ describe('Process List Test', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/processlist-pagination.e2e.ts b/e2e/process-services/processlist-pagination.e2e.ts index 5bce76670f..39fcd92f7e 100644 --- a/e2e/process-services/processlist-pagination.e2e.ts +++ b/e2e/process-services/processlist-pagination.e2e.ts @@ -63,7 +63,7 @@ describe('Process List - Pagination', function () { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -95,7 +95,7 @@ describe('Process List - Pagination', function () { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password); diff --git a/e2e/process-services/sort-tasklist-pagination.e2e.ts b/e2e/process-services/sort-tasklist-pagination.e2e.ts index cac8574755..c5ce48227a 100644 --- a/e2e/process-services/sort-tasklist-pagination.e2e.ts +++ b/e2e/process-services/sort-tasklist-pagination.e2e.ts @@ -57,7 +57,7 @@ describe('Task List Pagination - Sorting', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/standalone-task.e2e.ts b/e2e/process-services/standalone-task.e2e.ts index d1dfaf6107..5a54ea840e 100644 --- a/e2e/process-services/standalone-task.e2e.ts +++ b/e2e/process-services/standalone-task.e2e.ts @@ -48,7 +48,7 @@ describe('Start Task - Task App', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/start-process-component.e2e.ts b/e2e/process-services/start-process-component.e2e.ts index e87756126d..7e8c8dc545 100644 --- a/e2e/process-services/start-process-component.e2e.ts +++ b/e2e/process-services/start-process-component.e2e.ts @@ -71,7 +71,7 @@ describe('Start Process Component', () => { beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -87,7 +87,7 @@ describe('Start Process Component', () => { this.alfrescoJsApiUserTwo = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApiUserTwo.login(secondProcUserModel.email, secondProcUserModel.password); diff --git a/e2e/process-services/start-task-custom-app.e2e.ts b/e2e/process-services/start-task-custom-app.e2e.ts index 67ec144c74..563343e040 100644 --- a/e2e/process-services/start-task-custom-app.e2e.ts +++ b/e2e/process-services/start-task-custom-app.e2e.ts @@ -63,7 +63,7 @@ describe('Start Task - Custom App', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/start-task-task-app.e2e.ts b/e2e/process-services/start-task-task-app.e2e.ts index 57e1ddcfb3..8aaa6288bc 100644 --- a/e2e/process-services/start-task-task-app.e2e.ts +++ b/e2e/process-services/start-task-task-app.e2e.ts @@ -65,7 +65,7 @@ describe('Start Task - Task App', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/task-attachmentList-actionMenu.e2e.ts b/e2e/process-services/task-attachmentList-actionMenu.e2e.ts index 7ffde50b45..4a0d1154a9 100644 --- a/e2e/process-services/task-attachmentList-actionMenu.e2e.ts +++ b/e2e/process-services/task-attachmentList-actionMenu.e2e.ts @@ -63,7 +63,7 @@ describe('Attachment list action menu for tasks', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/task-audit.e2e.ts b/e2e/process-services/task-audit.e2e.ts index b263de6794..e953dec8fc 100644 --- a/e2e/process-services/task-audit.e2e.ts +++ b/e2e/process-services/task-audit.e2e.ts @@ -52,7 +52,7 @@ describe('Task Audit', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/task-details-form.e2e.ts b/e2e/process-services/task-details-form.e2e.ts index bd710cd95b..732c5c1a20 100644 --- a/e2e/process-services/task-details-form.e2e.ts +++ b/e2e/process-services/task-details-form.e2e.ts @@ -57,7 +57,7 @@ describe('Task Details - Form', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/task-details-no-form.e2e.ts b/e2e/process-services/task-details-no-form.e2e.ts index d1654efe0b..a87425636e 100644 --- a/e2e/process-services/task-details-no-form.e2e.ts +++ b/e2e/process-services/task-details-no-form.e2e.ts @@ -46,7 +46,7 @@ describe('Task Details - No form', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/task-details.e2e.ts b/e2e/process-services/task-details.e2e.ts index a6f43bbb12..7e0b50a557 100644 --- a/e2e/process-services/task-details.e2e.ts +++ b/e2e/process-services/task-details.e2e.ts @@ -51,7 +51,7 @@ describe('Task Details component', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/task-filters-component.e2e.ts b/e2e/process-services/task-filters-component.e2e.ts index 361a6bc37c..09facf5077 100644 --- a/e2e/process-services/task-filters-component.e2e.ts +++ b/e2e/process-services/task-filters-component.e2e.ts @@ -51,7 +51,7 @@ describe('Task', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); done(); @@ -221,7 +221,7 @@ describe('Task', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/task-filters-sorting.e2e.ts b/e2e/process-services/task-filters-sorting.e2e.ts index c5bb31a4b4..53934db797 100644 --- a/e2e/process-services/task-filters-sorting.e2e.ts +++ b/e2e/process-services/task-filters-sorting.e2e.ts @@ -59,7 +59,7 @@ describe('Task Filters Sorting', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/task-list-pagination.e2e.ts b/e2e/process-services/task-list-pagination.e2e.ts index 5659b8b874..54bced062d 100644 --- a/e2e/process-services/task-list-pagination.e2e.ts +++ b/e2e/process-services/task-list-pagination.e2e.ts @@ -60,7 +60,7 @@ describe('Task List Pagination', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/widgets/amount-widget.e2e.ts b/e2e/process-services/widgets/amount-widget.e2e.ts index afa43626e3..b1e50d5ee1 100644 --- a/e2e/process-services/widgets/amount-widget.e2e.ts +++ b/e2e/process-services/widgets/amount-widget.e2e.ts @@ -43,7 +43,7 @@ describe('Amount Widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -62,9 +62,9 @@ describe('Amount Widget', () => { done(); }); - beforeEach(() => { + beforeEach(async () => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); diff --git a/e2e/process-services/widgets/attach-folder-widget.e2e.ts b/e2e/process-services/widgets/attach-folder-widget.e2e.ts index 4022427d1b..140425ba55 100644 --- a/e2e/process-services/widgets/attach-folder-widget.e2e.ts +++ b/e2e/process-services/widgets/attach-folder-widget.e2e.ts @@ -40,7 +40,7 @@ describe('Attach Folder widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -59,9 +59,9 @@ describe('Attach Folder widget', () => { done(); }); - beforeEach(() => { + beforeEach(async () => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); diff --git a/e2e/process-services/widgets/checkbox-widget.e2e.ts b/e2e/process-services/widgets/checkbox-widget.e2e.ts index 5a764a258d..16ab4905a3 100644 --- a/e2e/process-services/widgets/checkbox-widget.e2e.ts +++ b/e2e/process-services/widgets/checkbox-widget.e2e.ts @@ -41,7 +41,7 @@ describe('Checkbox Widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -60,9 +60,9 @@ describe('Checkbox Widget', () => { done(); }); - beforeEach(() => { + beforeEach(async () => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); diff --git a/e2e/process-services/widgets/date-time-widget.e2e.ts b/e2e/process-services/widgets/date-time-widget.e2e.ts index 6a0730814e..27ccbaad31 100644 --- a/e2e/process-services/widgets/date-time-widget.e2e.ts +++ b/e2e/process-services/widgets/date-time-widget.e2e.ts @@ -41,7 +41,7 @@ describe('Date and time widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -60,9 +60,9 @@ describe('Date and time widget', () => { done(); }); - beforeEach(() => { + beforeEach(async () => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); diff --git a/e2e/process-services/widgets/date-widget.e2e.ts b/e2e/process-services/widgets/date-widget.e2e.ts index 07400b3da2..cc89574479 100644 --- a/e2e/process-services/widgets/date-widget.e2e.ts +++ b/e2e/process-services/widgets/date-widget.e2e.ts @@ -41,7 +41,7 @@ describe('Date widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -60,9 +60,9 @@ describe('Date widget', () => { done(); }); - beforeEach(() => { + beforeEach(async () => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); diff --git a/e2e/process-services/widgets/document-template-widget.e2e.ts b/e2e/process-services/widgets/document-template-widget.e2e.ts index 1feab62773..e28d38b3ed 100644 --- a/e2e/process-services/widgets/document-template-widget.e2e.ts +++ b/e2e/process-services/widgets/document-template-widget.e2e.ts @@ -41,7 +41,7 @@ describe('Document Template widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -60,9 +60,9 @@ describe('Document Template widget', () => { done(); }); - beforeEach(() => { + beforeEach(async () => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); diff --git a/e2e/process-services/widgets/dropdown-widget.e2e.ts b/e2e/process-services/widgets/dropdown-widget.e2e.ts index ac8b5693f3..0fe797ccc1 100644 --- a/e2e/process-services/widgets/dropdown-widget.e2e.ts +++ b/e2e/process-services/widgets/dropdown-widget.e2e.ts @@ -41,7 +41,7 @@ describe('Dropdown widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -60,9 +60,9 @@ describe('Dropdown widget', () => { done(); }); - beforeEach(() => { + beforeEach(async () => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); diff --git a/e2e/process-services/widgets/dynamic-table-widget.e2e.ts b/e2e/process-services/widgets/dynamic-table-widget.e2e.ts index 2e961827ea..91d1386601 100644 --- a/e2e/process-services/widgets/dynamic-table-widget.e2e.ts +++ b/e2e/process-services/widgets/dynamic-table-widget.e2e.ts @@ -43,7 +43,7 @@ describe('Dynamic Table widget ', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -62,9 +62,9 @@ describe('Dynamic Table widget ', () => { done(); }); - beforeEach(() => { + beforeEach(async () => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); @@ -104,7 +104,7 @@ describe('Dynamic Table widget ', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/widgets/header-widget.e2e.ts b/e2e/process-services/widgets/header-widget.e2e.ts index 0c893b611c..3cf29761dd 100644 --- a/e2e/process-services/widgets/header-widget.e2e.ts +++ b/e2e/process-services/widgets/header-widget.e2e.ts @@ -41,7 +41,7 @@ describe('Header widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -60,9 +60,9 @@ describe('Header widget', () => { done(); }); - beforeEach(() => { + beforeEach(async () => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); diff --git a/e2e/process-services/widgets/hyperlink-widget.e2e.ts b/e2e/process-services/widgets/hyperlink-widget.e2e.ts index 0c061df859..801e7368c8 100644 --- a/e2e/process-services/widgets/hyperlink-widget.e2e.ts +++ b/e2e/process-services/widgets/hyperlink-widget.e2e.ts @@ -41,7 +41,7 @@ describe('Hyperlink widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -60,9 +60,9 @@ describe('Hyperlink widget', () => { done(); }); - beforeEach(() => { + beforeEach(async () => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); diff --git a/e2e/process-services/widgets/multi-line-widget.e2e.ts b/e2e/process-services/widgets/multi-line-widget.e2e.ts index b7624444a8..c70d60aab5 100644 --- a/e2e/process-services/widgets/multi-line-widget.e2e.ts +++ b/e2e/process-services/widgets/multi-line-widget.e2e.ts @@ -41,7 +41,7 @@ describe('Multi-line Widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -60,9 +60,9 @@ describe('Multi-line Widget', () => { done(); }); - beforeEach(() => { + beforeEach(async () => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); diff --git a/e2e/process-services/widgets/number-widget.e2e.ts b/e2e/process-services/widgets/number-widget.e2e.ts index e9324e7180..dbcd5bb7ce 100644 --- a/e2e/process-services/widgets/number-widget.e2e.ts +++ b/e2e/process-services/widgets/number-widget.e2e.ts @@ -42,7 +42,7 @@ describe('Number widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -61,9 +61,9 @@ describe('Number widget', () => { done(); }); - beforeEach(() => { + beforeEach(async() => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); diff --git a/e2e/process-services/widgets/people-widget.e2e.ts b/e2e/process-services/widgets/people-widget.e2e.ts index a6425b21d0..6f6a047890 100644 --- a/e2e/process-services/widgets/people-widget.e2e.ts +++ b/e2e/process-services/widgets/people-widget.e2e.ts @@ -41,7 +41,7 @@ describe('People widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -60,9 +60,9 @@ describe('People widget', () => { done(); }); - beforeEach(() => { + beforeEach(async() => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); diff --git a/e2e/process-services/widgets/radio-buttons-widget.e2e.ts b/e2e/process-services/widgets/radio-buttons-widget.e2e.ts index eb2716856f..64e2103e5d 100644 --- a/e2e/process-services/widgets/radio-buttons-widget.e2e.ts +++ b/e2e/process-services/widgets/radio-buttons-widget.e2e.ts @@ -41,7 +41,7 @@ describe('Radio Buttons Widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); diff --git a/e2e/process-services/widgets/text-widget.e2e.ts b/e2e/process-services/widgets/text-widget.e2e.ts index 8b0a0cc3d5..e1015e6c48 100644 --- a/e2e/process-services/widgets/text-widget.e2e.ts +++ b/e2e/process-services/widgets/text-widget.e2e.ts @@ -41,7 +41,7 @@ describe('Text widget', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -60,9 +60,9 @@ describe('Text widget', () => { done(); }); - beforeEach(() => { + beforeEach(async () => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); diff --git a/e2e/process-services/widgets/widget-visibility-condition.e2e.ts b/e2e/process-services/widgets/widget-visibility-condition.e2e.ts index fca6d4718e..aa3fc7981a 100644 --- a/e2e/process-services/widgets/widget-visibility-condition.e2e.ts +++ b/e2e/process-services/widgets/widget-visibility-condition.e2e.ts @@ -38,7 +38,7 @@ const value = { }; const checkbox = { - checkboxFieldValue : 'text1value', + checkboxFieldValue: 'text1value', checkboxVariableField: 'variablefield', checkboxFieldVariable: 'text1variable', checkboxFieldField: 'text1text2', @@ -64,7 +64,7 @@ describe('Process-Services - Visibility conditions', () => { alfrescoJsApi = new AlfrescoApi({ provider: 'BPM', - hostBpm: browser.params.testConfig.adf.url + hostBpm: browser.params.testConfig.adf_aps.host }); await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -83,9 +83,9 @@ describe('Process-Services - Visibility conditions', () => { done(); }); - beforeEach(() => { + beforeEach(async () => { const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`; - BrowserActions.getUrl(urlToNavigateTo); + await BrowserActions.getUrl(urlToNavigateTo); taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS); taskPage.formFields().checkFormIsDisplayed(); }); @@ -132,9 +132,13 @@ describe('Process-Services - Visibility conditions', () => { it('[C311425] Should be able to see Checkbox widget when visibility condition refers to a field and another field', () => { widget.textWidget().isWidgetVisible(widgets.textOneId); - expect(widget.checkboxWidget().isCheckboxHidden(checkbox.checkboxFieldField)).toBe(true); + expect(widget.checkboxWidget().isCheckboxDisplayed(checkbox.checkboxFieldField)).toBe(true); widget.textWidget().setValue(widgets.textOneId, value.displayCheckbox); + + expect(widget.checkboxWidget().isCheckboxHidden(checkbox.checkboxFieldField)).toBe(true); + widget.textWidget().setValue(widgets.textTwoId, value.displayCheckbox); + expect(widget.checkboxWidget().isCheckboxDisplayed(checkbox.checkboxFieldField)).toBe(true); }); diff --git a/e2e/resources/adf/allFileTypes/documents/text/a_msg_file.msg b/e2e/resources/adf/allFileTypes/documents/text/a_msg_file.msg deleted file mode 100644 index 84955e7847..0000000000 Binary files a/e2e/resources/adf/allFileTypes/documents/text/a_msg_file.msg and /dev/null differ diff --git a/e2e/search/components/search-checkList.e2e.ts b/e2e/search/components/search-checkList.e2e.ts index 1c12697b78..3926b767e3 100644 --- a/e2e/search/components/search-checkList.e2e.ts +++ b/e2e/search/components/search-checkList.e2e.ts @@ -36,7 +36,7 @@ describe('Search Checklist Component', () => { const acsUser = new AcsUserModel(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -79,6 +79,8 @@ describe('Search Checklist Component', () => { await uploadActions.deleteFileOrFolder(createdFile.entry.id); await uploadActions.deleteFileOrFolder(createdFolder.entry.id); + await navigationBarPage.clickLogoutButton(); + done(); }); diff --git a/e2e/search/components/search-date-range.e2e.ts b/e2e/search/components/search-date-range.e2e.ts index 3ee33a10f6..8ad22fefa1 100644 --- a/e2e/search/components/search-date-range.e2e.ts +++ b/e2e/search/components/search-date-range.e2e.ts @@ -34,14 +34,14 @@ describe('Search Date Range Filter', () => { const dateRangeFilter = searchFilters.createdDateRangeFilterPage(); const searchResults = new SearchResultsPage(); const datePicker = new DatePickerPage(); - const navigationBar = new NavigationBarPage(); + const navigationBarPage = new NavigationBarPage(); const dataTable = new DataTableComponentPage(); beforeAll(async (done) => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); loginPage.loginToContentServices(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -191,7 +191,7 @@ describe('Search Date Range Filter', () => { }); it('[C277117] Should be able to change date format', async () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); jsonFile.categories[4].component.settings.dateFormat = 'MM-DD-YY'; diff --git a/e2e/search/components/search-number-range.e2e.ts b/e2e/search/components/search-number-range.e2e.ts index 1926893f29..73dedbf24c 100644 --- a/e2e/search/components/search-number-range.e2e.ts +++ b/e2e/search/components/search-number-range.e2e.ts @@ -34,7 +34,7 @@ describe('Search Number Range Filter', () => { const searchFilters = new SearchFiltersPage(); const sizeRangeFilter = searchFilters.sizeRangeFilterPage(); const searchResults = new SearchResultsPage(); - const navigationBar = new NavigationBarPage(); + const navigationBarPage = new NavigationBarPage(); const dataTable = new DataTableComponentPage(); const acsUser = new AcsUserModel(); @@ -52,7 +52,7 @@ describe('Search Number Range Filter', () => { let file2Bytes, file0Bytes; this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -81,6 +81,9 @@ describe('Search Number Range Filter', () => { await this.alfrescoJsApi.login(acsUser.id, acsUser.password); await uploadActions.deleteFileOrFolder(file2Bytes.entry.id); await uploadActions.deleteFileOrFolder(file0Bytes.entry.id); + + await navigationBarPage.clickLogoutButton(); + done(); }); @@ -389,7 +392,7 @@ describe('Search Number Range Filter', () => { }); it('[C276928] Should be able to change the field property for number range', async () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); jsonFile.categories[3].component.settings.field = 'cm:created'; @@ -431,7 +434,7 @@ describe('Search Number Range Filter', () => { }); it('[C277139] Should be able to set To field to be exclusive', async () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); jsonFile.categories[3].component.settings.format = '[{FROM} TO {TO}>'; @@ -467,7 +470,7 @@ describe('Search Number Range Filter', () => { }); it('[C277140] Should be able to set From field to be exclusive', async () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); jsonFile.categories[3].component.settings.format = '<{FROM} TO {TO}]'; diff --git a/e2e/search/components/search-radio.e2e.ts b/e2e/search/components/search-radio.e2e.ts index deeb572756..d05e0f1aad 100644 --- a/e2e/search/components/search-radio.e2e.ts +++ b/e2e/search/components/search-radio.e2e.ts @@ -36,7 +36,7 @@ describe('Search Radio Component', () => { const acsUser = new AcsUserModel(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -86,6 +86,8 @@ describe('Search Radio Component', () => { await uploadActions.deleteFileOrFolder(createdFile.entry.id); await uploadActions.deleteFileOrFolder(createdFolder.entry.id); + await navigationBarPage.clickLogoutButton(); + done(); }); diff --git a/e2e/search/components/search-slider.e2e.ts b/e2e/search/components/search-slider.e2e.ts index 80ff186b27..9d59bbf40e 100644 --- a/e2e/search/components/search-slider.e2e.ts +++ b/e2e/search/components/search-slider.e2e.ts @@ -34,7 +34,7 @@ describe('Search Number Range Filter', () => { const searchFilters = new SearchFiltersPage(); const sizeSliderFilter = searchFilters.sizeSliderFilterPage(); const searchResults = new SearchResultsPage(); - const navigationBar = new NavigationBarPage(); + const navigationBarPage = new NavigationBarPage(); const dataTable = new DataTableComponentPage(); const acsUser = new AcsUserModel(); @@ -47,7 +47,7 @@ describe('Search Number Range Filter', () => { let file2Bytes; this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -77,6 +77,9 @@ describe('Search Number Range Filter', () => { await uploadActions.deleteFileOrFolder(file2Bytes.entry.id); } catch (error) { } + + await navigationBarPage.clickLogoutButton(); + done(); }); @@ -159,7 +162,7 @@ describe('Search Number Range Filter', () => { }); it('[C276983] Should be able to disable thumb label in Search Size Slider', async () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); jsonFile.categories[2].component.settings.thumbLabel = false; @@ -177,7 +180,7 @@ describe('Search Number Range Filter', () => { }); it('[C276985] Should be able to set min value for Search Size Slider', async () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); const minSize = 3; jsonFile.categories[2].component.settings.min = minSize; @@ -198,7 +201,7 @@ describe('Search Number Range Filter', () => { }); it('[C276986] Should be able to set max value for Search Size Slider', async () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); const maxSize = 50; jsonFile.categories[2].component.settings.max = maxSize; @@ -219,7 +222,7 @@ describe('Search Number Range Filter', () => { }); it('[C276987] Should be able to set steps for Search Size Slider', async () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); const step = 10; jsonFile.categories[2].component.settings.step = step; diff --git a/e2e/search/components/search-sorting-picker.e2e.ts b/e2e/search/components/search-sorting-picker.e2e.ts index 9239bde831..f748d049e1 100644 --- a/e2e/search/components/search-sorting-picker.e2e.ts +++ b/e2e/search/components/search-sorting-picker.e2e.ts @@ -34,7 +34,7 @@ describe('Search Sorting Picker', () => { const searchDialog = new SearchDialog(); const searchFilters = new SearchFiltersPage(); const searchResults = new SearchResultsPage(); - const navigationBar = new NavigationBarPage(); + const navigationBarPage = new NavigationBarPage(); const searchSortingPicker = new SearchSortingPickerPage(); const contentServices = new ContentServicesPage(); const nodeActions = new NodeActions(); @@ -53,7 +53,7 @@ describe('Search Sorting Picker', () => { let pngA, pngD; this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); const search = '_png_file.png'; @@ -78,6 +78,9 @@ describe('Search Sorting Picker', () => { afterAll(async (done) => { await uploadActions.deleteFileOrFolder(pngA.entry.id); await uploadActions.deleteFileOrFolder(pngD.entry.id); + + await navigationBarPage.clickLogoutButton(); + done(); }); @@ -102,7 +105,7 @@ describe('Search Sorting Picker', () => { }); it('[C277271] Should be able to add a custom search sorter in the "sort by" option', async () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); jsonFile = SearchConfiguration.getConfiguration(); jsonFile.sorting.options.push({ 'key': 'Modifier', @@ -124,7 +127,7 @@ describe('Search Sorting Picker', () => { }); it('[C277272] Should be able to exclude a standard search sorter from the sorting option', async () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); jsonFile = SearchConfiguration.getConfiguration(); const removedOption = jsonFile.sorting.options.splice(0, 1); await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile)); @@ -140,7 +143,7 @@ describe('Search Sorting Picker', () => { }); it('[C277273] Should be able to set a default order for a search sorting option', async () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); jsonFile = SearchConfiguration.getConfiguration(); jsonFile.sorting.options[0].ascending = false; @@ -197,7 +200,7 @@ describe('Search Sorting Picker', () => { }); it('[C277288] Should be able to sort the search results by "Modified Date" ASC', async () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); jsonFile = SearchConfiguration.getConfiguration(); jsonFile.sorting.options.push({ diff --git a/e2e/search/components/search-text.e2e.ts b/e2e/search/components/search-text.e2e.ts index 089244985b..475849b97c 100644 --- a/e2e/search/components/search-text.e2e.ts +++ b/e2e/search/components/search-text.e2e.ts @@ -46,7 +46,7 @@ describe('Search component - Text widget', () => { this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword); @@ -71,6 +71,10 @@ describe('Search component - Text widget', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + it('[C289329] Placeholder should be displayed in the widget when the input string is empty', () => { BrowserActions.getUrl(browser.params.testConfig.adf.url + '/search;q=*'); searchResultPage.tableIsLoaded(); diff --git a/e2e/search/search-component.e2e.ts b/e2e/search/search-component.e2e.ts index 789fb9837b..d41de82253 100644 --- a/e2e/search/search-component.e2e.ts +++ b/e2e/search/search-component.e2e.ts @@ -42,6 +42,7 @@ describe('Search component - Search Bar', () => { const loginPage = new LoginPage(); const contentServicesPage = new ContentServicesPage(); + const navigationBarPage = new NavigationBarPage(); const searchDialog = new SearchDialog(); const searchResultPage = new SearchResultsPage(); @@ -50,7 +51,7 @@ describe('Search component - Search Bar', () => { const acsUser = new AcsUserModel(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -115,6 +116,7 @@ describe('Search component - Search Bar', () => { await uploadActions.deleteFileOrFolder(currentNode.entry.id); }); + await navigationBarPage.clickLogoutButton(); done(); }); @@ -277,12 +279,10 @@ describe('Search component - Search Bar', () => { describe('Highlight', () => { - const navigationBar = new NavigationBarPage(); - const searchConfiguration = SearchConfiguration.getConfiguration(); beforeAll(async () => { - navigationBar.clickContentServicesButton(); + navigationBarPage.clickContentServicesButton(); await LocalStorageUtil.setConfigField('search', JSON.stringify(searchConfiguration)); diff --git a/e2e/search/search-filters.e2e.ts b/e2e/search/search-filters.e2e.ts index 6cd6113fa3..7fe908d7be 100644 --- a/e2e/search/search-filters.e2e.ts +++ b/e2e/search/search-filters.e2e.ts @@ -35,7 +35,7 @@ describe('Search Filters', () => { const searchFiltersPage = new SearchFiltersPage(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); const paginationPage = new PaginationPage(); @@ -118,6 +118,7 @@ describe('Search Filters', () => { await uploadActions.deleteFileOrFolder(fileTypeTxt1.entry.id); await uploadActions.deleteFileOrFolder(fileTypeTxt2.entry.id); await uploadActions.deleteFileOrFolder(fileTypeJpg.entry.id); + await navigationBarPage.clickLogoutButton(); done(); }); diff --git a/e2e/search/search-multiselect.e2e.ts b/e2e/search/search-multiselect.e2e.ts index 0ec11d0291..483723d329 100644 --- a/e2e/search/search-multiselect.e2e.ts +++ b/e2e/search/search-multiselect.e2e.ts @@ -25,6 +25,7 @@ import { SearchResultsPage } from '../pages/adf/searchResultsPage'; import { SearchFiltersPage } from '../pages/adf/searchFiltersPage'; import { AcsUserModel } from '../models/ACS/acsUserModel'; import { FileModel } from '../models/ACS/fileModel'; +import { NavigationBarPage } from '../pages/adf/navigationBarPage'; describe('Search Component - Multi-Select Facet', () => { const loginPage = new LoginPage(); @@ -32,10 +33,12 @@ describe('Search Component - Multi-Select Facet', () => { const searchResultsPage = new SearchResultsPage(); this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); const searchFiltersPage = new SearchFiltersPage(); + const navigationBarPage = new NavigationBarPage(); + let site, userOption; describe('', () => { @@ -97,6 +100,7 @@ describe('Search Component - Multi-Select Facet', () => { ]); await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id); + await navigationBarPage.clickLogoutButton(); done(); }); diff --git a/e2e/search/search-page-component.e2e.ts b/e2e/search/search-page-component.e2e.ts index 3537353bd8..ed8b85b4c5 100644 --- a/e2e/search/search-page-component.e2e.ts +++ b/e2e/search/search-page-component.e2e.ts @@ -28,6 +28,7 @@ import { FileModel } from '../models/ACS/fileModel'; import { Util } from '../util/util'; import resources = require('../util/resources'); import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; +import { NavigationBarPage } from '../pages/adf/navigationBarPage'; describe('Search component - Search Page', () => { const search = { @@ -47,6 +48,7 @@ describe('Search component - Search Page', () => { const contentServicesPage = new ContentServicesPage(); const searchDialog = new SearchDialog(); const searchResultPage = new SearchResultsPage(); + const navigationBarPage = new NavigationBarPage(); const acsUser = new AcsUserModel(); const emptyFolderModel = new FolderModel({ 'name': 'search' + StringUtil.generateRandomString() }); @@ -57,7 +59,7 @@ describe('Search component - Search Page', () => { const adminNrOfFiles = 5; this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', - hostEcm: browser.params.testConfig.adf.url + hostEcm: browser.params.testConfig.adf_acs.host }); const uploadActions = new UploadActions(this.alfrescoJsApi); @@ -96,6 +98,10 @@ describe('Search component - Search Page', () => { done(); }); + afterAll(async () => { + await navigationBarPage.clickLogoutButton(); + }); + it('[C260264] Should display message when no results are found', () => { const notExistentFileName = StringUtil.generateRandomString(); searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon() diff --git a/e2e/test.config.js b/e2e/test.config.js index 1dd6dbc56f..3e812a00d6 100644 --- a/e2e/test.config.js +++ b/e2e/test.config.js @@ -62,6 +62,8 @@ if (LOG) { module.exports = { + projectName :'ADF', + appConfig: appConfig, main: { @@ -165,7 +167,7 @@ module.exports = { * The protocol where the app runs. * @config main.protocol {String} */ - host: HOST, + host: PROXY || HOST, /** * The port where the app runs. @@ -193,7 +195,7 @@ module.exports = { * The host where the app runs. * @config main.host {String} */ - host: HOST, + host: PROXY || HOST, /** * The port where the app runs. diff --git a/lib/core/viewer/components/viewer.component.ts b/lib/core/viewer/components/viewer.component.ts index fbd9163775..bb49bd4c8b 100644 --- a/lib/core/viewer/components/viewer.component.ts +++ b/lib/core/viewer/components/viewer.component.ts @@ -170,7 +170,7 @@ export class ViewerComponent implements OnChanges, OnInit, OnDestroy { * There is a delay of at least one second between attempts. */ @Input() - maxRetries = 10; + maxRetries = 30; /** Emitted when user clicks the 'Back' button. */ @Output() @@ -200,7 +200,7 @@ export class ViewerComponent implements OnChanges, OnInit, OnDestroy { @Output() invalidSharedLink = new EventEmitter(); - TRY_TIMEOUT: number = 2000; + TRY_TIMEOUT: number = 10000; viewerType = 'unknown'; isLoading = false; diff --git a/lib/testing/src/lib/content-services/pages/document-list.page.ts b/lib/testing/src/lib/content-services/pages/document-list.page.ts index 582b408e32..d40d546472 100644 --- a/lib/testing/src/lib/content-services/pages/document-list.page.ts +++ b/lib/testing/src/lib/content-services/pages/document-list.page.ts @@ -67,7 +67,7 @@ export class DocumentListPage { clickOnActionMenu(content) { BrowserActions.closeMenuAndDialogs(); const row = this.dataTable.getRow('Display name', content); - row.element(this.optionButton).click(); + BrowserActions.click(row.element(this.optionButton)); BrowserVisibility.waitUntilElementIsVisible(this.actionMenu); browser.sleep(500); return this; diff --git a/lib/testing/src/lib/core/actions/identity/group-identity.service.ts b/lib/testing/src/lib/core/actions/identity/group-identity.service.ts index 08d2544338..81a6d32af5 100644 --- a/lib/testing/src/lib/core/actions/identity/group-identity.service.ts +++ b/lib/testing/src/lib/core/actions/identity/group-identity.service.ts @@ -17,6 +17,9 @@ import { ApiService } from '../api.service'; import { StringUtil } from '../../utils/string.util'; +import { browser } from 'protractor'; + +const GROUP_SUFFIX = browser.params.testConfig ? browser.params.testConfig.projectName : 'TestGroup'; export class GroupIdentityService { @@ -40,7 +43,7 @@ export class GroupIdentityService { const path = '/groups'; const method = 'POST'; const queryParams = {}, postBody = { - 'name': groupName + 'TestGroup' + 'name': groupName + GROUP_SUFFIX }; const data = await this.api.performIdentityOperation(path, method, queryParams, postBody); return data; @@ -49,8 +52,7 @@ export class GroupIdentityService { async deleteGroup(groupId) { const path = `/groups/${groupId}`; const method = 'DELETE'; - const queryParams = {}, postBody = { - }; + const queryParams = {}, postBody = {}; const data = await this.api.performIdentityOperation(path, method, queryParams, postBody); return data; } @@ -58,7 +60,7 @@ export class GroupIdentityService { async getGroupInfoByGroupName(groupName) { const path = `/groups`; const method = 'GET'; - const queryParams = { 'search' : groupName }, postBody = {}; + const queryParams = { 'search': groupName }, postBody = {}; const data = await this.api.performIdentityOperation(path, method, queryParams, postBody); return data[0]; @@ -68,7 +70,7 @@ export class GroupIdentityService { const path = `/groups/${groupId}/role-mappings/realm`; const method = 'POST'; const queryParams = {}, - postBody = [{'id': roleId, 'name': roleName}]; + postBody = [{ 'id': roleId, 'name': roleName }]; const data = await this.api.performIdentityOperation(path, method, queryParams, postBody); return data; @@ -102,7 +104,7 @@ export class GroupIdentityService { */ async getClientIdByApplicationName(applicationName: string) { const path = `/clients`; - const method = 'GET', queryParams = {clientId: applicationName}, postBody = {}; + const method = 'GET', queryParams = { clientId: applicationName }, postBody = {}; const data = await this.api.performIdentityOperation(path, method, queryParams, postBody); return data[0].id; diff --git a/lib/testing/src/lib/core/models/user.model.ts b/lib/testing/src/lib/core/models/user.model.ts index fb0892a0d6..50c213d0a5 100644 --- a/lib/testing/src/lib/core/models/user.model.ts +++ b/lib/testing/src/lib/core/models/user.model.ts @@ -16,13 +16,16 @@ */ import { StringUtil } from '../utils/string.util'; +import { browser } from 'protractor'; + +const EMAIL_DOMAIN = browser.params.testConfig ? browser.params.testConfig.projectName : 'alfresco'; export class UserModel { firstName: string = StringUtil.generateRandomString(); lastName: string = StringUtil.generateRandomString(); password: string = StringUtil.generateRandomString(); - email: string = StringUtil.generateRandomEmail('@alfresco.com'); + email: string = StringUtil.generateRandomEmail(`@${EMAIL_DOMAIN}.com`); username: string = StringUtil.generateRandomString().toLowerCase(); idIdentityService: string; diff --git a/lib/testing/src/lib/core/pages/form/widgets/dateWidget.ts b/lib/testing/src/lib/core/pages/form/widgets/dateWidget.ts index 1fa43537ae..7b9ad55d0c 100644 --- a/lib/testing/src/lib/core/pages/form/widgets/dateWidget.ts +++ b/lib/testing/src/lib/core/pages/form/widgets/dateWidget.ts @@ -51,11 +51,6 @@ export class DateWidget { return dateInput.clear(); } - clickOutsideWidget(fieldId) { - const form = this.formFields.getWidget(fieldId); - BrowserActions.click(form); - } - getErrorMessage(fieldId) { const errorMessage = element(by.css(`adf-form-field div[id="field-${fieldId}-container"] div[class="adf-error-text"]`)); return BrowserActions.getText(errorMessage); diff --git a/lib/testing/src/lib/core/pages/login-sso.page.ts b/lib/testing/src/lib/core/pages/login-sso.page.ts index 31212a6b9b..fd4584a06c 100644 --- a/lib/testing/src/lib/core/pages/login-sso.page.ts +++ b/lib/testing/src/lib/core/pages/login-sso.page.ts @@ -28,37 +28,38 @@ export class LoginSSOPage { header = element(by.id('adf-header')); loginError = element(by.css(`div[data-automation-id="login-error"]`)); - loginSSOIdentityService(username, password) { + async loginSSOIdentityService(username, password) { browser.ignoreSynchronization = true; - BrowserVisibility.waitUntilElementIsVisible(this.usernameField); - this.enterUsername(username); - this.enterPassword(password); - this.clickLoginButton(); - browser.actions().sendKeys(protractor.Key.ENTER).perform(); - return BrowserVisibility.waitUntilElementIsVisible(this.header); + await BrowserVisibility.waitUntilElementIsVisible(this.usernameField); + await this.enterUsername(username); + await this.enterPassword(password); + await this.clickLoginButton(); + await browser.actions().sendKeys(protractor.Key.ENTER).perform(); + await BrowserVisibility.waitUntilElementIsVisible(this.header); + await browser.waitForAngular(''); } - clickOnSSOButton() { - return BrowserActions.clickExecuteScript('[data-automation-id="login-button-sso"]'); + async clickOnSSOButton() { + await BrowserActions.clickExecuteScript('[data-automation-id="login-button-sso"]'); } - enterUsername(username) { - BrowserActions.clearSendKeys(this.usernameField, username); + async enterUsername(username) { + await BrowserActions.clearSendKeys(this.usernameField, username); } - enterPassword(password) { - BrowserActions.clearSendKeys(this.passwordField, password); + async enterPassword(password) { + await BrowserActions.clearSendKeys(this.passwordField, password); } - clickLoginButton() { - return BrowserActions.click(this.loginButton); + async clickLoginButton() { + await BrowserActions.click(this.loginButton); } - checkLoginErrorIsDisplayed() { - return BrowserVisibility.waitUntilElementIsVisible(this.loginError); + async checkLoginErrorIsDisplayed() { + await BrowserVisibility.waitUntilElementIsVisible(this.loginError); } - getLoginErrorMessage() { + async getLoginErrorMessage() { return BrowserActions.getText(this.loginError); } diff --git a/lib/testing/src/lib/core/pages/login.page.ts b/lib/testing/src/lib/core/pages/login.page.ts index 5d7bc263a7..d38e758ee2 100644 --- a/lib/testing/src/lib/core/pages/login.page.ts +++ b/lib/testing/src/lib/core/pages/login.page.ts @@ -88,11 +88,11 @@ export class LoginPage { } enterUsername(username) { - BrowserActions.clearSendKeys(this.txtUsername, username); + return BrowserActions.clearSendKeys(this.txtUsername, username); } enterPassword(password) { - BrowserActions.clearSendKeys(this.txtPassword, password); + return BrowserActions.clearSendKeys(this.txtPassword, password); } async clearUsername() { diff --git a/lib/testing/src/lib/core/pages/settings.page.ts b/lib/testing/src/lib/core/pages/settings.page.ts index 685cd545d7..b72a80340b 100644 --- a/lib/testing/src/lib/core/pages/settings.page.ts +++ b/lib/testing/src/lib/core/pages/settings.page.ts @@ -149,7 +149,7 @@ export class SettingsPage { this.setSilentLogin(silentLogin); this.setImplicitFlow(implicitFlow); this.setLogoutUrl(logoutUr); - this.clickApply(); + await this.clickApply(); await browser.sleep(1000); } diff --git a/lib/testing/src/lib/process-services-cloud/pages/edit-task-filter-cloud-component.page.ts b/lib/testing/src/lib/process-services-cloud/pages/edit-task-filter-cloud-component.page.ts index 1bb34e0a50..a9031aa21d 100644 --- a/lib/testing/src/lib/process-services-cloud/pages/edit-task-filter-cloud-component.page.ts +++ b/lib/testing/src/lib/process-services-cloud/pages/edit-task-filter-cloud-component.page.ts @@ -30,8 +30,8 @@ export class EditTaskFilterCloudComponentPage { id = element(by.css('input[data-automation-id="adf-cloud-edit-task-property-taskId"]')); processDefinitionId = element(by.css('input[data-automation-id="adf-cloud-edit-task-property-processDefinitionId"]')); processInstanceId = element(by.css('input[data-automation-id="adf-cloud-edit-task-property-processInstanceId"]')); - lastModifiedFrom = element(by.css('input[data-automation-id="adf-cloud-edit-task-property-lastModifiedFrom"]')); - lastModifiedTo = element(by.css('input[data-automation-id="adf-cloud-edit-task-property-lastModifiedTo"]')); + lastModifiedFrom = element(by.css('input[placeholder="LastModifiedFrom"]')); + lastModifiedTo = element(by.css('input[placeholder="LastModifiedTo"]')); parentTaskId = element(by.css('input[data-automation-id="adf-cloud-edit-task-property-parentTaskId"]')); owner = element(by.css('input[data-automation-id="adf-cloud-edit-task-property-owner"]')); saveButton = element(by.css('[data-automation-id="adf-filter-action-save"]')); @@ -58,7 +58,7 @@ export class EditTaskFilterCloudComponentPage { } getStatusFilterDropDownValue() { - return element.all(by.css("mat-select[data-automation-id='adf-cloud-edit-task-property-status'] span")).first().getText(); + return BrowserActions.getText(element(by.css("mat-select[data-automation-id='adf-cloud-edit-task-property-status'] span span"))); } setSortFilterDropDown(option) { @@ -70,8 +70,7 @@ export class EditTaskFilterCloudComponentPage { } getSortFilterDropDownValue() { - const elementSort = element.all(by.css("mat-select[data-automation-id='adf-cloud-edit-task-property-sort'] span")).first(); - return BrowserActions.getText(elementSort); + return BrowserActions.getText(element(by.css("mat-select[data-automation-id='adf-cloud-edit-task-property-sort'] span span"))); } setOrderFilterDropDown(option) { @@ -84,13 +83,12 @@ export class EditTaskFilterCloudComponentPage { } getOrderFilterDropDownValue() { - return element.all(by.css("mat-select[data-automation-id='adf-cloud-edit-task-property-order'] span")).first().getText(); + return BrowserActions.getText(element(by.css("mat-select[data-automation-id='adf-cloud-edit-task-property-order'] span span"))); } clickOnDropDownArrow(option) { const dropDownArrow = element.all(by.css("mat-form-field[data-automation-id='" + option + "'] div[class*='arrow']")).first(); - BrowserVisibility.waitUntilElementIsVisible(dropDownArrow); - dropDownArrow.click(); + BrowserActions.click(dropDownArrow); BrowserVisibility.waitUntilElementIsVisible(this.selectedOption); } @@ -126,18 +124,18 @@ export class EditTaskFilterCloudComponentPage { return BrowserActions.getText(this.owner); } - setLastModifiedFrom(option) { + setLastModifiedFrom(lastModifiedFromDate) { this.clearField(this.lastModifiedFrom); - return this.setProperty('lastModifiedFrom', option); + BrowserActions.clearSendKeys(this.lastModifiedFrom, lastModifiedFromDate); } getLastModifiedFrom() { return BrowserActions.getText(this.lastModifiedFrom); } - setLastModifiedTo(option) { + setLastModifiedTo(lastModifiedToDate) { this.clearField(this.lastModifiedTo); - return this.setProperty('lastModifiedTo', option); + BrowserActions.clearSendKeys(this.lastModifiedTo, lastModifiedToDate); } getLastModifiedTo() { @@ -210,8 +208,7 @@ export class EditTaskFilterCloudComponentPage { } getAppNameDropDownValue() { - const locator = element.all(by.css("mat-select[data-automation-id='adf-cloud-edit-task-property-appName'] span")).first(); - return BrowserActions.getText(locator); + return BrowserActions.getText(element(by.css("mat-select[data-automation-id='adf-cloud-edit-task-property-appName'] span span"))); } setId(option) { diff --git a/package.json b/package.json index 737ef7053e..f0ab9fd556 100644 --- a/package.json +++ b/package.json @@ -141,7 +141,6 @@ "extract-text-webpack-plugin": "^4.0.0-beta.0", "fs-extra": "^4.0.2", "graphql": "^14.1.1", - "http-proxy-middleware": "^0.19.0", "husky": "^1.2.0", "jasmine-ajax": "3.2.0", "jasmine-core": "~2.8.0", diff --git a/protractor.conf.ts b/protractor.conf.ts index 3e2f27f905..8a850ada9f 100644 --- a/protractor.conf.ts +++ b/protractor.conf.ts @@ -36,6 +36,8 @@ let LIST_SPECS = process.env.LIST_SPECS || []; let LOG = process.env.LOG ? true : false; let arraySpecs = []; +let failFast = require('jasmine-fail-fast'); + if (LOG) { console.log('======= PROTRACTOR CONFIGURATION ====== '); console.log('SAVE_SCREENSHOT : ' + SAVE_SCREENSHOT); @@ -43,6 +45,7 @@ if (LOG) { console.log('FOLDER : ' + FOLDER); console.log('MAXINSTANCES : ' + MAXINSTANCES); console.log('LIST_SPECS : ' + LIST_SPECS); + console.log('SELENIUM_SERVER : ' + SELENIUM_SERVER); } let browser_options = function () { @@ -177,7 +180,109 @@ let uploadReport = async function (alfrescoJsApi, filenameReport) { } }; +let beforeAllRewrite = function () { + + const originalBeforeAll = global.beforeAll; + + // tslint:disable-next-line + global.beforeAll = function (beforeAllFunction, timeout) { + const wrapClbk = async (done) => { + try { + await beforeAllFunction(done); + } catch (error) { + console.log('Error Before all second attempt in 10 sec'); + sleep(10000); + try { + await beforeAllFunction(done); + } catch (e) { + // tslint:disable-next-line:no-console + console.log('Error Before all second attempt fail all' + JSON.stringify(error)); + expect(true).toBe(false); + } + } + + done(); + return; + }; + + originalBeforeAll(wrapClbk, timeout); + + }; +}; + +let afterAllRewrite = function () { + + const originalAfterAll = global.afterAll; + + // tslint:disable-next-line + global.afterAll = function (afterAllFunction, timeout) { + const wrapClbk = async (done) => { + try { + await afterAllFunction(done); + } catch (error) { + // tslint:disable-next-line:no-console + console.log('Error After all' + JSON.stringify(error)); + } + + done(); + return; + }; + + originalAfterAll(wrapClbk, timeout); + + }; +}; + +let beforeEachAllRewrite = function () { + + const originalBeforeEach = global.beforeEach; + + // tslint:disable-next-line + global.beforeEach = function (beforeEachFunction, timeout) { + const wrapClbk = async (done) => { + try { + await beforeEachFunction(done); + } catch (error) { + // tslint:disable-next-line:no-console + console.log('Error before Each' + JSON.stringify(error)); + expect(true).toBe(false); + } + + done(); + return; + }; + + originalBeforeEach(wrapClbk, timeout); + + }; +}; + +let afterEachAllRewrite = function () { + + const originalAfterEach = global.afterEach; + + // tslint:disable-next-line + global.afterEach = function (afterEachFunction, timeout) { + const wrapClbk = async (done) => { + try { + await afterEachFunction(done); + } catch (error) { + // tslint:disable-next-line:no-console + console.log('Error After each' + JSON.stringify(error)); + + } + + done(); + return; + }; + + originalAfterEach(wrapClbk, timeout); + + }; +}; + let browserLogErrorPrint = function () { + if (process.env.LOG) { var browserLogs = require('protractor-browser-logs'), logs = browserLogs(browser); @@ -243,6 +348,7 @@ let saveReport = async function (alfrescoJsApi, retryCount) { console.log('done delete screenshot'); }); }; + exports.config = { allScriptsTimeout: TIMEOUT, @@ -258,10 +364,10 @@ exports.config = { browserName: 'chrome', - shardTestFiles: true, - maxInstances: MAXINSTANCES, + shardTestFiles: true, + chromeOptions: { prefs: { 'credentials_enable_service': false, @@ -328,12 +434,15 @@ exports.config = { }, onPrepare() { + afterEachAllRewrite(); + beforeEachAllRewrite(); + afterAllRewrite(); + beforeAllRewrite(); browserLogErrorPrint(); retry.onPrepare(); jasmine.DEFAULT_TIMEOUT_INTERVAL = TIMEOUT; - let failFast = require('jasmine-fail-fast'); jasmine.getEnv().addReporter(failFast.init()); require('ts-node').register({ @@ -433,3 +542,8 @@ exports.config = { } }; + +function sleep(delay) { + var start = new Date().getTime(); + while (new Date().getTime() < start + delay) ; +} diff --git a/scripts/check-env/check-activiti-env.js b/scripts/check-env/check-activiti-env.js index 6ceb67804f..ed03103ac6 100755 --- a/scripts/check-env/check-activiti-env.js +++ b/scripts/check-env/check-activiti-env.js @@ -276,13 +276,11 @@ async function deployApp(apiService, app, name) { "version": app.entry.name, "security": [{"role": "APS_ADMIN", "groups": [], "users": ["admin.adf"]}, { "role": "APS_USER", - "groups": ["hr"], + "groups": ["hr", "testgroup"], "users": ["admin.adf"] }] }; - //console.log(JSON.stringify(bodyParam)); - const headerParams = {}, formParams = {}, queryParams = {}, contentTypes = ['application/json'], accepts = ['application/json']; diff --git a/scripts/lint.sh b/scripts/lint.sh index 5cfaa789a8..6ffff11297 100755 --- a/scripts/lint.sh +++ b/scripts/lint.sh @@ -14,7 +14,7 @@ echo "====== Parallel lint =====" npx concurrently -s "all" "npm run lint-lib || exit 1" "npm run stylelint || exit 1" "npm run spellcheck || exit " "ng lint dev || exit 1" "npm run lint-e2e || exit 1" || exit 1 -if grep "envalfresco" . -R --exclude-dir={node_modules,.history,.idea,scripts} --exclude=".env.cloud"; then +if grep "envalfresco" . -R --exclude-dir={node_modules,.history,.idea,scripts,dist,e2e-output} --exclude=".env.cloud"; then echo not permitted word exit 1 fi diff --git a/scripts/smart-build.sh b/scripts/smart-build.sh index 1ed52caf6a..e554d20391 100755 --- a/scripts/smart-build.sh +++ b/scripts/smart-build.sh @@ -39,17 +39,16 @@ else gnu='' fi -#reset the tmp folder -affected="$(./scripts/affected-libs.sh ${gnu[@]} -b "$BRANCH_NAME")" -echo $affected -libs=(`echo $affected | sed 's/^$/\n/g'`) - - if [ $BRANCH_NAME == 'undefined' ]; then echo "Rebase your branch" exit 1 fi +#reset the tmp folder +affected="$(./scripts/affected-libs.sh ${gnu[@]} -b "$BRANCH_NAME")" +echo $affected +libs=(`echo $affected | sed 's/^$/\n/g'`) + echo "Builds" #extensions diff --git a/scripts/test-e2e-lib.sh b/scripts/test-e2e-lib.sh index f8bca06bea..d8933ec3e2 100755 --- a/scripts/test-e2e-lib.sh +++ b/scripts/test-e2e-lib.sh @@ -10,6 +10,11 @@ EXEC_VERSION_JSAPI=false TIMEOUT=15000 SELENIUM_PROMISE_MANAGER=1 DEBUG=false +eval GNU=false + +gnu_mode() { + GNU=true +} show_help() { echo "Usage: ./scripts/test-e2e-lib.sh -host adf.domain.com -u admin -p admin -e admin" @@ -38,6 +43,7 @@ show_help() { echo "-disable-control-flow disable control flow" echo "-db or --debug run the debugger" echo "-vjsapi install different version from npm of JS-API defined in the package.json" + echo "-gnu for gnu" echo "-h or --help" } @@ -121,6 +127,7 @@ set_test_folder(){ set_selenium(){ SELENIUM_SERVER=$1 + export SELENIUM_SERVER=$SELENIUM_SERVER } set_env(){ @@ -188,17 +195,22 @@ while [[ $1 == -* ]]; do -m|--maxInstances) max_instances $2; shift 2;; -vjsapi) version_js_api $2; shift 2;; -disable-control-flow|--disable-control-flow) disable_control_flow; shift;; + -gnu) gnu_mode; shift;; -*) echo "invalid option: $1" 1>&2; show_help; exit 1;; esac done +if $GNU; then + sedi='-i' +else + sedi=('-i' '') +fi + rm -rf ./e2e/downloads/ rm -rf ./e2e-output/screenshots/ export TIMEOUT=$TIMEOUT -export SELENIUM_SERVER=$SELENIUM_SERVER - export SELENIUM_PROMISE_MANAGER=$SELENIUM_PROMISE_MANAGER if $EXEC_VERSION_JSAPI == true; then @@ -220,10 +232,26 @@ else if [[ $LITESERVER == "true" ]]; then echo "====== Run dist in lite-server =====" ls demo-shell/dist + + if [[ -n "${PROXY_HOST_ADF}" ]] + then + replace="\/" + encoded=${PROXY_HOST_ADF//\//$replace} + sed -e "s/\"bpmHost\": \".*\"/\"bpmHost\": \"${encoded}\"/g" "${sedi[@]}" demo-shell/dist/app.config.json + fi + + if [[ -n "${PROXY_HOST_ADF}" ]] + then + replace="\/" + encoded=${PROXY_HOST_ADF//\//$replace} + sed -e "s/\"ecmHost\": \".*\"/\"ecmHost\": \"${encoded}\"/g" "${sedi[@]}" demo-shell/dist/app.config.json + fi + npm run lite-server-e2e>/dev/null & ./node_modules/protractor/bin/protractor protractor.conf.ts || exit 1 else if [[ $DEBUG == "true" ]]; then - echo "====== DEBUG =====" + echo "====== DEBUG npm run lite-server-e2e>/dev/null & ./node_modules/protractor/bin/protractor protractor.conf.ts || exit 1 + else=====" node --inspect-brk ./node_modules/protractor/bin/protractor protractor.conf.ts || exit 1 else ./node_modules/protractor/bin/protractor protractor.conf.ts || exit 1 diff --git a/scripts/travis/e2e/content-services-e2e.sh b/scripts/travis/e2e/content-services-e2e.sh index 9e04695896..70b0bc146b 100755 --- a/scripts/travis/e2e/content-services-e2e.sh +++ b/scripts/travis/e2e/content-services-e2e.sh @@ -12,7 +12,7 @@ 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 -b -m 3 || 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 -b -m 2 -gnu || exit 1) if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "$CONTEXT_ENV" || $TRAVIS_PULL_REQUEST == "false" ]]; then $RUN_CHECK diff --git a/scripts/travis/e2e/core-e2e.sh b/scripts/travis/e2e/core-e2e.sh index 6b83320ed4..89bf60fd2b 100755 --- a/scripts/travis/e2e/core-e2e.sh +++ b/scripts/travis/e2e/core-e2e.sh @@ -13,7 +13,7 @@ AFFECTED_E2E="$(./scripts/git-util/affected-folder.sh -b $TRAVIS_BRANCH -f "e2e/ node ./scripts/check-env/check-ps-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1 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 -b -m 3 ) +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 -m 2 -gnu ) if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "$CONTEXT_ENV" || $TRAVIS_PULL_REQUEST == "false" ]]; then diff --git a/scripts/travis/e2e/insights-e2e.sh b/scripts/travis/e2e/insights-e2e.sh index 6b302285c4..4d8294f3a1 100755 --- a/scripts/travis/e2e/insights-e2e.sh +++ b/scripts/travis/e2e/insights-e2e.sh @@ -10,5 +10,5 @@ AFFECTED_LIBS="$(./scripts/affected-libs.sh -gnu -b $TRAVIS_BRANCH)"; if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "insight" || $TRAVIS_PULL_REQUEST == "false" ]]; then node ./scripts/check-env/check-ps-env.js --host "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" || exit 1; - ./scripts/test-e2e-lib.sh -host http://localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder insights --use-dist || exit 1; + ./scripts/test-e2e-lib.sh -host http://localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" --folder insights --use-dist -gnu || exit 1; fi; diff --git a/scripts/travis/e2e/process-services-cloud-e2e.sh b/scripts/travis/e2e/process-services-cloud-e2e.sh index 436fcd0158..23385be4e7 100755 --- a/scripts/travis/e2e/process-services-cloud-e2e.sh +++ b/scripts/travis/e2e/process-services-cloud-e2e.sh @@ -11,7 +11,7 @@ CONTEXT_ENV="process-services-cloud" 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")"; -RUN_E2E=$(echo ./scripts/test-e2e-lib.sh -host http://localhost:4200 -proxy "$E2E_HOST_BPM" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" -host_sso "$E2E_HOST_SSO" -host_bpm "$E2E_HOST_BPM" -host_identity "$E2E_HOST_IDENTITY" -identity_admin_email "$E2E_ADMIN_EMAIL_IDENTITY" -identity_admin_password "$E2E_ADMIN_PASSWORD_IDENTITY" --use-dist ) +RUN_E2E=$(echo ./scripts/test-e2e-lib.sh -host http://localhost:4200 -proxy "$E2E_HOST_BPM" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e "$E2E_EMAIL" -host_sso "$E2E_HOST_SSO" -host_bpm "$E2E_HOST_BPM" -host_identity "$E2E_HOST_IDENTITY" -identity_admin_email "$E2E_ADMIN_EMAIL_IDENTITY" -identity_admin_password "$E2E_ADMIN_PASSWORD_IDENTITY" --use-dist -gnu ) if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "$CONTEXT_ENV" || $TRAVIS_PULL_REQUEST == "false" ]]; then diff --git a/scripts/travis/e2e/process-services-e2e.sh b/scripts/travis/e2e/process-services-e2e.sh index 819962ef9e..dcde131902 100755 --- a/scripts/travis/e2e/process-services-e2e.sh +++ b/scripts/travis/e2e/process-services-e2e.sh @@ -12,7 +12,7 @@ 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-ps-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 -b -m 3 ) +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 -m 2 -gnu ) if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "$CONTEXT_ENV" || $TRAVIS_PULL_REQUEST == "false" ]]; then diff --git a/scripts/travis/e2e/search-e2e.sh b/scripts/travis/e2e/search-e2e.sh index 4840574104..1f168cb17b 100755 --- a/scripts/travis/e2e/search-e2e.sh +++ b/scripts/travis/e2e/search-e2e.sh @@ -12,7 +12,7 @@ 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 -b -m 3 ) +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 -m 2 -gnu ) if [[ $AFFECTED_LIBS =~ "testing" || $AFFECTED_LIBS =~ "content-services" || $TRAVIS_PULL_REQUEST == "false" ]]; then diff --git a/scripts/travis/update/update-children.sh b/scripts/travis/update/update-children.sh index 5a023b68b1..b921948ed1 100755 --- a/scripts/travis/update/update-children.sh +++ b/scripts/travis/update/update-children.sh @@ -14,7 +14,5 @@ echo "Update AMA" ./scripts/travis/update/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/alfresco-modeler-app' echo "Update Workspace" ./scripts/travis/update/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/alfresco-process-workspace-app' -echo "Update AMA Activiti" -./scripts/travis/update/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Activiti/activiti-modeling-app' echo "Update APA Activiti" ./scripts/travis/update/update-project.sh -gnu -t $GITHUB_TOKEN -n 'Alfresco/alfresco-admin-app'