Fix e2e test (#4981)

* fix core viewer

* increase rendition retry

* sso refresh before test

* general fix test

* try use last proxy

* avoid use proxy

* remove proxy

* fix setting tests

* fix share and sso test

* fix lint exclude

* fix sso

* fix some process services cloud e2e

* fix sso download

* exclude sso test

* fix cloud

* add logout content service test

* add logout core

* add logout search

* redefine global before all

* separate protracotr method

* try

* try multiple attempt before all

* add prefix group and users

* add prefix group and users

* add prefix group and users

* rexecute sso test

* fix process service visibility e2e

* split SSO login test

* fix SSO download

* fix SSO download

* fix some cloud issues

* fix some cloud issues

* fix some cloud issues

* share file fix cs

* fix cloud test
This commit is contained in:
Eugenio Romano
2019-08-08 17:52:45 +02:00
committed by GitHub
parent b7b251fe72
commit f04c135377
181 changed files with 1136 additions and 668 deletions

View File

@@ -43,7 +43,7 @@ describe('Applications list', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await apiService.login(testUser.email, testUser.password);
applicationsService = new ApplicationsService(apiService);
applications = await applicationsService.getApplicationsByStatus('RUNNING');

View File

@@ -51,7 +51,7 @@ describe('Edit process filters cloud', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
});
@@ -95,6 +95,8 @@ describe('Edit process filters cloud', () => {
processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New').clickOnSaveButton();
browser.driver.sleep(1000);
expect(processCloudDemoPage.getActiveFilterName()).toBe('New');
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader();
expect(processCloudDemoPage.editProcessFilterCloudComponent().checkSaveButtonIsEnabled()).toEqual(false);
@@ -114,6 +116,9 @@ describe('Edit process filters cloud', () => {
processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id');
processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New').clickOnSaveButton();
browser.driver.sleep(1000);
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().checkCustomiseFilterHeaderIsExpanded();
expect(processCloudDemoPage.getActiveFilterName()).toBe('New');
expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
@@ -121,9 +126,15 @@ describe('Edit process filters cloud', () => {
expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton().setFilterName('New').clickOnSaveButton();
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().checkCustomiseFilterHeaderIsExpanded();
browser.driver.sleep(1000);
expect(processCloudDemoPage.getActiveFilterName()).toBe('New');
expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton();
browser.driver.sleep(1000);
processCloudDemoPage.customProcessFilter('custom-new').clickProcessFilter();
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().checkCustomiseFilterHeaderIsExpanded();
expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
@@ -137,6 +148,9 @@ describe('Edit process filters cloud', () => {
processCloudDemoPage.allProcessesFilter().checkProcessFilterIsDisplayed();
processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New').clickOnSaveButton();
browser.driver.sleep(1000);
expect(processCloudDemoPage.getActiveFilterName()).toBe('New');
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().checkCustomiseFilterHeaderIsExpanded();
expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
@@ -144,6 +158,9 @@ describe('Edit process filters cloud', () => {
expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
processCloudDemoPage.editProcessFilterCloudComponent().clickSaveButton();
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader().checkCustomiseFilterHeaderIsExpanded();
browser.driver.sleep(1000);
expect(processCloudDemoPage.getActiveFilterName()).toBe('New');
expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton();
@@ -156,10 +173,17 @@ describe('Edit process filters cloud', () => {
processCloudDemoPage.allProcessesFilter().checkProcessFilterIsDisplayed();
processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New').clickOnSaveButton();
browser.driver.sleep(1000);
processCloudDemoPage.editProcessFilterCloudComponent().clickCustomiseFilterHeader();
expect(processCloudDemoPage.getActiveFilterName()).toBe('New');
expect(processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton();
browser.driver.sleep(1000);
expect(processCloudDemoPage.getActiveFilterName()).toBe('All Processes');
processCloudDemoPage.customProcessFilter('New').checkProcessFilterNotDisplayed();
});

View File

@@ -57,7 +57,7 @@ describe('Edit task filters cloud', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
});
@@ -119,6 +119,7 @@ describe('Edit task filters cloud', () => {
tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('New').clickOnSaveButton();
browser.driver.sleep(1000);
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('New');
tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader();
expect(tasksCloudDemoPage.editTaskFilterCloudComponent().checkSaveButtonIsEnabled()).toEqual(false);
@@ -139,18 +140,22 @@ describe('Edit task filters cloud', () => {
tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('New').clickOnSaveButton();
browser.driver.sleep(1000);
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('New');
tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader();
expect(tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
tasksCloudDemoPage.editTaskFilterCloudComponent().setSortFilterDropDown('Priority');
tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('New').clickOnSaveButton();
browser.driver.sleep(1000);
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('New');
tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader();
expect(tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Priority');
tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
tasksCloudDemoPage.customTaskFilter('custom-new').clickTaskFilter();
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsNotDisplayed();
browser.driver.sleep(1000);
tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader();
expect(tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
@@ -162,12 +167,16 @@ describe('Edit task filters cloud', () => {
tasksCloudDemoPage.myTasksFilter().checkTaskFilterIsDisplayed();
tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('New').clickOnSaveButton();
browser.driver.sleep(1000);
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('New');
tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader();
expect(tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
tasksCloudDemoPage.editTaskFilterCloudComponent().setSortFilterDropDown('Name');
tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveButton();
tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader();
browser.driver.sleep(1000);
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('New');
expect(tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
@@ -179,10 +188,16 @@ describe('Edit task filters cloud', () => {
tasksCloudDemoPage.myTasksFilter().checkTaskFilterIsDisplayed();
tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('New').clickOnSaveButton();
browser.driver.sleep(1000);
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('New');
tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader();
expect(tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
browser.driver.sleep(1000);
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks');
tasksCloudDemoPage.customTaskFilter('New').checkTaskFilterNotDisplayed();
});

View File

@@ -82,7 +82,7 @@ describe('Form Field Component - Dropdown Widget', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
});

View File

@@ -15,24 +15,24 @@
* limitations under the License.
*/
import { LoginPage, Widget } from '@alfresco/adf-testing';
import { LoginSSOPage, SettingsPage, Widget } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
import { UsersActions } from '../../actions/users.actions';
import { FormCloudDemoPage } from '../../pages/adf/demo-shell/process-services-cloud/cloudFormDemoPage';
import { checkboxVisibilityForm } from '../../resources/forms/checkbox-visibility-condition';
describe('Visibility conditions - cloud', () => {
const loginPage = new LoginPage();
const settingsPage = new SettingsPage();
const loginSSOPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const formCloudDemoPage = new FormCloudDemoPage();
const checkboxVisibilityFormJson = JSON.parse(checkboxVisibilityForm);
const widget = new Widget();
let tenantId, user;
let visibleCheckbox;
const widgets = {
@@ -46,7 +46,7 @@ describe('Visibility conditions - cloud', () => {
};
const checkbox = {
checkboxFieldValue : 'CheckboxFieldValue',
checkboxFieldValue: 'CheckboxFieldValue',
checkboxVariableField: 'CheckboxVariableField',
checkboxFieldVariable: 'CheckboxFieldVariable',
checkboxFieldField: 'CheckboxFieldField',
@@ -57,20 +57,14 @@ describe('Visibility conditions - cloud', () => {
beforeAll(async (done) => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf.url
hostBpm: browser.params.testConfig.adf_aps.host
});
const users = new UsersActions();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
tenantId = user.tenantId;
await this.alfrescoJsApi.login(user.email, user.password);
await loginPage.loginToProcessServicesUsingUserModel(user);
await settingsPage.setProviderBpmSso(
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
navigationBarPage.clickFormCloudButton();
@@ -79,12 +73,6 @@ describe('Visibility conditions - cloud', () => {
done();
});
afterAll(async (done) => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
done();
});
it('[C309647] Should be able to see Checkbox widget when visibility condition refers to another field with specific value', () => {
widget.textWidget().isWidgetVisible(widgets.textOneId);

View File

@@ -91,7 +91,7 @@ describe('People Groups Cloud Component', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
});

View File

@@ -77,8 +77,8 @@ describe('People Groups Cloud Component', () => {
await groupIdentityService.assignRole(groupActiviti.id, activitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN);
groupNoRole = await groupIdentityService.createIdentityGroup();
await groupIdentityService.addClientRole(groupAps.id, clientId, clientActivitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN );
await groupIdentityService.addClientRole(groupActiviti.id, clientId, clientActivitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN );
await groupIdentityService.addClientRole(groupAps.id, clientId, clientActivitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN);
await groupIdentityService.addClientRole(groupActiviti.id, clientId, clientActivitiAdminRoleId, identityService.ROLES.ACTIVITI_ADMIN);
users = [`${apsUser.idIdentityService}`, `${activitiUser.idIdentityService}`, `${noRoleUser.idIdentityService}`, `${testUser.idIdentityService}`];
groups = [`${groupAps.id}`, `${groupActiviti.id}`, `${groupNoRole.id}`];
@@ -86,7 +86,7 @@ describe('People Groups Cloud Component', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
});
@@ -102,6 +102,7 @@ describe('People Groups Cloud Component', () => {
await identityService.deleteIdentityUser(testUser.idIdentityService);
await identityService.deleteIdentityUser(apsUser.idIdentityService);
await identityService.deleteIdentityUser(activitiUser.idIdentityService);
});
beforeEach(() => {

View File

@@ -109,7 +109,7 @@ describe('Process list cloud', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await LocalStorageUtil.setConfigField('adf-edit-process-filter', JSON.stringify(editProcessFilterConfigFile));
await LocalStorageUtil.setConfigField('adf-cloud-process-list', JSON.stringify(processListCloudConfigFile));
done();

View File

@@ -126,7 +126,7 @@ describe('Process filters cloud', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await LocalStorageUtil.setConfigField('adf-edit-process-filter', JSON.stringify(editProcessFilterConfigFile));
await LocalStorageUtil.setConfigField('adf-cloud-process-list', JSON.stringify(processListCloudConfigFile));
done();

View File

@@ -87,7 +87,7 @@ describe('Process filters cloud', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
}, 5 * 60 * 1000);

View File

@@ -100,7 +100,7 @@ describe('Process Header cloud component', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
});

View File

@@ -72,7 +72,7 @@ describe('Process list cloud', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
});

View File

@@ -71,7 +71,7 @@ describe('Process list cloud', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
});

View File

@@ -36,7 +36,6 @@ describe('Start Process', () => {
browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.providers
);
const processDefinitionWithoutName = 'process-';
const processName = StringUtil.generateRandomString(10);
const processName255Characters = StringUtil.generateRandomString(255);
const processNameBiggerThen255Characters = StringUtil.generateRandomString(256);
@@ -58,7 +57,7 @@ describe('Start Process', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
navigationBarPage.navigateToProcessServicesCloudPage();
appListCloudComponent.checkApsContainer();
@@ -109,7 +108,6 @@ describe('Start Process', () => {
startProcessPage.enterProcessName(processName);
expect(startProcessPage.checkStartProcessButtonIsEnabled()).toBe(true);
startProcessPage.clickStartProcessButton();
processCloudDemoPage.clickOnProcessFilters();
processCloudDemoPage.runningProcessesFilter().clickProcessFilter();
expect(processCloudDemoPage.getActiveFilterName()).toBe('Running Processes');
@@ -117,14 +115,4 @@ describe('Start Process', () => {
});
it('[C309875] Should display the processId when Process Definition has process name missing', async () => {
appListCloudComponent.checkAppIsDisplayed(simpleApp);
appListCloudComponent.goToApp(simpleApp);
processCloudDemoPage.openNewProcessForm();
startProcessPage.clearField(startProcessPage.processNameInput);
startProcessPage.enterProcessName(processName);
startProcessPage.selectFromProcessDropdown(processDefinitionWithoutName);
expect(startProcessPage.checkStartProcessButtonIsEnabled()).toBe(true);
});
});

View File

@@ -83,9 +83,10 @@ describe('Start Task Form', () => {
let testUser, acsUser, groupInfo;
let processDefinitionService: ProcessDefinitionsService;
let processInstancesService: ProcessInstancesService;
let processDefinition, uploadLocalFileProcess, uploadContentFileProcess, uploadDefaultFileProcess, cancelUploadFileProcess, completeUploadFileProcess;
let processDefinition, uploadLocalFileProcess, uploadContentFileProcess, uploadDefaultFileProcess,
cancelUploadFileProcess, completeUploadFileProcess;
const candidateBaseApp = resources.ACTIVITI7_APPS.CANDIDATE_BASE_APP.name;
const pdfFile = new FileModel({'name': resources.Files.ADF_DOCUMENTS.PDF.file_name});
const pdfFile = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF.file_name });
const pdfFileModel = new FileModel({
'name': resources.Files.ADF_DOCUMENTS.PDF.file_name,
'location': resources.Files.ADF_DOCUMENTS.PDF.file_location
@@ -163,22 +164,19 @@ describe('Start Task Form', () => {
browser.params.config.oauth2.host,
browser.params.config.identityHost,
browser.params.config.oauth2.clientId);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await LocalStorageUtil.setConfigField('adf-cloud-start-process', JSON.stringify(startProcessCloudConfig));
done();
});
afterAll(async (done) => {
try {
await this.alfrescoJsApi.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
await uploadActions.deleteFileOrFolder(uploadedFolder.entry.id);
await apiService.login(testUser.email, testUser.password);
const tasksService = new TasksService(apiService);
const standAloneTaskId = await tasksService.getTaskId(standaloneTaskName, candidateBaseApp);
await tasksService.deleteTask(standAloneTaskId, candidateBaseApp);
await identityService.deleteIdentityUser(testUser.idIdentityService);
} catch (error) {
}
await this.alfrescoJsApi.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
await uploadActions.deleteFileOrFolder(uploadedFolder.entry.id);
await apiService.login(testUser.email, testUser.password);
const tasksService = new TasksService(apiService);
const standAloneTaskId = await tasksService.getTaskId(standaloneTaskName, candidateBaseApp);
await tasksService.deleteTask(standAloneTaskId, candidateBaseApp);
await identityService.deleteIdentityUser(testUser.idIdentityService);
done();
});

View File

@@ -19,8 +19,17 @@ import { browser } from 'protractor';
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
import { TasksCloudDemoPage } from '../../pages/adf/demo-shell/process-services/tasksCloudDemoPage';
import {
LoginSSOPage, AppListCloudPage, StringUtil, TaskHeaderCloudPage,
StartTasksCloudPage, PeopleCloudComponentPage, TasksService, ApiService, IdentityService, SettingsPage, GroupIdentityService
LoginSSOPage,
AppListCloudPage,
StringUtil,
TaskHeaderCloudPage,
StartTasksCloudPage,
PeopleCloudComponentPage,
TasksService,
ApiService,
IdentityService,
SettingsPage,
GroupIdentityService
} from '@alfresco/adf-testing';
import resources = require('../../util/resources');
@@ -70,27 +79,24 @@ describe('Start Task', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
});
afterAll(async (done) => {
try {
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
const tasksService = new TasksService(apiService);
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
const tasksService = new TasksService(apiService);
const tasks = [standaloneTaskName, unassignedTaskName, reassignTaskName];
for (let i = 0; i < tasks.length; i++) {
const taskId = await tasksService.getTaskId(tasks[i], simpleApp);
if (taskId) {
await tasksService.deleteTask(taskId, simpleApp);
}
const tasks = [standaloneTaskName, unassignedTaskName, reassignTaskName];
for (let i = 0; i < tasks.length; i++) {
const taskId = await tasksService.getTaskId(tasks[i], simpleApp);
if (taskId) {
await tasksService.deleteTask(taskId, simpleApp);
}
await identityService.deleteIdentityUser(activitiUser.idIdentityService);
await identityService.deleteIdentityUser(apsUser.idIdentityService);
await identityService.deleteIdentityUser(testUser.idIdentityService);
} catch (error) {
}
await identityService.deleteIdentityUser(activitiUser.idIdentityService);
await identityService.deleteIdentityUser(apsUser.idIdentityService);
await identityService.deleteIdentityUser(testUser.idIdentityService);
done();
});

View File

@@ -19,8 +19,17 @@ import { browser } from 'protractor';
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
import { TasksCloudDemoPage } from '../../pages/adf/demo-shell/process-services/tasksCloudDemoPage';
import {
LoginSSOPage, AppListCloudPage, StringUtil, GroupCloudComponentPage,
StartTasksCloudPage, PeopleCloudComponentPage, TasksService, ApiService, IdentityService, SettingsPage, GroupIdentityService
LoginSSOPage,
AppListCloudPage,
StringUtil,
GroupCloudComponentPage,
StartTasksCloudPage,
PeopleCloudComponentPage,
TasksService,
ApiService,
IdentityService,
SettingsPage,
GroupIdentityService, RolesService
} from '@alfresco/adf-testing';
import resources = require('../../util/resources');
@@ -57,6 +66,11 @@ describe('Start Task - Group Cloud Component', () => {
hrGroup = await groupIdentityService.getGroupInfoByGroupName('hr');
testGroup = await groupIdentityService.getGroupInfoByGroupName('testgroup');
const rolesService = new RolesService(apiService);
const apsAdminRoleId = await rolesService.getRoleIdByRoleName(identityService.ROLES.APS_USER);
await groupIdentityService.assignRole(testGroup.id, apsAdminRoleId, identityService.ROLES.APS_USER);
await identityService.addUserToGroup(testUser.idIdentityService, testGroup.id);
await identityService.addUserToGroup(apsUser.idIdentityService, hrGroup.id);
@@ -64,29 +78,28 @@ describe('Start Task - Group Cloud Component', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
done();
});
afterAll(async (done) => {
try {
await apiService.login(testUser.email, testUser.password);
const tasksService = new TasksService(apiService);
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
const tasksService = new TasksService(apiService);
const bothGroupsTaskId = await tasksService.getTaskId(bothGroupsTaskName, simpleApp);
await tasksService.deleteTask(bothGroupsTaskId, simpleApp);
const bothGroupsTaskId = await tasksService.getTaskId(bothGroupsTaskName, simpleApp);
await tasksService.deleteTask(bothGroupsTaskId, simpleApp);
const oneGroupTaskId = await tasksService.getTaskId(oneGroupTaskName, simpleApp);
await tasksService.deleteTask(oneGroupTaskId, simpleApp);
const oneGroupTaskId = await tasksService.getTaskId(oneGroupTaskName, simpleApp);
await tasksService.deleteTask(oneGroupTaskId, simpleApp);
await identityService.deleteIdentityUser(apsUser.idIdentityService);
await identityService.deleteIdentityUser(testUser.idIdentityService);
await identityService.deleteIdentityUser(apsUser.idIdentityService);
await identityService.deleteIdentityUser(testUser.idIdentityService);
} catch (error) {
}
done();
});
beforeEach(() => {
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
beforeEach(async () => {
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
navigationBarPage.navigateToProcessServicesCloudPage();
appListCloudComponent.checkApsContainer();
appListCloudComponent.checkAppIsDisplayed(simpleApp);
@@ -100,10 +113,11 @@ describe('Start Task - Group Cloud Component', () => {
navigationBarPage.clickLogoutButton();
});
it('[C291954] Should be able to select/delete an group for a standalone task', () => {
it('[C291954] Should be able to select/delete an group for a standalone task', async () => {
peopleCloudComponent.clearAssignee();
groupCloud.searchGroups(testGroup.name);
groupCloud.checkGroupIsDisplayed(testGroup.name);
groupCloud.selectGroupFromList(testGroup.name);
groupCloud.checkSelectedGroup(testGroup.name);
@@ -120,7 +134,7 @@ describe('Start Task - Group Cloud Component', () => {
startTask.clickStartButton();
navigationBarPage.clickLogoutButton();
loginSSOPage.loginSSOIdentityService(apsUser.email, apsUser.password);
await loginSSOPage.loginSSOIdentityService(apsUser.email, apsUser.password);
navigationBarPage.navigateToProcessServicesCloudPage();
appListCloudComponent.checkApsContainer();
appListCloudComponent.checkAppIsDisplayed(simpleApp);
@@ -136,7 +150,7 @@ describe('Start Task - Group Cloud Component', () => {
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(oneGroupTaskName);
});
it('[C291955] Should be able to select multiple groups when the selection mode=multiple', () => {
it('[C291955] Should be able to select multiple groups when the selection mode=multiple', async () => {
peopleCloudComponent.clearAssignee();
groupCloud.searchGroups(testGroup.name);
@@ -153,7 +167,7 @@ describe('Start Task - Group Cloud Component', () => {
startTask.clickStartButton();
navigationBarPage.clickLogoutButton();
loginSSOPage.loginSSOIdentityService(apsUser.email, apsUser.password);
await loginSSOPage.loginSSOIdentityService(apsUser.email, apsUser.password);
navigationBarPage.navigateToProcessServicesCloudPage();
appListCloudComponent.checkApsContainer();
appListCloudComponent.checkAppIsDisplayed(simpleApp);

View File

@@ -52,7 +52,7 @@ describe('Task filters cloud', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
});

View File

@@ -15,20 +15,19 @@
* limitations under the License.
*/
import { browser } from 'protractor';
import { browser, protractor } from 'protractor';
import {
AppListCloudPage,
StringUtil,
ApiService,
LoginSSOPage,
TasksService,
QueryService,
ProcessDefinitionsService,
ProcessInstancesService,
SettingsPage,
TaskHeaderCloudPage,
TaskFormCloudComponent,
Widget
Widget, IdentityService
} from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasksCloudDemoPage';
@@ -50,21 +49,24 @@ describe('Task form cloud component', () => {
let tasksService: TasksService;
let processDefinitionService: ProcessDefinitionsService;
let processInstancesService: ProcessInstancesService;
let queryService: QueryService;
let identityService: IdentityService;
let completedTask, createdTask, assigneeTask, toBeCompletedTask, completedProcess, claimedTask, formValidationsTask;
let completedTask, createdTask, assigneeTask, toBeCompletedTask, formValidationsTask, testUser;
const candidateBaseApp = resources.ACTIVITI7_APPS.CANDIDATE_BASE_APP.name;
const completedTaskName = StringUtil.generateRandomString(), assignedTaskName = StringUtil.generateRandomString();
beforeAll(async (done) => {
const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.providers);
await apiService.login(browser.params.identityUser.email, browser.params.identityUser.password);
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
identityService = new IdentityService(apiService);
testUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.APS_USER]);
await apiService.login(testUser.email, testUser.password);
tasksService = new TasksService(apiService);
queryService = new QueryService(apiService);
createdTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), candidateBaseApp);
assigneeTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), candidateBaseApp);
await tasksService.claimTask(assigneeTask.entry.id, candidateBaseApp);
formValidationsTask = await tasksService.createStandaloneTaskWithForm(StringUtil.generateRandomString(), candidateBaseApp, formToTestValidationsKey);
@@ -78,29 +80,38 @@ describe('Task form cloud component', () => {
await tasksService.createAndCompleteTask(completedTaskName, candidateBaseApp);
processDefinitionService = new ProcessDefinitionsService(apiService);
const processDefinition = await processDefinitionService
.getProcessDefinitionByName(resources.ACTIVITI7_APPS.CANDIDATE_BASE_APP.processes.candidateUserProcess, candidateBaseApp);
processInstancesService = new ProcessInstancesService(apiService);
completedProcess = await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp);
await browser.driver.sleep(4000); // eventual consistency query
const task = await queryService.getProcessInstanceTasks(completedProcess.entry.id, candidateBaseApp);
claimedTask = await tasksService.claimTask(task.list.entries[0].entry.id, candidateBaseApp);
await processInstancesService.createProcessInstance(processDefinition.entry.key, candidateBaseApp);
await settingsPage.setProviderBpmSso(
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(browser.params.identityUser.email, browser.params.identityUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
}, 5 * 60 * 1000);
afterAll(async (done) => {
try {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await identityService.deleteIdentityUser(testUser.id);
} catch (error) {
}
await this.alfrescoJsApi.logout();
browser.executeScript('window.sessionStorage.clear();');
browser.executeScript('window.localStorage.clear();');
done();
});
it('[C307032] Should display the appropriate title for the unclaim option of a Task', async () => {
navigationBarPage.navigateToProcessServicesCloudPage();
appListCloudComponent.checkApsContainer();
appListCloudComponent.goToApp(candidateBaseApp);
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
await tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assigneeTask.entry.name);
tasksCloudDemoPage.taskListCloudComponent().selectRow(assigneeTask.entry.name);
expect(taskFormCloudComponent.getReleaseButtonText()).toBe('RELEASE');
@@ -110,7 +121,7 @@ describe('Task form cloud component', () => {
navigationBarPage.navigateToProcessServicesCloudPage();
appListCloudComponent.checkApsContainer();
appListCloudComponent.goToApp(candidateBaseApp);
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
await tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assigneeTask.entry.name);
tasksCloudDemoPage.taskListCloudComponent().selectRow(assigneeTask.entry.name);
taskFormCloudComponent.checkFormIsNotDisplayed();
@@ -124,7 +135,7 @@ describe('Task form cloud component', () => {
navigationBarPage.navigateToProcessServicesCloudPage();
appListCloudComponent.checkApsContainer();
appListCloudComponent.goToApp(candidateBaseApp);
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
await tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(formValidationsTask.entry.name);
tasksCloudDemoPage.taskListCloudComponent().selectRow(formValidationsTask.entry.name);
taskFormCloudComponent.checkFormIsDisplayed();
@@ -139,11 +150,11 @@ describe('Task form cloud component', () => {
expect(taskFormCloudComponent.getCompleteButton().isEnabled()).toBe(true);
widget.dateWidget().setDateInput('Date0m1moq', 'invalid date');
widget.dateWidget().clickOutsideWidget('Date0m1moq');
await browser.actions().sendKeys(protractor.Key.ENTER).perform();
expect(taskFormCloudComponent.getCompleteButton().isEnabled()).toBe(false);
widget.dateWidget().setDateInput('Date0m1moq', '20-10-2018');
widget.dateWidget().clickOutsideWidget('Date0m1moq');
await browser.actions().sendKeys(protractor.Key.ENTER).perform();
expect(taskFormCloudComponent.getCompleteButton().isEnabled()).toBe(true);
widget.numberWidget().setFieldValue('Number0klykr', 'invalid number');
@@ -169,8 +180,8 @@ describe('Task form cloud component', () => {
done();
});
it('[C307093] Complete button is not displayed when the task is already completed', () => {
tasksCloudDemoPage.completedTasksFilter().clickTaskFilter();
it('[C307093] Complete button is not displayed when the task is already completed', async () => {
await tasksCloudDemoPage.completedTasksFilter().clickTaskFilter();
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('Completed Tasks');
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTaskName);
tasksCloudDemoPage.taskListCloudComponent().selectRow(completedTaskName);
@@ -178,10 +189,12 @@ describe('Task form cloud component', () => {
taskFormCloudComponent.checkCompleteButtonIsNotDisplayed();
});
it('[C307095] Task can not be completed by owner user', () => {
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
it('[C307095] Task can not be completed by owner user', async () => {
await tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks');
tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader().clearAssignee().setStatusFilterDropDown('CREATED');
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickCustomiseFilterHeader();
browser.driver.sleep(1000);
tasksCloudDemoPage.editTaskFilterCloudComponent().clearAssignee().setStatusFilterDropDown('CREATED');
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(createdTask.entry.name);
tasksCloudDemoPage.taskListCloudComponent().selectRow(createdTask.entry.name);
@@ -189,8 +202,8 @@ describe('Task form cloud component', () => {
taskFormCloudComponent.checkCompleteButtonIsNotDisplayed();
});
it('[C307110] Task list is displayed after clicking on Cancel button', () => {
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
it('[C307110] Task list is displayed after clicking on Cancel button', async () => {
await tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks');
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assigneeTask.entry.name);
@@ -202,8 +215,8 @@ describe('Task form cloud component', () => {
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assigneeTask.entry.name);
});
it('[C307094] Standalone Task can be completed by a user that is owner and assignee', () => {
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
it('[C307094] Standalone Task can be completed by a user that is owner and assignee', async () => {
await tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks');
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(toBeCompletedTask.entry.name);
@@ -212,7 +225,7 @@ describe('Task form cloud component', () => {
taskFormCloudComponent.checkCompleteButtonIsDisplayed().clickCompleteButton();
tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(toBeCompletedTask.entry.name);
tasksCloudDemoPage.completedTasksFilter().clickTaskFilter();
await tasksCloudDemoPage.completedTasksFilter().clickTaskFilter();
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(toBeCompletedTask.entry.name);
taskFormCloudComponent.checkCompleteButtonIsNotDisplayed();
});
@@ -221,14 +234,14 @@ describe('Task form cloud component', () => {
tasksCloudDemoPage.myTasksFilter().clickTaskFilter();
expect(tasksCloudDemoPage.getActiveFilterName()).toBe('My Tasks');
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(claimedTask.entry.name);
tasksCloudDemoPage.taskListCloudComponent().selectRow(claimedTask.entry.name);
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTask.entry.name);
tasksCloudDemoPage.taskListCloudComponent().selectRow(completedTask.entry.name);
taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
taskFormCloudComponent.checkCompleteButtonIsDisplayed().clickCompleteButton();
tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(claimedTask.entry.name);
tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(completedTask.entry.name);
tasksCloudDemoPage.completedTasksFilter().clickTaskFilter();
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(claimedTask.entry.name);
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTask.entry.name);
taskFormCloudComponent.checkCompleteButtonIsNotDisplayed();
});
});

View File

@@ -90,7 +90,7 @@ describe('Task Header cloud component', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
});

View File

@@ -68,21 +68,25 @@ describe('Edit task filters and task list properties', () => {
groupInfo = await groupIdentityService.getGroupInfoByGroupName('hr');
await identityService.addUserToGroup(testUser.idIdentityService, groupInfo.id);
await apiService.login(testUser.email, testUser.password);
otherOwnerTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), simpleApp);
await tasksService.claimTask(otherOwnerTask.entry.id, simpleApp);
createdTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), simpleApp);
await tasksService.claimTask(createdTask.entry.id, simpleApp);
notAssigned = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), simpleApp);
priorityTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), simpleApp, { priority: priority });
await tasksService.claimTask(priorityTask.entry.id, simpleApp);
notDisplayedTask = await tasksService.createStandaloneTask(StringUtil.generateRandomString(), candidateBaseApp);
await tasksService.claimTask(notDisplayedTask.entry.id, candidateBaseApp);
processDefinitionService = new ProcessDefinitionsService(apiService);
processDefinition = await processDefinitionService
.getProcessDefinitionByName(resources.ACTIVITI7_APPS.SIMPLE_APP.processes.simpleProcess, simpleApp);
.getProcessDefinitionByName(resources.ACTIVITI7_APPS.SIMPLE_APP.processes.dropdownrestprocess, simpleApp);
processInstancesService = new ProcessInstancesService(apiService);
processInstance = await processInstancesService.createProcessInstance(processDefinition.entry.key, simpleApp);
@@ -96,7 +100,7 @@ describe('Edit task filters and task list properties', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await LocalStorageUtil.setConfigField('adf-cloud-task-list', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('adf-edit-task-filter', JSON.stringify({
'filterProperties': [
@@ -219,10 +223,11 @@ describe('Edit task filters and task list properties', () => {
tasksCloudDemoPage.editTaskFilterCloudComponent().setProcessInstanceId(processInstance.entry.id)
.setStatusFilterDropDown('ALL').clearAssignee();
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsDisplayed();
tasksCloudDemoPage.taskListCloudComponent().getDataTable().checkSpinnerIsNotDisplayed();
browser.sleep(1000);
expect(tasksCloudDemoPage.taskListCloudComponent().getDataTable().getNumberOfRows()).toBe(1);
tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByProcessInstanceId(processInstance.entry.id);
});

View File

@@ -68,7 +68,7 @@ describe('Task list cloud - selection', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
});

View File

@@ -103,7 +103,7 @@ describe('Task filters cloud', () => {
browser.params.config.bpmHost,
browser.params.config.oauth2.host,
browser.params.config.identityHost);
loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
done();
}, 5 * 60 * 1000 );