[ADF-3584][ADF-3583]Add tests for Process Filters and Task Filters ic… (#3821)

* [ADF-3584][ADF-3583]Add tests for Process Filters and Task Filters icons.

* Rename tests

* Fixing a test
This commit is contained in:
cristinaj 2018-09-25 23:42:17 +03:00 committed by Eugenio Romano
parent 8c0bcccfeb
commit a52b560171
10 changed files with 259 additions and 25 deletions

View File

@ -24,10 +24,12 @@ var ToggleState = function () {
this.enableToggle = function (toggle) {
Util.waitUntilElementIsVisible(toggle);
Util.waitUntilElementIsPresent(toggle);
var finalToggleButton = toggle.element(toggleButton);
finalToggleButton.getAttribute('class').then(function (value) {
toggle.getAttribute('class').then(function (value) {
Util.waitUntilElementIsVisible(toggle);
Util.waitUntilElementIsPresent(toggle);
Util.waitUntilElementIsClickable(toggle);
if (value.indexOf('mat-checked')===-1) {
finalToggleButton.click();
toggle.click();
}
});
return this;

View File

@ -22,7 +22,6 @@ var UploadToggles = function () {
var toggleState = new ToggleState();
var toggleButton = by.xpath("ancestor::mat-slide-toggle");
var multipleFileUploadToggle = element(by.cssContainingText("span[class*='toggle-content']", "Multiple File Upload"));
var uploadFolderToggle = element(by.cssContainingText("span[class*='toggle-content']", "Folder upload"));
var extensionFilterToggle = element(by.cssContainingText("span[class*='toggle-content']", "Custom extensions filter"));
@ -31,9 +30,10 @@ var UploadToggles = function () {
var extensionAcceptedField = element(by.css("input[data-automation-id='accepted-files-type']"));
var maxSizeField = element(by.css("input[data-automation-id='max-files-size']"));
var disableUploadCheckbox = element(by.css("[id='adf-disable-upload']"));
var ancestorToggle = by.xpath("ancestor::mat-slide-toggle");
this.enableMultipleFileUpload = function () {
toggleState.enableToggle(multipleFileUploadToggle);
toggleState.enableToggle(multipleFileUploadToggle.element(ancestorToggle));
return this;
};
@ -43,7 +43,7 @@ var UploadToggles = function () {
};
this.enableFolderUpload = function () {
toggleState.enableToggle(uploadFolderToggle);
toggleState.enableToggle(uploadFolderToggle.element(ancestorToggle));
return this;
};
@ -53,7 +53,7 @@ var UploadToggles = function () {
};
this.enableExtensionFilter = function () {
toggleState.enableToggle(extensionFilterToggle);
toggleState.enableToggle(extensionFilterToggle.element(ancestorToggle));
return this;
};
@ -63,7 +63,7 @@ var UploadToggles = function () {
};
this.enableMaxSize = function () {
toggleState.enableToggle(maxSizeToggle);
toggleState.enableToggle(maxSizeToggle.element(ancestorToggle));
return this;
};
@ -73,7 +73,7 @@ var UploadToggles = function () {
};
this.enableVersioning = function () {
toggleState.enableToggle(versioningToggle);
toggleState.enableToggle(versioningToggle.element(ancestorToggle));
return this;
};

View File

@ -17,11 +17,13 @@
var ToggleState = require('../../core/toggleState');
var TaskDetailsToggles = function () {
var AppSettingsToggles = function () {
var toggleState = new ToggleState();
var showDetailsHeaderToggle = element(by.id('adf-show-header-input'));
var showTaskFilterIconsToggle = element(by.id('adf-show-task-filter-icon'));
var showProcessFilterIconsToggle = element(by.id('adf-show-process-filter-icon'));
this.enableShowHeader = function () {
toggleState.enableToggle(showDetailsHeaderToggle);
@ -33,7 +35,27 @@ var TaskDetailsToggles = function () {
return this;
};
this.enableTaskFiltersIcon = function () {
toggleState.enableToggle(showTaskFilterIconsToggle);
return this;
};
this.disableTaskFiltersIcon = function () {
toggleState.disableToggle(showTaskFilterIconsToggle);
return this;
};
this.enableProcessFiltersIcon = function () {
toggleState.enableToggle(showProcessFilterIconsToggle);
return this;
};
this.disableProcessFiltersIcon = function () {
toggleState.disableToggle(showProcessFilterIconsToggle);
return this;
};
};
module.exports = TaskDetailsToggles;
module.exports = AppSettingsToggles;

View File

@ -34,6 +34,7 @@ var ProcessFiltersPage = function () {
var tableBody = element.all(by.css("adf-datatable div[class='adf-datatable-body']")).first();
var contentList = new ContentList();
var nameColumn = by.css("div[class*='adf-datatable-body'] div[class*='adf-datatable-row'] div[title='Name'] span");
var processIcon = by.xpath("ancestor::div[@class='mat-list-item-content']/mat-icon");
this.startProcess = function () {
this.clickCreateProcessButton();
@ -116,6 +117,20 @@ var ProcessFiltersPage = function () {
return Util.waitUntilElementIsVisible(filterName);
};
this.checkFilterHasNoIcon = function(name) {
var filterName = element(by.css("span[data-automation-id='" + name + "_filter']"));
Util.waitUntilElementIsVisible(filterName);
return Util.waitUntilElementIsNotOnPage(filterName.element(processIcon));
};
this.getFilterIcon = function (name) {
var filterName = element(by.css("span[data-automation-id='" + name + "_filter']"));
Util.waitUntilElementIsVisible(filterName);
var icon = filterName.element(processIcon);
Util.waitUntilElementIsVisible(icon);
return icon.getText();
};
this.checkFilterIsNotDisplayed = function (name) {
var filterName = element(by.css("span[data-automation-id='" + name + "_filter']"));
return Util.waitUntilElementIsNotVisible(filterName);

View File

@ -16,7 +16,7 @@
*/
var Util = require('../../../util/util');
var TaskDetailsToggles = require('./dialog/taskDetailsToggles');
var AppSettingsToggles = require('./dialog/appSettingsToggles');
var TaskDetailsPage = function () {
@ -63,7 +63,7 @@ var TaskDetailsPage = function () {
Util.waitUntilElementIsVisible(taskDetailsTitle);
return taskDetailsTitle.getText();
};
this.checkSelectedForm = function (formName) {
Util.waitUntilElementIsVisible(attachFormName);
expect(formName).toEqual(attachFormName.getText());
@ -290,8 +290,8 @@ var TaskDetailsPage = function () {
auditLogButton.click();
};
this.usingTaskDetailsToggles = function () {
return new TaskDetailsToggles();
this.usingAppSettingsToggles = function () {
return new AppSettingsToggles();
};
this.taskInfoDrawerIsDisplayed = function () {

View File

@ -30,6 +30,7 @@ var TaskFiltersPage = function () {
var activeFilter = element(by.css("mat-list-item[class*='active']"));
var emptyTaskList = element(by.css('p[class="adf-empty-content__title"]'));
var emptyTaskDetails = element(by.css('adf-task-details > div > div'));
var taskIcon = by.xpath("ancestor::div[@class='mat-list-item-content']/mat-icon");
this.checkTaskFilterDisplayed = function(name) {
var customTask = element(by.css(`span[data-automation-id="${name}_filter"]`));
@ -37,6 +38,20 @@ var TaskFiltersPage = function () {
return customTask;
};
this.getTaskFilterIcon = function(name) {
var customTask = element(by.css(`span[data-automation-id="${name}_filter"]`));
Util.waitUntilElementIsVisible(customTask);
var icon = customTask.element(taskIcon);
Util.waitUntilElementIsVisible(icon);
return icon.getText();
};
this.checkTaskFilterHasNoIcon = function(name) {
var customTask = element(by.css(`span[data-automation-id="${name}_filter"]`));
Util.waitUntilElementIsVisible(customTask);
Util.waitUntilElementIsNotOnPage(customTask.element(taskIcon));
};
this.clickTaskFilter = function(name) {
var customTask = element(by.css(`span[data-automation-id="${name}_filter"]`));
Util.waitUntilElementIsVisible(customTask);

View File

@ -20,6 +20,8 @@ import { browser } from 'protractor';
import LoginPage = require('../pages/adf/loginPage');
import ProcessServicesPage = require('../pages/adf/process_services/processServicesPage');
import ProcessFiltersPage = require('../pages/adf/process_services/processFiltersPage.js');
import AppNavigationBarPage = require('../pages/adf/process_services/appNavigationBarPage');
import AppSettingsToggles = require('../pages/adf/process_services/dialog/appSettingsToggles');
import TestConfig = require('../test.config');
@ -31,6 +33,8 @@ describe('New Process Filters', () => {
let loginPage = new LoginPage();
let processServicesPage = new ProcessServicesPage();
let processFiltersPage = new ProcessFiltersPage();
let appNavigationBarPage = new AppNavigationBarPage();
let appSettingsToggles = new AppSettingsToggles();
let tenantId, user, filterId, customProcessFilter;
@ -39,7 +43,10 @@ describe('New Process Filters', () => {
all: 'All',
completed: 'Completed',
new_filter: 'New Filter',
edited: 'Edited Filter'
edited: 'Edited Filter',
new_icon: 'New icon',
edit_icon: 'Edit icon',
deleted: 'To delete'
};
beforeAll(async(done) => {
@ -104,6 +111,33 @@ describe('New Process Filters', () => {
processFiltersPage.checkFilterIsDisplayed(processFilter.new_filter);
});
it('[C286450] Should display the process filter icon when a custom filter is added', () => {
browser.controlFlow().execute(async () => {
customProcessFilter = await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null,
'name': processFilter.new_icon,
'icon': 'glyphicon-cloud',
'filter': {'sort': 'created-desc', 'name': '', 'state': 'running'}
});
filterId = customProcessFilter.id;
return customProcessFilter;
});
loginPage.loginToProcessServicesUsingUserModel(user);
processServicesPage.goToProcessServices().goToTaskApp().clickProcessButton();
processFiltersPage.checkFilterIsDisplayed(processFilter.new_icon);
appNavigationBarPage.clickSettingsButton();
appSettingsToggles.enableProcessFiltersIcon();
appNavigationBarPage.clickProcessButton();
processFiltersPage.checkFilterIsDisplayed(processFilter.new_icon);
expect(processFiltersPage.getFilterIcon(processFilter.new_icon)).toEqual('cloud');
});
it('[C260474] Should be able to edit a filter on APS and check it on ADF', () => {
browser.controlFlow().execute(() => {
return this.alfrescoJsApi.activiti.userFiltersApi.updateUserProcessInstanceFilter(filterId, {
@ -124,19 +158,84 @@ describe('New Process Filters', () => {
processFiltersPage.checkFilterIsDisplayed(processFilter.edited);
});
it('[C286451] Should display changes on a process filter when this filter icon is edited', () => {
browser.controlFlow().execute(async () => {
customProcessFilter = await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null,
'name': processFilter.edit_icon,
'icon': 'glyphicon-random',
'filter': {'sort': 'created-desc', 'name': '', 'state': 'running'}
});
filterId = customProcessFilter.id;
return customProcessFilter;
});
loginPage.loginToProcessServicesUsingUserModel(user);
processServicesPage.goToProcessServices().goToTaskApp().clickProcessButton();
processFiltersPage.checkFilterIsDisplayed(processFilter.edit_icon);
browser.controlFlow().execute(() => {
return this.alfrescoJsApi.activiti.userFiltersApi.updateUserProcessInstanceFilter(filterId, {
'appId': null,
'name': processFilter.edit_icon,
'icon': 'glyphicon-cloud',
'filter': {'sort': 'created-desc', 'name': '', 'state': 'running'}
});
});
loginPage.loginToProcessServicesUsingUserModel(user);
processServicesPage.goToProcessServices().goToTaskApp().clickProcessButton();
processFiltersPage.checkFilterIsDisplayed(processFilter.edit_icon);
appNavigationBarPage.clickSettingsButton();
appSettingsToggles.enableProcessFiltersIcon();
appNavigationBarPage.clickProcessButton();
processFiltersPage.checkFilterIsDisplayed(processFilter.edit_icon);
expect(processFiltersPage.getFilterIcon(processFilter.edit_icon)).toEqual('cloud');
});
it('[C286452] Should display process filter icons only when showIcon property is set on true', () => {
loginPage.loginToProcessServicesUsingUserModel(user);
processServicesPage.goToProcessServices().goToTaskApp().clickProcessButton();
processFiltersPage.checkFilterHasNoIcon(processFilter.all);
appNavigationBarPage.clickSettingsButton();
appSettingsToggles.enableProcessFiltersIcon();
appNavigationBarPage.clickProcessButton();
processFiltersPage.checkFilterIsDisplayed(processFilter.all);
expect(processFiltersPage.getFilterIcon(processFilter.all)).toEqual('dashboard');
});
it('[C260475] Should be able to delete a filter on APS and check it on ADF', () => {
browser.controlFlow().execute(async () => {
customProcessFilter = await this.alfrescoJsApi.activiti.userFiltersApi.createUserProcessInstanceFilter({
'appId': null,
'name': processFilter.deleted,
'icon': 'glyphicon-random',
'filter': {'sort': 'created-desc', 'name': '', 'state': 'running'}
});
filterId = customProcessFilter.id;
return customProcessFilter;
});
browser.controlFlow().execute(() => {
return this.alfrescoJsApi.activiti.userFiltersApi.deleteUserProcessInstanceFilter(filterId);
});
loginPage.loginToProcessServicesUsingUserModel(user);
processServicesPage
.goToProcessServices()
.goToTaskApp()
.clickProcessButton();
processServicesPage.goToProcessServices().goToTaskApp().clickProcessButton();
processFiltersPage.checkFilterIsNotDisplayed(processFilter.edited);
processFiltersPage.checkFilterIsNotDisplayed(processFilter.deleted);
});
});

View File

@ -218,13 +218,13 @@ describe('Start Task - Custom App', () => {
taskPage.usingTasksListPage().checkTaskIsDisplayedInTasksList(showHeaderTask).selectTaskFromTasksList(showHeaderTask);
appNavigationBarPage.clickSettingsButton();
taskPage.usingTaskDetails().usingTaskDetailsToggles().disableShowHeader();
taskPage.usingTaskDetails().usingAppSettingsToggles().disableShowHeader();
appNavigationBarPage.clickTasksButton();
taskPage.usingTaskDetails().taskInfoDrawerIsNotDisplayed();
appNavigationBarPage.clickSettingsButton();
taskPage.usingTaskDetails().usingTaskDetailsToggles().enableShowHeader();
taskPage.usingTaskDetails().usingAppSettingsToggles().enableShowHeader();
appNavigationBarPage.clickTasksButton();
taskPage.usingTaskDetails().taskInfoDrawerIsDisplayed();

View File

@ -220,13 +220,13 @@ describe('Start Task - Task App', () => {
taskPage.usingTasksListPage().checkTaskIsDisplayedInTasksList(showHeaderTask).selectTaskFromTasksList(showHeaderTask);
appNavigationBarPage.clickSettingsButton();
taskPage.usingTaskDetails().usingTaskDetailsToggles().disableShowHeader();
taskPage.usingTaskDetails().usingAppSettingsToggles().disableShowHeader();
appNavigationBarPage.clickTasksButton();
taskPage.usingTaskDetails().taskInfoDrawerIsNotDisplayed();
appNavigationBarPage.clickSettingsButton();
taskPage.usingTaskDetails().usingTaskDetailsToggles().enableShowHeader();
taskPage.usingTaskDetails().usingAppSettingsToggles().enableShowHeader();
appNavigationBarPage.clickTasksButton();
taskPage.usingTaskDetails().taskInfoDrawerIsDisplayed();

View File

@ -25,6 +25,8 @@ import TasksPage = require('../pages/adf/process_services/tasksPage');
import TasksListPage = require('../pages/adf/process_services/tasksListPage');
import TaskFiltersPage = require('../pages/adf/process_services/taskFiltersPage');
import TaskDetailsPage = require('../pages/adf/process_services/taskDetailsPage');
import AppNavigationBarPage = require('../pages/adf/process_services/appNavigationBarPage');
import AppSettingsToggles = require('../pages/adf/process_services/dialog/appSettingsToggles');
import AlfrescoApi = require('alfresco-js-api-node');
import { AppsActions } from '../actions/APS/apps.actions';
@ -223,6 +225,8 @@ describe('Custom Filters Test', () => {
let tasksListPage = new TasksListPage();
let taskFiltersPage = new TaskFiltersPage();
let taskDetailsPage = new TaskDetailsPage();
let appNavigationBarPage = new AppNavigationBarPage();
let appSettingsToggles = new AppSettingsToggles();
let tenantId;
let user;
@ -297,6 +301,45 @@ describe('Custom Filters Test', () => {
});
});
it('[C286447] Should display the task filter icon when a custom filter is added', () => {
browser.controlFlow().execute(async () => {
let newFilter = new this.alfrescoJsApi.activiti.UserProcessInstanceFilterRepresentation();
newFilter.name = 'New Task Filter with icon';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-cloud';
newFilter.filter = { sort: 'created-desc', state: 'completed', assignment: 'involved' };
let result = await this.alfrescoJsApi.activiti.userFiltersApi.createUserTaskFilter(newFilter);
taskFilterId = result.id;
return result;
});
browser.refresh();
appNavigationBarPage.clickSettingsButton();
appSettingsToggles.enableTaskFiltersIcon();
appNavigationBarPage.clickTasksButton();
taskFiltersPage.checkTaskFilterDisplayed('New Task Filter with icon');
expect(taskFiltersPage.getTaskFilterIcon('New Task Filter with icon')).toEqual('cloud');
browser.controlFlow().execute(() => {
let result = this.alfrescoJsApi.activiti.userFiltersApi.deleteUserTaskFilter(taskFilterId);
return result;
});
});
it('[C286449] Should display task filter icons only when showIcon property is set on true', () => {
taskFiltersPage.checkTaskFilterHasNoIcon('My Tasks');
appNavigationBarPage.clickSettingsButton();
appSettingsToggles.enableTaskFiltersIcon();
appNavigationBarPage.clickTasksButton();
taskFiltersPage.checkTaskFilterDisplayed('My Tasks');
expect(taskFiltersPage.getTaskFilterIcon('My Tasks')).toEqual('inbox');
});
it('[C260353] Should display changes on a filter when this filter is edited', () => {
browser.controlFlow().execute(async () => {
let newFilter = new this.alfrescoJsApi.activiti.UserProcessInstanceFilterRepresentation();
@ -336,6 +379,44 @@ describe('Custom Filters Test', () => {
});
});
it('[C286448] Should display changes on a task filter when this filter icon is edited', () => {
browser.controlFlow().execute(async () => {
let newFilter = new this.alfrescoJsApi.activiti.UserProcessInstanceFilterRepresentation();
newFilter.name = 'Task Filter Edited icon';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-filter';
newFilter.filter = { sort: 'created-desc', state: 'completed', assignment: 'involved' };
let result = await this.alfrescoJsApi.activiti.userFiltersApi.createUserTaskFilter(newFilter);
taskFilterId = result.id;
return result;
});
browser.refresh();
taskFiltersPage.checkTaskFilterDisplayed('Task Filter Edited icon');
browser.controlFlow().execute(() => {
let newFilter = new this.alfrescoJsApi.activiti.UserProcessInstanceFilterRepresentation();
newFilter.name = 'Task Filter Edited icon';
newFilter.appId = appId;
newFilter.icon = 'glyphicon-cloud';
newFilter.filter = { sort: 'created-desc', state: 'completed', assignment: 'involved' };
let result = this.alfrescoJsApi.activiti.userFiltersApi.updateUserTaskFilter(taskFilterId, newFilter);
return result;
});
browser.refresh();
appNavigationBarPage.clickSettingsButton();
appSettingsToggles.enableTaskFiltersIcon();
appNavigationBarPage.clickTasksButton();
taskFiltersPage.checkTaskFilterDisplayed('Task Filter Edited icon');
expect(taskFiltersPage.getTaskFilterIcon('Task Filter Edited icon')).toEqual('cloud');
});
it('[C260354] Should not display task filter when this filter is deleted', () => {
browser.controlFlow().execute(async () => {
let newFilter = new this.alfrescoJsApi.activiti.UserProcessInstanceFilterRepresentation();