Added a new LocalStorageUtil and using the setConfigMethod to set the local storage variables (#4575)

* added a new LocalStorageUtil and using the setConfigMethod to set the localstorage variables, instead of using hte settings ui page.

* linting fix

* fixing import paths

* update new path LocalStorageUtil

* fix problems after rebase

* fix async loadin and clear

* local storage fix

* fix lint

* fix cs tests

* fix tag navigation and rename file appNavigation to processTabNavigation

* fix lint

* fix process test

* fix lint

Signed-off-by: Eugenio Romano <eugenio.romano@alfresco.com>

* fix start process cloud

* inc timeout
This commit is contained in:
gmandakini 2019-04-21 23:42:59 +01:00 committed by Eugenio Romano
parent 97ad54a4f8
commit e85b57876e
69 changed files with 369 additions and 351 deletions

View File

@ -18,7 +18,6 @@
import { LoginPage } from '@alfresco/adf-testing';
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
import { PaginationPage } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
import { AcsUserModel } from '../../models/ACS/acsUserModel';
import { FolderModel } from '../../models/ACS/folderModel';
@ -28,6 +27,7 @@ import { Util } from '../../util/util';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UploadActions } from '../../actions/ACS/upload.actions';
import { browser } from 'protractor';
describe('Document List - Pagination', function () {
const pagination = {
@ -51,17 +51,16 @@ describe('Document List - Pagination', function () {
const loginPage = new LoginPage();
const contentServicesPage = new ContentServicesPage();
const paginationPage = new PaginationPage();
const navigationBarPage = new NavigationBarPage();
const acsUser = new AcsUserModel();
const newFolderModel = new FolderModel({'name': 'newFolder'});
const newFolderModel = new FolderModel({ 'name': 'newFolder' });
let fileNames = [];
const nrOfFiles = 20;
let currentPage = 1;
let secondSetOfFiles = [];
const secondSetNumber = 25;
const folderTwoModel = new FolderModel({'name': 'folderTwo'});
const folderThreeModel = new FolderModel({'name': 'folderThree'});
const folderTwoModel = new FolderModel({ 'name': 'folderTwo' });
const folderThreeModel = new FolderModel({ 'name': 'folderThree' });
beforeAll(async (done) => {
const uploadActions = new UploadActions();
@ -87,7 +86,11 @@ describe('Document List - Pagination', function () {
await uploadActions.createEmptyFiles(this.alfrescoJsApi, secondSetOfFiles, folderThreeUploadedModel.entry.id);
loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
beforeEach(async (done) => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
@ -124,14 +127,9 @@ describe('Document List - Pagination', function () {
paginationPage.checkNextPageButtonIsDisabled();
paginationPage.checkPreviousPageButtonIsDisabled();
navigationBarPage.clickLogoutButton();
loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
contentServicesPage.checkAcsContainer();
browser.refresh();
contentServicesPage.waitForTableBody();
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.twenty);
navigationBarPage.clickLogoutButton();
loginPage.loginToContentServicesUsingUserModel(acsUser);
});
it('[C260069] Should be able to set Items per page to 5', function () {
@ -179,14 +177,10 @@ describe('Document List - Pagination', function () {
expect(Util.arrayContainsArray(list, fileNames.slice(15, 20))).toEqual(true);
});
navigationBarPage.clickLogoutButton();
loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
browser.refresh();
contentServicesPage.checkAcsContainer();
contentServicesPage.waitForTableBody();
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
navigationBarPage.clickLogoutButton();
loginPage.loginToContentServicesUsingUserModel(acsUser);
});
it('[C260067] Should be able to set Items per page to 10', function () {
@ -215,15 +209,9 @@ describe('Document List - Pagination', function () {
expect(Util.arrayContainsArray(list, fileNames.slice(10, 20))).toEqual(true);
});
navigationBarPage.clickLogoutButton();
loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
contentServicesPage.checkAcsContainer();
browser.refresh();
contentServicesPage.waitForTableBody();
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.ten);
navigationBarPage.clickLogoutButton();
loginPage.loginToContentServicesUsingUserModel(acsUser);
currentPage = 1;
});
it('[C260065] Should be able to set Items per page to 15', function () {
@ -253,10 +241,8 @@ describe('Document List - Pagination', function () {
expect(Util.arrayContainsArray(list, fileNames.slice(15, 20))).toEqual(true);
});
navigationBarPage.clickLogoutButton();
loginPage.loginToContentServicesUsingUserModel(acsUser);
contentServicesPage.goToDocumentList();
contentServicesPage.checkAcsContainer();
browser.refresh();
contentServicesPage.waitForTableBody();
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.fifteen);
});

View File

@ -20,7 +20,7 @@ import { FileModel } from '../models/ACS/fileModel';
import { LoginPage } from '@alfresco/adf-testing';
import { TagPage } from '../pages/adf/tagPage';
import { AppNavigationBarPage } from '../pages/adf/process-services/appNavigationBarPage';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import TestConfig = require('../test.config');
import resources = require('../util/resources');
@ -35,7 +35,7 @@ describe('Tag component', () => {
const loginPage = new LoginPage();
const tagPage = new TagPage();
const appNavigationBarPage = new AppNavigationBarPage();
const navigationBarPage = new NavigationBarPage();
const acsUser = new AcsUserModel();
const uploadActions = new UploadActions();
@ -86,9 +86,7 @@ describe('Tag component', () => {
await this.alfrescoJsApi.core.tagsApi.addTag(nodeId, tags);
loginPage.loginToContentServicesUsingUserModel(acsUser);
appNavigationBarPage.clickTagButton();
await loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
@ -100,6 +98,8 @@ describe('Tag component', () => {
});
it('[C260374] Should NOT be possible to add a new tag without Node ID', () => {
navigationBarPage.clickTagButton();
expect(tagPage.getNodeId()).toEqual('');
expect(tagPage.getNewTagPlaceholder()).toEqual('New Tag');
expect(tagPage.addTagButtonIsEnabled()).toEqual(false);

View File

@ -15,7 +15,7 @@
* limitations under the License.
*/
import { LoginPage } from '@alfresco/adf-testing';
import { LoginPage, LocalStorageUtil } from '@alfresco/adf-testing';
import { ViewerPage } from '../../pages/adf/viewerPage';
import { MetadataViewPage } from '../../pages/adf/metadataViewPage';
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
@ -30,7 +30,6 @@ import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UploadActions } from '../../actions/ACS/upload.actions';
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
import { check } from '../../util/material';
import { setConfigField } from '../../proxy';
describe('Aspect oriented config', () => {
@ -96,7 +95,7 @@ describe('Aspect oriented config', () => {
it('[C261117] Should be possible restrict the display properties of one an aspect', async () => {
await setConfigField('content-metadata', JSON.stringify({
await LocalStorageUtil.setConfigField('content-metadata', JSON.stringify({
presets: {
default: [
{
@ -137,7 +136,7 @@ describe('Aspect oriented config', () => {
it('[C260185] Should ignore not existing aspect when present in the configuration', async () => {
await setConfigField('content-metadata', JSON.stringify({
await LocalStorageUtil.setConfigField('content-metadata', JSON.stringify({
presets: {
default: {
'exif:exif': '*',
@ -164,7 +163,7 @@ describe('Aspect oriented config', () => {
it('[C260183] Should show all the aspect if the content-metadata configuration is NOT provided', async () => {
await setConfigField('content-metadata', '{}');
await LocalStorageUtil.setConfigField('content-metadata', '{}');
navigationBarPage.clickContentServicesButton();
@ -182,7 +181,7 @@ describe('Aspect oriented config', () => {
it('[C260182] Should show all the aspects if the default configuration contains the star symbol', async () => {
await setConfigField('content-metadata', JSON.stringify({
await LocalStorageUtil.setConfigField('content-metadata', JSON.stringify({
presets: {
default: '*'
}
@ -205,7 +204,7 @@ describe('Aspect oriented config', () => {
it('[C268899] Should be possible use a Translation key as Title of a metadata group', async () => {
await setConfigField('content-metadata', '{' +
await LocalStorageUtil.setConfigField('content-metadata', '{' +
' "presets": {' +
' "default": [' +
' {' +
@ -250,7 +249,7 @@ describe('Aspect oriented config', () => {
it('[C279968] Should be possible use a custom preset', async () => {
await setConfigField('content-metadata', '{' +
await LocalStorageUtil.setConfigField('content-metadata', '{' +
' "presets": {' +
' "custom-preset": {' +
' "exif:exif": "*",' +
@ -280,7 +279,7 @@ describe('Aspect oriented config', () => {
it('[C299186] The aspect without properties is not displayed', async () => {
await setConfigField('content-metadata', '{' +
await LocalStorageUtil.setConfigField('content-metadata', '{' +
' "presets": { "' + modelOneName +
' ": { "' + modelOneName + ':' + emptyAspectName +
' ":"*"' +
@ -303,7 +302,7 @@ describe('Aspect oriented config', () => {
it('[C299187] The aspect with empty properties is displayed when edit', async () => {
await setConfigField('content-metadata', '{' +
await LocalStorageUtil.setConfigField('content-metadata', '{' +
' "presets": { "' + defaultModel +
' ": { "' + defaultModel + ':' + defaultEmptyPropertiesAspect +
' ":"*"' +

View File

@ -102,13 +102,13 @@ describe('permissions', () => {
done();
});
afterAll(async(done) => {
afterAll(async (done) => {
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id);
done();
});
it('[C274692] Should not be possible edit metadata properties when the user is a consumer user', () => {
loginPage.loginToContentServicesUsingUserModel(consumerUser);
it('[C274692] Should not be possible edit metadata properties when the user is a consumer user', async () => {
await loginPage.loginToContentServicesUsingUserModel(consumerUser);
navigationBarPage.openContentServicesFolder(site.entry.guid);
@ -119,8 +119,8 @@ describe('permissions', () => {
metadataViewPage.editIconIsNotDisplayed();
});
it('[C279971] Should be possible edit metadata properties when the user is a collaborator user', () => {
loginPage.loginToContentServicesUsingUserModel(collaboratorUser);
it('[C279971] Should be possible edit metadata properties when the user is a collaborator user', async () => {
await loginPage.loginToContentServicesUsingUserModel(collaboratorUser);
navigationBarPage.openContentServicesFolder(site.entry.guid);
@ -139,8 +139,8 @@ describe('permissions', () => {
metadataViewPage.editIconIsDisplayed();
});
it('[C279972] Should be possible edit metadata properties when the user is a contributor user', () => {
loginPage.loginToContentServicesUsingUserModel(collaboratorUser);
it('[C279972] Should be possible edit metadata properties when the user is a contributor user', async () => {
await loginPage.loginToContentServicesUsingUserModel(collaboratorUser);
navigationBarPage.openContentServicesFolder(site.entry.guid);

View File

@ -17,7 +17,7 @@
import { browser } from 'protractor';
import { LoginPage } from '@alfresco/adf-testing';
import { LoginPage, LocalStorageUtil } from '@alfresco/adf-testing';
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
import { ViewerPage } from '../../pages/adf/viewerPage';
import { MetadataViewPage } from '../../pages/adf/metadataViewPage';
@ -32,7 +32,6 @@ import dateFormat = require('dateformat');
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UploadActions } from '../../actions/ACS/upload.actions';
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
import { setConfigField } from '../../proxy';
describe('Metadata component', () => {
@ -97,7 +96,7 @@ describe('Metadata component', () => {
describe('Viewer Metadata', () => {
beforeAll(async() => {
await setConfigField('content-metadata', JSON.stringify({
await LocalStorageUtil.setConfigField('content-metadata', JSON.stringify({
presets: {
default: {
'exif:exif': '*'

View File

@ -19,7 +19,7 @@ import { LoginPage } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { AnalyticsPage } from '../pages/adf/process-services/analyticsPage';
import { ProcessServicesPage } from '../pages/adf/process-services/processServicesPage';
import { AppNavigationBarPage } from '../pages/adf/process-services/appNavigationBarPage';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/processServiceTabBarPage';
import TestConfig = require('../test.config');
import { Tenant } from '../models/APS/tenant';
import { User } from '../models/APS/user';
@ -30,7 +30,7 @@ describe('Analytics Smoke Test', () => {
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage();
const appNavigationBarPage = new AppNavigationBarPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const analyticsPage = new AnalyticsPage();
const processServicesPage = new ProcessServicesPage();
let tenantId;
@ -65,7 +65,7 @@ describe('Analytics Smoke Test', () => {
navigationBarPage.navigateToProcessServicesPage();
processServicesPage.checkApsContainer();
processServicesPage.goToApp('Task App');
appNavigationBarPage.clickReportsButton();
processServiceTabBarPage.clickReportsButton();
analyticsPage.checkNoReportMessage();
analyticsPage.getReport('Process definition heat map');
analyticsPage.changeReportTitle(reportTitle);

View File

@ -52,6 +52,12 @@ export class NavigationBarPage {
settingsButton = element(by.css('a[data-automation-id="Settings"]'));
peopleGroupCloudButton = element(by.css('button[data-automation-id="People/Group Cloud"]'));
aboutButton = element(by.css('a[data-automation-id="About"]'));
tagButton = element.all(by.css('a[data-automation-id="Tag"]'));
clickTagButton() {
BrowserVisibility.waitUntilElementIsVisible(this.tagButton);
this.tagButton.click();
}
navigateToDatatable() {
BrowserVisibility.waitUntilElementIsVisible(this.dataTableButton);

View File

@ -18,10 +18,9 @@
import { BrowserVisibility } from '@alfresco/adf-testing';
import { element, by, browser } from 'protractor';
export class AppNavigationBarPage {
export class ProcessServiceTabBarPage {
tasksButton = element.all(by.cssContainingText('div[class*="mat-tab-label"] .mat-tab-labels div', 'Tasks')).first();
tagButton = element.all(by.css('[data-automation-id="Tag"]'));
processButton = element.all(by.cssContainingText('div[class*="mat-tab-label"] .mat-tab-labels div', 'Process')).first();
reportsButton = element.all(by.cssContainingText('div[class*="mat-tab-label"] .mat-tab-labels div', 'Reports')).first();
settingsButton = element.all(by.cssContainingText('div[class*="mat-tab-label"] .mat-tab-labels div', 'Settings')).first();
@ -30,21 +29,17 @@ export class AppNavigationBarPage {
clickTasksButton() {
BrowserVisibility.waitUntilElementIsVisible(this.tasksButton);
this.tasksButton.click();
return browser.sleep(400);
return browser.sleep(600);
}
clickProcessButton() {
this.processButton.click();
return browser.sleep(400);
}
clickTagButton() {
return this.tagButton.click();
return browser.sleep(600);
}
clickSettingsButton() {
this.settingsButton.click();
return browser.sleep(400);
return browser.sleep(600);
}
clickReportsButton() {

View File

@ -15,7 +15,7 @@
* limitations under the License.
*/
import { AppNavigationBarPage } from './appNavigationBarPage';
import { ProcessServiceTabBarPage } from './processServiceTabBarPage';
import { element, by } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
@ -35,13 +35,13 @@ export class ProcessServicesPage {
const app = element(by.css('mat-card[title="' + applicationName + '"]'));
BrowserVisibility.waitUntilElementIsVisible(app);
app.click();
return new AppNavigationBarPage();
return new ProcessServiceTabBarPage();
}
goToTaskApp() {
BrowserVisibility.waitUntilElementIsVisible(this.taskApp);
this.taskApp.click();
return new AppNavigationBarPage();
return new ProcessServiceTabBarPage();
}
getAppIconType(applicationName) {

View File

@ -17,13 +17,14 @@
import TestConfig = require('../test.config');
import { TasksService, QueryService, ProcessDefinitionsService, ProcessInstancesService,
LoginSSOPage, ApiService, SettingsPage } from '@alfresco/adf-testing';
import {
TasksService, QueryService, ProcessDefinitionsService, ProcessInstancesService,
LoginSSOPage, ApiService, SettingsPage
} from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { ProcessCloudDemoPage } from '../pages/adf/demo-shell/process-services/processCloudDemoPage';
import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasksCloudDemoPage';
import { AppListCloudPage } from '@alfresco/adf-testing';
import { ConfigEditorPage } from '../pages/adf/configEditorPage';
import { AppListCloudPage, LocalStorageUtil } from '@alfresco/adf-testing';
import resources = require('../util/resources');
import { browser, protractor } from 'protractor';
@ -31,7 +32,6 @@ import { browser, protractor } from 'protractor';
describe('Process list cloud', () => {
describe('Process List', () => {
const configEditorPage = new ConfigEditorPage();
const settingsPage = new SettingsPage();
const loginSSOPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
@ -52,32 +52,27 @@ describe('Process list cloud', () => {
loginSSOPage.clickOnSSOButton();
loginSSOPage.loginSSOIdentityService(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
navigationBarPage.clickConfigEditorButton();
configEditorPage.clickEditProcessCloudConfiguration();
configEditorPage.clickClearButton();
configEditorPage.enterBigConfigurationText(`{
"filterProperties": [
"appName",
"status",
"processInstanceId",
"order",
"sort",
"order"
await LocalStorageUtil.setConfigField('adf-edit-process-filter', JSON.stringify({
'filterProperties': [
'appName',
'status',
'processInstanceId',
'order',
'sort',
'order'
],
"sortProperties": [
"id",
"name",
"status",
"startDate"
'sortProperties': [
'id',
'name',
'status',
'startDate'
],
"actions": [
"save",
"saveAs",
"delete"
'actions': [
'save',
'saveAs',
'delete'
]
}`);
configEditorPage.clickSaveButton();
}));
const apiService = new ApiService('activiti', TestConfig.adf.hostBPM, TestConfig.adf.hostSso, 'BPM');
await apiService.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
@ -101,7 +96,7 @@ describe('Process list cloud', () => {
done();
});
beforeEach(async(done) => {
beforeEach(async (done) => {
navigationBarPage.navigateToProcessServicesCloudPage();
appListCloudComponent.checkApsContainer();
appListCloudComponent.goToApp(candidateuserapp);

View File

@ -21,13 +21,13 @@ import {
ProcessInstancesService,
LoginSSOPage,
ApiService,
SettingsPage
SettingsPage,
LocalStorageUtil
} from '@alfresco/adf-testing';
import { ProcessCloudDemoPage } from '../pages/adf/demo-shell/process-services/processCloudDemoPage';
import { AppListCloudPage } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { ConfigEditorPage } from '../pages/adf/configEditorPage';
import { ProcessListCloudConfiguration } from './processListCloud.config';
import resources = require('../util/resources');
@ -38,7 +38,6 @@ describe('Process list cloud', () => {
const settingsPage = new SettingsPage();
const loginSSOPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const configEditor = new ConfigEditorPage();
const appListCloudComponent = new AppListCloudPage();
const processCloudDemoPage = new ProcessCloudDemoPage();
@ -67,11 +66,8 @@ describe('Process list cloud', () => {
beforeEach(async (done) => {
const processListCloudConfiguration = new ProcessListCloudConfiguration();
jsonFile = processListCloudConfiguration.getConfiguration();
done();
navigationBarPage.clickConfigEditorButton();
configEditor.clickProcessListCloudConfiguration();
configEditor.clickClearButton();
configEditor.enterBigConfigurationText(JSON.stringify(jsonFile)).clickSaveButton();
await LocalStorageUtil.setConfigField('adf-cloud-process-list', JSON.stringify(jsonFile));
navigationBarPage.navigateToProcessServicesCloudPage();
appListCloudComponent.checkApsContainer();

View File

@ -51,6 +51,7 @@ describe('Start Process', () => {
afterEach((done) => {
navigationBarPage.navigateToProcessServicesCloudPage();
appListCloudComponent.checkApsContainer();
done();
});

View File

@ -20,22 +20,19 @@ import TestConfig = require('../test.config');
import { StringUtil, TasksService,
ProcessDefinitionsService, ProcessInstancesService,
LoginSSOPage, ApiService,
SettingsPage, AppListCloudPage } from '@alfresco/adf-testing';
SettingsPage, AppListCloudPage, LocalStorageUtil } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasksCloudDemoPage';
import { ConfigEditorPage } from '../pages/adf/configEditorPage';
import { TaskListCloudConfiguration } from './taskListCloud.config';
import moment = require('moment');
import { DateUtil } from '../util/dateUtil';
import { NotificationPage } from '../pages/adf/notificationPage';
import resources = require('../util/resources');
describe('Edit task filters and task list properties', () => {
describe('Edit task filters and task list properties', () => {
const configEditorPage = new ConfigEditorPage();
const settingsPage = new SettingsPage();
const loginSSOPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
@ -46,7 +43,6 @@ describe('Edit task filters and task list properties', () => {
let tasksService: TasksService;
let processDefinitionService: ProcessDefinitionsService;
let processInstancesService: ProcessInstancesService;
const notificationPage = new NotificationPage();
const simpleApp = resources.ACTIVITI7_APPS.SIMPLE_APP.name;
const candidateUserApp = resources.ACTIVITI7_APPS.CANDIDATE_USER_APP.name;
@ -66,48 +62,36 @@ describe('Edit task filters and task list properties', () => {
loginSSOPage.clickOnSSOButton();
loginSSOPage.loginSSOIdentityService(user, password);
navigationBarPage.clickConfigEditorButton();
configEditorPage.clickTaskListCloudConfiguration();
configEditorPage.clickClearButton();
configEditorPage.enterBigConfigurationText(JSON.stringify(jsonFile)).clickSaveButton();
notificationPage.checkNotificationSnackBarIsDisplayedWithMessage('Save');
notificationPage.checkNotificationSnackBarIsNotDisplayed();
configEditorPage.clickEditTaskConfiguration();
configEditorPage.clickClearButton();
configEditorPage.enterBigConfigurationText(`{
"filterProperties": [
"appName",
"status",
"assignee",
"taskName",
"parentTaskId",
"priority",
"standAlone",
"owner",
"processDefinitionId",
"processInstanceId",
"lastModified",
"sort",
"order"
],
"sortProperties": [
"id",
"name",
"createdDate",
"priority",
"processDefinitionId"
],
"actions": [
"save",
"saveAs",
"delete"
]
}`);
configEditorPage.clickSaveButton();
await LocalStorageUtil.setConfigField('adf-cloud-task-list', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('adf-edit-task-filter', JSON.stringify({
'filterProperties': [
'appName',
'status',
'assignee',
'taskName',
'parentTaskId',
'priority',
'standAlone',
'owner',
'processDefinitionId',
'processInstanceId',
'lastModified',
'sort',
'order'
],
'sortProperties': [
'id',
'name',
'createdDate',
'priority',
'processDefinitionId'
],
'actions': [
'save',
'saveAs',
'delete'
]
}));
const apiService = new ApiService('activiti', TestConfig.adf.hostBPM, TestConfig.adf.hostSso, 'BPM');
await apiService.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);

View File

@ -19,7 +19,7 @@ import { browser } from 'protractor';
import { LoginPage } from '@alfresco/adf-testing';
import { ProcessFiltersPage } from '../pages/adf/process-services/processFiltersPage';
import { AppNavigationBarPage } from '../pages/adf/process-services/appNavigationBarPage';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/processServiceTabBarPage';
import { AppSettingsToggles } from '../pages/adf/process-services/dialog/appSettingsToggles';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
@ -32,7 +32,7 @@ describe('New Process Filters', () => {
const loginPage = new LoginPage();
const processFiltersPage = new ProcessFiltersPage();
const appNavigationBarPage = new AppNavigationBarPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const appSettingsToggles = new AppSettingsToggles();
const navigationBarPage = new NavigationBarPage();
@ -128,9 +128,9 @@ describe('New Process Filters', () => {
processFiltersPage.checkFilterIsDisplayed(processFilter.new_icon);
appNavigationBarPage.clickSettingsButton();
processServiceTabBarPage.clickSettingsButton();
appSettingsToggles.enableProcessFiltersIcon();
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.checkFilterIsDisplayed(processFilter.new_icon);
expect(processFiltersPage.getFilterIcon(processFilter.new_icon)).toEqual('cloud');
@ -189,9 +189,9 @@ describe('New Process Filters', () => {
processFiltersPage.checkFilterIsDisplayed(processFilter.edit_icon);
appNavigationBarPage.clickSettingsButton();
processServiceTabBarPage.clickSettingsButton();
appSettingsToggles.enableProcessFiltersIcon();
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.checkFilterIsDisplayed(processFilter.edit_icon);
expect(processFiltersPage.getFilterIcon(processFilter.edit_icon)).toEqual('cloud');
@ -202,9 +202,9 @@ describe('New Process Filters', () => {
navigationBarPage.navigateToProcessServicesPage().goToTaskApp().clickProcessButton();
processFiltersPage.checkFilterHasNoIcon(processFilter.all);
appNavigationBarPage.clickSettingsButton();
processServiceTabBarPage.clickSettingsButton();
appSettingsToggles.enableProcessFiltersIcon();
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.checkFilterIsDisplayed(processFilter.all);
expect(processFiltersPage.getFilterIcon(processFilter.all)).toEqual('dashboard');

View File

@ -17,7 +17,7 @@
import { LoginPage } from '@alfresco/adf-testing';
import { ProcessFiltersPage } from '../pages/adf/process-services/processFiltersPage';
import { AppNavigationBarPage } from '../pages/adf/process-services/appNavigationBarPage';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/processServiceTabBarPage';
import { DynamicTableWidget } from '../pages/adf/process-services/widgets/dynamicTableWidget';
import { DropdownWidget } from '../pages/adf/process-services/widgets/dropdownWidget';
import { DatePickerPage } from '../pages/adf/material/datePickerPage';
@ -34,7 +34,7 @@ describe('Dynamic Table', () => {
const loginPage = new LoginPage();
const processFiltersPage = new ProcessFiltersPage();
const appNavigationBarPage = new AppNavigationBarPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const dynamicTable = new DynamicTableWidget();
const datePicker = new DatePickerPage();
const navigationBarPage = new NavigationBarPage();
@ -99,7 +99,7 @@ describe('Dynamic Table', () => {
beforeEach(() => {
navigationBarPage.navigateToProcessServicesPage().goToTaskApp().clickProcessButton();
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
@ -154,7 +154,7 @@ describe('Dynamic Table', () => {
beforeEach(() => {
navigationBarPage.navigateToProcessServicesPage().goToApp(app.title).clickProcessButton();
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();

View File

@ -62,11 +62,11 @@ describe('Empty Process List Test', () => {
await apps.importPublishDeployApp(this.alfrescoJsApi, appA.file_location);
await apps.importPublishDeployApp(this.alfrescoJsApi, appB.file_location);
await loginPage.loginToProcessServicesUsingUserModel(user);
done();
});
it('[C260494] Should add process to list when a process is created', () => {
loginPage.loginToProcessServicesUsingUserModel(user);
navigationBarPage.navigateToProcessServicesPage();
processServicesPage.checkApsContainer();
processServicesPage.goToApp(appA.title).clickProcessButton();

View File

@ -21,7 +21,7 @@ import { Widget } from '../pages/adf/process-services/widgets/widget';
import { StartProcessPage } from '../pages/adf/process-services/startProcessPage';
import { ProcessDetailsPage } from '../pages/adf/process-services/processDetailsPage';
import { TaskDetailsPage } from '../pages/adf/process-services/taskDetailsPage';
import { AppNavigationBarPage } from '../pages/adf/process-services/appNavigationBarPage';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/processServiceTabBarPage';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import TestConfig = require('../test.config');
@ -44,7 +44,7 @@ describe('Form widgets - People', () => {
const startProcess = new StartProcessPage();
const processDetailsPage = new ProcessDetailsPage();
const taskDetails = new TaskDetailsPage();
const appNavigationBar = new AppNavigationBarPage();
const appNavigationBar = new ProcessServiceTabBarPage();
beforeAll(async (done) => {
const users = new UsersActions();

View File

@ -23,7 +23,7 @@ import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { ProcessServicesPage } from '../pages/adf/process-services/processServicesPage';
import { StartProcessPage } from '../pages/adf/process-services/startProcessPage';
import { ProcessFiltersPage } from '../pages/adf/process-services/processFiltersPage';
import { AppNavigationBarPage } from '../pages/adf/process-services/appNavigationBarPage';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/processServiceTabBarPage';
import { ProcessDetailsPage } from '../pages/adf/process-services/processDetailsPage';
import { ProcessListPage } from '../pages/adf/process-services/processListPage';
@ -41,7 +41,7 @@ describe('Process Filters Test', () => {
const processServicesPage = new ProcessServicesPage();
const startProcessPage = new StartProcessPage();
const processFiltersPage = new ProcessFiltersPage();
const appNavigationBarPage = new AppNavigationBarPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const processDetailsPage = new ProcessDetailsPage();
let appModel;
@ -83,7 +83,7 @@ describe('Process Filters Test', () => {
navigationBarPage.navigateToProcessServicesPage();
processServicesPage.checkApsContainer();
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processListPage.checkProcessListIsDisplayed();
});
@ -100,7 +100,7 @@ describe('Process Filters Test', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();

View File

@ -24,7 +24,7 @@ import resources = require('../util/resources');
import { AppsActions } from '../actions/APS/apps.actions';
import { LoginPage } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { AppNavigationBarPage } from '../pages/adf/process-services/appNavigationBarPage';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/processServiceTabBarPage';
import { ProcessListPage } from '../pages/adf/process-services/processListPage';
import { ProcessDetailsPage } from '../pages/adf/process-services/processDetailsPage';
import dateFormat = require('dateformat');
@ -34,7 +34,7 @@ describe('Process Instance Details', () => {
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const appNavigationBarPage = new AppNavigationBarPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const processListPage = new ProcessListPage();
const processDetailsPage = new ProcessDetailsPage();
@ -65,7 +65,7 @@ describe('Process Instance Details', () => {
navigationBarPage.navigateToProcessServicesPage();
processServicesPage.checkApsContainer();
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processListPage.checkProcessListIsDisplayed();
process = await this.alfrescoJsApi.activiti.processApi.getProcessInstance(processModel.id);

View File

@ -24,7 +24,7 @@ import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { ProcessServicesPage } from '../pages/adf/process-services/processServicesPage';
import { StartProcessPage } from '../pages/adf/process-services/startProcessPage';
import { ProcessFiltersPage } from '../pages/adf/process-services/processFiltersPage';
import { AppNavigationBarPage } from '../pages/adf/process-services/appNavigationBarPage';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/processServiceTabBarPage';
import { ProcessDetailsPage } from '../pages/adf/process-services/processDetailsPage';
import { AttachmentListPage } from '../pages/adf/process-services/attachmentListPage';
import { AppsActions } from '../actions/APS/apps.actions';
@ -47,7 +47,7 @@ describe('Start Process Component', () => {
const processServicesPage = new ProcessServicesPage();
const startProcessPage = new StartProcessPage();
const processFiltersPage = new ProcessFiltersPage();
const appNavigationBarPage = new AppNavigationBarPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const processDetailsPage = new ProcessDetailsPage();
const attachmentListPage = new AttachmentListPage();
const apps = new AppsActions();
@ -120,7 +120,7 @@ describe('Start Process Component', () => {
it('[C260458] Should NOT be able to start a process without process model', () => {
processServicesPage.goToApp('Task App');
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.checkNoProcessMessage();
@ -137,7 +137,7 @@ describe('Start Process Component', () => {
it('[C260441] Should display start process form and default name when creating a new process', () => {
processServicesPage.goToApp('Task App');
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
expect(startProcessPage.getDefaultName()).toEqual('My Default Name');
@ -145,7 +145,7 @@ describe('Start Process Component', () => {
it('[C260445] Should require process definition and be possible to click cancel button', () => {
processServicesPage.goToApp('Task App');
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.enterProcessName('');
@ -158,7 +158,7 @@ describe('Start Process Component', () => {
it('[C260444] Should require process name', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
@ -174,7 +174,7 @@ describe('Start Process Component', () => {
it('[C260443] Should be possible to start a process without start event', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
@ -190,7 +190,7 @@ describe('Start Process Component', () => {
it('[C260449] Should be possible to start a process with start event', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.enterProcessName('Test');
@ -215,7 +215,7 @@ describe('Start Process Component', () => {
it('[C286503] Should NOT display any process definition when typing a non-existent one', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.typeProcessDefinition('nonexistent');
@ -225,7 +225,7 @@ describe('Start Process Component', () => {
it('[C286504] Should display proper options when typing a part of existent process definitions', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.typeProcessDefinition('process');
@ -237,7 +237,7 @@ describe('Start Process Component', () => {
it('[C286508] Should display only one option when typing an existent process definition', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.typeProcessDefinition(processModelWithoutSe);
@ -249,7 +249,7 @@ describe('Start Process Component', () => {
it('[C286509] Should select automatically the processDefinition when the app contains only one', () => {
processServicesPage.goToApp(simpleApp.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
expect(startProcessPage.getProcessDefinitionValue()).toBe(simpleApp.title);
@ -258,7 +258,7 @@ describe('Start Process Component', () => {
it('[C286511] Should be able to type the process definition and start a process', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.enterProcessName('Type');
@ -273,7 +273,7 @@ describe('Start Process Component', () => {
it('[C286513] Should be able to use down arrow key when navigating throw suggestions', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.typeProcessDefinition('process');
@ -284,7 +284,7 @@ describe('Start Process Component', () => {
it('[C286514] Should the process definition input be cleared when clicking on options drop down ', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.typeProcessDefinition('process');
@ -297,7 +297,7 @@ describe('Start Process Component', () => {
it('[C260453] Should be possible to add a comment on an active process', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.enterProcessName('Comment Process');
@ -311,7 +311,7 @@ describe('Start Process Component', () => {
it('[C260454] Should be possible to download audit log file', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.enterProcessName('Audit Log');
@ -327,7 +327,7 @@ describe('Start Process Component', () => {
it('Should be able to attach a file using the button', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
@ -346,7 +346,7 @@ describe('Start Process Component', () => {
it('[C260451] Should be possible to display process diagram', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
@ -363,7 +363,7 @@ describe('Start Process Component', () => {
it('[C260452] Should redirect user when clicking on active/completed task', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.enterProcessName('Active Task');
@ -380,7 +380,7 @@ describe('Start Process Component', () => {
navigationBarPage.navigateToProcessServicesPage();
processServicesPage.checkApsContainer();
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.enterProcessName('Cancel Process');
@ -396,7 +396,7 @@ describe('Start Process Component', () => {
it('[C260461] Should be possible to add a comment on a completed/canceled process', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.enterProcessName('Comment Process 2');
@ -413,7 +413,7 @@ describe('Start Process Component', () => {
it('[C260467] Should NOT be possible to attach a file on a completed process', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();
startProcessPage.enterProcessName('File');
@ -430,7 +430,7 @@ describe('Start Process Component', () => {
it('[C291781] Should be displayed an error message if process name exceed 255 characters', () => {
processServicesPage.goToApp(app.title);
appNavigationBarPage.clickProcessButton();
processServiceTabBarPage.clickProcessButton();
processFiltersPage.clickCreateProcessButton();
processFiltersPage.clickNewProcessDropdown();

View File

@ -20,7 +20,7 @@ import { by } from 'protractor';
import { LoginPage } from '@alfresco/adf-testing';
import { TasksPage } from '../pages/adf/process-services/tasksPage';
import { AttachmentListPage } from '../pages/adf/process-services/attachmentListPage';
import { AppNavigationBarPage } from '../pages/adf/process-services/appNavigationBarPage';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/processServiceTabBarPage';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { Tenant } from '../models/APS/tenant';
@ -41,7 +41,7 @@ describe('Start Task - Custom App', () => {
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage();
const attachmentListPage = new AttachmentListPage();
const appNavigationBarPage = new AppNavigationBarPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
let processUserModel, assigneeUserModel;
const app = resources.Files.SIMPLE_APP_WITH_USER_FORM;
@ -270,15 +270,15 @@ describe('Start Task - Custom App', () => {
taskPage.createNewTask().addName(showHeaderTask).clickStartButton();
taskPage.tasksListPage().checkContentIsDisplayed(showHeaderTask);
appNavigationBarPage.clickSettingsButton();
processServiceTabBarPage.clickSettingsButton();
taskPage.taskDetails().appSettingsToggles().disableShowHeader();
appNavigationBarPage.clickTasksButton();
processServiceTabBarPage.clickTasksButton();
taskPage.taskDetails().taskInfoDrawerIsNotDisplayed();
appNavigationBarPage.clickSettingsButton();
processServiceTabBarPage.clickSettingsButton();
taskPage.taskDetails().appSettingsToggles().enableShowHeader();
appNavigationBarPage.clickTasksButton();
processServiceTabBarPage.clickTasksButton();
taskPage.taskDetails().taskInfoDrawerIsDisplayed();
});

View File

@ -20,7 +20,7 @@ import { by } from 'protractor';
import { LoginPage } from '@alfresco/adf-testing';
import { TasksPage } from '../pages/adf/process-services/tasksPage';
import { AttachmentListPage } from '../pages/adf/process-services/attachmentListPage';
import { AppNavigationBarPage } from '../pages/adf/process-services/appNavigationBarPage';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/processServiceTabBarPage';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import CONSTANTS = require('../util/constants');
@ -41,7 +41,7 @@ describe('Start Task - Task App', () => {
const loginPage = new LoginPage();
const attachmentListPage = new AttachmentListPage();
const appNavigationBarPage = new AppNavigationBarPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const navigationBarPage = new NavigationBarPage();
let processUserModel, assigneeUserModel;
@ -171,15 +171,15 @@ describe('Start Task - Task App', () => {
taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
taskPage.tasksListPage().checkContentIsDisplayed(showHeaderTask);
appNavigationBarPage.clickSettingsButton();
processServiceTabBarPage.clickSettingsButton();
taskPage.taskDetails().appSettingsToggles().disableShowHeader();
appNavigationBarPage.clickTasksButton();
processServiceTabBarPage.clickTasksButton();
taskPage.taskDetails().taskInfoDrawerIsNotDisplayed();
appNavigationBarPage.clickSettingsButton();
processServiceTabBarPage.clickSettingsButton();
taskPage.taskDetails().appSettingsToggles().enableShowHeader();
appNavigationBarPage.clickTasksButton();
processServiceTabBarPage.clickTasksButton();
taskPage.taskDetails().taskInfoDrawerIsDisplayed();
});

View File

@ -24,7 +24,7 @@ import { ProcessServicesPage } from '../pages/adf/process-services/processServic
import { TasksPage } from '../pages/adf/process-services/tasksPage';
import { TasksListPage } from '../pages/adf/process-services/tasksListPage';
import { TaskDetailsPage } from '../pages/adf/process-services/taskDetailsPage';
import { AppNavigationBarPage } from '../pages/adf/process-services/appNavigationBarPage';
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/processServiceTabBarPage';
import { AppSettingsToggles } from '../pages/adf/process-services/dialog/appSettingsToggles';
import { TaskFiltersDemoPage } from '../pages/adf/demo-shell/process-services/taskFiltersDemoPage';
@ -204,7 +204,7 @@ describe('Task', () => {
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage();
const processServicesPage = new ProcessServicesPage();
const appNavigationBarPage = new AppNavigationBarPage();
const processServiceTabBarPage = new ProcessServiceTabBarPage();
const appSettingsToggles = new AppSettingsToggles();
const taskFiltersDemoPage = new TaskFiltersDemoPage();
@ -290,10 +290,10 @@ describe('Task', () => {
});
browser.refresh();
appNavigationBarPage.clickSettingsButton();
processServiceTabBarPage.clickSettingsButton();
browser.sleep(500);
appSettingsToggles.enableTaskFiltersIcon();
appNavigationBarPage.clickTasksButton();
processServiceTabBarPage.clickTasksButton();
taskFiltersDemoPage.customTaskFilter('New Task Filter with icon').checkTaskFilterIsDisplayed();
expect(taskFiltersDemoPage.customTaskFilter('New Task Filter with icon').getTaskFilterIcon()).toEqual('cloud');
@ -307,9 +307,9 @@ describe('Task', () => {
it('[C286449] Should display task filter icons only when showIcon property is set on true', () => {
taskFiltersDemoPage.myTasksFilter().checkTaskFilterHasNoIcon();
appNavigationBarPage.clickSettingsButton();
processServiceTabBarPage.clickSettingsButton();
appSettingsToggles.enableTaskFiltersIcon();
appNavigationBarPage.clickTasksButton();
processServiceTabBarPage.clickTasksButton();
taskFiltersDemoPage.myTasksFilter().checkTaskFilterIsDisplayed();
expect(taskFiltersDemoPage.myTasksFilter().getTaskFilterIcon()).toEqual('inbox');
@ -384,12 +384,12 @@ describe('Task', () => {
});
browser.refresh();
appNavigationBarPage.clickSettingsButton();
processServiceTabBarPage.clickSettingsButton();
browser.sleep(500);
appSettingsToggles.enableTaskFiltersIcon();
appNavigationBarPage.clickTasksButton();
processServiceTabBarPage.clickTasksButton();
taskFiltersDemoPage.customTaskFilter('Task Filter Edited icon').checkTaskFilterIsDisplayed();
expect(taskFiltersDemoPage.customTaskFilter('Task Filter Edited icon').getTaskFilterIcon()).toEqual('cloud');

View File

@ -30,8 +30,7 @@ import { SearchConfiguration } from '../search.config';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UploadActions } from '../../actions/ACS/upload.actions';
import { browser } from 'protractor';
import { StringUtil } from '@alfresco/adf-testing';
import { setConfigField } from '../../proxy';
import { StringUtil, LocalStorageUtil } from '@alfresco/adf-testing';
describe('Search Checklist Component', () => {
@ -154,7 +153,7 @@ describe('Search Checklist Component', () => {
});
}
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
browser.sleep(2000);
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
@ -191,7 +190,7 @@ describe('Search Checklist Component', () => {
});
}
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
@ -203,7 +202,7 @@ describe('Search Checklist Component', () => {
navigationBarPage.clickContentServicesButton();
jsonFile.categories[1].component.settings.pageSize = 11;
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
@ -216,7 +215,7 @@ describe('Search Checklist Component', () => {
jsonFile.categories[1].component.settings.pageSize = 9;
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
@ -238,7 +237,7 @@ describe('Search Checklist Component', () => {
});
}
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
@ -259,7 +258,7 @@ describe('Search Checklist Component', () => {
delete jsonFile.categories[1].component.settings.pageSize;
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
@ -299,7 +298,7 @@ describe('Search Checklist Component', () => {
jsonFile.categories[1].component.settings.operator = 'AND';
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
@ -324,7 +323,7 @@ describe('Search Checklist Component', () => {
'value': "TYPE:'cm:auditable'"
});
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();

View File

@ -15,7 +15,7 @@
* limitations under the License.
*/
import { LoginPage } from '@alfresco/adf-testing';
import { LoginPage, LocalStorageUtil } from '@alfresco/adf-testing';
import { SearchDialog } from '../../pages/adf/dialog/searchDialog';
import { DataTableComponentPage } from '@alfresco/adf-testing';
import { SearchResultsPage } from '../../pages/adf/searchResultsPage';
@ -29,7 +29,6 @@ import TestConfig = require('../../test.config');
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { browser } from 'protractor';
import { DateUtil } from '../../util/dateUtil';
import { setConfigField } from '../../proxy';
describe('Search Date Range Filter', () => {
@ -201,7 +200,7 @@ describe('Search Date Range Filter', () => {
jsonFile.categories[4].component.settings.dateFormat = 'MM-DD-YY';
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().enterTextAndPressEnter('*');
searchFilters.checkCreatedRangeFilterIsDisplayed()

View File

@ -15,7 +15,7 @@
* limitations under the License.
*/
import { LoginPage } from '@alfresco/adf-testing';
import { LoginPage, LocalStorageUtil } from '@alfresco/adf-testing';
import { SearchDialog } from '../../pages/adf/dialog/searchDialog';
import { DataTableComponentPage } from '@alfresco/adf-testing';
import { SearchResultsPage } from '../../pages/adf/searchResultsPage';
@ -32,7 +32,6 @@ import { browser } from 'protractor';
import resources = require('../../util/resources');
import { SearchConfiguration } from '../search.config';
import { DateUtil } from '../../util/dateUtil';
import { setConfigField } from '../../proxy';
describe('Search Number Range Filter', () => {
@ -397,12 +396,12 @@ describe('Search Number Range Filter', () => {
jsonFile = searchConfiguration.getConfiguration();
});
it('[C276928] Should be able to change the field property for number range', async() => {
it('[C276928] Should be able to change the field property for number range', async () => {
navigationBar.clickContentServicesButton();
jsonFile.categories[3].component.settings.field = 'cm:created';
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
@ -439,12 +438,12 @@ describe('Search Number Range Filter', () => {
});
it('[C277139] Should be able to set To field to be exclusive', async() => {
it('[C277139] Should be able to set To field to be exclusive', async () => {
navigationBar.clickContentServicesButton();
jsonFile.categories[3].component.settings.format = '[{FROM} TO {TO}>';
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
@ -475,12 +474,12 @@ describe('Search Number Range Filter', () => {
searchResults.checkContentIsDisplayed(file2BytesModel.name);
});
it('[C277140] Should be able to set From field to be exclusive', async() => {
it('[C277140] Should be able to set From field to be exclusive', async () => {
navigationBar.clickContentServicesButton();
jsonFile.categories[3].component.settings.format = '<{FROM} TO {TO}]';
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()

View File

@ -30,8 +30,7 @@ import { SearchConfiguration } from '../search.config';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UploadActions } from '../../actions/ACS/upload.actions';
import { browser } from 'protractor';
import { StringUtil } from '@alfresco/adf-testing';
import { setConfigField } from '../../proxy';
import { StringUtil, LocalStorageUtil } from '@alfresco/adf-testing';
describe('Search Radio Component', () => {
@ -73,7 +72,10 @@ describe('Search Radio Component', () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
createdFolder = await this.alfrescoJsApi.nodes.addNode('-my-', {name: nodeNames.folder, nodeType: 'cm:folder'});
createdFolder = await this.alfrescoJsApi.nodes.addNode('-my-', {
name: nodeNames.folder,
nodeType: 'cm:folder'
});
createdFile = await this.alfrescoJsApi.nodes.addNode('-my-', {
name: nodeNames.document,
nodeType: 'cm:content'
@ -140,7 +142,7 @@ describe('Search Radio Component', () => {
jsonFile = searchConfiguration.getConfiguration();
});
it('[C277147] Should be able to customise the pageSize value', async() => {
it('[C277147] Should be able to customise the pageSize value', async () => {
navigationBarPage.clickContentServicesButton();
jsonFile.categories[5].component.settings.pageSize = 10;
@ -152,7 +154,7 @@ describe('Search Radio Component', () => {
});
}
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickTypeFilterHeader();
@ -163,7 +165,7 @@ describe('Search Radio Component', () => {
jsonFile.categories[5].component.settings.pageSize = 11;
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickTypeFilterHeader();
@ -173,7 +175,7 @@ describe('Search Radio Component', () => {
navigationBarPage.clickContentServicesButton();
jsonFile.categories[5].component.settings.pageSize = 9;
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickTypeFilterHeader();
@ -186,7 +188,7 @@ describe('Search Radio Component', () => {
browser.refresh();
});
it('[C277148] Should be able to click show more/less button', async() => {
it('[C277148] Should be able to click show more/less button', async () => {
navigationBarPage.clickContentServicesButton();
jsonFile.categories[5].component.settings.pageSize = 0;
@ -198,7 +200,7 @@ describe('Search Radio Component', () => {
});
}
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickTypeFilterHeader();
@ -225,7 +227,7 @@ describe('Search Radio Component', () => {
navigationBarPage.clickContentServicesButton();
delete jsonFile.categories[5].component.settings.pageSize;
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickTypeFilterHeader();
@ -267,7 +269,7 @@ describe('Search Radio Component', () => {
done();
});
it('[C277033] Should be able to add a new option', async() => {
it('[C277033] Should be able to add a new option', async () => {
navigationBarPage.clickContentServicesButton();
jsonFile.categories[5].component.settings.options.push({
@ -275,7 +277,7 @@ describe('Search Radio Component', () => {
'value': "TYPE:'cm:content'"
});
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickTypeFilterHeader();

View File

@ -15,7 +15,7 @@
* limitations under the License.
*/
import { LoginPage } from '@alfresco/adf-testing';
import { LoginPage, LocalStorageUtil } from '@alfresco/adf-testing';
import { SearchDialog } from '../../pages/adf/dialog/searchDialog';
import { DataTableComponentPage } from '@alfresco/adf-testing';
import { SearchResultsPage } from '../../pages/adf/searchResultsPage';
@ -31,7 +31,6 @@ import { FileModel } from '../../models/ACS/fileModel';
import { browser } from 'protractor';
import resources = require('../../util/resources');
import { SearchConfiguration } from '../search.config';
import { setConfigField } from '../../proxy';
describe('Search Number Range Filter', () => {
@ -163,12 +162,12 @@ describe('Search Number Range Filter', () => {
jsonFile = searchConfiguration.getConfiguration();
});
it('[C276983] Should be able to disable thumb label in Search Size Slider', async() => {
it('[C276983] Should be able to disable thumb label in Search Size Slider', async () => {
navigationBar.clickContentServicesButton();
jsonFile.categories[2].component.settings.thumbLabel = false;
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
@ -181,13 +180,13 @@ describe('Search Number Range Filter', () => {
sizeSliderFilter.checkSliderWithThumbLabelIsNotDisplayed();
});
it('[C276985] Should be able to set min value for Search Size Slider', async() => {
it('[C276985] Should be able to set min value for Search Size Slider', async () => {
navigationBar.clickContentServicesButton();
const minSize = 3;
jsonFile.categories[2].component.settings.min = minSize;
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
@ -202,13 +201,13 @@ describe('Search Number Range Filter', () => {
expect(sizeSliderFilter.getMinValue()).toEqual(`${minSize}`);
});
it('[C276986] Should be able to set max value for Search Size Slider', async() => {
it('[C276986] Should be able to set max value for Search Size Slider', async () => {
navigationBar.clickContentServicesButton();
const maxSize = 50;
jsonFile.categories[2].component.settings.max = maxSize;
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
@ -223,13 +222,13 @@ describe('Search Number Range Filter', () => {
expect(sizeSliderFilter.getMaxValue()).toEqual(`${maxSize}`);
});
it('[C276987] Should be able to set steps for Search Size Slider', async() => {
it('[C276987] Should be able to set steps for Search Size Slider', async () => {
navigationBar.clickContentServicesButton();
const step = 10;
jsonFile.categories[2].component.settings.step = step;
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()

View File

@ -15,7 +15,7 @@
* limitations under the License.
*/
import { LoginPage } from '@alfresco/adf-testing';
import { LoginPage, LocalStorageUtil } from '@alfresco/adf-testing';
import { SearchDialog } from '../../pages/adf/dialog/searchDialog';
import { SearchResultsPage } from '../../pages/adf/searchResultsPage';
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
@ -32,7 +32,6 @@ import { browser } from 'protractor';
import resources = require('../../util/resources');
import { SearchConfiguration } from '../search.config';
import { SearchSortingPickerPage } from '../../pages/adf/content-services/search/components/search-sortingPicker.page';
import { setConfigField } from '../../proxy';
describe('Search Sorting Picker', () => {
@ -111,7 +110,7 @@ describe('Search Sorting Picker', () => {
searchSortingPicker.checkOrderArrowIsDisplayed();
});
it('[C277271] Should be able to add a custom search sorter in the "sort by" option', async() => {
it('[C277271] Should be able to add a custom search sorter in the "sort by" option', async () => {
navigationBar.clickContentServicesButton();
const searchConfiguration = new SearchConfiguration();
jsonFile = searchConfiguration.getConfiguration();
@ -122,7 +121,7 @@ describe('Search Sorting Picker', () => {
'field': 'cm:modifier',
'ascending': true
});
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
@ -134,12 +133,12 @@ describe('Search Sorting Picker', () => {
.checkOptionIsDisplayed('Modifier');
});
it('[C277272] Should be able to exclude a standard search sorter from the sorting option', async() => {
it('[C277272] Should be able to exclude a standard search sorter from the sorting option', async () => {
navigationBar.clickContentServicesButton();
const searchConfiguration = new SearchConfiguration();
jsonFile = searchConfiguration.getConfiguration();
const removedOption = jsonFile.sorting.options.splice(0, 1);
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
@ -151,7 +150,7 @@ describe('Search Sorting Picker', () => {
.checkOptionIsNotDisplayed(removedOption[0].label);
});
it('[C277273] Should be able to set a default order for a search sorting option', async() => {
it('[C277273] Should be able to set a default order for a search sorting option', async () => {
navigationBar.clickContentServicesButton();
const searchConfiguration = new SearchConfiguration();
@ -165,7 +164,7 @@ describe('Search Sorting Picker', () => {
'ascending': true
};
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
@ -218,7 +217,7 @@ describe('Search Sorting Picker', () => {
});
});
it('[C277288] Should be able to sort the search results by "Modified Date" ASC', async() => {
it('[C277288] Should be able to sort the search results by "Modified Date" ASC', async () => {
navigationBar.clickContentServicesButton();
const searchConfiguration = new SearchConfiguration();
@ -230,7 +229,7 @@ describe('Search Sorting Picker', () => {
'field': 'cm:modified',
'ascending': true
});
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
@ -252,7 +251,7 @@ describe('Search Sorting Picker', () => {
});
});
it('[C277301] Should be able to change default sorting option for the search results', async() => {
it('[C277301] Should be able to change default sorting option for the search results', async () => {
navigationBar.clickContentServicesButton();
const searchConfiguration = new SearchConfiguration();
@ -265,7 +264,7 @@ describe('Search Sorting Picker', () => {
'ascending': true
});
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()

View File

@ -24,14 +24,13 @@ import TestConfig = require('../../test.config');
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { LoginPage } from '@alfresco/adf-testing';
import { LoginPage, LocalStorageUtil } from '@alfresco/adf-testing';
import { SearchDialog } from '../../pages/adf/dialog/searchDialog';
import { SearchResultsPage } from '../../pages/adf/searchResultsPage';
import { SearchFiltersPage } from '../../pages/adf/searchFiltersPage';
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
import { SearchConfiguration } from '../search.config';
import { setConfigField } from '../../proxy';
describe('Search component - Text widget', () => {
@ -43,7 +42,7 @@ describe('Search component - Text widget', () => {
const searchResultPage = new SearchResultsPage();
const acsUser = new AcsUserModel();
const newFolderModel = new FolderModel({'name': 'newFolder', 'description': 'newDescription'});
const newFolderModel = new FolderModel({ 'name': 'newFolder', 'description': 'newDescription' });
beforeAll(async (done) => {
@ -91,7 +90,7 @@ describe('Search component - Text widget', () => {
jsonFile = searchConfiguration.getConfiguration();
});
it('[C289330] Should be able to change the Field setting', async() => {
it('[C289330] Should be able to change the Field setting', async () => {
browser.get(TestConfig.adf.url + '/search;q=*');
searchResultPage.tableIsLoaded();
@ -109,7 +108,7 @@ describe('Search component - Text widget', () => {
jsonFile.categories[0].component.settings.field = 'cm:description';
navigationBarPage.clickContentServicesButton();
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().enterTextAndPressEnter('*');
searchResultPage.tableIsLoaded();

View File

@ -29,13 +29,12 @@ import { FolderModel } from '../models/ACS/folderModel';
import TestConfig = require('../test.config');
import { Util } from '../util/util';
import { StringUtil } from '@alfresco/adf-testing';
import { StringUtil, LocalStorageUtil } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UploadActions } from '../actions/ACS/upload.actions';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { SearchConfiguration } from './search.config';
import { setConfigField } from '../proxy';
describe('Search component - Search Bar', () => {
@ -311,7 +310,7 @@ describe('Search component - Search Bar', () => {
beforeAll(async () => {
navigationBar.clickContentServicesButton();
await setConfigField('search', JSON.stringify(searchConfiguration));
await LocalStorageUtil.setConfigField('search', JSON.stringify(searchConfiguration));
searchDialog
.checkSearchIconIsVisible()

View File

@ -24,14 +24,13 @@ import { FileModel } from '../models/ACS/fileModel';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import TestConfig = require('../test.config');
import { StringUtil, DocumentListPage, PaginationPage, LoginPage } from '@alfresco/adf-testing';
import { StringUtil, DocumentListPage, PaginationPage, LoginPage, LocalStorageUtil } from '@alfresco/adf-testing';
import resources = require('../util/resources');
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UploadActions } from '../actions/ACS/upload.actions';
import { browser } from 'protractor';
import { SearchConfiguration } from './search.config';
import { setConfigField } from '../proxy';
describe('Search Filters', () => {
@ -184,11 +183,11 @@ describe('Search Filters', () => {
});
});
it('[C291802] Should be able to filter facet fields with "Contains"', async() => {
it('[C291802] Should be able to filter facet fields with "Contains"', async () => {
navigationBarPage.clickContentServicesButton();
jsonFile['filterWithContains'] = true;
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon()
.enterTextAndPressEnter('*');
@ -208,10 +207,10 @@ describe('Search Filters', () => {
.checkSizeFacetQueryGroupIsDisplayed();
});
it('[C291981] Should group search facets under the default label, by default', async() => {
it('[C291981] Should group search facets under the default label, by default', async () => {
navigationBarPage.clickContentServicesButton();
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon()
.enterTextAndPressEnter('*');
@ -260,12 +259,12 @@ describe('Search Filters', () => {
});
it('[C299124] Should be able to parse escaped empty spaced labels inside facetFields', async() => {
it('[C299124] Should be able to parse escaped empty spaced labels inside facetFields', async () => {
navigationBarPage.clickContentServicesButton();
jsonFile.facetFields.fields[0].label = 'My File Types';
jsonFile.facetFields.fields[1].label = 'My File Sizes';
await setConfigField('search', JSON.stringify(jsonFile));
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon()
.enterTextAndPressEnter('*');

View File

@ -17,12 +17,16 @@
import { Injectable } from '@angular/core';
import { AppConfigService } from '../app-config/app-config.service';
import { AlfrescoApiService } from '../services/alfresco-api.service';
import { StorageService } from './storage.service';
@Injectable({
providedIn: 'root'
})
export class CoreAutomationService {
constructor(private appConfigService: AppConfigService) {
constructor(private appConfigService: AppConfigService,
private alfrescoApiService: AlfrescoApiService,
private storageService: StorageService) {
}
setup() {
@ -32,6 +36,18 @@ export class CoreAutomationService {
this.appConfigService.config[field] = JSON.parse(value);
};
adfProxy.setStorageItem = (key: string, data: string) => {
this.storageService.setItem(key, data);
};
adfProxy.clearStorage = () => {
this.storageService.clear();
};
adfProxy.apiReset = () => {
this.alfrescoApiService.reset();
};
window['adf'] = adfProxy;
}
}

View File

@ -17,7 +17,7 @@
import { by, element } from 'protractor';
import { DocumentListPage } from '../pages/document-list.page';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class ContentNodeSelectorDialogPage {
dialog = element(by.css(`adf-content-node-selector`));

View File

@ -17,7 +17,7 @@
import { by, element, ElementFinder, browser } from 'protractor';
import { DataTableComponentPage } from '../../core/pages/data-table-component.page';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class DocumentListPage {

View File

@ -16,7 +16,7 @@
*/
import { ApiService } from '../api.service';
import { StringUtil } from '../../string.util';
import { StringUtil } from '../../utils/string.util';
export class GroupIdentityService {

View File

@ -15,7 +15,7 @@
* limitations under the License.
*/
import { StringUtil } from '../string.util';
import { StringUtil } from '../utils/string.util';
export class UserModel {

View File

@ -17,7 +17,7 @@
import { browser, by, element, protractor } from 'protractor';
import { ElementFinder, ElementArrayFinder } from 'protractor/built/element';
import { BrowserVisibility } from '../browser-visibility';
import { BrowserVisibility } from '../utils/browser-visibility';
export class DataTableComponentPage {

View File

@ -15,7 +15,7 @@
* limitations under the License.
*/
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../utils/browser-visibility';
import { element, by } from 'protractor';
export class ErrorPage {

View File

@ -16,7 +16,7 @@
*/
import { by } from 'protractor';
import { BrowserVisibility } from '../browser-visibility';
import { BrowserVisibility } from '../utils/browser-visibility';
export class FormControllersPage {

View File

@ -16,7 +16,7 @@
*/
import { element, by, protractor } from 'protractor';
import { BrowserVisibility } from '../browser-visibility';
import { BrowserVisibility } from '../utils/browser-visibility';
export class HeaderPage {

View File

@ -16,7 +16,7 @@
*/
import { element, by, browser, protractor } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../utils/browser-visibility';
export class LoginSSOPage {

View File

@ -17,10 +17,13 @@
import { FormControllersPage } from './form-controller.page';
import { browser, by, element, protractor } from 'protractor';
import { BrowserVisibility } from '../browser-visibility';
import { SettingsPage } from './settings.page';
import { BrowserVisibility } from '../utils/browser-visibility';
import { LocalStorageUtil } from '../utils/local-storage.util';
export class LoginPage {
loginURL = browser.baseUrl + '/login';
formControllersPage = new FormControllersPage();
txtUsername = element(by.css('input[id="username"]'));
txtPassword = element(by.css('input[id="password"]'));
@ -64,7 +67,6 @@ export class LoginPage {
successRouteSwitch = element(by.id('adf-toggle-show-successRoute'));
logoSwitch = element(by.id('adf-toggle-logo'));
header = element(by.id('adf-header'));
settingsPage = new SettingsPage();
settingsIcon = element(
by.cssContainingText(
'a[data-automation-id="settings"] mat-icon',
@ -72,6 +74,13 @@ export class LoginPage {
)
);
goToLoginPage() {
browser.waitForAngularEnabled(true);
browser.driver.get(this.loginURL);
this.waitForElements();
return this;
}
waitForElements() {
BrowserVisibility.waitUntilElementIsVisible(this.txtUsername);
BrowserVisibility.waitUntilElementIsVisible(this.txtPassword);
@ -162,31 +171,31 @@ export class LoginPage {
return this.signInButton.isEnabled();
}
loginToProcessServicesUsingUserModel(userModel) {
this.settingsPage.setProviderBpm();
this.waitForElements();
async loginToProcessServicesUsingUserModel(userModel) {
this.goToLoginPage();
await LocalStorageUtil.clearStorage();
await LocalStorageUtil.setStorageItem('providers', 'BPM');
await LocalStorageUtil.apiReset();
this.login(userModel.email, userModel.password);
}
loginToContentServicesUsingUserModel(userModel) {
this.settingsPage.setProviderEcm();
this.waitForElements();
async loginToContentServicesUsingUserModel(userModel) {
this.goToLoginPage();
await LocalStorageUtil.clearStorage();
await LocalStorageUtil.setStorageItem('providers', 'ECM');
await LocalStorageUtil.apiReset();
this.login(userModel.getId(), userModel.getPassword());
}
loginToContentServices(username, password) {
this.settingsPage.setProviderEcm();
async loginToContentServices(username, password) {
this.goToLoginPage();
await LocalStorageUtil.clearStorage();
await LocalStorageUtil.setStorageItem('providers', 'ECM');
await LocalStorageUtil.apiReset();
this.waitForElements();
this.login(username, password);
}
goToLoginPage() {
browser.waitForAngularEnabled(true);
browser.driver.get(browser.baseUrl + '/login');
this.waitForElements();
}
clickSignInButton() {
BrowserVisibility.waitUntilElementIsVisible(this.signInButton);
this.signInButton.click();

View File

@ -16,7 +16,7 @@
*/
import { browser, by, element, protractor } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../utils/browser-visibility';
export class PaginationPage {

View File

@ -16,7 +16,7 @@
*/
import { browser, by, element, protractor } from 'protractor';
import { BrowserVisibility } from '../browser-visibility';
import { BrowserVisibility } from '../utils/browser-visibility';
export class SettingsPage {

View File

@ -16,7 +16,7 @@
*/
import { element, by, browser, protractor } from 'protractor';
import { BrowserVisibility } from '../browser-visibility';
import { BrowserVisibility } from '../utils/browser-visibility';
import { TabsPage } from '../../material/pages/tabs.page';
export class UserInfoPage {

View File

@ -15,9 +15,8 @@
* limitations under the License.
*/
export * from './browser-visibility';
export * from './actions/public-api';
export * from './pages/public-api';
export * from './models/public-api';
export * from './string.util';
export * from './protractor.util';
export * from './utils/public-api';

View File

@ -0,0 +1,45 @@
/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { browser } from 'protractor';
export class LocalStorageUtil {
static async setConfigField(field: string, value: string) {
await browser.executeScript(
'window.adf.setConfigField(`' + field + '`, `' + value + '`);'
);
}
static async setStorageItem(field: string, value: string) {
await browser.executeScript(
'window.adf.setStorageItem(`' + field + '`, `' + value + '`);'
);
}
static async clearStorage() {
await browser.executeScript(
'window.adf.clearStorage();'
);
}
static async apiReset() {
await browser.executeScript(
`window.adf.apiReset();`
);
}
}

View File

@ -15,14 +15,7 @@
* limitations under the License.
*/
/* tslint:disable */
import { browser } from 'protractor';
export async function setConfigField(field: string, value: string) {
await browser.executeScript(
"window.adf.setConfigField(`" + field + "`, `" + value + "`);"
);
}
export * from './browser-visibility';
export * from './string.util';
export * from './protractor.util';
export * from './local-storage.util';

View File

@ -16,7 +16,7 @@
*/
import { element, by } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class TabsPage {

View File

@ -16,7 +16,7 @@
*/
import { element, by } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class AppListCloudPage {

View File

@ -16,7 +16,7 @@
*/
import { by, element, protractor } from 'protractor';
import { BrowserVisibility } from '../../../core/browser-visibility';
import { BrowserVisibility } from '../../../core/utils/browser-visibility';
export class EditProcessFilterDialogPage {

View File

@ -16,7 +16,7 @@
*/
import { by, element, protractor } from 'protractor';
import { BrowserVisibility } from '../../../core/browser-visibility';
import { BrowserVisibility } from '../../../core/utils/browser-visibility';
export class EditTaskFilterDialogPage {

View File

@ -16,7 +16,7 @@
*/
import { by, element, protractor } from 'protractor';
import { EditProcessFilterDialogPage } from './dialog/edit-process-filter-dialog.page';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class EditProcessFilterCloudComponentPage {

View File

@ -17,7 +17,7 @@
import { by, element, protractor } from 'protractor';
import { EditTaskFilterDialogPage } from './dialog/edit-task-filter-dialog.page';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class EditTaskFilterCloudComponentPage {

View File

@ -16,7 +16,7 @@
*/
import { browser, by, element, protractor } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class GroupCloudComponentPage {

View File

@ -16,7 +16,7 @@
*/
import { browser, by, element, protractor } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class PeopleCloudComponentPage {

View File

@ -16,7 +16,7 @@
*/
import { by } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class ProcessFiltersCloudComponentPage {

View File

@ -16,7 +16,7 @@
*/
import { element, by } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class ProcessHeaderCloudPage {

View File

@ -15,7 +15,7 @@
* limitations under the License.
*/
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
import { DataTableComponentPage } from '../../core/pages/data-table-component.page';
import { element, by } from 'protractor';

View File

@ -16,7 +16,7 @@
*/
import { by, element, Key, protractor, browser } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class StartProcessCloudPage {
@ -95,6 +95,7 @@ export class StartProcessCloudPage {
}
clickStartProcessButton() {
BrowserVisibility.waitUntilElementIsClickable(this.startProcessButton);
return this.startProcessButton.click();
}

View File

@ -16,7 +16,7 @@
*/
import { element, by, Key, protractor } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class StartTasksCloudPage {

View File

@ -16,7 +16,7 @@
*/
import { by } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class TaskFiltersCloudComponentPage {

View File

@ -16,7 +16,7 @@
*/
import { element, by } from 'protractor';
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
export class TaskHeaderCloudPage {

View File

@ -15,7 +15,7 @@
* limitations under the License.
*/
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
import { DataTableComponentPage } from '../../core/pages/data-table-component.page';
import { element, by } from 'protractor';

View File

@ -15,7 +15,7 @@
* limitations under the License.
*/
import { BrowserVisibility } from '../../core/browser-visibility';
import { BrowserVisibility } from '../../core/utils/browser-visibility';
import { by, element } from 'protractor';
export class FormFieldsPage {