[ACS-259] refactor login page (#5733)

* refator login page

* refator login page

* remove obsolete classes and move what is needed in the test pck

* fix const

* revert modify

* remove duplicate browser property

* fix build

* fix

* fix

* fix lint

* move drop action in testing
remove not necessary space
js-api centralize content

* first refactor use js-api

* fix protractor

* refactor test config

* simplify properties
fix namings

* ps cloud simplify
remove unused js files

* id fix

* fix search test
simplify environment var step 1

* fix lint

* first user iteration fix

* fix model

* unify use of apiService

* first step automatic user creation Identity

* refactor creation user content-services

* refactor creation user search

* refactor creation user core

* process service refactoring 1

* process service refactoring 1

* process service refactoring 2

* fix process

* appconfig

* fix process util

* fix gallery

* fix "this" reference issues

* fix incorrect import paths

* fix core

* some fixes

* allign

* fix some test
remove structure folder and move in actions

* fixes

* move folders in the right place

* fix

* fix rebase

* solve build issue

* fix e2e

* change init aae

* order api and some fixes

* fix possible not valid password

* fix some ps test

* replace host port also in objects

* Update app-config.service.ts

* fix process

* fix process test

* process service cloud fix

* fiexs

* modify init script

* fix two test

* remove unused property

* host issue

* not use npx

* fix ps cloud test

Co-authored-by: Denys Vuika <denys.vuika@gmail.com>
This commit is contained in:
Eugenio Romano
2020-06-04 14:41:30 +01:00
committed by GitHub
co-authored by Denys Vuika
parent f0df6b3a5f
commit a78f24ada1
297 changed files with 5130 additions and 9622 deletions
@@ -14,38 +14,34 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { LoginPage, AboutPage } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { LoginSSOPage, AboutPage, ApiService } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { UsersActions } from '../actions/users.actions';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
describe('About Process Services', () => {
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const aboutPage = new AboutPage();
let user, tenantId;
let user;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
beforeAll(async() => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
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 apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
user = await usersActions.createUser();
await apiService.getInstance().login(user.email, user.password);
await loginPage.login(user.email, user.password);
await navigationBarPage.clickAboutButton();
});
afterAll(async() => {
await navigationBarPage.clickLogoutButton();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
it('[C280002] Should be able to view about process services info', async () => {
+23 -29
View File
@@ -16,48 +16,42 @@
*/
import { browser } from 'protractor';
import { LoginPage, ApplicationsUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, ApplicationsUtil, ApiService } from '@alfresco/adf-testing';
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import CONSTANTS = require('../util/constants');
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { AppsActions } from '../actions/APS/apps.actions';
import { ModelsActions } from '../actions/APS/models.actions';
describe('Modify applications', () => {
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const app = browser.params.resources.Files.APP_WITH_PROCESSES;
const appToBeDeleted = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const replacingApp = browser.params.resources.Files.WIDGETS_SMOKE_TEST;
const apps = new AppsActions();
const modelActions = new ModelsActions();
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const apiService = new ApiService();
const modelActions = new ModelsActions(apiService);
const apps = new ApplicationsUtil(apiService);
const usersActions = new UsersActions(apiService);
const applicationService = new ApplicationsUtil(apiService);
let firstApp, appVersionToBeDeleted;
let applicationService;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
const user = await usersActions.createUser();
applicationService = new ApplicationsUtil(this.alfrescoJsApi);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const user = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(user.email, user.password);
await apiService.getInstance().login(user.email, user.password);
firstApp = await applicationService.importPublishDeployApp(app.file_path);
appVersionToBeDeleted = await applicationService.importPublishDeployApp(appToBeDeleted.file_path);
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
it('[C260198] Should the app be displayed on dashboard when is deployed on APS', async () => {
@@ -79,7 +73,7 @@ describe('Modify applications', () => {
await expect(await processServicesPage.getBackgroundColor(app.title)).toEqual(CONSTANTS.APP_COLOR.BLUE);
await expect(await processServicesPage.getDescription(app.title)).toEqual(app.description);
await apps.importNewVersionAppDefinitionPublishDeployApp(this.alfrescoJsApi, replacingApp.file_location, firstApp.id);
await apps.importNewVersionAppDefinitionPublishDeployApp(replacingApp.file_location, firstApp.id);
await navigationBarPage.clickHomeButton();
await navigationBarPage.navigateToProcessServicesPage();
@@ -98,7 +92,7 @@ describe('Modify applications', () => {
await processServicesPage.checkAppIsDisplayed(app.title);
await modelActions.deleteEntireModel(this.alfrescoJsApi, firstApp.id);
await modelActions.deleteEntireModel(firstApp.id);
await navigationBarPage.clickHomeButton();
await navigationBarPage.navigateToProcessServicesPage();
@@ -114,7 +108,7 @@ describe('Modify applications', () => {
await processServicesPage.checkAppIsDisplayed(appToBeDeleted.title);
await expect(await processServicesPage.getBackgroundColor(appToBeDeleted.title)).toEqual(CONSTANTS.APP_COLOR.ORANGE);
await apps.importNewVersionAppDefinitionPublishDeployApp(this.alfrescoJsApi, replacingApp.file_location, appVersionToBeDeleted.id);
await apps.importNewVersionAppDefinitionPublishDeployApp(replacingApp.file_location, appVersionToBeDeleted.id);
await navigationBarPage.clickHomeButton();
await navigationBarPage.navigateToProcessServicesPage();
@@ -123,9 +117,9 @@ describe('Modify applications', () => {
await expect(await processServicesPage.getBackgroundColor(appToBeDeleted.title)).toEqual(CONSTANTS.APP_COLOR.GREY);
await modelActions.deleteVersionModel(this.alfrescoJsApi, appVersionToBeDeleted.id);
await modelActions.deleteVersionModel(this.alfrescoJsApi, appVersionToBeDeleted.id);
await apps.publishDeployApp(this.alfrescoJsApi, appVersionToBeDeleted.id);
await modelActions.deleteVersionModel(appVersionToBeDeleted.id);
await modelActions.deleteVersionModel(appVersionToBeDeleted.id);
await apps.publishDeployApp(appVersionToBeDeleted.id);
await navigationBarPage.clickHomeButton();
await navigationBarPage.navigateToProcessServicesPage();
@@ -155,7 +149,7 @@ describe('Modify applications', () => {
}, 'publish': true
};
await this.alfrescoJsApi.activiti.appsApi.updateAppDefinition(appVersionToBeDeleted.id, appDefinition);
await apiService.getInstance().activiti.appsApi.updateAppDefinition(appVersionToBeDeleted.id, appDefinition);
await navigationBarPage.clickHomeButton();
await navigationBarPage.navigateToProcessServicesPage();
@@ -16,42 +16,45 @@
*/
import {
ApiService,
ApplicationsUtil,
ContentNodeSelectorDialogPage,
ExternalNodeSelectorDialogPage,
IntegrationService,
LoginPage,
UploadActions,
IntegrationService, LocalStorageUtil,
LoginSSOPage,
UploadActions, UserModel,
Widget
} from '@alfresco/adf-testing';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { browser } from 'protractor';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { User } from '../models/APS/user';
import CONSTANTS = require('../util/constants');
describe('Attach File - Content service', () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ALL',
hostEcm: browser.params.testConfig.adf_acs.host,
hostBpm: browser.params.testConfig.adf_aps.host
});
this.alfrescoJsApiExternal = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_external_acs.host
});
const loginPage = new LoginPage();
const app = browser.params.resources.Files.WIDGET_CHECK_APP;
const loginPage = new LoginSSOPage();
const widget = new Widget();
const taskPage = new TasksPage();
const navigationBarPage = new NavigationBarPage();
const contentNodeSelector = new ContentNodeSelectorDialogPage();
const externalNodeSelector = new ExternalNodeSelectorDialogPage();
const app = browser.params.resources.Files.WIDGET_CHECK_APP;
const { adminEmail, adminPassword } = browser.params.testConfig.adf;
const apiServiceExternal = new ApiService({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_external_acs.host
});
const usersActionsExternal = new UsersActions(apiServiceExternal);
const apiService = new ApiService({ provider: 'ALL'});
const integrationService = new IntegrationService(apiService);
const applicationService = new ApplicationsUtil(apiService);
const uploadActions = new UploadActions(apiService);
const usersActions = new UsersActions(apiService);
const { email, password } = browser.params.testConfig.admin;
const pdfFileOne = {
name: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name,
@@ -65,36 +68,32 @@ describe('Attach File - Content service', () => {
const externalFile = 'Project Overview.ppt';
const csIntegrations = ['adf dev', 'adf master'];
let user: User;
let user: UserModel;
beforeAll(async () => {
const integrationService = new IntegrationService(this.alfrescoJsApi);
const applicationService = new ApplicationsUtil(this.alfrescoJsApi);
const uploadActions = new UploadActions(this.alfrescoJsApi);
const users = new UsersActions();
await LocalStorageUtil.setStorageItem('providers', 'ALL');
await this.alfrescoJsApi.login(adminEmail, adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
const acsUser = { ...user, id: user.email }; delete acsUser.type; delete acsUser.tenantId;
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
await this.alfrescoJsApiExternal.login(adminEmail, adminPassword);
await this.alfrescoJsApiExternal.core.peopleApi.addPerson(acsUser);
await apiService.getInstance().login(email, password);
user = await usersActions.createUser();
await integrationService.addCSIntegration({ tenantId: user.tenantId, name: csIntegrations[0], host: browser.params.testConfig.adf_acs.host });
await apiServiceExternal.login(email, password);
await usersActionsExternal.createUser(user);
await integrationService.addCSIntegration({ tenantId: user.tenantId, name: csIntegrations[0], host: browser.params.testConfig.appConfig.ecmHost });
await integrationService.addCSIntegration({ tenantId: user.tenantId, name: csIntegrations[1], host: browser.params.testConfig.adf_external_acs.host });
await this.alfrescoJsApi.login(user.email, user.password);
await apiService.getInstance().login(user.email, user.password);
await uploadActions.uploadFile(pdfFileTwo.location, pdfFileTwo.name, '-my-');
await applicationService.importPublishDeployApp(app.file_path);
});
afterAll(async () => {
await this.alfrescoJsApi.login(adminEmail, adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(user.tenantId);
await apiService.getInstance().login(email, password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
beforeEach( async () => {
await loginPage.loginToAllUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
afterEach( async () => {
@@ -172,9 +171,6 @@ describe('Attach File - Content service', () => {
await widget.attachFileWidget().clickUploadButton(app.UPLOAD_FILE_FORM_CS.FIELD.widget_id);
await widget.attachFileWidget().selectUploadSource(csIntegrations[1]);
await expect(await externalNodeSelector.getTitle()).toEqual(`Sign into '${browser.params.testConfig.adf_external_acs.host}'`);
await externalNodeSelector.login(user.email, user.password);
await externalNodeSelector.searchAndSelectResult(externalFile, externalFile);
await externalNodeSelector.clickMoveCopyButton();
await widget.attachFileWidget().checkFileIsAttached(app.UPLOAD_FILE_FORM_CS.FIELD.widget_id, externalFile);
@@ -15,32 +15,28 @@
* limitations under the License.
*/
import { LoginPage, Widget, ViewerPage, ApplicationsUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, Widget, ViewerPage, ApplicationsUtil, ApiService, UserModel } from '@alfresco/adf-testing';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../util/constants');
import { FileModel } from '../models/ACS/file.model';
import { browser } from 'protractor';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { User } from '../models/APS/user';
describe('Start Task - Task App', () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
const users = new UsersActions();
const applicationService = new ApplicationsUtil(this.alfrescoJsApi);
const app = browser.params.resources.Files.WIDGETS_SMOKE_TEST;
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const viewerPage = new ViewerPage();
const widget = new Widget();
const taskPage = new TasksPage();
const navigationBarPage = new NavigationBarPage();
let user: User;
const app = browser.params.resources.Files.WIDGETS_SMOKE_TEST;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationService = new ApplicationsUtil(apiService);
let user: UserModel;
const pdfFile = new FileModel({ 'name': browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name });
const wordFile = new FileModel({
name: browser.params.resources.Files.ADF_DOCUMENTS.DOCX.file_name,
@@ -49,16 +45,16 @@ describe('Start Task - Task App', () => {
const appFields = app.form_fields;
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(user.email, user.password);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
user = await usersActions.createUser();
await apiService.getInstance().login(user.email, user.password);
await applicationService.importPublishDeployApp(app.file_path);
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(user.tenantId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
it('[C274690] Should be able to open a file attached to a start form', async () => {
+25 -28
View File
@@ -16,58 +16,55 @@
*/
import {
ApiService,
ApplicationsUtil,
ContentNodeSelectorDialogPage,
IntegrationService,
LoginPage,
IntegrationService, LocalStorageUtil,
LoginSSOPage, UserModel,
Widget
} from '@alfresco/adf-testing';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { browser } from 'protractor';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { User } from '../models/APS/user';
import CONSTANTS = require('../util/constants');
describe('Attach Folder', () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ALL',
hostEcm: browser.params.testConfig.adf_acs.host,
hostBpm: browser.params.testConfig.adf_aps.host
});
const integrationService = new IntegrationService(this.alfrescoJsApi);
const applicationService = new ApplicationsUtil(this.alfrescoJsApi);
const app = browser.params.resources.Files.WIDGET_CHECK_APP;
const users = new UsersActions();
const loginPage = new LoginPage();
const apiService = new ApiService({ provider: 'ALL' });
const integrationService = new IntegrationService(apiService);
const applicationService = new ApplicationsUtil(apiService);
const usersActions = new UsersActions(apiService);
const loginPage = new LoginSSOPage();
const widget = new Widget();
const taskPage = new TasksPage();
const navigationBarPage = new NavigationBarPage();
const contentNodeSelector = new ContentNodeSelectorDialogPage();
const app = browser.params.resources.Files.WIDGET_CHECK_APP;
const meetingNotes = 'Meeting Notes';
const { adminEmail, adminPassword } = browser.params.testConfig.adf;
let user: User;
let user: UserModel;
beforeAll(async () => {
await this.alfrescoJsApi.login(adminEmail, adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
await LocalStorageUtil.setStorageItem('providers', 'ALL');
const acsUser = { ...user, id: user.email }; delete acsUser.type; delete acsUser.tenantId;
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
user = await usersActions.createUser();
await integrationService.addCSIntegration({ tenantId: user.tenantId, name: 'adf dev', host: browser.params.testConfig.adf_acs.host });
await this.alfrescoJsApi.login(user.email, user.password);
await integrationService.addCSIntegration({
tenantId: user.tenantId,
name: 'adf dev',
host: browser.params.testConfig.appConfig.ecmHost
});
await apiService.getInstance().login(user.email, user.password);
await applicationService.importPublishDeployApp(app.file_path);
await loginPage.loginToAllUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
await this.alfrescoJsApi.login(adminEmail, adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
it('[C246534] Attach folder - ACS', async () => {
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton();
@@ -81,7 +78,7 @@ describe('Attach Folder', () => {
await expect(await contentNodeSelector.checkCancelButtonIsEnabled()).toBe(true);
await expect(await contentNodeSelector.checkCopyMoveButtonIsEnabled()).toBe(true);
await contentNodeSelector.searchAndSelectResult(meetingNotes, meetingNotes);
await contentNodeSelector.searchAndSelectResult('Meeting Notes', 'Meeting Notes');
await expect(await contentNodeSelector.checkCancelButtonIsEnabled()).toBe(true);
await expect(await contentNodeSelector.checkCopyMoveButtonIsEnabled()).toBe(false);
@@ -15,8 +15,7 @@
* limitations under the License.
*/
import { FormFields, LoginPage, ApplicationsUtil } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { FormFields, LoginSSOPage, ApplicationsUtil, ApiService } from '@alfresco/adf-testing';
import { browser, by } from 'protractor';
import { UsersActions } from '../actions/users.actions';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
@@ -24,19 +23,24 @@ import { AttachFormPage } from '../pages/adf/process-services/attach-form.page';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { TaskDetailsPage } from '../pages/adf/process-services/task-details.page';
import CONSTANTS = require('../util/constants');
import { TaskRepresentation } from '@alfresco/js-api';
describe('Attach Form Component', () => {
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const taskDetailsPage = new TaskDetailsPage();
const attachFormPage = new AttachFormPage();
const formFields = new FormFields();
const navigationBarPage = new NavigationBarPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationService = new ApplicationsUtil(apiService);
const formTextField = app.form_fields.form_fieldId;
let user, tenantId, appId;
let user, tenantId, appModel;
const testNames = {
taskName: 'Test Task',
@@ -47,36 +51,25 @@ describe('Attach Form Component', () => {
};
beforeAll(async () => {
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
const applicationService = new ApplicationsUtil(this.alfrescoJsApi);
const users = new UsersActions();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
user = await usersActions.createUser();
tenantId = user.tenantId;
await this.alfrescoJsApi.login(user.email, user.password);
await apiService.getInstance().login(user.email, user.password);
const appModel = await applicationService.importPublishDeployApp(app.file_path);
appModel = await applicationService.importPublishDeployApp(app.file_path);
appId = appModel.id;
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: testNames.taskName }));
await this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: testNames.taskName });
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
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);
await apiService.getInstance().activiti.modelsApi.deleteModel(appModel.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId);
});
it('[C280047] Should be able to view the attach-form component after creating a standalone task', async () => {
+15 -20
View File
@@ -15,60 +15,55 @@
* limitations under the License.
*/
import { LoginPage } from '@alfresco/adf-testing';
import { ApiService, LoginSSOPage } from '@alfresco/adf-testing';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
import { ChecklistDialog } from '../pages/adf/process-services/dialog/create-checklist-dialog.page';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import CONSTANTS = require('../util/constants');
import { Tenant } from '../models/APS/tenant';
import { browser } from 'protractor';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import fs = require('fs');
import path = require('path');
import { TaskRepresentation } from '@alfresco/js-api';
describe('Checklist component', () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const processServices = new ProcessServicesPage();
const checklistDialog = new ChecklistDialog();
const navigationBarPage = new NavigationBarPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let processUserModel;
const tasks = ['no checklist created task', 'checklist number task', 'remove running checklist', 'remove completed checklist', 'hierarchy'];
const checklists = ['cancelCheckList', 'dialogChecklist', 'addFirstChecklist', 'addSecondChecklist'];
const removeChecklist = ['removeFirstRunningChecklist', 'removeSecondRunningChecklist', 'removeFirstCompletedChecklist', 'removeSecondCompletedChecklist'];
const hierarchyChecklist = ['checklistOne', 'checklistTwo', 'checklistOneChild', 'checklistTwoChild'];
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const newTenant = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
processUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id);
processUserModel = await usersActions.createUser();
const pathFile = path.join(browser.params.testConfig.main.rootPath + app.file_location);
const file = fs.createReadStream(pathFile);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
await this.alfrescoJsApi.activiti.appsApi.importAppDefinition(file);
await apiService.getInstance().activiti.appsApi.importAppDefinition(file);
for (let i = 0; i < tasks.length; i++) {
this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: tasks[i] });
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: tasks[i] }));
}
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -16,65 +16,59 @@
*/
import { browser } from 'protractor';
import { LoginPage, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { ProcessFiltersPage } from '../pages/adf/process-services/process-filters.page';
import { CommentsPage } from '../pages/adf/comments.page';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
describe('Comment component for Processes', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const processFiltersPage = new ProcessFiltersPage();
const commentsPage = new CommentsPage();
const navigationBarPage = new NavigationBarPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
let user, tenantId, appId, processInstanceId, addedComment;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let user, appId, processInstanceId, addedComment;
const processName = 'Comment APS';
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
const users = new UsersActions();
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
user = await usersActions.createUser();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(user.email, user.password);
user = await users.createTenantAndUser(this.alfrescoJsApi);
const importedApp = await applicationsService.importPublishDeployApp(app.file_path);
appId = importedApp.id;
tenantId = user.tenantId;
const processWithComment = await new ProcessUtil(apiService).startProcessOfApp(importedApp.name, processName);
processInstanceId = processWithComment.id;
await this.alfrescoJsApi.login(user.email, user.password);
const importedApp = await applicationsService.importPublishDeployApp(app.file_path);
appId = importedApp.id;
const processWithComment = await new ProcessUtil(this.alfrescoJsApi).startProcessOfApp(importedApp.name, processName);
processInstanceId = processWithComment.id;
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
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);
await apiService.getInstance().activiti.modelsApi.deleteModel(appId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
it('[C260464] Should be able to add a comment on APS and check on ADF', async () => {
await this.alfrescoJsApi.activiti.commentsApi.addProcessInstanceComment({ message: 'HELLO' }, processInstanceId);
await apiService.getInstance().activiti.commentsApi.addProcessInstanceComment({ message: 'HELLO' }, processInstanceId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList(processName);
addedComment = await this.alfrescoJsApi.activiti.commentsApi.getProcessInstanceComments(processInstanceId, { 'latestFirst': true });
addedComment = await apiService.getInstance().activiti.commentsApi.getProcessInstanceComments(processInstanceId, { 'latestFirst': true });
await commentsPage.checkUserIconIsDisplayed();
@@ -85,34 +79,34 @@ describe('Comment component for Processes', () => {
});
it('[C260465] Should not be able to view process comment on included task', async () => {
await this.alfrescoJsApi.activiti.commentsApi.addProcessInstanceComment({ message: 'GOODBYE' }, processInstanceId);
await apiService.getInstance().activiti.commentsApi.addProcessInstanceComment({ message: 'GOODBYE' }, processInstanceId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList(processName);
const taskQuery = await this.alfrescoJsApi.activiti.taskApi.listTasks({ processInstanceId: processInstanceId });
const taskQuery = await apiService.getInstance().activiti.taskApi.listTasks({ processInstanceId: processInstanceId });
const taskId = taskQuery.data[0].id;
const taskComments = await this.alfrescoJsApi.activiti.commentsApi.getTaskComments(taskId, { 'latestFirst': true });
const taskComments = await apiService.getInstance().activiti.commentsApi.getTaskComments(taskId, { 'latestFirst': true });
await expect(await taskComments.total).toEqual(0);
});
it('[C260466] Should be able to display comments from Task on the related Process', async () => {
const taskQuery = await this.alfrescoJsApi.activiti.taskApi.listTasks({ processInstanceId: processInstanceId });
const taskQuery = await apiService.getInstance().activiti.taskApi.listTasks({ processInstanceId: processInstanceId });
const taskId = taskQuery.data[0].id;
await this.alfrescoJsApi.activiti.taskApi.addTaskComment({ message: 'Task Comment' }, taskId);
await apiService.getInstance().activiti.taskApi.addTaskComment({ message: 'Task Comment' }, taskId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList(processName);
const addedTaskComment = await this.alfrescoJsApi.activiti.commentsApi.getProcessInstanceComments(processInstanceId, { 'latestFirst': true });
const addedTaskComment = await apiService.getInstance().activiti.commentsApi.getProcessInstanceComments(processInstanceId, { 'latestFirst': true });
await commentsPage.checkUserIconIsDisplayed();
@@ -17,23 +17,27 @@
import { browser } from 'protractor';
import { LoginPage, ApplicationsUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, ApplicationsUtil, ApiService, UserModel } from '@alfresco/adf-testing';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { CommentsPage } from '../pages/adf/comments.page';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import CONSTANTS = require('../util/constants');
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { TaskRepresentation } from '@alfresco/js-api';
describe('Comment component for Processes', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const taskPage = new TasksPage();
const commentsPage = new CommentsPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
let user, tenantId, appId, secondUser, newTaskId;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let user, appId, secondUser, newTaskId;
const taskName = {
completed_task: 'Test Completed',
@@ -41,42 +45,31 @@ describe('Comment component for Processes', () => {
};
beforeAll(async () => {
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
user = await usersActions.createUser();
secondUser = await usersActions.createUser(new UserModel({ tenantId: user.tenantId }));
const users = new UsersActions();
await apiService.getInstance().login(user.email, user.password);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
tenantId = user.tenantId;
secondUser = await users.createApsUser(this.alfrescoJsApi, tenantId);
await this.alfrescoJsApi.login(user.email, user.password);
const importedApp = await new ApplicationsUtil(this.alfrescoJsApi).importPublishDeployApp(app.file_path);
const importedApp = await new ApplicationsUtil(apiService).importPublishDeployApp(app.file_path);
appId = importedApp.id;
await loginPage.loginToProcessServicesUsingUserModel(user);
});
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
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);
await apiService.getInstance().activiti.modelsApi.deleteModel(appId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
it('[C260237] Should not be able to add a comment on a completed task', async () => {
const newTask = await this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: taskName.completed_task });
const newTask = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: taskName.completed_task }));
const taskId = newTask.id;
await this.alfrescoJsApi.activiti.taskActionsApi.completeTask(taskId);
await apiService.getInstance().activiti.taskActionsApi.completeTask(taskId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton();
@@ -87,17 +80,17 @@ describe('Comment component for Processes', () => {
});
it('[C212864] Should be able to add multiple comments on a single task using different users', async () => {
const newTask = await this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: taskName.multiple_users });
const newTask = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: taskName.multiple_users }));
newTaskId = newTask.id;
await this.alfrescoJsApi.activiti.taskApi.involveUser(newTaskId, { email: secondUser.email });
await apiService.getInstance().activiti.taskApi.involveUser(newTaskId, { email: secondUser.email });
const taskComment = { message: 'Task Comment' };
const secondTaskComment = { message: 'Second Task Comment' };
await this.alfrescoJsApi.activiti.taskApi.addTaskComment(taskComment, newTaskId);
await this.alfrescoJsApi.activiti.taskApi.addTaskComment(secondTaskComment, newTaskId);
await apiService.getInstance().activiti.taskApi.addTaskComment(taskComment, newTaskId);
await apiService.getInstance().activiti.taskApi.addTaskComment(secondTaskComment, newTaskId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton();
@@ -105,7 +98,7 @@ describe('Comment component for Processes', () => {
await taskPage.tasksListPage().selectRow(taskName.multiple_users);
await taskPage.taskDetails().selectActivityTab();
const totalCommentsLatest = await this.alfrescoJsApi.activiti.taskApi.getTaskComments(newTaskId, { 'latestFirst': true });
const totalCommentsLatest = await apiService.getInstance().activiti.taskApi.getTaskComments(newTaskId, { 'latestFirst': true });
const thirdTaskComment = { message: 'Third Task Comment' };
@@ -123,9 +116,9 @@ describe('Comment component for Processes', () => {
await expect(await commentsPage.getTime(0)).toMatch(/(ago|few)/);
await expect(await commentsPage.getTime(1)).toMatch(/(ago|few)/);
await loginPage.loginToProcessServicesUsingUserModel(secondUser);
await loginPage.login(secondUser.email, secondUser.password);
await this.alfrescoJsApi.activiti.taskApi.addTaskComment(thirdTaskComment, newTaskId);
await apiService.getInstance().activiti.taskApi.addTaskComment(thirdTaskComment, newTaskId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton();
@@ -133,7 +126,7 @@ describe('Comment component for Processes', () => {
await taskPage.tasksListPage().selectRow(taskName.multiple_users);
await taskPage.taskDetails().selectActivityTab();
const totalComments = await this.alfrescoJsApi.activiti.taskApi.getTaskComments(newTaskId, { 'latestFirst': true });
const totalComments = await apiService.getInstance().activiti.taskApi.getTaskComments(newTaskId, { 'latestFirst': true });
await commentsPage.checkUserIconIsDisplayed();
await commentsPage.checkUserIconIsDisplayed();
@@ -17,21 +17,24 @@
import { browser } from 'protractor';
import { LoginPage, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { ProcessFiltersPage } from '../pages/adf/process-services/process-filters.page';
import { FiltersPage } from '../pages/adf/process-services/filters.page';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
describe('Sorting for process filters', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const processFiltersPage = new ProcessFiltersPage();
const filtersPage = new FiltersPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let tenantId, appId, user, processesQuery;
let importedApp;
@@ -46,45 +49,36 @@ describe('Sorting for process filters', () => {
completed_least_recently: 'Completed - Least recently'
};
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
});
beforeEach(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const applicationsService = new ApplicationsUtil(apiService);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
user = await users.createTenantAndUser(this.alfrescoJsApi);
user = await usersActions.createUser();
tenantId = user.tenantId;
await this.alfrescoJsApi.login(user.email, user.password);
await apiService.getInstance().login(user.email, user.password);
importedApp = await applicationsService.importPublishDeployApp(app.file_path);
appId = importedApp.id;
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
afterEach(async () => {
await this.alfrescoJsApi.activiti.modelsApi.deleteModel(appId);
await apiService.getInstance().activiti.modelsApi.deleteModel(appId);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId);
});
it('[C260476] Should be able to create a filter on APS for running processes - Oldest first and check on ADF', async () => {
await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.running_old_first, 'icon': 'glyphicon-random',
'filter': { 'sort': 'created-asc', 'name': '', 'state': 'running' }
});
const processUtil = new ProcessUtil(this.alfrescoJsApi);
const processUtil = new ProcessUtil(apiService);
const firstProc = await processUtil.startProcessOfApp(importedApp.name);
const secondProc = await processUtil.startProcessOfApp(importedApp.name);
const thirdProc = await processUtil.startProcessOfApp(importedApp.name);
@@ -93,7 +87,7 @@ describe('Sorting for process filters', () => {
await processFiltersPage.checkFilterIsDisplayed(processFilter.running_old_first);
await filtersPage.goToFilter(processFilter.running_old_first);
processesQuery = await this.alfrescoJsApi.activiti.processApi.getProcessInstances({
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'running', 'sort': 'created-asc'
});
await expect(processesQuery.data[0].name).toEqual(firstProc.name);
@@ -102,19 +96,19 @@ describe('Sorting for process filters', () => {
});
it('[C260477] Should be able to create a filter on APS for completed processes - Oldest first and check on ADF', async () => {
await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.completed_old_first, 'icon': 'glyphicon-random',
'filter': { 'sort': 'created-asc', 'name': '', 'state': 'completed' }
});
const processUtil = new ProcessUtil(this.alfrescoJsApi);
const processUtil = new ProcessUtil(apiService);
const firstProc = await processUtil.startProcessOfApp(importedApp.name);
const secondProc = await processUtil.startProcessOfApp(importedApp.name);
const thirdProc = await processUtil.startProcessOfApp(importedApp.name);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(firstProc.id);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(secondProc.id);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(thirdProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(firstProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(secondProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(thirdProc.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
@@ -122,7 +116,7 @@ describe('Sorting for process filters', () => {
await filtersPage.goToFilter(processFilter.completed_old_first);
processesQuery = await this.alfrescoJsApi.activiti.processApi.getProcessInstances({
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'completed', 'sort': 'created-asc'
});
await expect(processesQuery.data[0].name).toEqual(firstProc.name);
@@ -131,12 +125,12 @@ describe('Sorting for process filters', () => {
});
it('[C260478] Should be able to create a filter on APS for all processes - Oldest first and check on ADF', async () => {
await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.all_old_first, 'icon': 'glyphicon-random',
'filter': { 'sort': 'created-asc', 'name': '', 'state': 'all' }
});
const processUtil = new ProcessUtil(this.alfrescoJsApi);
const processUtil = new ProcessUtil(apiService);
const firstProc = await processUtil.startProcessOfApp(importedApp.name);
const secondProc = await processUtil.startProcessOfApp(importedApp.name);
const thirdProc = await processUtil.startProcessOfApp(importedApp.name);
@@ -145,9 +139,9 @@ describe('Sorting for process filters', () => {
const deleteSecondProc = await processUtil.startProcessOfApp(importedApp.name);
const deleteThirdProc = await processUtil.startProcessOfApp(importedApp.name);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(deleteFirstProc.id);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(deleteSecondProc.id);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(deleteThirdProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(deleteFirstProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(deleteSecondProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(deleteThirdProc.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
@@ -155,7 +149,7 @@ describe('Sorting for process filters', () => {
await filtersPage.goToFilter(processFilter.all_old_first);
processesQuery = await this.alfrescoJsApi.activiti.processApi.getProcessInstances({
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'all', 'sort': 'created-asc'
});
await expect(processesQuery.data[0].name).toEqual(firstProc.name);
@@ -167,12 +161,12 @@ describe('Sorting for process filters', () => {
});
it('[C260479] Should be able to create a filter on APS for running processes - Newest first and check on ADF', async () => {
await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.running_new_first, 'icon': 'glyphicon-random',
'filter': { 'sort': 'created-desc', 'name': '', 'state': 'running' }
});
const processUtil = new ProcessUtil(this.alfrescoJsApi);
const processUtil = new ProcessUtil(apiService);
const firstProc = await processUtil.startProcessOfApp(importedApp.name);
const secondProc = await processUtil.startProcessOfApp(importedApp.name);
const thirdProc = await processUtil.startProcessOfApp(importedApp.name);
@@ -183,7 +177,7 @@ describe('Sorting for process filters', () => {
await filtersPage.goToFilter(processFilter.running_new_first);
processesQuery = await this.alfrescoJsApi.activiti.processApi.getProcessInstances({
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'running', 'sort': 'created-desc'
});
await expect(processesQuery.data[0].name).toEqual(thirdProc.name);
@@ -192,26 +186,26 @@ describe('Sorting for process filters', () => {
});
it('[C260480] Should be able to create a filter on APS for completed processes - Newest first and check on ADF', async () => {
await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.completed_new_first, 'icon': 'glyphicon-random',
'filter': { 'sort': 'created-desc', 'name': '', 'state': 'completed' }
});
const processUtil = new ProcessUtil(this.alfrescoJsApi);
const processUtil = new ProcessUtil(apiService);
const firstProc = await processUtil.startProcessOfApp(importedApp.name);
const secondProc = await processUtil.startProcessOfApp(importedApp.name);
const thirdProc = await processUtil.startProcessOfApp(importedApp.name);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(firstProc.id);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(secondProc.id);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(thirdProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(firstProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(secondProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(thirdProc.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
await processFiltersPage.checkFilterIsDisplayed(processFilter.completed_new_first);
await filtersPage.goToFilter(processFilter.completed_new_first);
processesQuery = await this.alfrescoJsApi.activiti.processApi.getProcessInstances({
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'completed', 'sort': 'created-desc'
});
await expect(processesQuery.data[0].name).toEqual(thirdProc.name);
@@ -220,12 +214,12 @@ describe('Sorting for process filters', () => {
});
it('[C260481] Should be able to create a filter on APS for all processes - Newest first and check on ADF', async () => {
await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.all_new_first, 'icon': 'glyphicon-random',
'filter': { 'sort': 'created-desc', 'name': '', 'state': 'all' }
});
const processUtil = new ProcessUtil(this.alfrescoJsApi);
const processUtil = new ProcessUtil(apiService);
const firstProc = await processUtil.startProcessOfApp(importedApp.name);
const secondProc = await processUtil.startProcessOfApp(importedApp.name);
const thirdProc = await processUtil.startProcessOfApp(importedApp.name);
@@ -234,9 +228,9 @@ describe('Sorting for process filters', () => {
const deleteSecondProc = await processUtil.startProcessOfApp(importedApp.name);
const deleteThirdProc = await processUtil.startProcessOfApp(importedApp.name);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(deleteFirstProc.id);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(deleteSecondProc.id);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(deleteThirdProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(deleteFirstProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(deleteSecondProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(deleteThirdProc.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
@@ -244,7 +238,7 @@ describe('Sorting for process filters', () => {
await filtersPage.goToFilter(processFilter.all_new_first);
processesQuery = await this.alfrescoJsApi.activiti.processApi.getProcessInstances({
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'all', 'sort': 'created-desc'
});
await expect(processesQuery.data[0].name).toEqual(deleteThirdProc.name);
@@ -256,19 +250,19 @@ describe('Sorting for process filters', () => {
});
it('[C272815] Should be able to create a filter on APS for completed processes - Completed most recently and check on ADF', async () => {
await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.completed_most_recently, 'icon': 'glyphicon-random',
'filter': { 'sort': 'ended-asc', 'name': '', 'state': 'completed' }
});
const processUtil = new ProcessUtil(this.alfrescoJsApi);
const processUtil = new ProcessUtil(apiService);
const firstProc = await processUtil.startProcessOfApp(importedApp.name);
const secondProc = await processUtil.startProcessOfApp(importedApp.name);
const thirdProc = await processUtil.startProcessOfApp(importedApp.name);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(secondProc.id);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(firstProc.id);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(thirdProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(secondProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(firstProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(thirdProc.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
@@ -276,7 +270,7 @@ describe('Sorting for process filters', () => {
await filtersPage.goToFilter(processFilter.completed_most_recently);
processesQuery = await this.alfrescoJsApi.activiti.processApi.getProcessInstances({
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'completed', 'sort': 'ended-asc'
});
await expect(processesQuery.data[0].name).toEqual(secondProc.name);
@@ -285,19 +279,19 @@ describe('Sorting for process filters', () => {
});
it('[C272816] Should be able to create a filter on APS for completed processes - Completed least recently and check on ADF', async () => {
await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null, 'name': processFilter.completed_least_recently, 'icon': 'glyphicon-random',
'filter': { 'sort': 'ended-desc', 'name': '', 'state': 'completed' }
});
const processUtil = new ProcessUtil(this.alfrescoJsApi);
const processUtil = new ProcessUtil(apiService);
const firstProc = await processUtil.startProcessOfApp(importedApp.name);
const secondProc = await processUtil.startProcessOfApp(importedApp.name);
const thirdProc = await processUtil.startProcessOfApp(importedApp.name);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(secondProc.id);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(firstProc.id);
await this.alfrescoJsApi.activiti.processInstancesApi.deleteProcessInstance(thirdProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(secondProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(firstProc.id);
await apiService.getInstance().activiti.processInstancesApi.deleteProcessInstance(thirdProc.id);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
@@ -305,7 +299,7 @@ describe('Sorting for process filters', () => {
await filtersPage.goToFilter(processFilter.completed_least_recently);
processesQuery = await this.alfrescoJsApi.activiti.processApi.getProcessInstances({
processesQuery = await apiService.getInstance().activiti.processApi.getProcessInstances({
'processDefinitionId': null, 'appDefinitionId': null, 'state': 'completed', 'sort': 'ended-desc'
});
await expect(processesQuery.data[0].name).toEqual(thirdProc.name);
@@ -17,23 +17,25 @@
import { browser } from 'protractor';
import { LoginPage } from '@alfresco/adf-testing';
import { ApiService, LoginSSOPage } from '@alfresco/adf-testing';
import { ProcessFiltersPage } from '../pages/adf/process-services/process-filters.page';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/process-service-tab-bar.page';
import { AppSettingsTogglesPage } from '../pages/adf/process-services/dialog/app-settings-toggles.page';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
describe('New Process Filters', () => {
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const processFiltersPage = new ProcessFiltersPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const appSettingsToggles = new AppSettingsTogglesPage();
const navigationBarPage = new NavigationBarPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let tenantId, user, filterId, customProcessFilter;
const processFilter = {
@@ -48,28 +50,21 @@ describe('New Process Filters', () => {
};
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
user = await usersActions.createUser();
tenantId = user.tenantId;
await this.alfrescoJsApi.login(user.email, user.password);
await apiService.getInstance().login(user.email, user.password);
await loginPage.loginToProcessServicesUsingUserModel(user);
});
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
});
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId);
});
it('[C279965] Should be able to view default filters on ADF', async () => {
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
@@ -80,7 +75,7 @@ describe('New Process Filters', () => {
});
it('[C260473] Should be able to create a new filter on APS and display it on ADF', async () => {
customProcessFilter = await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
customProcessFilter = await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null,
'name': processFilter.new_filter,
'icon': 'glyphicon-random',
@@ -95,7 +90,7 @@ describe('New Process Filters', () => {
});
it('[C286450] Should display the process filter icon when a custom filter is added', async () => {
customProcessFilter = await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
customProcessFilter = await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null,
'name': processFilter.new_icon,
'icon': 'glyphicon-cloud',
@@ -117,20 +112,20 @@ describe('New Process Filters', () => {
});
it('[C260474] Should be able to edit a filter on APS and check it on ADF', async () => {
this.alfrescoJsApi.activiti.userFiltersApi.updateUserProcessInstanceFilter(filterId, {
await apiService.getInstance().activiti.userFiltersApi.updateUserProcessInstanceFilter(filterId, {
'appId': null,
'name': processFilter.edited,
'icon': 'glyphicon-random',
'filter': { 'sort': 'created-desc', 'name': '', 'state': 'running' }
});
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
await processFiltersPage.checkFilterIsDisplayed(processFilter.edited);
await processFiltersPage.checkFilterIsDisplayed(processFilter.edited);
});
it('[C286451] Should display changes on a process filter when this filter icon is edited', async () => {
customProcessFilter = await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
customProcessFilter = await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null,
'name': processFilter.edit_icon,
'icon': 'glyphicon-random',
@@ -143,7 +138,7 @@ describe('New Process Filters', () => {
await processFiltersPage.checkFilterIsDisplayed(processFilter.edit_icon);
await this.alfrescoJsApi.activiti.userFiltersApi.updateUserProcessInstanceFilter(filterId, {
await apiService.getInstance().activiti.userFiltersApi.updateUserProcessInstanceFilter(filterId, {
'appId': null,
'name': processFilter.edit_icon,
'icon': 'glyphicon-cloud',
@@ -175,7 +170,7 @@ describe('New Process Filters', () => {
});
it('[C260475] Should be able to delete a filter on APS and check it on ADF', async () => {
customProcessFilter = await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
customProcessFilter = await apiService.getInstance().activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null,
'name': processFilter.deleted,
'icon': 'glyphicon-random',
@@ -184,7 +179,7 @@ describe('New Process Filters', () => {
filterId = customProcessFilter.id;
await this.alfrescoJsApi.activiti.userFiltersApi.deleteUserProcessInstanceFilter(filterId);
await apiService.getInstance().activiti.userFiltersApi.deleteUserProcessInstanceFilter(filterId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
@@ -15,27 +15,41 @@
* limitations under the License.
*/
import { DateUtil, LoginPage, PaginationPage, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import {
ArrayUtil,
DateUtil,
LoginSSOPage,
PaginationPage,
ApplicationsUtil,
ProcessUtil,
ApiService
} from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { AppsRuntimeActions } from '../actions/APS/apps-runtime.actions';
import { UsersActions } from '../actions/users.actions';
import { Tenant } from '../models/APS/tenant';
import { TaskListDemoPage } from '../pages/adf/demo-shell/process-services/task-list-demo.page';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { Util } from '../util/util';
import moment = require('moment');
import { TaskRepresentation } from '@alfresco/js-api';
describe('Start Task - Custom App', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const secondApp = browser.params.resources.Files.WIDGETS_SMOKE_TEST;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const taskListSinglePage = new TaskListDemoPage();
const paginationPage = new PaginationPage();
const apiService = new ApiService();
const appsRuntime = new AppsRuntimeActions(apiService);
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
const processUtil = new ProcessUtil(apiService);
let processUserModel;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
let appRuntime, secondAppRuntime;
const secondApp = browser.params.resources.Files.WIDGETS_SMOKE_TEST;
let appModel;
const completedTasks = [];
const paginationTasksName = ['t01', 't02', 't03', 't04', 't05', 't06', 't07', 't08', 't09', 't10', 't11', 't12', 't13', 'taskOne', 'taskTwo', 'taskOne'];
@@ -67,60 +81,46 @@ describe('Start Task - Custom App', () => {
};
beforeAll(async () => {
const appsRuntime = new AppsRuntimeActions();
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
const newTenant = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
processUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(app.file_path);
appRuntime = await appsRuntime.getRuntimeAppByName(this.alfrescoJsApi, app.title);
appRuntime = await appsRuntime.getRuntimeAppByName(app.title);
await applicationsService.importPublishDeployApp(secondApp.file_path);
secondAppRuntime = await appsRuntime.getRuntimeAppByName(this.alfrescoJsApi, secondApp.title);
secondAppRuntime = await appsRuntime.getRuntimeAppByName(secondApp.title);
const processUtil = new ProcessUtil(this.alfrescoJsApi);
processDefinitionId = await processUtil.startProcessOfApp(appModel.name);
await processUtil.startProcessOfApp(appModel.name);
await processUtil.startProcessOfApp(appModel.name);
await processUtil.startProcessOfApp(appModel.name);
for (let i = 1; i < paginationTasksName.length; i++) {
await this.alfrescoJsApi.activiti.taskApi.createNewTask({ 'name': paginationTasksName[i] });
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ 'name': paginationTasksName[i] }));
}
for (let i = 0; i < 3; i++) {
completedTasks[i] = await this.alfrescoJsApi.activiti.taskApi.createNewTask({
completedTasks[i] = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({
'name': completedTasksName[i],
'dueDate': DateUtil.formatDate('YYYY-MM-DDTHH:mm:ss.SSSZ', new Date(), i + 2)
});
await this.alfrescoJsApi.activiti.taskActionsApi.completeTask(completedTasks[i].id);
}));
await apiService.getInstance().activiti.taskActionsApi.completeTask(completedTasks[i].id);
}
taskWithDueDate = await this.alfrescoJsApi.activiti.taskApi.createNewTask({
taskWithDueDate = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({
'name': paginationTasksName[0],
'dueDate': currentDateStandardFormat
});
}));
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
describe('', () => {
beforeEach(async () => {
await navigationBarPage.clickTaskListButton();
await taskListSinglePage.clickResetButton();
@@ -132,7 +132,7 @@ describe('Start Task - Custom App', () => {
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(nrOfTasks);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName)).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName)).toEqual(true);
});
await expect(await paginationPage.getCurrentPage()).toEqual('Page 1');
@@ -150,7 +150,7 @@ describe('Start Task - Custom App', () => {
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(nrOfTasks);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName)).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName)).toEqual(true);
});
await paginationPage.checkNextPageButtonIsDisabled();
await paginationPage.checkPreviousPageButtonIsDisabled();
@@ -164,7 +164,7 @@ describe('Start Task - Custom App', () => {
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(itemsPerPage.fiveValue);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName.slice(0, 5))).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName.slice(0, 5))).toEqual(true);
});
await paginationPage.clickOnNextPage();
@@ -176,7 +176,7 @@ describe('Start Task - Custom App', () => {
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(itemsPerPage.fiveValue);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName.slice(5, 10))).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName.slice(5, 10))).toEqual(true);
});
await paginationPage.clickOnNextPage();
@@ -187,7 +187,7 @@ describe('Start Task - Custom App', () => {
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(itemsPerPage.fiveValue);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName.slice(10, 15))).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName.slice(10, 15))).toEqual(true);
});
await paginationPage.clickOnNextPage();
@@ -197,7 +197,7 @@ describe('Start Task - Custom App', () => {
await expect(await paginationPage.getPaginationRange()).toEqual('Showing 16-' + itemsPerPage.fiveValue * currentPage + ' of ' + nrOfTasks);
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(itemsPerPage.fiveValue);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName.slice(15, 20))).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName.slice(15, 20))).toEqual(true);
});
});
@@ -209,7 +209,7 @@ describe('Start Task - Custom App', () => {
await expect(await paginationPage.getPaginationRange()).toEqual('Showing 1-' + itemsPerPage.tenValue * currentPage + ' of ' + nrOfTasks);
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(itemsPerPage.tenValue);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName.slice(0, 10))).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName.slice(0, 10))).toEqual(true);
});
await paginationPage.clickOnNextPage();
currentPage++;
@@ -218,7 +218,7 @@ describe('Start Task - Custom App', () => {
await expect(await paginationPage.getPaginationRange()).toEqual('Showing 11-' + itemsPerPage.tenValue * currentPage + ' of ' + nrOfTasks);
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(itemsPerPage.tenValue);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName.slice(10, 20))).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName.slice(10, 20))).toEqual(true);
});
});
@@ -230,7 +230,7 @@ describe('Start Task - Custom App', () => {
await expect(await paginationPage.getPaginationRange()).toEqual('Showing 1-' + itemsPerPage.fifteenValue * currentPage + ' of ' + nrOfTasks);
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(itemsPerPage.fifteenValue);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName.slice(0, 15))).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName.slice(0, 15))).toEqual(true);
});
currentPage++;
await paginationPage.clickOnNextPage();
@@ -239,7 +239,7 @@ describe('Start Task - Custom App', () => {
await expect(await paginationPage.getPaginationRange()).toEqual('Showing 16-' + nrOfTasks + ' of ' + nrOfTasks);
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(nrOfTasks - itemsPerPage.fifteenValue);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName.slice(15, 20))).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName.slice(15, 20))).toEqual(true);
});
});
@@ -266,7 +266,7 @@ describe('Start Task - Custom App', () => {
await paginationPage.checkPageSelectorIsDisplayed();
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(itemsPerPage.fiveValue);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName.slice(0, 5))).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName.slice(0, 5))).toEqual(true);
});
currentPage++;
@@ -277,7 +277,7 @@ describe('Start Task - Custom App', () => {
await paginationPage.checkPageSelectorIsDisplayed();
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(itemsPerPage.fiveValue);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName.slice(5, 10))).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName.slice(5, 10))).toEqual(true);
});
currentPage++;
@@ -288,7 +288,7 @@ describe('Start Task - Custom App', () => {
await paginationPage.checkPageSelectorIsDisplayed();
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(itemsPerPage.fiveValue);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName.slice(10, 15))).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName.slice(10, 15))).toEqual(true);
});
currentPage++;
@@ -299,7 +299,7 @@ describe('Start Task - Custom App', () => {
await paginationPage.checkPageSelectorIsDisplayed();
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(itemsPerPage.fiveValue);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName.slice(15, 20))).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName.slice(15, 20))).toEqual(true);
});
});
@@ -426,7 +426,7 @@ describe('Start Task - Custom App', () => {
await taskListSinglePage.taskList().checkContentIsNotDisplayed(completedTasks[1].name);
await taskListSinglePage.taskList().checkContentIsNotDisplayed(completedTasks[2].name);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName)).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName)).toEqual(true);
});
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(20);
});
@@ -438,7 +438,7 @@ describe('Start Task - Custom App', () => {
await taskListSinglePage.taskList().checkContentIsDisplayed(completedTasks[1].name);
await taskListSinglePage.taskList().checkContentIsDisplayed(completedTasks[2].name);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(Util.arrayContainsArray(list, allTasksName)).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, allTasksName)).toEqual(true);
});
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(23);
});
@@ -455,7 +455,7 @@ describe('Start Task - Custom App', () => {
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(4);
await taskListSinglePage.getAllProcessDefinitionIds().then(async (list) => {
await expect(Util.arrayContainsArray(list, processDefinitionIds)).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, processDefinitionIds)).toEqual(true);
});
});
@@ -479,7 +479,7 @@ describe('Start Task - Custom App', () => {
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(1);
await taskListSinglePage.getAllProcessInstanceIds().then(async (list) => {
await expect(Util.arrayContainsArray(list, processInstanceIds)).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, processInstanceIds)).toEqual(true);
});
});
@@ -15,39 +15,42 @@
* limitations under the License.
*/
import { LoginPage, Widget, DatePickerCalendarPage, DateUtil, ApplicationsUtil } from '@alfresco/adf-testing';
import {
LoginSSOPage,
Widget,
DatePickerCalendarPage,
DateUtil,
ApplicationsUtil,
ApiService
} from '@alfresco/adf-testing';
import { ProcessFiltersPage } from '../pages/adf/process-services/process-filters.page';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/process-service-tab-bar.page';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { browser } from 'protractor';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
describe('Dynamic Table', () => {
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const processFiltersPage = new ProcessFiltersPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const datePicker = new DatePickerCalendarPage();
const navigationBarPage = new NavigationBarPage();
const widget = new Widget();
const users = new UsersActions();
const alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let user, tenantId, appId;
beforeAll(async () => {
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(alfrescoJsApi);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
user = await usersActions.createUser();
tenantId = user.tenantId;
});
afterAll(async () => {
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId);
});
describe('Date Picker', () => {
@@ -65,16 +68,16 @@ describe('Dynamic Table', () => {
const rowPosition = 0;
beforeAll(async () => {
await alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await apiService.getInstance().login(user.email, user.password);
const applicationsService = new ApplicationsUtil(apiService);
const importedApp = await applicationsService.importPublishDeployApp(app.file_path);
appId = importedApp.id;
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
await alfrescoJsApi.login(user.email, user.password);
await alfrescoJsApi.activiti.modelsApi.deleteModel(appId);
await apiService.getInstance().login(user.email, user.password);
await apiService.getInstance().activiti.modelsApi.deleteModel(appId);
});
beforeEach(async () => {
@@ -126,17 +129,17 @@ describe('Dynamic Table', () => {
const dropdown = widget.dropdown();
beforeAll(async () => {
await alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await apiService.getInstance().login(user.email, user.password);
const applicationsService = new ApplicationsUtil(apiService);
const importedApp = await applicationsService.importPublishDeployApp(app.file_path);
appId = importedApp.id;
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
await alfrescoJsApi.login(user.email, user.password);
await alfrescoJsApi.activiti.modelsApi.deleteModel(appId);
await apiService.getInstance().login(user.email, user.password);
await apiService.getInstance().activiti.modelsApi.deleteModel(appId);
});
beforeEach(async () => {
@@ -16,75 +16,70 @@
*/
import { browser } from 'protractor';
import { LoginPage, ApplicationsUtil, StartProcessPage } from '@alfresco/adf-testing';
import { LoginSSOPage, ApplicationsUtil, StartProcessPage, ApiService } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
import { ProcessFiltersPage } from '../pages/adf/process-services/process-filters.page';
import { ProcessDetailsPage } from '../pages/adf/process-services/process-details.page';
import { ProcessListPage } from '../pages/adf/process-services/process-list.page';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
describe('Empty Process List Test', () => {
const loginPage = new LoginPage();
const appWithProcess = browser.params.resources.Files.APP_WITH_PROCESSES;
const simpleAppWithUserForm = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const processFiltersPage = new ProcessFiltersPage();
const processDetailsPage = new ProcessDetailsPage();
const processListPage = new ProcessListPage();
const startProcessPage = new StartProcessPage();
const appA = browser.params.resources.Files.APP_WITH_PROCESSES;
const appB = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const apiService = new ApiService();
let user;
beforeAll(async () => {
const users = new UsersActions();
const usersActions = new UsersActions(apiService);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const applicationsService = new ApplicationsUtil(apiService);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
user = await usersActions.createUser();
user = await users.createTenantAndUser(this.alfrescoJsApi);
await apiService.getInstance().login(user.email, user.password);
await this.alfrescoJsApi.login(user.email, user.password);
await applicationsService.importPublishDeployApp(appWithProcess.file_path);
await applicationsService.importPublishDeployApp(simpleAppWithUserForm.file_path);
await applicationsService.importPublishDeployApp(appA.file_path);
await applicationsService.importPublishDeployApp(appB.file_path);
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
it('[C260494] Should add process to list when a process is created', async () => {
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await (await processServicesPage.goToApp(appA.title)).clickProcessButton();
await (await processServicesPage.goToApp(appWithProcess.title)).clickProcessButton();
await expect(await processListPage.getDisplayedProcessListTitle()).toEqual('No Processes Found');
await expect(await processDetailsPage.checkProcessDetailsMessage()).toEqual('No process details found');
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.selectFromProcessDropdown(appA.process_wse_name);
await startProcessPage.selectFromProcessDropdown(appWithProcess.process_wse_name);
await startProcessPage.clickStartProcessButton();
await expect(await processFiltersPage.numberOfProcessRows()).toEqual(1);
await processDetailsPage.checkProcessDetailsCard();
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await (await processServicesPage.goToApp(appB.title)).clickProcessButton();
await (await processServicesPage.goToApp(simpleAppWithUserForm.title)).clickProcessButton();
await expect(await processListPage.getDisplayedProcessListTitle()).toEqual('No Processes Found');
await expect(await processDetailsPage.checkProcessDetailsMessage()).toEqual('No process details found');
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.selectFromProcessDropdown(appB.processName);
await startProcessPage.selectFromProcessDropdown(simpleAppWithUserForm.processName);
await startProcessPage.clickStartProcessButton();
await expect(await processFiltersPage.numberOfProcessRows()).toEqual(1);
+11 -17
View File
@@ -15,20 +15,21 @@
* limitations under the License.
*/
import { LoginPage, Widget, FormPage } from '@alfresco/adf-testing';
import { LoginSSOPage, Widget, FormPage, ApiService } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { browser } from 'protractor';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
describe('Form Component', () => {
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const formPage = new FormPage();
const widget = new Widget();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let tenantId, user;
const fields = {
@@ -48,30 +49,23 @@ describe('Form Component', () => {
};
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
const users = new UsersActions();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
user = await usersActions.createUser();
tenantId = user.tenantId;
await this.alfrescoJsApi.login(user.email, user.password);
await apiService.getInstance().login(user.email, user.password);
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
await navigationBarPage.navigateToProcessServicesFormPage();
});
afterAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId);
});
it('[C286505] Should be able to display errors under the Error Log section', async () => {
+21 -26
View File
@@ -15,57 +15,52 @@
* limitations under the License.
*/
import { LoginPage, Widget, ApplicationsUtil, StartProcessPage } from '@alfresco/adf-testing';
import { LoginSSOPage, Widget, ApplicationsUtil, StartProcessPage, ApiService } from '@alfresco/adf-testing';
import { ProcessFiltersPage } from '../pages/adf/process-services/process-filters.page';
import { ProcessDetailsPage } from '../pages/adf/process-services/process-details.page';
import { TaskDetailsPage } from '../pages/adf/process-services/task-details.page';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { browser } from 'protractor';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/process-service-tab-bar.page';
describe('Form widgets - People ', () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.APP_WITH_USER_WIDGET;
const loginPage = new LoginSSOPage();
const processFiltersPage = new ProcessFiltersPage();
let appModel;
let alfrescoJsApi;
const widget = new Widget();
const startProcess = new StartProcessPage();
const processDetailsPage = new ProcessDetailsPage();
const taskDetails = new TaskDetailsPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const widget = new Widget();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let processUserModel;
let appModel;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
const applicationsService = new ApplicationsUtil(apiService);
appModel = await applicationsService.importPublishDeployApp(app.file_path);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
});
await loginPage.login(processUserModel.email, processUserModel.password);
});
afterAll(async () => {
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
beforeEach(async () => {
await (await (await new NavigationBarPage().navigateToProcessServicesPage()).goToApp(appModel.name)).clickProcessButton();
@@ -82,7 +77,7 @@ describe('Form widgets - People ', () => {
await processDetailsPage.clickOnActiveTask();
const taskId = await taskDetails.getId();
const taskForm = await alfrescoJsApi.activiti.taskApi.getTaskForm(taskId);
const taskForm: any = await apiService.getInstance().activiti.taskApi.getTaskForm(taskId);
const userEmail = taskForm['fields'][0].fields['1'][0].value.email;
await expect(userEmail).toEqual(processUserModel.email);
});
@@ -102,7 +97,7 @@ describe('Form widgets - People ', () => {
await processDetailsPage.clickOnCompletedTask();
const taskId = await taskDetails.getId();
const taskForm = await alfrescoJsApi.activiti.taskApi.getTaskForm(taskId);
const taskForm: any = await apiService.getInstance().activiti.taskApi.getTaskForm(taskId);
const userEmail = taskForm['fields'][0].fields['1'][0].value.email;
await expect(userEmail).toEqual(processUserModel.email);
});
@@ -15,49 +15,45 @@
* limitations under the License.
*/
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../util/constants');
import FormDefinitionModel = require('../models/APS/FormDefinitionModel');
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { browser } from 'protractor';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
const formInstance = new FormDefinitionModel();
describe('Form widgets', () => {
let alfrescoJsApi;
const taskPage = new TasksPage();
const newTask = 'First task';
const loginPage = new LoginPage();
let processUserModel;
let appModel;
const loginPage = new LoginSSOPage();
const widget = new Widget();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
const newTask = 'First task';
let processUserModel;
let appModel;
describe('Form widgets', () => {
const app = browser.params.resources.Files.WIDGETS_SMOKE_TEST;
const appFields = app.form_fields;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(app.file_path);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
await (await new NavigationBarPage().navigateToProcessServicesPage()).goToApp(appModel.name);
@@ -74,15 +70,15 @@ describe('Form widgets', () => {
const response = await taskPage.taskDetails().getId();
const formDefinition = await alfrescoJsApi.activiti.taskFormsApi.getTaskForm(response);
const formDefinition = await apiService.getInstance().activiti.taskFormsApi.getTaskForm(response);
formInstance.setFields(formDefinition.fields);
formInstance.setAllWidgets(formDefinition.fields);
});
afterAll(async () => {
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C272778] Should display text and multi-line in form', async () => {
@@ -141,12 +137,11 @@ describe('Form widgets', () => {
});
it('[C272783] Should display displayText and displayValue in form', async () => {
await expect(await widget.displayTextWidget().getFieldLabel(appFields.displayText_id))
await expect(await widget.displayTextWidget().getFieldLabel(appFields.displayText_id))
.toEqual(formInstance.getWidgetBy('id', appFields.displayText_id).value);
await expect(await widget.displayValueWidget().getFieldLabel(appFields.displayValue_id))
await expect(await widget.displayValueWidget().getFieldLabel(appFields.displayValue_id))
.toEqual(formInstance.getWidgetBy('id', appFields.displayValue_id).value || 'Display value' || '');
await expect(await widget.displayValueWidget().getFieldValue(appFields.displayValue_id))
await expect(await widget.displayValueWidget().getFieldValue(appFields.displayValue_id))
.toEqual(formInstance.getWidgetBy('id', appFields.displayValue_id).value || '');
});
@@ -172,53 +167,43 @@ describe('Form widgets', () => {
});
it('[C268149] Should display hyperlink, dropdown and dynamic table in form', async () => {
await expect(await widget.hyperlink().getFieldText(appFields.hyperlink_id))
await expect(await widget.hyperlink().getFieldText(appFields.hyperlink_id))
.toEqual(formInstance.getWidgetBy('id', appFields.hyperlink_id).hyperlinkUrl || '');
await expect(await taskPage.formFields().getFieldLabel(appFields.hyperlink_id))
await expect(await taskPage.formFields().getFieldLabel(appFields.hyperlink_id))
.toEqual(formInstance.getWidgetBy('id', appFields.hyperlink_id).name);
await expect(await taskPage.formFields().getFieldLabel(appFields.dropdown_id))
await expect(await taskPage.formFields().getFieldLabel(appFields.dropdown_id))
.toContain(formInstance.getWidgetBy('id', appFields.dropdown_id).name);
await expect(widget.dropdown().getSelectedOptionText(appFields.dropdown_id))
await expect(widget.dropdown().getSelectedOptionText(appFields.dropdown_id))
.toContain(formInstance.getWidgetBy('id', appFields.dropdown_id).value);
await expect(await widget.dynamicTable().getFieldLabel(appFields.dynamicTable_id))
await expect(await widget.dynamicTable().getFieldLabel(appFields.dynamicTable_id))
.toContain(formInstance.getWidgetBy('id', appFields.dynamicTable_id).name);
await expect(await widget.dynamicTable().getColumnName(appFields.dynamicTable_id))
await expect(await widget.dynamicTable().getColumnName(appFields.dynamicTable_id))
.toContain(formInstance.getWidgetBy('id', appFields.dynamicTable_id).columnDefinitions[0].name);
});
});
describe('with fields involving other people', () => {
const app = browser.params.resources.Files.FORM_ADF;
let deployedApp, process;
const appFields = app.form_fields;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(app.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
const processUtil = new ProcessUtil(alfrescoJsApi);
const processUtil = new ProcessUtil(apiService);
process = await processUtil.startProcessOfApp(appModel.name);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -229,9 +214,9 @@ describe('Form widgets', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C260405] Value fields configured with process variables', async () => {
+28 -24
View File
@@ -15,15 +15,18 @@
* limitations under the License.
*/
import { BrowserActions, BrowserVisibility, LocalStorageUtil, LoginPage, StringUtil, ApplicationsUtil } from '@alfresco/adf-testing';
import {
AlfrescoApiCompatibility as AlfrescoApi,
AppDefinitionRepresentation,
LightTenantRepresentation
} from '@alfresco/js-api';
BrowserActions,
BrowserVisibility,
LocalStorageUtil,
LoginSSOPage,
StringUtil,
ApplicationsUtil,
ApiService, UserModel
} from '@alfresco/adf-testing';
import { AppDefinitionRepresentation } from '@alfresco/js-api';
import { browser, by, element } from 'protractor';
import { UsersActions } from '../actions/users.actions';
import { Tenant } from '../models/APS/tenant';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../util/constants');
@@ -34,13 +37,17 @@ import { infoDrawerConfiguration } from './config/task.config';
describe('Info Drawer', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const taskPage = new TasksPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const processFiltersPage = new ProcessFiltersPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const apiService = new ApiService();
const applicationsService = new ApplicationsUtil(apiService);
const firstComment = 'comm1';
const date = {
@@ -62,32 +69,29 @@ describe('Info Drawer', () => {
let processUserModelFullName: string;
let assigneeUserModelFullName: string;
let appCreated: AppDefinitionRepresentation;
let newTenant: LightTenantRepresentation;
let processUserModel;
beforeAll(async () => {
const users = new UsersActions();
this.alfrescoApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
const usersActions = new UsersActions(apiService);
await this.alfrescoApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
newTenant = await this.alfrescoApi.activiti.adminTenantsApi.createTenant(new Tenant());
const assigneeUserModel = await users.createApsUser(this.alfrescoApi, newTenant.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
const assigneeUserModel = await usersActions.createUser();
assigneeUserModelFullName = assigneeUserModel.firstName + ' ' + assigneeUserModel.lastName;
const processUserModel = await users.createApsUser(this.alfrescoApi, newTenant.id);
processUserModel = await usersActions.createUser(new UserModel({ tenantId: assigneeUserModel.tenantId }));
processUserModelFullName = processUserModel.firstName + ' ' + processUserModel.lastName;
await this.alfrescoApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appCreated = await applicationsService.importPublishDeployApp(app.file_path);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
afterAll(async () => {
await this.alfrescoApi.activiti.modelsApi.deleteModel(appCreated.id);
await this.alfrescoApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoApi.activiti.adminTenantsApi.deleteTenant(newTenant.id);
await apiService.getInstance().activiti.modelsApi.deleteModel(appCreated.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
beforeEach(async () => {
@@ -15,8 +15,7 @@
* limitations under the License.
*/
import { LoginPage, PaginationPage, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { LoginSSOPage, PaginationPage, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { UsersActions } from '../actions/users.actions';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
@@ -25,56 +24,49 @@ import { ProcessFiltersPage } from '../pages/adf/process-services/process-filter
describe('Process List - Pagination when adding processes', () => {
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const paginationPage = new PaginationPage();
const processFiltersPage = new ProcessFiltersPage();
const processDetailsPage = new ProcessDetailsPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const processUtil = new ProcessUtil(apiService);
const applicationsService = new ApplicationsUtil(apiService);
const itemsPerPage = {
fifteen: '15',
fifteenValue: 15
};
const loginPage = new LoginPage();
const paginationPage = new PaginationPage();
const processFiltersPage = new ProcessFiltersPage();
const processDetailsPage = new ProcessDetailsPage();
let processUserModel;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const nrOfProcesses = 25;
let page, totalPages;
let i;
let resultApp;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
resultApp = await applicationsService.importPublishDeployApp(app.file_path);
const processUtil = new ProcessUtil(this.alfrescoJsApi);
for (i = 0; i < (nrOfProcesses - 5); i++) {
for (let i = 0; i < 20; i++) {
await processUtil.startProcessOfApp(resultApp.name);
}
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
await (await (await new NavigationBarPage().navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
});
});
it('[C261046] Should keep Items per page after adding processes', async () => {
await processDetailsPage.checkProcessTitleIsDisplayed();
await processFiltersPage.waitForTableBody();
totalPages = 2;
page = 1;
const totalPages = 2;
let page = 1;
await paginationPage.selectItemsPerPage(itemsPerPage.fifteen);
await processDetailsPage.checkProcessTitleIsDisplayed();
@@ -83,13 +75,12 @@ describe('Process List - Pagination when adding processes', () => {
await expect(await paginationPage.getCurrentPage()).toEqual('Page ' + page);
await expect(await paginationPage.getTotalPages()).toEqual('of ' + totalPages);
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.fifteen);
await expect(await paginationPage.getPaginationRange()).toEqual('Showing 1-' + itemsPerPage.fifteenValue * page + ' of ' + (nrOfProcesses - 5));
await expect(await paginationPage.getPaginationRange()).toEqual('Showing 1-' + itemsPerPage.fifteenValue * page + ' of 20' );
await expect(await processFiltersPage.numberOfProcessRows()).toBe(itemsPerPage.fifteenValue);
await paginationPage.checkNextPageButtonIsEnabled();
await paginationPage.checkPreviousPageButtonIsDisabled();
const processUtil = new ProcessUtil(this.alfrescoJsApi);
for (i; i < nrOfProcesses; i++) {
for (let i = 0; i < 5; i++) {
await processUtil.startProcessOfApp(resultApp.name);
}
@@ -100,8 +91,8 @@ describe('Process List - Pagination when adding processes', () => {
await expect(await paginationPage.getCurrentPage()).toEqual('Page ' + page);
await expect(await paginationPage.getTotalPages()).toEqual('of ' + totalPages);
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.fifteen);
await expect(await paginationPage.getPaginationRange()).toEqual('Showing 16-' + nrOfProcesses + ' of ' + nrOfProcesses);
await expect(await processFiltersPage.numberOfProcessRows()).toBe(nrOfProcesses - itemsPerPage.fifteenValue);
await expect(await paginationPage.getPaginationRange()).toEqual('Showing 16-25 of 25' );
await expect(await processFiltersPage.numberOfProcessRows()).toBe(10);
await paginationPage.checkNextPageButtonIsDisabled();
await paginationPage.checkPreviousPageButtonIsEnabled();
});
@@ -15,8 +15,7 @@
* limitations under the License.
*/
import { LoginPage, PaginationPage, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { LoginSSOPage, PaginationPage, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { UsersActions } from '../actions/users.actions';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
@@ -25,12 +24,17 @@ import CONSTANTS = require('../util/constants');
describe('Items per page set to 15 and adding of tasks', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const paginationPage = new PaginationPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let processUserModel;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
let currentPage = 1;
const nrOfTasks = 25;
const totalPages = 2;
@@ -43,29 +47,20 @@ describe('Items per page set to 15 and adding of tasks', () => {
};
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
resultApp = await applicationsService.importPublishDeployApp(app.file_path);
const processUtil = new ProcessUtil(this.alfrescoJsApi);
const processUtil = new ProcessUtil(apiService);
for (i = 0; i < (nrOfTasks - 5); i++) {
await processUtil.startProcessOfApp(resultApp.name);
}
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
it('[C260306] Items per page set to 15 and adding of tasks', async () => {
@@ -79,7 +74,7 @@ describe('Items per page set to 15 and adding of tasks', () => {
await expect(await paginationPage.getPaginationRange()).toEqual('Showing 1-' + itemsPerPage.fifteenValue + ' of ' + (nrOfTasks - 5));
await expect(await taskPage.tasksListPage().getDataTable().numberOfRows()).toBe(itemsPerPage.fifteenValue);
const processUtil = new ProcessUtil(this.alfrescoJsApi);
const processUtil = new ProcessUtil(apiService);
for (i; i < nrOfTasks; i++) {
await processUtil.startProcessOfApp(resultApp.name);
}
+27 -34
View File
@@ -15,69 +15,62 @@
* limitations under the License.
*/
import { LoginPage } from '@alfresco/adf-testing';
import { ApiService, LoginSSOPage, UserModel } from '@alfresco/adf-testing';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
import CONSTANTS = require('../util/constants');
import { Tenant } from '../models/APS/tenant';
import { browser } from 'protractor';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import fs = require('fs');
import path = require('path');
import { TaskRepresentation } from '@alfresco/js-api';
describe('People component', () => {
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage();
let processUserModel, assigneeUserModel, secondAssigneeUserModel;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const taskPage = new TasksPage();
const peopleTitle = 'People this task is shared with ';
const processServices = new ProcessServicesPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let processUserModel, assigneeUserModel, secondAssigneeUserModel;
const peopleTitle = 'People this task is shared with ';
const tasks = ['no people involved task', 'remove people task', 'can not complete task', 'multiple users', 'completed filter'];
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const newTenant = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
assigneeUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id);
secondAssigneeUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id);
processUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id);
assigneeUserModel = await usersActions.createUser();
secondAssigneeUserModel = await usersActions.createUser(new UserModel({ tenantId: assigneeUserModel.tenantId }));
processUserModel = await usersActions.createUser(new UserModel({ tenantId: assigneeUserModel.tenantId }));
const pathFile = path.join(browser.params.testConfig.main.rootPath + app.file_location);
const file = fs.createReadStream(pathFile);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
await this.alfrescoJsApi.activiti.appsApi.importAppDefinition(file);
await apiService.getInstance().activiti.appsApi.importAppDefinition(file);
await this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: tasks[0] });
await this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: tasks[1] });
await this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: tasks[2] });
await this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: tasks[3] });
await this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: tasks[4] });
});
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: tasks[0] }));
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: tasks[1] }));
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: tasks[2] }));
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: tasks[3] }));
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: tasks[4] }));
});
beforeEach(async () => {
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
await navigationBarPage.navigateToProcessServicesPage();
await (await processServices.goToTaskApp()).clickTasksButton();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
});
});
it('[C279989] Should no people be involved when no user is typed', async () => {
await taskPage.tasksListPage().checkContentIsDisplayed(tasks[0]);
@@ -162,7 +155,7 @@ describe('People component', () => {
await expect(await taskPage.taskDetails().getInvolvedUserEmail(assigneeUserModel.firstName + ' ' + assigneeUserModel.lastName))
.toEqual(assigneeUserModel.email);
await loginPage.loginToProcessServicesUsingUserModel(assigneeUserModel);
await loginPage.login(assigneeUserModel.email, assigneeUserModel.password);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.INV_TASKS);
await taskPage.tasksListPage().checkContentIsDisplayed(tasks[1]);
@@ -220,7 +213,7 @@ describe('People component', () => {
await expect(await taskPage.taskDetails().getInvolvedUserEmail(assigneeUserModel.firstName + ' ' + assigneeUserModel.lastName))
.toEqual(assigneeUserModel.email);
await loginPage.loginToProcessServicesUsingUserModel(assigneeUserModel);
await loginPage.login(assigneeUserModel.email, assigneeUserModel.password);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.COMPLETED_TASKS);
await taskPage.tasksListPage().checkContentIsDisplayed(tasks[3]);
@@ -15,25 +15,37 @@
* limitations under the License.
*/
import { LoginPage, FileBrowserUtil, ViewerPage, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import {
LoginSSOPage,
FileBrowserUtil,
ViewerPage,
ApplicationsUtil,
ProcessUtil,
ApiService
} from '@alfresco/adf-testing';
import { ProcessFiltersPage } from '../pages/adf/process-services/process-filters.page';
import { ProcessDetailsPage } from '../pages/adf/process-services/process-details.page';
import { AttachmentListPage } from '../pages/adf/process-services/attachment-list.page';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { FileModel } from '../models/ACS/file.model';
import { browser } from 'protractor';
describe('Attachment list action menu for processes', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const processFiltersPage = new ProcessFiltersPage();
const processDetailsPage = new ProcessDetailsPage();
const attachmentListPage = new AttachmentListPage();
const navigationBarPage = new NavigationBarPage();
const viewerPage = new ViewerPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
const pngFile = new FileModel({
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_location,
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name
@@ -50,40 +62,32 @@ describe('Attachment list action menu for processes', () => {
};
beforeAll(async () => {
const users = new UsersActions();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const user = await users.createTenantAndUser(this.alfrescoJsApi);
const user = await usersActions.createUser();
tenantId = user.tenantId;
await this.alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(user.email, user.password);
const importedApp = await applicationsService.importPublishDeployApp(app.file_path);
appId = importedApp.id;
const processUtil = new ProcessUtil(this.alfrescoJsApi);
const processUtil = new ProcessUtil(apiService);
await processUtil.startProcessOfApp(importedApp.name, processName.completed);
await processUtil.startProcessOfApp(importedApp.name, processName.active);
await processUtil.startProcessOfApp(importedApp.name, processName.taskApp);
await processUtil.startProcessOfApp(importedApp.name, processName.emptyList);
await processUtil.startProcessOfApp(importedApp.name, processName.dragDrop);
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
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);
await apiService.getInstance().activiti.modelsApi.deleteModel(appId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId);
});
it('[C260228] Should be able to access options of a file attached to an active process', async () => {
@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { LoginPage, BrowserActions, ApplicationsUtil, StartProcessPage } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, ApplicationsUtil, StartProcessPage, ApiService } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
import { ProcessFiltersPage } from '../pages/adf/process-services/process-filters.page';
@@ -23,7 +23,7 @@ import { ProcessServiceTabBarPage } from '../pages/adf/process-services/process-
import { ProcessDetailsPage } from '../pages/adf/process-services/process-details.page';
import { ProcessListPage } from '../pages/adf/process-services/process-list.page';
import { AlfrescoApiCompatibility as AlfrescoApi, UserProcessInstanceFilterRepresentation } from '@alfresco/js-api';
import { UserProcessInstanceFilterRepresentation } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { browser } from 'protractor';
import { ProcessListDemoPage } from '../pages/adf/demo-shell/process-services/process-list-demo.page';
@@ -31,7 +31,9 @@ import CONSTANTS = require('../util/constants');
describe('Process Filters Test', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.APP_WITH_DATE_FIELD_FORM;
const loginPage = new LoginSSOPage();
const processListPage = new ProcessListPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
@@ -40,9 +42,12 @@ describe('Process Filters Test', () => {
const processFiltersPage = new ProcessFiltersPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const processDetailsPage = new ProcessDetailsPage();
let appModel, user;
const app = browser.params.resources.Files.APP_WITH_DATE_FIELD_FORM;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let appModel, user;
const processTitle = {
running: 'Test_running',
@@ -58,19 +63,12 @@ describe('Process Filters Test', () => {
};
beforeAll(async () => {
const users = new UsersActions();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
user = await usersActions.createUser();
await apiService.getInstance().login(user.email, user.password);
appModel = await applicationsService.importPublishDeployApp(app.file_path);
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
beforeEach(async () => {
@@ -133,24 +131,23 @@ describe('Process Filters Test', () => {
});
it('[C280407] Should be able to access the filters with URL', async () => {
const defaultFiltersNumber = 3;
let deployedApp, processFilterUrl;
const appDefinitions = await this.alfrescoJsApi.activiti.appsApi.getAppDefinitions();
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
processFilterUrl = browser.params.testConfig.adf.url + '/activiti/apps/' + deployedApp.id + '/processes/';
const taskAppFilters = await this.alfrescoJsApi.activiti.userFiltersApi.getUserProcessInstanceFilters({ appId: deployedApp.id });
const taskAppFilters = await apiService.getInstance().activiti.userFiltersApi.getUserProcessInstanceFilters({ appId: deployedApp.id });
await processServicesPage.goToApp(app.title);
await processServiceTabBarPage.clickProcessButton();
await processListPage.checkProcessListIsDisplayed();
await expect(taskAppFilters.size).toBe(defaultFiltersNumber);
for (const filter of taskAppFilters) {
for (const filter of taskAppFilters.data) {
await BrowserActions.getUrl(processFilterUrl + filter.id);
await processListPage.checkProcessListIsDisplayed();
await processFiltersPage.checkFilterIsHighlighted(filter.name);
@@ -218,8 +215,8 @@ describe('Process Filters Test', () => {
});
it('[C260384] Edit default filter', async () => {
const runningFilter = (await getFilter(this.alfrescoJsApi)).find(filter => filter.name === 'Running');
await this.alfrescoJsApi.activiti.userFiltersApi
const runningFilter = (await getFilter()).find(filter => filter.name === 'Running');
await apiService.getInstance().activiti.userFiltersApi
.updateUserProcessInstanceFilter(runningFilter.id, { ...runningFilter, name: 'Edited Running' });
await processServicesPage.goToApp(app.title);
@@ -229,18 +226,18 @@ describe('Process Filters Test', () => {
});
it('[C260385] Delete default filter', async () => {
const allFilter = (await getFilter(this.alfrescoJsApi)).find(filter => filter.name === 'All');
await this.alfrescoJsApi.activiti.userFiltersApi.deleteUserProcessInstanceFilter(allFilter.id);
const allFilter = (await getFilter()).find(filter => filter.name === 'All');
await apiService.getInstance().activiti.userFiltersApi.deleteUserProcessInstanceFilter(allFilter.id);
await processServicesPage.goToApp(app.title);
await processServiceTabBarPage.clickProcessButton();
await processFiltersPage.checkFilterIsNotDisplayed('All');
});
async function getFilter(alfrescoJsApi): Promise<UserProcessInstanceFilterRepresentation[]> {
const apps = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
async function getFilter(): Promise<UserProcessInstanceFilterRepresentation[]> {
const apps = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
const { id: appId = 0 } = apps.data.find((application) => application.name === appModel.name);
const filters = await alfrescoJsApi.activiti.userFiltersApi.getUserProcessInstanceFilters({ appId });
const filters = await apiService.getInstance().activiti.userFiltersApi.getUserProcessInstanceFilters({ appId });
return filters.data;
}
@@ -16,10 +16,9 @@
*/
import { browser } from 'protractor';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
import { LoginPage, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/process-service-tab-bar.page';
import { ProcessListPage } from '../pages/adf/process-services/process-list.page';
@@ -28,36 +27,33 @@ import moment = require('moment');
describe('Process Instance Details', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const processListPage = new ProcessListPage();
const processDetailsPage = new ProcessDetailsPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let appModel, process, user;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const PROCESS_DATE_FORMAT = 'll';
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
user = await usersActions.createUser();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(user.email, user.password);
user = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
appModel = await applicationsService.importPublishDeployApp(app.file_path);
const processModel = await new ProcessUtil(this.alfrescoJsApi).startProcessOfApp(appModel.name);
const processModel = await new ProcessUtil(apiService).startProcessOfApp(appModel.name);
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
@@ -65,13 +61,13 @@ describe('Process Instance Details', () => {
await processServiceTabBarPage.clickProcessButton();
await processListPage.checkProcessListIsDisplayed();
process = await this.alfrescoJsApi.activiti.processApi.getProcessInstance(processModel.id);
process = await apiService.getInstance().activiti.processApi.getProcessInstance(processModel.id);
});
afterAll(async () => {
await this.alfrescoJsApi.activiti.modelsApi.deleteModel(appModel.id);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(user.tenantId);
await apiService.getInstance().activiti.modelsApi.deleteModel(appModel.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
it('[C307031] Should display the created date in the default format', async () => {
@@ -15,20 +15,23 @@
* limitations under the License.
*/
import { LoginPage, BrowserActions, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, ProcessUtil, ApiService, ApplicationsUtil } from '@alfresco/adf-testing';
import { ProcessListDemoPage } from '../pages/adf/demo-shell/process-services/process-list-demo.page';
import { browser } from 'protractor';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { AppsActions } from '../actions/APS/apps.actions';
import { UsersActions } from '../actions/users.actions';
describe('Process List Test', () => {
const loginPage = new LoginPage();
const processListDemoPage = new ProcessListDemoPage();
const appWithDateField = browser.params.resources.Files.APP_WITH_DATE_FIELD_FORM;
const appWithUserWidget = browser.params.resources.Files.APP_WITH_USER_WIDGET;
const loginPage = new LoginSSOPage();
const processListDemoPage = new ProcessListDemoPage();
const apiService = new ApiService();
const applicationsUtil = new ApplicationsUtil(apiService);
const usersActions = new UsersActions(apiService);
let appDateModel, appUserWidgetModel, user;
const processList = ['Process With Date', 'Process With Date 2', 'Process With User Widget', 'Process With User Widget 2'];
@@ -49,51 +52,42 @@ describe('Process List Test', () => {
let procWithDate, completedProcWithDate, completedProcWithUserWidget;
beforeAll(async () => {
const apps = new AppsActions();
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
user = await usersActions.createUser();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(user.email, user.password);
user = await users.createTenantAndUser(this.alfrescoJsApi);
appDateModel = await applicationsUtil.importPublishDeployApp(appWithDateField.file_path);
await this.alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
appDateModel = await applicationsService.importPublishDeployApp(appWithDateField.file_path);
const processUtil = new ProcessUtil(this.alfrescoJsApi);
const processUtil = new ProcessUtil(apiService);
procWithDate = await processUtil.startProcessOfApp(appDateModel.name, processName.procWithDate);
completedProcWithDate = await processUtil.startProcessOfApp(appDateModel.name, processName.completedProcWithDate);
appUserWidgetModel = await applicationsService.importPublishDeployApp(appWithUserWidget.file_path);
appUserWidgetModel = await applicationsUtil.importPublishDeployApp(appWithUserWidget.file_path);
await processUtil.startProcessOfApp(appUserWidgetModel.name, processName.procWithUserWidget);
completedProcWithUserWidget = await processUtil.startProcessOfApp(appUserWidgetModel.name, processName.completedProcWithUserWidget);
appWithDateFieldId = await apps.getAppDefinitionId(this.alfrescoJsApi, appDateModel.id);
appWithDateFieldId = await applicationsUtil.getAppDefinitionId(appDateModel.id);
const procWithDateTaskId = await apps.getProcessTaskId(this.alfrescoJsApi, completedProcWithDate.id);
const procWithUserWidgetTaskId = await apps.getProcessTaskId(this.alfrescoJsApi, completedProcWithUserWidget.id);
const procWithDateTaskId = await processUtil.getProcessTaskId(completedProcWithDate.id);
await this.alfrescoJsApi.activiti.taskApi.completeTaskForm(procWithDateTaskId.toString(), { values: { label: null } });
await this.alfrescoJsApi.activiti.taskFormsApi.completeTaskForm(procWithUserWidgetTaskId.toString(), { values: { label: null } });
const procWithUserWidgetTaskId = await processUtil.getProcessTaskId(completedProcWithUserWidget.id);
await loginPage.loginToProcessServicesUsingUserModel(user);
await apiService.getInstance().activiti.taskApi.completeTaskForm(procWithDateTaskId.id, { values: { label: null } });
await apiService.getInstance().activiti.taskFormsApi.completeTaskForm(procWithUserWidgetTaskId.id, { values: { label: null } });
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
await this.alfrescoJsApi.activiti.modelsApi.deleteModel(appDateModel.id);
await this.alfrescoJsApi.activiti.modelsApi.deleteModel(appUserWidgetModel.id);
await apiService.getInstance().activiti.modelsApi.deleteModel(appDateModel.id);
await apiService.getInstance().activiti.modelsApi.deleteModel(appUserWidgetModel.id);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(user.tenantId);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
beforeEach(async () => {
@@ -15,8 +15,7 @@
* limitations under the License.
*/
import { LoginPage, PaginationPage, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { LoginSSOPage, PaginationPage, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { UsersActions } from '../actions/users.actions';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
@@ -25,6 +24,18 @@ import { ProcessFiltersPage } from '../pages/adf/process-services/process-filter
describe('Process List - Pagination', () => {
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const paginationPage = new PaginationPage();
const processFiltersPage = new ProcessFiltersPage();
const processDetailsPage = new ProcessDetailsPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
const itemsPerPage = {
five: '5',
fiveValue: 5,
@@ -39,61 +50,38 @@ describe('Process List - Pagination', () => {
const processFilterRunning = 'Running';
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage();
const paginationPage = new PaginationPage();
const processFiltersPage = new ProcessFiltersPage();
const processDetailsPage = new ProcessDetailsPage();
let deployedTestApp;
let processUserModel;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const nrOfProcesses = 20;
let page;
let totalPages;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
deployedTestApp = await applicationsService.importPublishDeployApp(app.file_path);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
});
await loginPage.login(processUserModel.email, processUserModel.password);
});
describe('With processes Pagination', () => {
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
for (let i = 0; i < nrOfProcesses; i++) {
await new ProcessUtil(this.alfrescoJsApi).startProcessOfApp(deployedTestApp.name);
await new ProcessUtil(apiService).startProcessOfApp(deployedTestApp.name);
}
});
beforeEach(async () => {
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickProcessButton();
});
it('[C261042] Should display default pagination', async() => {
it('[C261042] Should display default pagination', async () => {
page = 1;
totalPages = 1;
await processFiltersPage.clickRunningFilterButton();
@@ -110,7 +98,7 @@ describe('Process List - Pagination', () => {
await paginationPage.checkPreviousPageButtonIsDisabled();
});
it('[C261043] Should be possible to Items per page to 15', async() => {
it('[C261043] Should be possible to Items per page to 15', async () => {
page = 1;
totalPages = 2;
await processFiltersPage.clickRunningFilterButton();
@@ -151,7 +139,7 @@ describe('Process List - Pagination', () => {
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.fifteen);
});
it('[C261044] Should be possible to Items per page to 10', async() => {
it('[C261044] Should be possible to Items per page to 10', async () => {
page = 1;
totalPages = 2;
await processFiltersPage.clickRunningFilterButton();
@@ -192,7 +180,7 @@ describe('Process List - Pagination', () => {
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.ten);
});
it('[C261047] Should be possible to Items per page to 20', async() => {
it('[C261047] Should be possible to Items per page to 20', async () => {
page = 1;
totalPages = 1;
await processFiltersPage.clickRunningFilterButton();
@@ -220,7 +208,7 @@ describe('Process List - Pagination', () => {
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.twenty);
});
it('[C261045] Should be possible to Items per page to 5', async() => {
it('[C261045] Should be possible to Items per page to 5', async () => {
let showing;
page = 1;
totalPages = 4;
@@ -294,7 +282,7 @@ describe('Process List - Pagination', () => {
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
});
it('[C261049] Should be possible to open page number dropdown', async() => {
it('[C261049] Should be possible to open page number dropdown', async () => {
let showing;
page = 1;
totalPages = 2;
@@ -347,7 +335,7 @@ describe('Process List - Pagination', () => {
await paginationPage.checkPreviousPageButtonIsDisabled();
});
it('[C261048] Should be possible to sort processes by name', async() => {
it('[C261048] Should be possible to sort processes by name', async () => {
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.checkFilterIsHighlighted(processFilterRunning);
await processDetailsPage.checkProcessTitleIsDisplayed();
@@ -366,7 +354,7 @@ describe('Process List - Pagination', () => {
await processFiltersPage.checkProcessesSortedByNameDesc();
});
it('[C286260] Should keep sorting when changing \'Items per page\'', async() => {
it('[C286260] Should keep sorting when changing \'Items per page\'', async () => {
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.checkFilterIsHighlighted(processFilterRunning);
await processDetailsPage.checkProcessTitleIsDisplayed();
@@ -15,26 +15,30 @@
* limitations under the License.
*/
import { LoginPage, PaginationPage, ApplicationsUtil } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { StringUtil, LoginSSOPage, PaginationPage, ApplicationsUtil, ApiService } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { UsersActions } from '../actions/users.actions';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { Util } from '../util/util';
import CONSTANTS = require('../util/constants');
import { TaskRepresentation } from '@alfresco/js-api';
describe('Task List Pagination - Sorting', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const paginationPage = new PaginationPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
const nrOfTasks = 20;
let processUserModel;
const taskNameBase = 'Task';
const taskNames = Util.generateSequenceFiles(10, nrOfTasks + 9, taskNameBase, '');
const taskNames = StringUtil.generateFilesNames(10, nrOfTasks + 9, taskNameBase, '');
const itemsPerPage = {
five: '5',
@@ -46,28 +50,19 @@ describe('Task List Pagination - Sorting', () => {
};
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
await applicationsService.importPublishDeployApp(app.file_path);
for (let i = 0; i < nrOfTasks; i++) {
await this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: taskNames[i] });
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: taskNames[i] }));
}
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
it('[C260308] Should be possible to sort tasks by name', async () => {
+16 -22
View File
@@ -17,49 +17,44 @@
import { browser } from 'protractor';
import { LoginPage } from '@alfresco/adf-testing';
import { ApiService, LoginSSOPage } from '@alfresco/adf-testing';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import CONSTANTS = require('../util/constants');
import { Tenant } from '../models/APS/tenant';
import Task = require('../models/APS/Task');
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import fs = require('fs');
import path = require('path');
describe('Start Task - Task App', () => {
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage();
let processUserModel;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const taskPage = new TasksPage();
let processUserModel;
const tasks = ['Standalone task', 'Completed standalone task', 'Add a form', 'Remove form'];
const noFormMessage = 'No forms attached';
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
beforeAll(async () => {
const users = new UsersActions();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const newTenant = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
processUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id);
processUserModel = await usersActions.createUser();
const pathFile = path.join(browser.params.testConfig.main.rootPath + app.file_location);
const file = fs.createReadStream(pathFile);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
await this.alfrescoJsApi.activiti.appsApi.importAppDefinition(file);
await apiService.getInstance().activiti.appsApi.importAppDefinition(file);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -68,7 +63,6 @@ describe('Start Task - Task App', () => {
});
it('[C260421] Should a standalone task be displayed when creating a new task without form', async () => {
const task = await taskPage.createNewTask();
await task.addName(tasks[0]);
await task.clickStartButton();
@@ -128,8 +122,8 @@ describe('Start Task - Task App', () => {
await taskPage.tasksListPage().checkContentIsDisplayed(tasks[3]);
await expect(await taskPage.taskDetails().getFormName()).toEqual(app.formName);
const listOfTasks = await this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
await this.alfrescoJsApi.activiti.taskApi.removeForm(listOfTasks.data[0].id);
const listOfTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
await apiService.getInstance().activiti.taskApi.removeForm(listOfTasks.data[0].id);
await browser.refresh();
await taskPage.tasksListPage().checkContentIsDisplayed(tasks[3]);
@@ -18,18 +18,15 @@
import CONSTANTS = require('../util/constants');
import {
FileBrowserUtil,
LoginPage, SelectAppsDialog,
LoginSSOPage, SelectAppsDialog,
ProcessInstanceTasksPage,
StringUtil,
Widget,
ApplicationsUtil,
StartProcessPage
StartProcessPage, ApiService, UserModel, LocalStorageUtil
} from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { browser } from 'protractor';
import { FileModel } from '../models/ACS/file.model';
import { Tenant } from '../models/APS/tenant';
import { User } from '../models/APS/user';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { AttachmentListPage } from '../pages/adf/process-services/attachment-list.page';
import { ProcessDetailsPage } from '../pages/adf/process-services/process-details.page';
@@ -38,11 +35,16 @@ import { ProcessServicesPage } from '../pages/adf/process-services/process-servi
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/process-service-tab-bar.page';
import { ContentServicesPage } from '../pages/adf/content-services.page';
import { UsersActions } from '../actions/users.actions';
import { AcsUserModel } from '../models/ACS/acs-user.model';
import { UploadDialogPage } from '../pages/adf/dialog/upload-dialog.page';
describe('Start Process Component', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.APP_WITH_PROCESSES;
const simpleApp = browser.params.resources.Files.WIDGETS_SMOKE_TEST;
const dateFormApp = browser.params.resources.Files.APP_WITH_DATE_FIELD_FORM;
const startProcessAttachFileApp = browser.params.resources.Files.START_PROCESS_ATTACH_FILE;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const startProcessPage = new StartProcessPage();
@@ -54,14 +56,17 @@ describe('Start Process Component', () => {
const contentServicesPage = new ContentServicesPage();
const selectAppsDialog = new SelectAppsDialog();
const widget = new Widget();
const app = browser.params.resources.Files.APP_WITH_PROCESSES;
const simpleApp = browser.params.resources.Files.WIDGETS_SMOKE_TEST;
const dateFormApp = browser.params.resources.Files.APP_WITH_DATE_FIELD_FORM;
const startProcessAttachFileApp = browser.params.resources.Files.START_PROCESS_ATTACH_FILE;
let appId, procUserModel, secondProcUserModel, tenantId, simpleAppCreated, dateFormAppCreated;
const processModelWithSe = 'process_with_se', processModelWithoutSe = 'process_without_se';
const apiService = new ApiService();
const apiServiceUserTwo = new ApiService();
let procUserModel: UserModel;
let secondProcUserModel: UserModel;
let appCreated, simpleAppCreated, dateFormAppCreated;
const processName255Characters = StringUtil.generateRandomString(255);
const processNameBiggerThen255Characters = StringUtil.generateRandomString(256);
const lengthValidationError = 'Length exceeded, 255 characters max.';
const auditLogFile = 'Audit.pdf';
@@ -72,57 +77,31 @@ describe('Start Process Component', () => {
});
describe('Provider: BPM', () => {
beforeAll(async () => {
try {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const usersActions = new UsersActions(apiService);
procUserModel = await usersActions.createUser();
secondProcUserModel = await usersActions.createUser(new UserModel({ tenantId: procUserModel.tenantId }));
const newTenant = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
await apiServiceUserTwo.getInstance().login(secondProcUserModel.email, secondProcUserModel.password);
tenantId = newTenant.id;
procUserModel = new User({tenantId: tenantId});
secondProcUserModel = new User({tenantId: tenantId});
await this.alfrescoJsApi.activiti.adminUsersApi.createNewUser(procUserModel);
await this.alfrescoJsApi.activiti.adminUsersApi.createNewUser(secondProcUserModel);
this.alfrescoJsApiUserTwo = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApiUserTwo.login(secondProcUserModel.email, secondProcUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApiUserTwo);
const appCreated = await applicationsService.importPublishDeployApp(app.file_path);
simpleAppCreated = await applicationsService.importPublishDeployApp(simpleApp.file_path);
dateFormAppCreated = await applicationsService.importPublishDeployApp(dateFormApp.file_path);
appId = appCreated.id;
} catch (error) {
throw new Error(`API call failed in beforeAll: ${error}`);
}
const applicationsService = new ApplicationsUtil(apiServiceUserTwo);
appCreated = await applicationsService.importPublishDeployApp(app.file_path);
simpleAppCreated = await applicationsService.importPublishDeployApp(simpleApp.file_path);
dateFormAppCreated = await applicationsService.importPublishDeployApp(dateFormApp.file_path);
});
afterAll(async () => {
await this.alfrescoJsApiUserTwo.activiti.modelsApi.deleteModel(appId);
await this.alfrescoJsApiUserTwo.activiti.modelsApi.deleteModel(simpleAppCreated.id);
await this.alfrescoJsApiUserTwo.activiti.modelsApi.deleteModel(dateFormAppCreated.id);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
await apiServiceUserTwo.getInstance().activiti.modelsApi.deleteModel(appCreated.id);
await apiServiceUserTwo.getInstance().activiti.modelsApi.deleteModel(simpleAppCreated.id);
await apiServiceUserTwo.getInstance().activiti.modelsApi.deleteModel(dateFormAppCreated.id);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(procUserModel.tenantId);
});
describe(' Once logged with user without apps', () => {
beforeEach(async () => {
await loginPage.loginToProcessServicesUsingUserModel(procUserModel);
await loginPage.login(procUserModel.email, procUserModel.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
});
@@ -137,9 +116,8 @@ describe('Start Process Component', () => {
});
describe(' Once logged with user with app', () => {
beforeAll(async () => {
await loginPage.loginToProcessServicesUsingUserModel(secondProcUserModel);
await loginPage.login(secondProcUserModel.email, secondProcUserModel.password);
});
beforeEach(async () => {
@@ -175,15 +153,15 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.selectFromProcessDropdown(processModelWithoutSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.deleteDefaultName();
await browser.sleep(1000);
await startProcessPage.checkStartProcessButtonIsDisabled();
await startProcessPage.clickProcessDropdownArrow();
await startProcessPage.checkProcessOptionIsDisplayed(processModelWithSe);
await startProcessPage.checkProcessOptionIsDisplayed(processModelWithoutSe);
await startProcessPage.checkProcessOptionIsDisplayed(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.checkProcessOptionIsDisplayed(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
});
it('[C260443] Should be possible to start a process without start event', async () => {
@@ -196,7 +174,7 @@ describe('Start Process Component', () => {
await expect(await startProcessPage.checkSelectProcessPlaceholderIsDisplayed()).toBe('');
await startProcessPage.selectFromProcessDropdown(processModelWithoutSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await expect(await startProcessPage.getDefaultName()).toEqual('My Default Name');
@@ -209,11 +187,11 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Test');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processDetailsPage.checkDetailsAreDisplayed();
const processId = await processDetailsPage.getId();
const response = await this.alfrescoJsApi.activiti.processApi.getProcessInstance(processId);
const response = await apiService.getInstance().activiti.processApi.getProcessInstance(processId);
await expect(await processDetailsPage.getProcessStatus()).toEqual(CONSTANTS.PROCESS_STATUS.RUNNING);
await expect(await processDetailsPage.getEndDate()).toEqual(CONSTANTS.PROCESS_END_DATE);
@@ -241,9 +219,9 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.typeProcessDefinition('process');
await startProcessPage.checkProcessOptionIsDisplayed(processModelWithoutSe);
await startProcessPage.checkProcessOptionIsDisplayed(processModelWithSe);
await startProcessPage.selectProcessOption(processModelWithoutSe);
await startProcessPage.checkProcessOptionIsDisplayed(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkProcessOptionIsDisplayed(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.selectProcessOption(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkStartProcessButtonIsEnabled();
});
@@ -252,10 +230,10 @@ describe('Start Process Component', () => {
await processServiceTabBarPage.clickProcessButton();
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.typeProcessDefinition(processModelWithoutSe);
await startProcessPage.checkProcessOptionIsDisplayed(processModelWithoutSe);
await startProcessPage.checkProcessOptionIsNotDisplayed(processModelWithSe);
await startProcessPage.selectProcessOption(processModelWithoutSe);
await startProcessPage.typeProcessDefinition(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkProcessOptionIsDisplayed(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkProcessOptionIsNotDisplayed(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.selectProcessOption(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkStartProcessButtonIsEnabled();
});
@@ -274,10 +252,10 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Type');
await startProcessPage.typeProcessDefinition(processModelWithoutSe);
await startProcessPage.selectProcessOption(processModelWithoutSe);
await startProcessPage.typeProcessDefinition(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.selectProcessOption(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkStartProcessButtonIsEnabled();
await expect(await startProcessPage.getProcessDefinitionValue()).toBe(processModelWithoutSe);
await expect(await startProcessPage.getProcessDefinitionValue()).toBe(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.clickStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('Type');
@@ -291,7 +269,7 @@ describe('Start Process Component', () => {
await startProcessPage.typeProcessDefinition('process');
await startProcessPage.pressDownArrowAndEnter();
await expect(await startProcessPage.getProcessDefinitionValue()).toBe(processModelWithoutSe);
await expect(await startProcessPage.getProcessDefinitionValue()).toBe(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
});
it('[C286514] Should the process definition input be cleared when clicking on options drop down ', async () => {
@@ -300,8 +278,8 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.typeProcessDefinition('process');
await startProcessPage.selectProcessOption(processModelWithoutSe);
await expect(await startProcessPage.getProcessDefinitionValue()).toBe(processModelWithoutSe);
await startProcessPage.selectProcessOption(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await expect(await startProcessPage.getProcessDefinitionValue()).toBe(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.clickProcessDropdownArrow();
await expect(await startProcessPage.getProcessDefinitionValue()).toBe('');
@@ -313,7 +291,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Comment Process');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('Comment Process');
@@ -327,7 +305,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Audit Log');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('Audit Log');
@@ -345,7 +323,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Attach File');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
@@ -364,7 +342,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Show Diagram');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
@@ -379,7 +357,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Active Task');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('Active Task');
@@ -388,7 +366,7 @@ describe('Start Process Component', () => {
});
it('[C260457] Should display process in Completed when cancelled', async () => {
await loginPage.loginToProcessServicesUsingUserModel(secondProcUserModel);
await loginPage.login(secondProcUserModel.email, secondProcUserModel.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await processServicesPage.goToApp(app.title);
@@ -396,7 +374,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Cancel Process');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('Cancel Process');
@@ -412,7 +390,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('Comment Process 2');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('Comment Process 2');
@@ -429,7 +407,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickCreateProcessButton();
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName('File');
await startProcessPage.selectFromProcessDropdown(processModelWithSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_se_name);
await startProcessPage.clickFormStartProcessButton();
await processFiltersPage.clickRunningFilterButton();
await processFiltersPage.selectFromProcessList('File');
@@ -448,7 +426,7 @@ describe('Start Process Component', () => {
await processFiltersPage.clickNewProcessDropdown();
await startProcessPage.enterProcessName(processName255Characters);
await startProcessPage.selectFromProcessDropdown(processModelWithoutSe);
await startProcessPage.selectFromProcessDropdown(browser.params.resources.Files.APP_WITH_PROCESSES.process_wse_name);
await startProcessPage.checkStartProcessButtonIsEnabled();
await startProcessPage.enterProcessName(processNameBiggerThen255Characters);
@@ -479,47 +457,34 @@ describe('Start Process Component', () => {
});
});
describe('Provider: ALL', () => {
describe('Provider: ALL', () => {
const uploadDialog = new UploadDialogPage();
let processUserModel, contentUserModel;
let processUserModel;
const imageUploaded = new FileModel({
'name': browser.params.resources.Files.PROFILE_IMAGES.ECM.file_name,
'location': browser.params.resources.Files.PROFILE_IMAGES.ECM.file_location
});
beforeAll(async () => {
const users = new UsersActions();
this.alfrescoJsApi = new AlfrescoApi({
const apiServiceAll = new ApiService({
provider: 'ALL',
hostEcm: browser.params.testConfig.adf_acs.host,
hostBpm: browser.params.testConfig.adf_aps.host
hostEcm: browser.params.testConfig.appConfig.ecmHost,
hostBpm: browser.params.testConfig.appConfig.bpmHost
});
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const usersActions = new UsersActions(apiServiceAll);
processUserModel = await users.createTenantAndUser(this.alfrescoJsApi);
await apiServiceAll.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
contentUserModel = new AcsUserModel({
'id': processUserModel.email,
'password': processUserModel.password,
'firstName': processUserModel.firstName,
'lastName': processUserModel.lastName,
'email': processUserModel.email
});
processUserModel = await usersActions.createUser();
await this.alfrescoJsApi.core.peopleApi.addPerson(contentUserModel);
const alfrescoJsBPMAdminUser = new ApiService({ hostBpm: browser.params.testConfig.appConfig.bpmHost });
this.alfrescoJsBPMAdminUser = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsBPMAdminUser.login(processUserModel.email, processUserModel.password);
await alfrescoJsBPMAdminUser.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsBPMAdminUser);
const applicationsService = new ApplicationsUtil(alfrescoJsBPMAdminUser);
const appCreated = await applicationsService.importPublishDeployApp(startProcessAttachFileApp.file_path);
appId = appCreated.id;
await applicationsService.importPublishDeployApp(startProcessAttachFileApp.file_path);
});
afterAll(async () => {
@@ -527,7 +492,9 @@ describe('Start Process Component', () => {
});
it('[C260490] Should be able to start a Process within ACS', async () => {
await loginPage.loginToAllUsingUserModel(contentUserModel);
await LocalStorageUtil.setStorageItem('providers', 'ALL');
await loginPage.login(processUserModel.email, processUserModel.password);
await contentServicesPage.goToDocumentList();
await contentServicesPage.checkDocumentListElementsAreDisplayed();
@@ -15,12 +15,10 @@
* limitations under the License.
*/
import { LoginPage, ApplicationsUtil } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { LoginSSOPage, ApplicationsUtil, ApiService, UserModel } from '@alfresco/adf-testing';
import { browser, by } from 'protractor';
import { UsersActions } from '../actions/users.actions';
import { FileModel } from '../models/ACS/file.model';
import { Tenant } from '../models/APS/tenant';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { AttachmentListPage } from '../pages/adf/process-services/attachment-list.page';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/process-service-tab-bar.page';
@@ -29,13 +27,18 @@ import CONSTANTS = require('../util/constants');
describe('Start Task - Custom App', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const attachmentListPage = new AttachmentListPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let processUserModel, assigneeUserModel;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const formTextField = app.form_fields.form_fieldId;
const formFieldValue = 'First value ';
const taskPage = new TasksPage();
@@ -49,28 +52,16 @@ describe('Start Task - Custom App', () => {
});
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
assigneeUserModel = await usersActions.createUser();
processUserModel = await usersActions.createUser(new UserModel({ tenantId: assigneeUserModel.tenantId }));
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const newTenant = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
assigneeUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id);
processUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(app.file_path);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
it('[C263942] Should be possible to modify a task', async () => {
+18 -24
View File
@@ -15,12 +15,10 @@
* limitations under the License.
*/
import { LoginPage, StringUtil } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { ApiService, LoginSSOPage, StringUtil, UserModel } from '@alfresco/adf-testing';
import { browser, by } from 'protractor';
import { UsersActions } from '../actions/users.actions';
import { FileModel } from '../models/ACS/file.model';
import { Tenant } from '../models/APS/tenant';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { AttachmentListPage } from '../pages/adf/process-services/attachment-list.page';
import { ChecklistDialog } from '../pages/adf/process-services/dialog/create-checklist-dialog.page';
@@ -29,16 +27,21 @@ import { TasksPage } from '../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../util/constants');
import fs = require('fs');
import path = require('path');
import { TaskRepresentation } from '@alfresco/js-api';
describe('Start Task - Task App', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const attachmentListPage = new AttachmentListPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const navigationBarPage = new NavigationBarPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let processUserModel, assigneeUserModel;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const formTextField = app.form_fields.form_fieldId;
const formFieldValue = 'First value ';
const taskPage = new TasksPage();
@@ -54,37 +57,28 @@ describe('Start Task - Task App', () => {
});
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
assigneeUserModel = await usersActions.createUser();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const newTenant = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
assigneeUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id);
processUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id);
processUserModel = await usersActions.createUser(new UserModel({ tenantId: assigneeUserModel.tenantId }));
const pathFile = path.join(browser.params.testConfig.main.rootPath + app.file_location);
const file = fs.createReadStream(pathFile);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
await this.alfrescoJsApi.activiti.appsApi.importAppDefinition(file);
await apiService.getInstance().activiti.appsApi.importAppDefinition(file);
await this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: showHeaderTask });
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: showHeaderTask }));
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
});
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
});
});
it('[C260383] Should be possible to modify a task', async () => {
const task = await taskPage.createNewTask();
@@ -197,5 +191,5 @@ describe('Start Task - Task App', () => {
await startDialog.blur(startDialog.name);
await startDialog.checkValidationErrorIsDisplayed(lengthValidationError);
await startDialog.checkStartButtonIsDisabled();
});
});
});
+15 -18
View File
@@ -15,12 +15,10 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { LoginPage, ApplicationsUtil, StartProcessPage } from '@alfresco/adf-testing';
import { LoginSSOPage, ApplicationsUtil, StartProcessPage, ApiService, UserModel } from '@alfresco/adf-testing';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { browser } from 'protractor';
import { User } from '../models/APS/user';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/process-service-tab-bar.page';
import { ProcessListDemoPage } from '../pages/adf/demo-shell/process-services/process-list-demo.page';
@@ -31,7 +29,9 @@ import CONSTANTS = require('../util/constants');
describe('Stencil', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.STENCIL_PROCESS;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const navigationBarPage = new NavigationBarPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
@@ -40,28 +40,25 @@ describe('Stencil', () => {
const processListPage = new ProcessListPage();
const processDetailsPage = new ProcessDetailsPage();
const processFiltersPage = new ProcessFiltersPage();
const usersActions = new UsersActions();
const alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
const app = browser.params.resources.Files.STENCIL_PROCESS;
let user: User;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let user: UserModel;
beforeAll(async () => {
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await usersActions.createTenantAndUser(alfrescoJsApi);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
user = await usersActions.createUser();
await alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await apiService.getInstance().login(user.email, user.password);
const applicationsService = new ApplicationsUtil(apiService);
await applicationsService.importPublishDeployApp(app.file_path);
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(user.tenantId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
beforeEach(async () => {
+76 -60
View File
@@ -15,65 +15,73 @@
* limitations under the License.
*/
import { LoginPage, ApplicationsUtil, ProcessUtil, StartProcessPage } from '@alfresco/adf-testing';
import {
LoginSSOPage,
ApplicationsUtil,
ProcessUtil,
StartProcessPage,
ApiService,
UserModel
} from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
import { ProcessFiltersPage } from '../pages/adf/process-services/process-filters.page';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/process-service-tab-bar.page';
import { ProcessDetailsPage } from '../pages/adf/process-services/process-details.page';
import { ProcessListPage } from '../pages/adf/process-services/process-list.page';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { browser } from 'protractor';
import { User } from '../models/APS/user';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../util/constants');
describe('Task Assignee', () => {
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const taskPage = new TasksPage();
const users = new UsersActions();
const app = browser.params.resources.Files.TEST_ASSIGNEE;
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const processListPage = new ProcessListPage();
const processFiltersPage = new ProcessFiltersPage();
const startProcessPage = new StartProcessPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const processDetailsPage = new ProcessDetailsPage();
const taskPage = new TasksPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
describe('Candidate User Assignee', () => {
const processListPage = new ProcessListPage();
const processFiltersPage = new ProcessFiltersPage();
const startProcessPage = new StartProcessPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const processDetailsPage = new ProcessDetailsPage();
let user: User;
let user: UserModel;
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
try {// creates user and group if not available
await users.createApsUserWithName(this.alfrescoJsApi, user.tenantId, app.candidate.email, app.candidate.firstName, app.candidate.lastName);
} catch (e) {}
try {// creates group if not available
await this.alfrescoJsApi.activiti.adminGroupsApi.createNewGroup({ 'name': app.candidateGroup, 'tenantId': user.tenantId, 'type': 1 });
} catch (e) {}
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await this.alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
try {
await applicationsService.importPublishDeployApp(app.file_path, { renewIdmEntries: true });
user = await usersActions.createUser(new UserModel({
firstName: app.candidate.firstName,
lastName: app.candidate.lastName
}));
try {// creates group if not available
await apiService.getInstance().activiti.adminGroupsApi.createNewGroup({
'name': app.candidateGroup,
'tenantId': user.tenantId,
'type': 1
});
} catch (e) {
console.error(`failed to publish the application`);
}
await loginPage.loginToProcessServicesUsingUserModel(user);
await apiService.getInstance().login(user.email, user.password);
await applicationsService.importPublishDeployApp(app.file_path, { renewIdmEntries: true });
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(user.tenantId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
beforeEach(async () => {
@@ -110,49 +118,57 @@ describe('Task Assignee', () => {
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.COMPLETED_TASKS);
await taskPage.tasksListPage().checkContentIsDisplayed(app.userTasks.simple.two);
});
});
describe('Candidate Group Assignee', () => {
let user: User;
let candidate1: User;
let candidate2: User;
let user: UserModel;
let candidate1: UserModel;
let candidate2: UserModel;
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
candidate1 = await users.createApsUser(this.alfrescoJsApi, user.tenantId);
candidate2 = await users.createApsUser(this.alfrescoJsApi, user.tenantId);
const adminGroup = await this.alfrescoJsApi.activiti.adminGroupsApi.createNewGroup(
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
user = await usersActions.createUser();
candidate1 = await usersActions.createUser(new UserModel({ tenantId: user.tenantId }));
candidate2 = await usersActions.createUser(new UserModel({ tenantId: user.tenantId }));
const adminGroup = await apiService.getInstance().activiti.adminGroupsApi.createNewGroup(
{ 'name': app.adminGroup, 'tenantId': user.tenantId }
);
await this.alfrescoJsApi.activiti.adminGroupsApi.addGroupMember(adminGroup.id, user.id);
await this.alfrescoJsApi.activiti.adminGroupsApi.addGroupCapabilities(adminGroup.id, { capabilities: app.adminCapabilities });
const candidateGroup = await this.alfrescoJsApi.activiti.adminGroupsApi.createNewGroup(
await apiService.getInstance().activiti.adminGroupsApi.addGroupMember(adminGroup.id, user.id);
await apiService.getInstance().activiti.adminGroupsApi.addGroupCapabilities(adminGroup.id, { capabilities: app.adminCapabilities });
const candidateGroup = await apiService.getInstance().activiti.adminGroupsApi.createNewGroup(
{ 'name': app.candidateGroup, 'tenantId': user.tenantId, 'type': 1 }
);
await this.alfrescoJsApi.activiti.adminGroupsApi.addGroupMember(candidateGroup.id, candidate1.id);
await this.alfrescoJsApi.activiti.adminGroupsApi.addGroupMember(candidateGroup.id, candidate2.id);
await this.alfrescoJsApi.activiti.adminGroupsApi.addGroupMember(candidateGroup.id, user.id);
await apiService.getInstance().activiti.adminGroupsApi.addGroupMember(candidateGroup.id, candidate1.id);
await apiService.getInstance().activiti.adminGroupsApi.addGroupMember(candidateGroup.id, candidate2.id);
await apiService.getInstance().activiti.adminGroupsApi.addGroupMember(candidateGroup.id, user.id);
try {// for creates user if not available
await users.createApsUserWithName(this.alfrescoJsApi, user.tenantId, app.candidate.email, app.candidate.firstName, app.candidate.lastName);
} catch (e) {}
await usersActions.createUser(new UserModel({
tenantId: user.tenantId,
firstName: app.candidate.firstName,
lastName: app.candidate.lastName
}));
} catch (e) {
}
await this.alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(user.email, user.password);
const appModel = await applicationsService.importPublishDeployApp(app.file_path, { renewIdmEntries: true });
await new ProcessUtil(this.alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processNames[1]);
await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processNames[1]);
});
afterAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(user.tenantId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
it('[C216430] Start Task - Claim and Requeue a task', async () => {
await loginPage.loginToProcessServicesUsingUserModel(candidate1);
await loginPage.login(candidate1.email, candidate1.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await processServicesPage.goToApp('Task App');
@@ -198,7 +214,7 @@ describe('Task Assignee', () => {
await taskPage.tasksListPage().checkTaskListIsLoaded();
await taskPage.tasksListPage().checkContentIsNotDisplayed(app.userTasks.candidateTask);
await loginPage.loginToProcessServicesUsingUserModel(candidate2);
await loginPage.login(candidate2.email, candidate2.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await processServicesPage.goToApp('Task App');
@@ -209,7 +225,7 @@ describe('Task Assignee', () => {
await taskPage.tasksListPage().checkTaskListIsLoaded();
await taskPage.tasksListPage().checkContentIsNotDisplayed(app.userTasks.candidateTask);
await loginPage.loginToProcessServicesUsingUserModel(candidate1);
await loginPage.login(candidate1.email, candidate1.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await processServicesPage.goToApp('Task App');
@@ -237,7 +253,7 @@ describe('Task Assignee', () => {
await taskPage.tasksListPage().checkContentIsDisplayed(app.userTasks.candidateTask);
await taskPage.taskDetails().checkClaimEnabled();
await loginPage.loginToProcessServicesUsingUserModel(candidate2);
await loginPage.login(candidate2.email, candidate2.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await processServicesPage.goToApp('Task App');
@@ -16,25 +16,30 @@
*/
import { browser } from 'protractor';
import { LoginPage, FileBrowserUtil, ViewerPage, ApplicationsUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, FileBrowserUtil, ViewerPage, ApplicationsUtil, ApiService } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { AttachmentListPage } from '../pages/adf/process-services/attachment-list.page';
import CONSTANTS = require('../util/constants');
import path = require('path');
import fs = require('fs');
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { FileModel } from '../models/ACS/file.model';
import { TaskRepresentation } from '@alfresco/js-api';
describe('Attachment list action menu for tasks', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const taskPage = new TasksPage();
const attachmentListPage = new AttachmentListPage();
const viewerPage = new ViewerPage();
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const pngFile = new FileModel({
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_location,
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name
@@ -49,36 +54,30 @@ describe('Attachment list action menu for tasks', () => {
};
beforeAll(async () => {
const users = new UsersActions();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const user = await users.createTenantAndUser(this.alfrescoJsApi);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
const user = await usersActions.createUser();
tenantId = user.tenantId;
await this.alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(user.email, user.password);
const applicationsService = new ApplicationsUtil(apiService);
const { id } = await applicationsService.importPublishDeployApp(app.file_path);
appId = id;
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
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);
await apiService.getInstance().activiti.modelsApi.deleteModel(appId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(tenantId);
});
it('[C277311] Should be able to View /Download /Remove from Attachment List on an active task', async () => {
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToApp(app.title)).clickTasksButton();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.createTask({name: taskName.active});
await taskPage.createTask({ name: taskName.active });
await attachmentListPage.clickAttachFileButton(pngFile.location);
await attachmentListPage.viewFile(pngFile.name);
@@ -161,12 +160,12 @@ describe('Attachment list action menu for tasks', () => {
});
it('[C260234] Should be able to attache a file on a task on APS and check on ADF', async () => {
const newTask = await this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: 'SHARE KNOWLEDGE' });
const newTask = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: 'SHARE KNOWLEDGE' }));
const newTaskId = newTask.id;
const filePath = path.join(browser.params.testConfig.main.rootPath + pngFile.location);
const file = fs.createReadStream(filePath);
relatedContent = await this.alfrescoJsApi.activiti.contentApi.createRelatedContentOnTask(newTaskId, file, { 'isRelatedContent': true });
relatedContent = await apiService.getInstance().activiti.contentApi.createRelatedContentOnTask(newTaskId, file, { 'isRelatedContent': true });
relatedContentId = relatedContent.id;
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton();
@@ -176,7 +175,7 @@ describe('Attachment list action menu for tasks', () => {
await attachmentListPage.checkFileIsAttached(pngFile.name);
await this.alfrescoJsApi.activiti.contentApi.deleteContent(relatedContentId);
await apiService.getInstance().activiti.contentApi.deleteContent(relatedContentId);
await (await (await navigationBarPage.navigateToProcessServicesPage()).goToTaskApp()).clickTasksButton();
+18 -21
View File
@@ -15,50 +15,47 @@
* limitations under the License.
*/
import { LoginPage, BrowserActions, FileBrowserUtil, ApplicationsUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, FileBrowserUtil, ApplicationsUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
import CONSTANTS = require('../util/constants');
import { Tenant } from '../models/APS/tenant';
import { browser } from 'protractor';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { TaskRepresentation } from '@alfresco/js-api';
describe('Task Audit', () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const processServices = new ProcessServicesPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let processUserModel;
const taskTaskApp = 'Audit task task app';
const taskCustomApp = 'Audit task custom app';
const taskCompleteCustomApp = 'Audit completed task custom app';
const auditLogFile = 'Audit.pdf';
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
processUserModel = await usersActions.createUser();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const { id } = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
processUserModel = await users.createApsUser(this.alfrescoJsApi, id);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: taskTaskApp });
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: taskTaskApp }));
const applicationsService = new ApplicationsUtil(apiService);
await applicationsService.importPublishDeployApp(app.file_path);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
afterAll( async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
beforeEach(async () => {
+33 -39
View File
@@ -15,12 +15,10 @@
* limitations under the License.
*/
import { LoginPage, StringUtil, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { LoginSSOPage, StringUtil, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { FormModelActions } from '../actions/APS/form-model.actions';
import { UsersActions } from '../actions/users.actions';
import { StandaloneTask } from '../models/APS/standalone-task';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { FiltersPage } from '../pages/adf/process-services/filters.page';
import { TaskDetailsPage } from '../pages/adf/process-services/task-details.page';
@@ -28,27 +26,31 @@ import { TasksListPage } from '../pages/adf/process-services/tasks-list.page';
import CONSTANTS = require('../util/constants');
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { AttachFormPage } from '../pages/adf/process-services/attach-form.page';
import { TaskRepresentation } from '@alfresco/js-api';
describe('Task Details - Form', () => {
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const tasksListPage = new TasksListPage();
const taskDetailsPage = new TaskDetailsPage();
const attachFormPage = new AttachFormPage();
const taskPage = new TasksPage();
const filtersPage = new FiltersPage();
const widget = new Widget();
const apiService = new ApiService();
const formActions = new FormModelActions(apiService);
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let task, otherTask, user, newForm, attachedForm, otherAttachedForm;
let newTask;
beforeAll(async () => {
const users = new UsersActions();
const attachedFormModel = {
'name': StringUtil.generateRandomString(),
'description': '',
'modelType': 2,
'stencilSet': 0
};
const otherTaskModel = new StandaloneTask();
const otherAttachedFormModel = {
'name': StringUtil.generateRandomString(),
'description': '',
@@ -62,37 +64,31 @@ describe('Task Details - Form', () => {
'stencilSet': 0
};
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
user = await usersActions.createUser();
await apiService.getInstance().login(user.email, user.password);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(user.email, user.password);
attachedForm = await apiService.getInstance().activiti.modelsApi.createModel(attachedFormModel);
newForm = await apiService.getInstance().activiti.modelsApi.createModel(newFormModel);
attachedForm = await this.alfrescoJsApi.activiti.modelsApi.createModel(attachedFormModel);
newForm = await this.alfrescoJsApi.activiti.modelsApi.createModel(newFormModel);
const otherEmptyTask = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: StringUtil.generateRandomString() }));
otherAttachedForm = await apiService.getInstance().activiti.modelsApi.createModel(otherAttachedFormModel);
const otherEmptyTask = await this.alfrescoJsApi.activiti.taskApi.createNewTask(otherTaskModel);
otherAttachedForm = await this.alfrescoJsApi.activiti.modelsApi.createModel(otherAttachedFormModel);
await apiService.getInstance().activiti.taskApi.attachForm(otherEmptyTask.id, { 'formId': otherAttachedForm.id });
otherTask = await apiService.getInstance().activiti.taskApi.getTask(otherEmptyTask.id);
await this.alfrescoJsApi.activiti.taskApi.attachForm(otherEmptyTask.id, { 'formId': otherAttachedForm.id });
otherTask = await this.alfrescoJsApi.activiti.taskApi.getTask(otherEmptyTask.id);
await loginPage.login(user.email, user.password);
});
await loginPage.loginToProcessServicesUsingUserModel(user);
});
afterAll( async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(user.tenantId);
afterAll(async () => {
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
beforeEach(async () => {
const emptyTask = await this.alfrescoJsApi.activiti.taskApi.createNewTask(new StandaloneTask());
await this.alfrescoJsApi.activiti.taskApi.attachForm(emptyTask.id, { 'formId': attachedForm.id });
task = await this.alfrescoJsApi.activiti.taskApi.getTask(emptyTask.id);
const emptyTask = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: StringUtil.generateRandomString() }));
await apiService.getInstance().activiti.taskApi.attachForm(emptyTask.id, { 'formId': attachedForm.id });
task = await apiService.getInstance().activiti.taskApi.getTask(emptyTask.id);
await (await new NavigationBarPage().navigateToProcessServicesPage()).goToTaskApp();
await tasksListPage.checkTaskListIsLoaded();
await filtersPage.goToFilter(CONSTANTS.TASK_FILTERS.INV_TASKS);
@@ -151,7 +147,6 @@ describe('Task Details - Form', () => {
});
describe('Task Details - Complete form with visibility conditions on tabs', () => {
const widgets = {
textOneId: 'textone',
textTwoId: 'texttwo',
@@ -172,19 +167,17 @@ describe('Task Details - Form', () => {
tabFieldVar: 'tabBasicFieldVar'
};
const formActions = new FormModelActions();
let app;
let app, newTask;
beforeAll(async () => {
app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await applicationsService.importPublishDeployApp(app.file_path);
});
beforeEach(async () => {
newTask = await this.alfrescoJsApi.activiti.taskApi.createNewTask({ name: StringUtil.generateRandomString() });
const form = await formActions.getFormByName(this.alfrescoJsApi, app.visibilityProcess.formName);
await this.alfrescoJsApi.activiti.taskApi.attachForm(newTask.id, { 'formId': form.id });
newTask = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ name: StringUtil.generateRandomString() }));
const form = await formActions.getFormByName(app.visibilityProcess.formName);
await apiService.getInstance().activiti.taskApi.attachForm(newTask.id, { 'formId': form.id });
await (await new NavigationBarPage().navigateToProcessServicesPage()).goToTaskApp();
await tasksListPage.checkTaskListIsLoaded();
@@ -194,6 +187,7 @@ describe('Task Details - Form', () => {
it('[C315190] Should be able to complete a standalone task with visible tab with empty value for field', async () => {
await tasksListPage.selectRow(newTask.name);
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldValue);
@@ -346,7 +340,7 @@ describe('Task Details - Form', () => {
});
it('[C315197] Should be able to complete a process task with visible tab with empty value for field', async () => {
await new ProcessUtil(this.alfrescoJsApi).startProcessByDefinitionName(app.name, app.visibilityProcess.name);
await new ProcessUtil(apiService).startProcessByDefinitionName(app.name, app.visibilityProcess.name);
await filtersPage.goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await tasksListPage.checkTaskListIsLoaded();
@@ -380,7 +374,7 @@ describe('Task Details - Form', () => {
});
it('[C212922] Should a User task form be refreshed, saved or completed.', async () => {
await new ProcessUtil(this.alfrescoJsApi).startProcessByDefinitionName(app.name, app.processName);
await new ProcessUtil(apiService).startProcessByDefinitionName(app.name, app.processName);
await filtersPage.goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await tasksListPage.checkTaskListIsLoaded();
@@ -15,46 +15,42 @@
* limitations under the License.
*/
import { LoginPage, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../util/constants');
import { Tenant } from '../models/APS/tenant';
import { browser } from 'protractor';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
describe('Task Details - No form', () => {
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage();
let processUserModel;
const app = browser.params.resources.Files.NO_FORM_APP;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const apiService = new ApiService();
let processUserModel;
const taskPage = new TasksPage();
const noFormMessage = 'No forms attached';
let importedApp;
beforeAll(async () => {
const users = new UsersActions();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
const usersActions = new UsersActions(apiService);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const { id } = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
processUserModel = await users.createApsUser(this.alfrescoJsApi, id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
processUserModel = await usersActions.createUser();
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(apiService);
importedApp = await applicationsService.importPublishDeployApp(app.file_path);
await new ProcessUtil(this.alfrescoJsApi).startProcessOfApp(importedApp.name);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await new ProcessUtil(apiService).startProcessOfApp(importedApp.name);
await loginPage.login(processUserModel.email, processUserModel.password);
});
afterAll( async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C289311] Should attach form and complete buttons to be displayed when no form is attached', async () => {
+48 -45
View File
@@ -15,24 +15,36 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { Tenant } from '../models/APS/tenant';
import Task = require('../models/APS/Task');
import TaskModel = require('../models/APS/TaskModel');
import FormModel = require('../models/APS/FormModel');
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
import CONSTANTS = require('../util/constants');
import moment = require('moment');
import { LoginPage, BrowserActions, StringUtil, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import {
LoginSSOPage,
BrowserActions,
StringUtil,
ApplicationsUtil,
ProcessUtil,
ApiService
} from '@alfresco/adf-testing';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { browser } from 'protractor';
import { TaskRepresentation } from '@alfresco/js-api';
describe('Task Details component', () => {
const processServices = new ProcessServicesPage();
let processUserModel, appModel;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
const processServices = new ProcessServicesPage();
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const apiService = new ApiService();
let processUserModel, appModel;
const tasks = ['Modifying task', 'Information box', 'No form', 'Not Created', 'Refreshing form', 'Assignee task', 'Attach File'];
const TASK_DATE_FORMAT = 'll';
let formModel;
@@ -44,30 +56,21 @@ describe('Task Details component', () => {
'stencilSet': 0
};
const loginPage = new LoginPage();
const taskPage = new TasksPage();
beforeAll(async () => {
const users = new UsersActions();
const usersActions = new UsersActions(apiService);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
processUserModel = await usersActions.createUser();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
const { id } = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
processUserModel = await users.createApsUser(this.alfrescoJsApi, id);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(apiService);
appModel = await applicationsService.importPublishDeployApp(app.file_path);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
afterAll( async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
afterAll(async () => {
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
beforeEach(async () => {
@@ -79,10 +82,10 @@ describe('Task Details component', () => {
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.createTask({name: tasks[1], description: 'Description', formName: app.formName});
await taskPage.createTask({ name: tasks[1], description: 'Description', formName: app.formName });
await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities');
const allTasks = await this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
const allTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
const taskModel = new TaskModel(allTasks.data[0]);
await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName());
@@ -98,7 +101,7 @@ describe('Task Details component', () => {
await expect(await taskPage.taskDetails().getEndDate()).toEqual('');
await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING);
const taskForm = await this.alfrescoJsApi.activiti.taskFormsApi.getTaskForm(allTasks.data[0].id);
const taskForm = await apiService.getInstance().activiti.taskFormsApi.getTaskForm(allTasks.data[0].id);
formModel = new FormModel(taskForm);
await expect(await taskPage.taskDetails().getFormName()).toEqual(formModel.getName());
@@ -108,10 +111,10 @@ describe('Task Details component', () => {
await (await processServices.goToTaskApp()).clickTasksButton();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await taskPage.createTask({name: tasks[1], description: 'Description', formName: app.formName});
await taskPage.createTask({ name: tasks[1], description: 'Description', formName: app.formName });
await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities');
const allTasks = await this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
const allTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
const taskModel = new TaskModel(allTasks.data[0]);
await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName());
@@ -129,7 +132,7 @@ describe('Task Details component', () => {
await expect(await taskPage.taskDetails().getParentTaskId()).toEqual('');
await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING);
const taskForm = await this.alfrescoJsApi.activiti.taskFormsApi.getTaskForm(allTasks.data[0].id);
const taskForm = await apiService.getInstance().activiti.taskFormsApi.getTaskForm(allTasks.data[0].id);
formModel = new FormModel(taskForm);
@@ -137,7 +140,7 @@ describe('Task Details component', () => {
});
it('[C286706] Should display task details for task - Task App', async () => {
await new ProcessUtil(this.alfrescoJsApi).startProcessOfApp(appModel.name);
await new ProcessUtil(apiService).startProcessOfApp(appModel.name);
await (await processServices.goToTaskApp()).clickTasksButton();
@@ -145,7 +148,7 @@ describe('Task Details component', () => {
await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities');
const allTasks = await this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
const allTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
const taskModel = new TaskModel(allTasks.data[0]);
@@ -162,7 +165,7 @@ describe('Task Details component', () => {
await expect(await taskPage.taskDetails().getParentTaskId()).toEqual('');
await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING);
const taskForm = await this.alfrescoJsApi.activiti.taskFormsApi.getTaskForm(allTasks.data[0].id);
const taskForm = await apiService.getInstance().activiti.taskFormsApi.getTaskForm(allTasks.data[0].id);
formModel = new FormModel(taskForm);
@@ -171,14 +174,14 @@ describe('Task Details component', () => {
});
it('[C286705] Should display task details for task - Custom App', async () => {
await new ProcessUtil(this.alfrescoJsApi).startProcessOfApp(appModel.name);
await new ProcessUtil(apiService).startProcessOfApp(appModel.name);
await (await processServices.goToTaskApp()).clickTasksButton();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities');
const allTasks = await this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
const allTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
const taskModel = new TaskModel(allTasks.data[0]);
await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName());
@@ -194,7 +197,7 @@ describe('Task Details component', () => {
await expect(await taskPage.taskDetails().getParentTaskId()).toEqual('');
await expect(await taskPage.taskDetails().getStatus()).toEqual(CONSTANTS.TASK_STATUS.RUNNING);
const taskForm = await this.alfrescoJsApi.activiti.taskFormsApi.getTaskForm(allTasks.data[0].id);
const taskForm = await apiService.getInstance().activiti.taskFormsApi.getTaskForm(allTasks.data[0].id);
formModel = new FormModel(taskForm);
@@ -205,7 +208,7 @@ describe('Task Details component', () => {
it('[C286708] Should display task details for subtask - Task App', async () => {
const taskName = 'TaskAppSubtask';
const checklistName = 'TaskAppChecklist';
await this.alfrescoJsApi.activiti.taskApi.createNewTask({ 'name': taskName });
await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ 'name': taskName }));
await (await processServices.goToTaskApp()).clickTasksButton();
@@ -222,7 +225,7 @@ describe('Task Details component', () => {
await taskPage.tasksListPage().checkContentIsDisplayed(checklistName);
await taskPage.tasksListPage().selectRow(checklistName);
const allTasks = await this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
const allTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
const taskModel = new TaskModel(allTasks.data[0]);
await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName());
@@ -242,7 +245,7 @@ describe('Task Details component', () => {
it('[C286707] Should display task details for subtask - Custom App', async () => {
const checklistName = 'CustomAppChecklist';
await new ProcessUtil(this.alfrescoJsApi).startProcessOfApp(appModel.name);
await new ProcessUtil(apiService).startProcessOfApp(appModel.name);
await (await processServices.goToTaskApp()).clickTasksButton();
@@ -259,7 +262,7 @@ describe('Task Details component', () => {
await taskPage.tasksListPage().checkContentIsDisplayed(checklistName);
await taskPage.tasksListPage().selectRow(checklistName);
const allTasks = await this.alfrescoJsApi.activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
const allTasks = await apiService.getInstance().activiti.taskApi.listTasks(new Task({ sort: 'created-desc' }));
const taskModel = new TaskModel(allTasks.data[0]);
await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName());
@@ -278,7 +281,7 @@ describe('Task Details component', () => {
it('[C286709] Should display task details for completed task - Task App', async () => {
const taskName = 'TaskAppCompleted';
const taskId = await this.alfrescoJsApi.activiti.taskApi.createNewTask({ 'name': taskName });
const taskId = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ 'name': taskName }));
await (await processServices.goToTaskApp()).clickTasksButton();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
@@ -290,7 +293,7 @@ describe('Task Details component', () => {
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.COMPLETED_TASKS);
await taskPage.tasksListPage().selectRow(taskName);
const getTaskResponse = await this.alfrescoJsApi.activiti.taskApi.getTask(taskId.id);
const getTaskResponse = await apiService.getInstance().activiti.taskApi.getTask(taskId.id);
const taskModel = new TaskModel(getTaskResponse);
await taskPage.tasksListPage().checkContentIsDisplayed(taskModel.getName());
@@ -309,10 +312,10 @@ describe('Task Details component', () => {
it('[C260321] Should not be able to edit a completed task\'s details', async () => {
const taskName = 'TaskCompleted';
const form = await this.alfrescoJsApi.activiti.modelsApi.createModel(taskFormModel);
const task = await this.alfrescoJsApi.activiti.taskApi.createNewTask({ 'name': taskName });
await this.alfrescoJsApi.activiti.taskApi.attachForm(task.id, { 'formId': form.id });
await this.alfrescoJsApi.activiti.taskApi.completeTaskForm(task.id, { values: { label: null } });
const form = await apiService.getInstance().activiti.modelsApi.createModel(taskFormModel);
const task = await apiService.getInstance().activiti.taskApi.createNewTask(new TaskRepresentation({ 'name': taskName }));
await apiService.getInstance().activiti.taskApi.attachForm(task.id, { 'formId': form.id });
await apiService.getInstance().activiti.taskApi.completeTaskForm(task.id, { values: { label: null } });
await (await processServices.goToTaskApp()).clickTasksButton();
@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { LoginPage, ApplicationsUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, ApplicationsUtil, ApiService, UserModel } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
@@ -24,16 +24,17 @@ import { TaskDetailsPage } from '../pages/adf/process-services/task-details.page
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/process-service-tab-bar.page';
import { AppSettingsTogglesPage } from '../pages/adf/process-services/dialog/app-settings-toggles.page';
import { TaskFiltersDemoPage } from '../pages/adf/demo-shell/process-services/task-filters-demo.page';
import { AlfrescoApiCompatibility as AlfrescoApi, UserProcessInstanceFilterRepresentation } from '@alfresco/js-api';
import { UserProcessInstanceFilterRepresentation } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { browser } from 'protractor';
import { User } from '../models/APS/user';
describe('Task', () => {
describe('Filters', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.APP_WITH_DATE_FIELD_FORM;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const tasksPage = new TasksPage();
@@ -41,38 +42,30 @@ describe('Task', () => {
const taskDetailsPage = new TaskDetailsPage();
const taskFiltersDemoPage = new TaskFiltersDemoPage();
const app = browser.params.resources.Files.APP_WITH_DATE_FIELD_FORM;
let appId: number, user: User;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
});
let appId: number, user: UserModel;
beforeEach(async () => {
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
user = await usersActions.createUser();
const users = new UsersActions();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(user.email, user.password);
const applicationsService = new ApplicationsUtil(apiService);
const { id } = await applicationsService.importPublishDeployApp(app.file_path);
appId = id;
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await processServicesPage.goToApp(app.title);
});
afterEach(async () => {
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(user.tenantId);
await apiService.getInstance().activiti.modelsApi.deleteModel(appId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
it('[C279967] Should display default filters when an app is deployed', async () => {
@@ -83,7 +76,7 @@ describe('Task', () => {
});
it('[C260330] Should display Task Filter List when app is in Task Tab', async () => {
await tasksPage.createTask({name: 'Test'});
await tasksPage.createTask({ name: 'Test' });
await taskFiltersDemoPage.myTasksFilter().clickTaskFilter();
await tasksListPage.checkContentIsDisplayed('Test');
await expect(await taskFiltersDemoPage.checkActiveFilterActive()).toBe('My Tasks');
@@ -136,14 +129,14 @@ describe('Task', () => {
});
it('[C260349] Should sort task by name when Name sorting is clicked', async () => {
await tasksPage.createTask({name: 'Test1'});
await tasksPage.createTask({ name: 'Test1' });
await taskDetailsPage.clickCompleteTask();
await tasksPage.createTask({name: 'Test2'});
await tasksPage.createTask({ name: 'Test2' });
await taskDetailsPage.clickCompleteTask();
await tasksPage.createTask({name: 'Test3'});
await tasksPage.createTask({name: 'Test4'});
await tasksPage.createTask({ name: 'Test3' });
await tasksPage.createTask({ name: 'Test4' });
await tasksListPage.checkContentIsDisplayed('Test4');
await tasksListPage.checkRowIsSelected('Test4');
@@ -169,7 +162,7 @@ describe('Task', () => {
});
it('[C277264] Should display task filter results when task filter is selected', async () => {
await tasksPage.createTask({name: 'Test'});
await tasksPage.createTask({ name: 'Test' });
await taskFiltersDemoPage.myTasksFilter().clickTaskFilter();
await tasksListPage.checkContentIsDisplayed('Test');
@@ -178,13 +171,13 @@ describe('Task', () => {
});
describe('Custom Filters', () => {
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const appSettingsToggles = new AppSettingsTogglesPage();
const taskFiltersDemoPage = new TaskFiltersDemoPage();
const apiService = new ApiService();
let user;
let appId: number;
@@ -192,28 +185,22 @@ describe('Task', () => {
const app = browser.params.resources.Files.APP_WITH_PROCESSES;
beforeAll(async () => {
const users = new UsersActions();
const usersActions = new UsersActions(apiService);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
user = await usersActions.createUser();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(user.email, user.password);
const applicationsService = new ApplicationsUtil(apiService);
const importedApp = await applicationsService.importPublishDeployApp(app.file_path);
const appDefinitions = await this.alfrescoJsApi.activiti.appsApi.getAppDefinitions();
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
appId = appDefinitions.data.find((currentApp) => currentApp.modelId === importedApp.id).id;
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
afterAll( async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(user.tenantId);
afterAll(async () => {
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
beforeEach(async () => {
@@ -229,21 +216,21 @@ describe('Task', () => {
icon: 'glyphicon-filter',
filter: { sort: 'created-desc', state: 'completed', assignment: 'involved' }
});
const { id } = await this.alfrescoJsApi.activiti.userFiltersApi.createUserTaskFilter(newFilter);
const { id } = await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter);
await browser.refresh();
await taskFiltersDemoPage.customTaskFilter('New Task Filter').checkTaskFilterIsDisplayed();
await this.alfrescoJsApi.activiti.userFiltersApi.deleteUserTaskFilter(id);
await apiService.getInstance().activiti.userFiltersApi.deleteUserTaskFilter(id);
});
it('[C286447] Should display the task filter icon when a custom filter is added', async () => {
const newFilter = new UserProcessInstanceFilterRepresentation({
name : 'New Task Filter with icon',
name: 'New Task Filter with icon',
appId,
icon: 'glyphicon-cloud',
filter: { sort: 'created-desc', state: 'completed', assignment: 'involved' }
});
const { id } = await this.alfrescoJsApi.activiti.userFiltersApi.createUserTaskFilter(newFilter);
const { id } = await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter);
await browser.refresh();
await processServiceTabBarPage.clickSettingsButton();
@@ -253,7 +240,7 @@ describe('Task', () => {
await taskFiltersDemoPage.customTaskFilter('New Task Filter with icon').checkTaskFilterIsDisplayed();
await expect(await taskFiltersDemoPage.customTaskFilter('New Task Filter with icon').getTaskFilterIcon()).toEqual('cloud');
await this.alfrescoJsApi.activiti.userFiltersApi.deleteUserTaskFilter(id);
await apiService.getInstance().activiti.userFiltersApi.deleteUserTaskFilter(id);
});
it('[C286449] Should display task filter icons only when showIcon property is set on true', async () => {
@@ -266,5 +253,5 @@ describe('Task', () => {
await taskFiltersDemoPage.myTasksFilter().checkTaskFilterIsDisplayed();
await expect(await taskFiltersDemoPage.myTasksFilter().getTaskFilterIcon()).toEqual('inbox');
});
});
});
});
@@ -15,20 +15,22 @@
* limitations under the License.
*/
import { LoginPage, ApplicationsUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, ApplicationsUtil, ApiService } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import { TasksListPage } from '../pages/adf/process-services/tasks-list.page';
import { TaskDetailsPage } from '../pages/adf/process-services/task-details.page';
import { TaskFiltersDemoPage } from '../pages/adf/demo-shell/process-services/task-filters-demo.page';
import { AlfrescoApiCompatibility as AlfrescoApi, UserProcessInstanceFilterRepresentation } from '@alfresco/js-api';
import { UserProcessInstanceFilterRepresentation } from '@alfresco/js-api';
import { UsersActions } from '../actions/users.actions';
import { browser } from 'protractor';
describe('Task Filters Sorting', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.APP_WITH_PROCESSES;
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const tasksPage = new TasksPage();
@@ -36,11 +38,12 @@ describe('Task Filters Sorting', () => {
const taskDetailsPage = new TaskDetailsPage();
const taskFiltersDemoPage = new TaskFiltersDemoPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let user;
let appId;
const app = browser.params.resources.Files.APP_WITH_PROCESSES;
const tasks = [
{ name: 'Task 1 Completed', dueDate: '01/01/2019' },
{ name: 'Task 2 Completed', dueDate: '02/01/2019' },
@@ -50,23 +53,16 @@ describe('Task Filters Sorting', () => {
{ name: 'Task 6', dueDate: '03/01/2019' }];
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
user = await usersActions.createUser();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(user.email, user.password);
const applicationsService = new ApplicationsUtil(apiService);
const importedApp = await applicationsService.importPublishDeployApp(app.file_path);
const appDefinitions = await this.alfrescoJsApi.activiti.appsApi.getAppDefinitions();
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
appId = appDefinitions.data.find((currentApp) => currentApp.modelId === importedApp.id).id;
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await processServicesPage.goToApp(app.title);
@@ -86,8 +82,8 @@ describe('Task Filters Sorting', () => {
});
afterAll( async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(user.tenantId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
it('[C277254] Should display tasks under new filter from newest to oldest when they are completed', async () => {
@@ -97,7 +93,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter',
filter: { sort: 'created-desc', state: 'completed', assignment: 'involved' }
});
await this.alfrescoJsApi.activiti.userFiltersApi.createUserTaskFilter(newFilter);
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter);
await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -114,7 +110,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter',
filter: { sort: 'created-asc', state: 'completed', assignment: 'involved' }
});
await this.alfrescoJsApi.activiti.userFiltersApi.createUserTaskFilter(newFilter);
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter);
await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -131,7 +127,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter',
filter: { sort: 'due-desc', state: 'completed', assignment: 'involved' }
});
await this.alfrescoJsApi.activiti.userFiltersApi.createUserTaskFilter(newFilter);
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter);
await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -148,7 +144,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter',
filter: { sort: 'due-asc', state: 'completed', assignment: 'involved' }
});
await this.alfrescoJsApi.activiti.userFiltersApi.createUserTaskFilter(newFilter);
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter);
await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -165,7 +161,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter',
filter: { sort: 'created-desc', state: 'open', assignment: 'involved' }
});
await this.alfrescoJsApi.activiti.userFiltersApi.createUserTaskFilter(newFilter);
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter);
await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -182,7 +178,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter',
filter: { sort: 'created-asc', state: 'open', assignment: 'involved' }
});
await this.alfrescoJsApi.activiti.userFiltersApi.createUserTaskFilter(newFilter);
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter);
await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -199,7 +195,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter',
filter: { sort: 'due-desc', state: 'open', assignment: 'involved' }
});
await this.alfrescoJsApi.activiti.userFiltersApi.createUserTaskFilter(newFilter);
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter);
await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -216,7 +212,7 @@ describe('Task Filters Sorting', () => {
icon: 'glyphicon-filter',
filter: { sort: 'due-asc', state: 'open', assignment: 'involved' }
});
await this.alfrescoJsApi.activiti.userFiltersApi.createUserTaskFilter(newFilter);
await apiService.getInstance().activiti.userFiltersApi.createUserTaskFilter(newFilter);
await browser.refresh();
await taskFiltersDemoPage.customTaskFilter(newFilter.name).clickTaskFilter();
@@ -15,23 +15,22 @@
* limitations under the License.
*/
import { LoginPage, PaginationPage, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { LoginSSOPage, PaginationPage, ApplicationsUtil, ProcessUtil, ApiService, UserModel } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { UsersActions } from '../actions/users.actions';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { TasksPage } from '../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../util/constants');
import { User } from '../models/APS/user';
describe('Task List Pagination', () => {
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const taskPage = new TasksPage();
const paginationPage = new PaginationPage();
const apiService = new ApiService();
let processUserModel: User;
let processUserModel: UserModel;
const app = browser.params.resources.Files.SIMPLE_APP_WITH_USER_FORM;
let currentPage = 1;
const nrOfTasks = 20;
@@ -50,30 +49,25 @@ describe('Task List Pagination', () => {
};
beforeAll(async () => {
const users = new UsersActions();
const usersActions = new UsersActions(apiService);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
processUserModel = await usersActions.createUser();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(apiService);
const resultApp = await applicationsService.importPublishDeployApp(app.file_path);
for (let i = 0; i < nrOfTasks; i++) {
await new ProcessUtil(this.alfrescoJsApi).startProcessOfApp(resultApp.name);
await new ProcessUtil(apiService).startProcessOfApp(resultApp.name);
}
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
afterAll( async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C260301] Should display default pagination', async () => {
@@ -15,48 +15,43 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
describe('Amount Widget', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.WIDGET_CHECK_APP.AMOUNT;
let processUserModel;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.AMOUNT;
let deployedApp, process;
let processUserModel;
const apiService = new ApiService();
const applicationsService = new ApplicationsUtil(apiService);
const usersActions = new UsersActions(apiService);
const processUtil = new ProcessUtil(apiService);
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
const processUtil = new ProcessUtil(alfrescoJsApi);
process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async() => {
@@ -67,9 +62,9 @@ describe('Amount Widget', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C274703] Should be possible to set general, advance and visibility properties for Amount Widget', async () => {
@@ -15,20 +15,22 @@
* limitations under the License.
*/
import { LoginPage, Widget, ViewerPage, FileBrowserUtil, ApplicationsUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, Widget, ViewerPage, FileBrowserUtil, ApplicationsUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { FileModel } from '../../models/ACS/file.model';
import { browser } from 'protractor';
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { TaskDetailsPage } from '../../pages/adf/process-services/task-details.page';
import { TasksListPage } from '../../pages/adf/process-services/tasks-list.page';
import { FiltersPage } from '../../pages/adf/process-services/filters.page';
describe('Attach widget - File', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.WIDGETS_SMOKE_TEST;
const loginPage = new LoginSSOPage();
const viewerPage = new ViewerPage();
const widget = new Widget();
const taskPage = new TasksPage();
@@ -37,26 +39,22 @@ describe('Attach widget - File', () => {
const tasksListPage = new TasksListPage();
const filtersPage = new FiltersPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let processUserModel;
const app = browser.params.resources.Files.WIDGETS_SMOKE_TEST;
const pdfFile = new FileModel({'name': browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name});
const appFields = app.form_fields;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(this.alfrescoJsApi);
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await applicationsService.importPublishDeployApp(app.file_path);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -74,12 +72,8 @@ describe('Attach widget - File', () => {
});
afterAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C268067] Should be able to preview, download and remove attached files from an active form', async () => {
@@ -15,46 +15,43 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
describe('Attach Folder widget', () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.ATTACH_FOLDER;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.ATTACH_FOLDER;
let deployedApp, process;
let processUserModel;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const processUtil = new ProcessUtil(apiService);
const applicationsService = new ApplicationsUtil(apiService);
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
const processUtil = new ProcessUtil(alfrescoJsApi);
process = await processUtil.startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -65,9 +62,9 @@ describe('Attach Folder widget', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C276745] Should be possible to set visibility properties for Attach Folder Widget', async () => {
@@ -15,46 +15,42 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
describe('Checkbox Widget', () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.CHECKBOX;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
let processUserModel;
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.CHECKBOX;
let deployedApp, process;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -65,13 +61,13 @@ describe('Checkbox Widget', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C268554] Should be able to set general settings for Checkbox widget ', async () => {
await taskPage.formFields().setValueInInputById(app.FIELD.number_input_id, 2);
await taskPage.formFields().setValueInInputById(app.FIELD.number_input_id, '2');
await expect(await widget.checkboxWidget().getCheckboxLabel()).toContain(app.FIELD.checkbox_label);
await expect(await taskPage.formFields().isCompleteFormButtonDisabled()).toBeTruthy();
await widget.checkboxWidget().clickCheckboxInput(app.FIELD.checkbox_input_id);
@@ -80,7 +76,7 @@ describe('Checkbox Widget', () => {
it('[C272812] Should be able to set visibility settings for Checkbox widget', async () => {
await widget.checkboxWidget().isCheckboxHidden(app.FIELD.checkbox_field_id);
await taskPage.formFields().setValueInInputById(app.FIELD.number_input_id, 2);
await taskPage.formFields().setValueInInputById(app.FIELD.number_input_id, '2');
await widget.checkboxWidget().isCheckboxDisplayed(app.FIELD.checkbox_field_id);
});
});
@@ -15,46 +15,42 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
describe('Date and time widget', () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.DATETIME;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let processUserModel;
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.DATETIME;
let deployedApp, process;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -65,9 +61,9 @@ describe('Date and time widget', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C268818] Should be able to set general settings for Date Time widget', async () => {
+29 -27
View File
@@ -15,9 +15,16 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, FormPage, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import {
LoginSSOPage,
BrowserActions,
Widget,
FormPage,
ApplicationsUtil,
ProcessUtil,
ApiService
} from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
@@ -26,48 +33,44 @@ import { customDateFormAPS1 } from '../../resources/forms/custom-date-form';
describe('Date widget', () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.DATE;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
const dateWidget = widget.dateWidget();
let alfrescoJsApi;
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.DATE;
let processUserModel;
let deployedApp, process;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
describe('Simple App', () => {
beforeEach(async () => {
const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks/`;
await BrowserActions.getUrl(urlToNavigateTo);
@@ -95,7 +98,6 @@ describe('Date widget', () => {
});
describe('Form Demo Page', () => {
const formDemoPage = new FormDemoPage();
const formJson = JSON.parse(customDateFormAPS1);
const formPage = new FormPage();
@@ -15,46 +15,42 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
describe('Document Template widget', () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.FILE_FORM_ADF;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let appModel;
const app = browser.params.resources.Files.FILE_FORM_ADF;
let deployedApp, process;
let processUserModel;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp( app.file_path);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
appModel = await applicationsService.importPublishDeployApp( app.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(alfrescoJsApi).startProcessOfApp(appModel.name);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessOfApp(appModel.name);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -65,9 +61,9 @@ describe('Document Template widget', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C260406] should check that the template contains assigned file ', async () => {
@@ -15,46 +15,41 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
describe('Dropdown widget', () => {
const app = browser.params.resources.Files.WIDGET_CHECK_APP.DROPDOWN;
const loginPage = new LoginPage();
let processUserModel;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.DROPDOWN;
let deployedApp, process;
let processUserModel;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -65,9 +60,9 @@ describe('Dropdown widget', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C269051] Should be possible to set general and options properties for Dropdown widget ', async () => {
@@ -15,9 +15,8 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
@@ -25,35 +24,34 @@ import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
describe('Dynamic Table widget ', () => {
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
const users = new UsersActions();
const navigationBarPage = new NavigationBarPage();
const alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let processUserModel;
let appModel;
let deployedApp, process;
describe('with Date Time Widget App', () => {
const app = browser.params.resources.Files.WIDGET_CHECK_APP.DYNAMIC_TABLE;
beforeAll(async () => {
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => currentApp.modelId === appModel.id);
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -64,9 +62,9 @@ describe('Dynamic Table widget ', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await navigationBarPage.clickLogoutButton();
});
@@ -93,23 +91,22 @@ describe('Dynamic Table widget ', () => {
const app = browser.params.resources.Files.WIDGET_CHECK_APP.DYNAMIC_TABLE_USERS;
beforeAll(async () => {
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => currentApp.modelId === appModel.id);
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await navigationBarPage.clickLogoutButton();
});
@@ -146,30 +143,28 @@ describe('Dynamic Table widget ', () => {
});
describe('Custom validation', () => {
const app = browser.params.resources.Files.WIDGET_CHECK_APP;
beforeAll(async () => {
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
const application = await applicationsService.importPublishDeployApp(app.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => currentApp.modelId === application.id);
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(application.name, app.CUSTOM_VALIDATOR.processName);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(application.name, app.CUSTOM_VALIDATOR.processName);
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
beforeEach(async () => {
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
await loginPage.login(processUserModel.email, processUserModel.password);
const urlToNavigateTo = `${browser.params.testConfig.adf.url}/activiti/apps/${deployedApp.id}/tasks`;
await BrowserActions.getUrl(urlToNavigateTo);
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
@@ -15,46 +15,42 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
describe('Header widget', async () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.HEADER;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.HEADER;
let deployedApp, process;
let processUserModel;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -65,9 +61,9 @@ describe('Header widget', async () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C276737] Should be able to set general and visibility properties for Header widget', async () => {
@@ -15,46 +15,42 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
describe('Hyperlink widget', () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.HYPERLINK;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.HYPERLINK;
let processUserModel;
let deployedApp, process;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -65,9 +61,9 @@ describe('Hyperlink widget', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C276728] Should be able to set visibility properties for Hyperlink widget', async () => {
@@ -15,46 +15,41 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
describe('Multi-line Widget', () => {
const app = browser.params.resources.Files.WIDGET_CHECK_APP.MULTILINE_TEXT;
const loginPage = new LoginPage();
let processUserModel;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.MULTILINE_TEXT;
let processUserModel;
let deployedApp, process;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -65,9 +60,9 @@ describe('Multi-line Widget', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C268182] Should be able to set general properties for Multi-line Text Widget', async () => {
@@ -15,46 +15,42 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
describe('Number widget', () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.NUMBER;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.NUMBER;
let deployedApp, process;
let processUserModel;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -65,9 +61,9 @@ describe('Number widget', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C269111] Should be able to set general properties for Number Widget', async () => {
@@ -15,46 +15,38 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, StringUtil, Widget, ApplicationsUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, Widget, ApplicationsUtil, ApiService, UserModel } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import { browser } from 'protractor';
import { User } from '../../models/APS/user';
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
import CONSTANTS = require('../../util/constants');
describe('People and Group widget', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.MORE_WIDGETS;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const navigationBarPage = new NavigationBarPage();
const widget = new Widget();
const usersActions = new UsersActions();
const alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
const app = browser.params.resources.Files.MORE_WIDGETS;
let user: User;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let user: UserModel;
beforeAll(async () => {
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await usersActions.createTenantAndUser(alfrescoJsApi);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
user = await usersActions.createUser();
await createGroupAndUsers(user.tenantId);
await apiService.getInstance().login(user.email, user.password);
await alfrescoJsApi.login(user.email, user.password);
try {
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await applicationsService.importPublishDeployApp(app.file_path, { renewIdmEntries: true });
} catch (e) { console.error('failed to deploy the application'); }
await loginPage.loginToProcessServicesUsingUserModel(user);
});
await applicationsService.importPublishDeployApp(app.file_path, { renewIdmEntries: true });
afterAll(async () => {
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(user.tenantId);
await loginPage.login(user.email, user.password);
});
beforeEach(async () => {
@@ -65,7 +57,7 @@ describe('People and Group widget', () => {
it('[C275715] Add group widget - Visibility and group restriction', async () => {
const name = 'group visibility task';
const groupVisibilityForm = app.ADD_GROUP_VISIBILITY;
await taskPage.createTask({name, formName: groupVisibilityForm.formName});
await taskPage.createTask({ name, formName: groupVisibilityForm.formName });
await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities');
await taskPage.formFields().checkWidgetIsHidden(groupVisibilityForm.FIELD.widget_id);
@@ -75,7 +67,7 @@ describe('People and Group widget', () => {
await widget.groupWidget().insertGroup(groupVisibilityForm.FIELD.widget_id, groupVisibilityForm.searchTerm);
await widget.groupWidget().checkDropDownListIsDisplayed();
const suggestions = await widget.groupWidget().getDropDownList();
await expect(suggestions.sort()).toEqual([ 'Heros', 'Users' ]);
await expect(suggestions.sort()).toEqual(['Heros', 'Users']);
await widget.groupWidget().selectGroupFromDropDown('Users');
await taskPage.taskDetails().clickCompleteFormTask();
});
@@ -83,7 +75,7 @@ describe('People and Group widget', () => {
it('[C275716] Add group widget - sub group restrictions', async () => {
const name = 'group widget - subgroup restriction';
const subgroupFrom = app.ADD_GROUP_AND_SUBGROUP_RESTRICTION;
await taskPage.createTask({name, formName: subgroupFrom.formName});
await taskPage.createTask({ name, formName: subgroupFrom.formName });
await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities');
await taskPage.formFields().checkWidgetIsHidden(subgroupFrom.FIELD.widget_id);
@@ -108,7 +100,7 @@ describe('People and Group widget', () => {
it('[C275714] Add people widget - group restrictions', async () => {
const name = 'people widget - group restrictions';
const peopleWidget = app.ADD_PEOPLE_AND_GROUP_RESTRICTION;
await taskPage.createTask({name, formName: peopleWidget.formName});
await taskPage.createTask({ name, formName: peopleWidget.formName });
await expect(await taskPage.taskDetails().getTitle()).toEqual('Activities');
await taskPage.formFields().checkWidgetIsHidden(peopleWidget.FIELD.widget_id);
@@ -123,23 +115,40 @@ describe('People and Group widget', () => {
await taskPage.taskDetails().clickCompleteFormTask();
});
async function createGroupAndUsers(tenantId) {
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
async function createGroupAndUsers(tenantId: number) {
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
try {
const happyUsers: any[] = await Promise.all(app.groupUser.map(happyUser =>
usersActions.createApsUserWithName(alfrescoJsApi, tenantId, StringUtil.generateRandomString(), happyUser.firstName, happyUser.lastName)));
const subgroupUser = await usersActions.createApsUserWithName(
alfrescoJsApi, tenantId, StringUtil.generateRandomString(), app.subGroupUser.firstName, app.subGroupUser.lastName);
const userCreated = await Promise.all(app.groupUser.map(usersToCreate =>
usersActions.createUser(new UserModel({
tenantId: tenantId,
firstName: usersToCreate.firstName,
lastName: usersToCreate.lastName
}))
));
const group = await alfrescoJsApi.activiti.adminGroupsApi.createNewGroup({ name: app.group.name, tenantId, type: 1 });
await Promise.all(happyUsers.map(happyUser => alfrescoJsApi.activiti.adminGroupsApi.addGroupMember(group.id, happyUser.id)));
const subgroupUser = await usersActions.createUser(new UserModel({
tenantId: tenantId, firstName: app.subGroupUser.firstName, lastName: app.subGroupUser.lastName
}));
const subgroups: any[] = await Promise.all(getSubGroupsName().map((name) =>
alfrescoJsApi.activiti.adminGroupsApi.createNewGroup({ name, tenantId , type: 1, parentGroupId: group.id })));
await Promise.all(subgroups.map((subgroup) => alfrescoJsApi.activiti.adminGroupsApi.addGroupMember(subgroup.id, subgroupUser.id)));
const group = await apiService.getInstance().activiti.adminGroupsApi.createNewGroup({
name: app.group.name,
tenantId,
type: 1
});
await Promise.all(userCreated.map((userToAddGroup: UserModel) => apiService.getInstance().activiti.adminGroupsApi.addGroupMember(group.id, userToAddGroup.id)));
const subgroups: any[] = await Promise.all(getSubGroupsName().map((name) =>
apiService.getInstance().activiti.adminGroupsApi.createNewGroup({
name,
tenantId,
type: 1,
parentGroupId: group.id
})
));
await Promise.all(subgroups.map((subgroup) => apiService.getInstance().activiti.adminGroupsApi.addGroupMember(subgroup.id, subgroupUser.id)));
} catch (e) {}
}
function getSubGroupsName() {
@@ -15,46 +15,42 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
describe('People widget', () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.ADD_PEOPLE;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.ADD_PEOPLE;
let deployedApp, process;
let processUserModel;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(alfrescoJsApi).startProcessOfApp(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessOfApp(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -65,9 +61,9 @@ describe('People widget', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C260435][C274707] Should be possible to set visibility properties for People Widget', async () => {
@@ -15,47 +15,43 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
describe('Radio Buttons Widget', () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.RADIO_BUTTONS;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.RADIO_BUTTONS;
let deployedApp, process;
let processUserModel;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -66,9 +62,9 @@ describe('Radio Buttons Widget', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C277316] Should display empty radio buttons when no preselection is configured', async () => {
+21 -25
View File
@@ -15,46 +15,42 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, BrowserActions, Widget, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import CONSTANTS = require('../../util/constants');
import { browser } from 'protractor';
describe('Text widget', () => {
const loginPage = new LoginPage();
let processUserModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.TEXT;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.TEXT;
let deployedApp, process;
let processUserModel;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -65,9 +61,9 @@ describe('Text widget', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C268157] Should be able to set general properties for Text widget', async () => {
@@ -15,43 +15,40 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
import { LoginPage, Widget, ApplicationsUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, Widget, ApplicationsUtil, ApiService, UserModel } from '@alfresco/adf-testing';
import { TasksPage } from '../../pages/adf/process-services/tasks.page';
import { browser } from 'protractor';
import { User } from '../../models/APS/user';
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
import CONSTANTS = require('../../util/constants');
describe('Typeahead widget', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.WIDGET_CHECK_APP;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const navigationBarPage = new NavigationBarPage();
const widget = new Widget();
const usersActions = new UsersActions();
const alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
const app = browser.params.resources.Files.WIDGET_CHECK_APP;
let user: User;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let user: UserModel;
beforeAll(async () => {
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await usersActions.createTenantAndUser(alfrescoJsApi);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
user = await usersActions.createUser();
await alfrescoJsApi.login(user.email, user.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
await apiService.getInstance().login(user.email, user.password);
await applicationsService.importPublishDeployApp(app.file_path, { renewIdmEntries: true });
await loginPage.loginToProcessServicesUsingUserModel(user);
await loginPage.login(user.email, user.password);
});
afterAll(async () => {
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(user.tenantId);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(user.tenantId);
});
beforeEach(async () => {
@@ -15,8 +15,7 @@
* limitations under the License.
*/
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { LoginPage, Widget, BrowserActions, ApplicationsUtil, ProcessUtil } from '@alfresco/adf-testing';
import { LoginSSOPage, Widget, BrowserActions, ApplicationsUtil, ProcessUtil, ApiService } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { UsersActions } from '../../actions/users.actions';
import CONSTANTS = require('../../util/constants');
@@ -46,38 +45,34 @@ const checkbox = {
describe('Process-Services - Visibility conditions', () => {
const loginPage = new LoginPage();
const app = browser.params.resources.Files.WIDGET_CHECK_APP.VISIBILITY;
let processUserModel;
const loginPage = new LoginSSOPage();
const taskPage = new TasksPage();
const widget = new Widget();
let alfrescoJsApi;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const applicationsService = new ApplicationsUtil(apiService);
let appModel;
const app = browser.params.resources.Files.WIDGET_CHECK_APP.VISIBILITY;
let deployedApp, process;
let processUserModel;
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
processUserModel = await usersActions.createUser();
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await apiService.getInstance().login(processUserModel.email, processUserModel.password);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
processUserModel = await users.createTenantAndUser(alfrescoJsApi);
await alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(alfrescoJsApi);
appModel = await applicationsService.importPublishDeployApp(browser.params.resources.Files.WIDGET_CHECK_APP.file_path);
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
const appDefinitions = await apiService.getInstance().activiti.appsApi.getAppDefinitions();
deployedApp = appDefinitions.data.find((currentApp) => {
return currentApp.modelId === appModel.id;
});
process = await new ProcessUtil(alfrescoJsApi).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
process = await new ProcessUtil(apiService).startProcessByDefinitionName(appModel.name, app.processName);
await loginPage.login(processUserModel.email, processUserModel.password);
});
beforeEach(async () => {
@@ -88,9 +83,9 @@ describe('Process-Services - Visibility conditions', () => {
});
afterAll(async () => {
await alfrescoJsApi.activiti.processApi.deleteProcessInstance(process.id);
await alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
await apiService.getInstance().activiti.processApi.deleteProcessInstance(process.id);
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(processUserModel.tenantId);
});
it('[C309647] Should be able to see Checkbox widget when visibility condition refers to another field with specific value', async () => {
@@ -101,7 +96,6 @@ describe('Process-Services - Visibility conditions', () => {
});
it('[C309648] Should be able to see Checkbox widget when visibility condition refers to a form variable and a field', async () => {
await widget.textWidget().isWidgetVisible(widgets.textOneId);
await widget.checkboxWidget().isCheckboxHidden(checkbox.checkboxVariableField);
@@ -113,7 +107,6 @@ describe('Process-Services - Visibility conditions', () => {
});
it('[C309649] Should be able to see Checkbox widget when visibility condition refers to a field and a form variable', async () => {
await widget.textWidget().isWidgetVisible(widgets.textOneId);
await widget.checkboxWidget().isCheckboxHidden(checkbox.checkboxFieldVariable);
@@ -125,7 +118,6 @@ describe('Process-Services - Visibility conditions', () => {
});
it('[C311425] Should be able to see Checkbox widget when visibility condition refers to a field and another field', async () => {
await widget.textWidget().isWidgetVisible(widgets.textOneId);
await widget.checkboxWidget().isCheckboxDisplayed(checkbox.checkboxFieldField);
await widget.textWidget().setValue(widgets.textOneId, value.displayCheckbox);