mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2026-09-09 18:03:21 +00:00
[ACS-259] refactor login page (#5733)
* refator login page * refator login page * remove obsolete classes and move what is needed in the test pck * fix const * revert modify * remove duplicate browser property * fix build * fix * fix * fix lint * move drop action in testing remove not necessary space js-api centralize content * first refactor use js-api * fix protractor * refactor test config * simplify properties fix namings * ps cloud simplify remove unused js files * id fix * fix search test simplify environment var step 1 * fix lint * first user iteration fix * fix model * unify use of apiService * first step automatic user creation Identity * refactor creation user content-services * refactor creation user search * refactor creation user core * process service refactoring 1 * process service refactoring 1 * process service refactoring 2 * fix process * appconfig * fix process util * fix gallery * fix "this" reference issues * fix incorrect import paths * fix core * some fixes * allign * fix some test remove structure folder and move in actions * fixes * move folders in the right place * fix * fix rebase * solve build issue * fix e2e * change init aae * order api and some fixes * fix possible not valid password * fix some ps test * replace host port also in objects * Update app-config.service.ts * fix process * fix process test * process service cloud fix * fiexs * modify init script * fix two test * remove unused property * host issue * not use npx * fix ps cloud test Co-authored-by: Denys Vuika <denys.vuika@gmail.com>
This commit is contained in:
co-authored by
Denys Vuika
parent
f0df6b3a5f
commit
a78f24ada1
@@ -2,7 +2,7 @@
|
||||
"$schema": "../../lib/core/app-config/schema.json",
|
||||
"ecmHost": "{protocol}//{hostname}{:port}",
|
||||
"bpmHost": "{protocol}//{hostname}{:port}",
|
||||
"identityHost": "{protocol}//{hostname}{:port}/auth/realms/alfresco",
|
||||
"identityHost": "{protocol}//{hostname}{:port}/auth/admin/realms/alfresco",
|
||||
"loginRoute": "login",
|
||||
"providers": "ALL",
|
||||
"contextRootBpm": "activiti-app",
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
/*!
|
||||
* @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.
|
||||
*/
|
||||
|
||||
export class NodeActions {
|
||||
|
||||
lockNode(alfrescoJsApi, nodeId: string, allowOwner?: string) {
|
||||
|
||||
return alfrescoJsApi.nodes.lockNode(nodeId, {
|
||||
type: allowOwner ? 'ALLOW_OWNER_CHANGES' : 'FULL',
|
||||
lifetime: 'PERSISTENT'
|
||||
});
|
||||
}
|
||||
|
||||
async getNodesDisplayed(alfrescoJsApi, idList, numberOfElements) {
|
||||
|
||||
const promises = [];
|
||||
let nodeList;
|
||||
|
||||
for (let i = 0; i < (numberOfElements - 1); i++) {
|
||||
if (idList[i] && idList[i].trim() !== '') {
|
||||
promises.push(alfrescoJsApi.core.nodesApi.getNode(idList[i]));
|
||||
}
|
||||
}
|
||||
nodeList = await Promise.all(promises);
|
||||
return nodeList;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -15,11 +15,19 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ApiService } from '@alfresco/adf-testing';
|
||||
import { AppDefinitionRepresentation, ResultListDataRepresentationAppDefinitionRepresentation } from '@alfresco/js-api';
|
||||
|
||||
export class AppsRuntimeActions {
|
||||
|
||||
async getRuntimeAppByName(alfrescoJsApi, appName) {
|
||||
api: ApiService;
|
||||
|
||||
const runtimeApps = await this.getRuntimeAppDefinitions(alfrescoJsApi);
|
||||
constructor(api: ApiService) {
|
||||
this.api = api;
|
||||
}
|
||||
|
||||
async getRuntimeAppByName(appName: string): Promise<AppDefinitionRepresentation> {
|
||||
const runtimeApps = await this.getRuntimeAppDefinitions();
|
||||
let desiredApp;
|
||||
|
||||
for (let i = 0; i < runtimeApps.data.length; i++) {
|
||||
@@ -31,9 +39,8 @@ export class AppsRuntimeActions {
|
||||
return desiredApp;
|
||||
}
|
||||
|
||||
async getRuntimeAppDefinitions(alfrescoJsApi) {
|
||||
|
||||
return alfrescoJsApi.activiti.appsRuntimeApi.getAppDefinitions();
|
||||
async getRuntimeAppDefinitions(): Promise<ResultListDataRepresentationAppDefinitionRepresentation> {
|
||||
return this.api.getInstance().activiti.appsRuntimeApi.getAppDefinitions();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
/*!
|
||||
* @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 path = require('path');
|
||||
import fs = require('fs');
|
||||
import AppPublish = require('../../models/APS/AppPublish');
|
||||
import remote = require('selenium-webdriver/remote');
|
||||
import { browser } from 'protractor';
|
||||
|
||||
export class AppsActions {
|
||||
|
||||
async getProcessTaskId(alfrescoJsApi, processId) {
|
||||
const taskList = await alfrescoJsApi.activiti.taskApi.listTasks({});
|
||||
let taskId = -1;
|
||||
|
||||
taskList.data.forEach((task) => {
|
||||
if (task.processInstanceId === processId) {
|
||||
taskId = task.id;
|
||||
}
|
||||
});
|
||||
|
||||
return taskId;
|
||||
}
|
||||
|
||||
async getAppDefinitionId(alfrescoJsApi, appModelId) {
|
||||
const appDefinitions = await alfrescoJsApi.activiti.appsApi.getAppDefinitions();
|
||||
let appDefinitionId = -1;
|
||||
|
||||
appDefinitions.data.forEach((appDefinition) => {
|
||||
if (appDefinition.modelId === appModelId) {
|
||||
appDefinitionId = appDefinition.id;
|
||||
}
|
||||
});
|
||||
|
||||
return appDefinitionId;
|
||||
}
|
||||
|
||||
async publishDeployApp(alfrescoJsApi, appId) {
|
||||
browser.setFileDetector(new remote.FileDetector());
|
||||
|
||||
const publishApp = await alfrescoJsApi.activiti.appsApi.publishAppDefinition(appId, new AppPublish());
|
||||
|
||||
await alfrescoJsApi.activiti.appsApi.deployAppDefinitions({ appDefinitions: [{ id: publishApp.appDefinition.id }] });
|
||||
|
||||
return publishApp;
|
||||
}
|
||||
|
||||
async importNewVersionAppDefinitionPublishDeployApp(alfrescoJsApi, appFileLocation, modelId) {
|
||||
browser.setFileDetector(new remote.FileDetector());
|
||||
|
||||
const pathFile = path.join(browser.params.testConfig.main.rootPath + appFileLocation);
|
||||
const file = fs.createReadStream(pathFile);
|
||||
|
||||
const appCreated = await alfrescoJsApi.activiti.appsApi.importNewAppDefinition(modelId, file);
|
||||
|
||||
const publishApp = await alfrescoJsApi.activiti.appsApi.publishAppDefinition(appCreated.id, new AppPublish());
|
||||
|
||||
await alfrescoJsApi.activiti.appsApi.deployAppDefinitions({ appDefinitions: [{ id: publishApp.appDefinition.id }] });
|
||||
|
||||
return appCreated;
|
||||
}
|
||||
}
|
||||
@@ -16,12 +16,20 @@
|
||||
*/
|
||||
|
||||
import { FormRepresentation } from '@alfresco/js-api';
|
||||
import { ApiService } from '@alfresco/adf-testing';
|
||||
|
||||
export class FormModelActions {
|
||||
|
||||
async getFormByName(alfrescoJsApi: any, name: string): Promise<FormRepresentation> {
|
||||
api: ApiService;
|
||||
|
||||
const forms = await alfrescoJsApi.activiti.editorApi.getForms();
|
||||
constructor(api: ApiService) {
|
||||
this.api = api;
|
||||
}
|
||||
|
||||
async getFormByName(name: string): Promise<FormRepresentation> {
|
||||
|
||||
// @ts-ignore
|
||||
const forms: any = await this.api.getInstance().activiti.editorApi.getForms();
|
||||
|
||||
const form = forms.data.find((currentForm) => {
|
||||
return currentForm.name === name;
|
||||
|
||||
@@ -15,16 +15,28 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ApiService } from '@alfresco/adf-testing';
|
||||
|
||||
export class ModelsActions {
|
||||
|
||||
async deleteVersionModel(alfrescoJsApi, modelId) {
|
||||
api: ApiService;
|
||||
|
||||
return alfrescoJsApi.activiti.modelsApi.deleteModel(modelId, { cascade: false, deleteRuntimeApp : true });
|
||||
constructor(alfrescoApi: ApiService) {
|
||||
this.api = alfrescoApi;
|
||||
}
|
||||
|
||||
async deleteEntireModel(alfrescoJsApi, modelId) {
|
||||
async deleteVersionModel(modelId: number): Promise<any> {
|
||||
return this.api.getInstance().activiti.modelsApi.deleteModel(modelId, {
|
||||
cascade: false,
|
||||
deleteRuntimeApp: true
|
||||
});
|
||||
}
|
||||
|
||||
return alfrescoJsApi.activiti.modelsApi.deleteModel(modelId, { cascade: true, deleteRuntimeApp : true });
|
||||
async deleteEntireModel(modelId: number): Promise<any> {
|
||||
return this.api.getInstance().activiti.modelsApi.deleteModel(modelId, {
|
||||
cascade: true,
|
||||
deleteRuntimeApp: true
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -15,63 +15,121 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { Tenant } from '../models/APS/tenant';
|
||||
import { User } from '../models/APS/user';
|
||||
import path = require('path');
|
||||
import fs = require('fs');
|
||||
import remote = require('selenium-webdriver/remote');
|
||||
|
||||
import { browser } from 'protractor';
|
||||
|
||||
import { ImageUploadRepresentation } from '@alfresco/js-api';
|
||||
import { ApiService, IdentityService, UserModel, Logger } from '@alfresco/adf-testing';
|
||||
import { Tenant } from '../models/APS/tenant';
|
||||
import { UserRepresentation } from '@alfresco/js-api/src/api/activiti-rest-api/model/userRepresentation';
|
||||
|
||||
export class UsersActions {
|
||||
|
||||
async createTenantAndUser(alfrescoJsApi) {
|
||||
const newTenant = await alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
|
||||
api: ApiService;
|
||||
identityService: IdentityService;
|
||||
|
||||
const user = new User({ tenantId: newTenant.id });
|
||||
|
||||
const { id } = await alfrescoJsApi.activiti.adminUsersApi.createNewUser(user);
|
||||
|
||||
return { ...user, id };
|
||||
constructor(alfrescoApi: ApiService) {
|
||||
this.api = alfrescoApi;
|
||||
if (this.api.apiService.isOauthConfiguration()) {
|
||||
this.identityService = new IdentityService(this.api);
|
||||
}
|
||||
}
|
||||
|
||||
async createApsUser(alfrescoJsApi, tenantId) {
|
||||
const user = new User({ tenantId });
|
||||
async createUser(emailOrUserModel?: string | UserModel, firstName?: string, lastName?: string, tenantId?: number, password?: string): Promise<UserModel> {
|
||||
let user;
|
||||
|
||||
const { id } = await alfrescoJsApi.activiti.adminUsersApi.createNewUser(user);
|
||||
if (typeof emailOrUserModel !== 'string') {
|
||||
user = new UserModel(emailOrUserModel);
|
||||
} else {
|
||||
user = new UserModel({ emailOrUserModel, firstName, lastName, tenantId, password });
|
||||
}
|
||||
|
||||
return { ...user, id };
|
||||
}
|
||||
try {
|
||||
|
||||
async getApsUserByEmail(alfrescoJsApi, email) {
|
||||
if (this.api.apiService.isEcmConfiguration() || (this.api.apiService.isEcmBpmConfiguration())) {
|
||||
Logger.log('Create user ECM');
|
||||
await this.api.apiService.core.peopleApi.addPerson({
|
||||
id: user.email,
|
||||
email: user.email,
|
||||
firstName: user.firstName,
|
||||
lastName: user.lastName,
|
||||
password: user.password
|
||||
});
|
||||
}
|
||||
|
||||
const users = await alfrescoJsApi.activiti.adminUsersApi.getUsers();
|
||||
if (this.api.apiService.isBpmConfiguration() || (this.api.apiService.isEcmBpmConfiguration())) {
|
||||
Logger.log('Create user BPM');
|
||||
|
||||
const user = users.data.filter((currentUser) => {
|
||||
return currentUser.email === email;
|
||||
});
|
||||
if (tenantId || (emailOrUserModel && typeof emailOrUserModel !== 'string' && emailOrUserModel.tenantId)) {
|
||||
let tenantIdUser = 1;
|
||||
|
||||
if (typeof emailOrUserModel !== 'string' && emailOrUserModel.tenantId) {
|
||||
tenantIdUser = emailOrUserModel.tenantId;
|
||||
} else if (tenantIdUser) {
|
||||
tenantIdUser = tenantId;
|
||||
}
|
||||
|
||||
const apsUser = await this.createApsUser(tenantIdUser, user.email, user.firstName, user.lastName, user.password);
|
||||
user.id = apsUser.id;
|
||||
|
||||
} else {
|
||||
const apsUser = await this.createTenantAndUser(user.email, user.firstName, user.lastName, user.password);
|
||||
user.tenantId = apsUser.tenantId;
|
||||
user.id = apsUser.id;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (this.api.apiService.isOauthConfiguration()) {
|
||||
Logger.log('Create user identity');
|
||||
|
||||
const identityUser = await this.identityService.createIdentityUser(user);
|
||||
user.idIdentityService = identityUser.idIdentityService;
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
Logger.error('Error create user' + JSON.stringify(e));
|
||||
}
|
||||
|
||||
return user;
|
||||
}
|
||||
|
||||
async createApsUserWithName(alfrescoJsApi, tenantId, email, firstName, lastName) {
|
||||
const user = new User({ tenantId , email, firstName, lastName});
|
||||
async createTenantAndUser(email?: string, firstName?: string, lastName?: string, password?: string): Promise<UserRepresentation> {
|
||||
const newTenant = await this.api.apiService.activiti.adminTenantsApi.createTenant(new Tenant());
|
||||
|
||||
const { id } = await alfrescoJsApi.activiti.adminUsersApi.createNewUser(user);
|
||||
const user = new UserModel({
|
||||
tenantId: newTenant.id,
|
||||
email,
|
||||
firstName,
|
||||
lastName,
|
||||
password
|
||||
});
|
||||
|
||||
return { ...user, id };
|
||||
return this.api.apiService.activiti.adminUsersApi.createNewUser(user.getAPSModel());
|
||||
}
|
||||
|
||||
async cleanupTenant(alfrescoJsApi, tenantId) {
|
||||
return alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
|
||||
async createApsUser(tenantId?: number, email?: string, firstName?: string, lastName?: string, password?: string): Promise<UserRepresentation> {
|
||||
|
||||
const user = new UserModel({
|
||||
tenantId,
|
||||
email,
|
||||
firstName,
|
||||
lastName,
|
||||
password
|
||||
});
|
||||
|
||||
return this.api.apiService.activiti.adminUsersApi.createNewUser(user.getAPSModel());
|
||||
}
|
||||
|
||||
async changeProfilePictureAps(alfrescoJsApi, fileLocation) {
|
||||
async changeProfilePictureAps(fileLocation: string): Promise<ImageUploadRepresentation> {
|
||||
browser.setFileDetector(new remote.FileDetector());
|
||||
|
||||
const pathFile = path.join(browser.params.testConfig.main.rootPath + fileLocation);
|
||||
const file = fs.createReadStream(pathFile);
|
||||
|
||||
return alfrescoJsApi.activiti.profileApi.uploadProfilePicture(file);
|
||||
return this.api.apiService.activiti.profileApi.uploadProfilePicture(file);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -14,29 +14,25 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { LoginPage, AboutPage } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { LoginSSOPage, AboutPage, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
import { AcsUserModel } from '../models/ACS/acs-user.model';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
||||
describe('About Content Services', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const aboutPage = new AboutPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
let acsUser: UserModel;
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
beforeAll(async() => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await navigationBarPage.clickAboutButton();
|
||||
});
|
||||
|
||||
|
||||
@@ -15,36 +15,34 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, UploadActions, StringUtil, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, UploadActions, StringUtil, ViewerPage, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { CommentsPage } from '../../pages/adf/comments.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { browser } from 'protractor';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Comment Component', () => {
|
||||
|
||||
const loginPage: LoginPage = new LoginPage();
|
||||
const loginPage: LoginSSOPage = new LoginSSOPage();
|
||||
const contentServicesPage: ContentServicesPage = new ContentServicesPage();
|
||||
const viewerPage: ViewerPage = new ViewerPage();
|
||||
const commentsPage: CommentsPage = new CommentsPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const acsUser: AcsUserModel = new AcsUserModel();
|
||||
const apiService = new ApiService();
|
||||
|
||||
let userFullName, nodeId;
|
||||
let acsUser: UserModel;
|
||||
|
||||
const pngFileModel = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_path
|
||||
});
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const comments = {
|
||||
first: 'This is a comment',
|
||||
@@ -59,8 +57,8 @@ describe('Comment Component', () => {
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
@@ -68,7 +66,7 @@ describe('Comment Component', () => {
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
const pngUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, '-my-');
|
||||
|
||||
@@ -76,19 +74,19 @@ describe('Comment Component', () => {
|
||||
|
||||
userFullName = pngUploadedFile.entry.createdByUser.displayName;
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await uploadActions.deleteFileOrFolder(nodeId);
|
||||
});
|
||||
|
||||
it('[C276947] Should be able to add a comment on ACS and view on ADF', async () => {
|
||||
await this.alfrescoJsApi.core.commentsApi.addComment(nodeId, { content: comments.test });
|
||||
await apiService.getInstance().core.commentsApi.addComment(nodeId, { content: comments.test });
|
||||
|
||||
await viewerPage.viewFile(pngFileModel.name);
|
||||
await viewerPage.checkImgViewerIsDisplayed();
|
||||
@@ -164,28 +162,28 @@ describe('Comment Component', () => {
|
||||
let site, pngUploadedFile;
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(8),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.CONSUMER
|
||||
});
|
||||
|
||||
pngUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, site.entry.guid);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await uploadActions.deleteFileOrFolder(pngUploadedFile.entry.id);
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
it('[C290147] Should NOT be able to add comments to a site file with Consumer permissions', async () => {
|
||||
|
||||
@@ -15,36 +15,32 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, NotificationHistoryPage, StringUtil } from '@alfresco/adf-testing';
|
||||
import { ApiService, LoginSSOPage, NotificationHistoryPage, StringUtil, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { FolderDialogPage } from '../../pages/adf/dialog/folder-dialog.page';
|
||||
import { MetadataViewPage } from '../../pages/adf/metadata-view.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { browser, Key } from 'protractor';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Create folder directive', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const createFolderDialog = new FolderDialogPage();
|
||||
const notificationHistoryPage = new NotificationHistoryPage();
|
||||
const metadataViewPage = new MetadataViewPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
let acsUser: UserModel;
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
@@ -15,22 +15,23 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, BrowserActions, StringUtil } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, BrowserActions, StringUtil, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { CreateLibraryDialogPage } from '../../pages/adf/dialog/create-library-dialog.page';
|
||||
import { CustomSourcesPage } from '../../pages/adf/demo-shell/custom-sources.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Create library directive', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const createLibraryDialog = new CreateLibraryDialogPage();
|
||||
const customSourcesPage = new CustomSourcesPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const visibility = {
|
||||
public: 'Public',
|
||||
@@ -40,21 +41,16 @@ describe('Create library directive', () => {
|
||||
|
||||
let createSite;
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
let acsUser: UserModel;
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
|
||||
createSite = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
createSite = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(20).toLowerCase(),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
@@ -62,7 +58,7 @@ describe('Create library directive', () => {
|
||||
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(createSite.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(createSite.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
|
||||
@@ -16,29 +16,33 @@
|
||||
*/
|
||||
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { BrowserActions, LoginPage, UploadActions, PaginationPage, StringUtil, PermissionActions } from '@alfresco/adf-testing';
|
||||
import {
|
||||
BrowserActions,
|
||||
LoginSSOPage,
|
||||
UploadActions,
|
||||
PaginationPage,
|
||||
StringUtil,
|
||||
PermissionActions,
|
||||
ApiService, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { FolderModel } from '../../models/ACS/folder.model';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Delete Directive', () => {
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const apiService = new ApiService();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const paginationPage = new PaginationPage();
|
||||
const contentListPage = contentServicesPage.getDocumentList();
|
||||
const acsUser = new AcsUserModel();
|
||||
const secondAcsUser = new AcsUserModel();
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const permissionActions = new PermissionActions(this.alfrescoJsApi);
|
||||
const acsUser = new UserModel();
|
||||
const secondAcsUser = new UserModel();
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const permissionActions = new PermissionActions(apiService);
|
||||
let baseFolderUploaded;
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const txtFileModel = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.TXT.file_name,
|
||||
@@ -86,10 +90,10 @@ describe('Delete Directive', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(secondAcsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
await usersActions.createUser(secondAcsUser);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
@@ -104,7 +108,6 @@ describe('Delete Directive', () => {
|
||||
});
|
||||
|
||||
describe('Handling multiselection', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await uploadActions.uploadFile(txtFileModel.location, txtFileModel.name, baseFolderUploaded.entry.id);
|
||||
await uploadActions.uploadFile(file0BytesModel.location, file0BytesModel.name, baseFolderUploaded.entry.id);
|
||||
@@ -113,7 +116,7 @@ describe('Delete Directive', () => {
|
||||
await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, textFolderUploaded.entry.id);
|
||||
await uploadActions.createFolder(folderSecond.name, baseFolderUploaded.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await BrowserActions.getUrl(`${browser.baseUrl}/files/${baseFolderUploaded.entry.id}`);
|
||||
await contentServicesPage.waitForTableBody();
|
||||
});
|
||||
@@ -178,7 +181,6 @@ describe('Delete Directive', () => {
|
||||
});
|
||||
|
||||
describe('When selection on multiple pages', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await uploadActions.uploadFile( txtFileModel.location, txtFileModel.name, baseFolderUploaded.entry.id);
|
||||
await uploadActions.uploadFile(file0BytesModel.location, file0BytesModel.name, baseFolderUploaded.entry.id);
|
||||
@@ -187,7 +189,7 @@ describe('Delete Directive', () => {
|
||||
await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, baseFolderUploaded.entry.id);
|
||||
await uploadActions.uploadFile(secondPngFileModel.location, secondPngFileModel.name, baseFolderUploaded.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await BrowserActions.getUrl(`${browser.baseUrl}/files/${baseFolderUploaded.entry.id}`);
|
||||
await contentServicesPage.waitForTableBody();
|
||||
});
|
||||
@@ -205,22 +207,20 @@ describe('Delete Directive', () => {
|
||||
await contentListPage.dataTable.checkContentIsNotDisplayed('Display name', file0BytesModel.name);
|
||||
await contentListPage.dataTable.checkContentIsDisplayed('Display name', txtFileModel.name);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('when user does not have `delete` permission', () => {
|
||||
|
||||
let createdSite = null;
|
||||
let fileTxt, filePdf, folderA, folderB;
|
||||
|
||||
beforeAll(async () => {
|
||||
createdSite = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
createdSite = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(20).toLowerCase(),
|
||||
visibility: 'PRIVATE'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(createdSite.entry.id, {
|
||||
id: secondAcsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(createdSite.entry.id, {
|
||||
id: secondAcsUser.email,
|
||||
role: 'SiteCollaborator'
|
||||
});
|
||||
|
||||
@@ -229,24 +229,24 @@ describe('Delete Directive', () => {
|
||||
folderA = await uploadActions.createFolder(StringUtil.generateRandomString(5), createdSite.entry.guid);
|
||||
folderB = await uploadActions.createFolder(StringUtil.generateRandomString(5), createdSite.entry.guid);
|
||||
|
||||
await permissionActions.addRoleForUser(secondAcsUser.getId(), 'SiteManager', folderA);
|
||||
await permissionActions.addRoleForUser(secondAcsUser.getId(), 'SiteManager', fileTxt);
|
||||
await permissionActions.addRoleForUser(secondAcsUser.getId(), 'SiteConsumer', folderB);
|
||||
await permissionActions.addRoleForUser(secondAcsUser.getId(), 'SiteConsumer', filePdf);
|
||||
await permissionActions.addRoleForUser(secondAcsUser.email, 'SiteManager', folderA);
|
||||
await permissionActions.addRoleForUser(secondAcsUser.email, 'SiteManager', fileTxt);
|
||||
await permissionActions.addRoleForUser(secondAcsUser.email, 'SiteConsumer', folderB);
|
||||
await permissionActions.addRoleForUser(secondAcsUser.email, 'SiteConsumer', filePdf);
|
||||
|
||||
await permissionActions.disableInheritedPermissionsForNode(folderA.entry.id);
|
||||
await permissionActions.disableInheritedPermissionsForNode(folderB.entry.id);
|
||||
await permissionActions.disableInheritedPermissionsForNode(fileTxt.entry.id);
|
||||
await permissionActions.disableInheritedPermissionsForNode(filePdf.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(secondAcsUser);
|
||||
await loginPage.login(secondAcsUser.email, secondAcsUser.password);
|
||||
await BrowserActions.getUrl(`${browser.baseUrl}/files/${createdSite.entry.guid}`);
|
||||
await contentServicesPage.waitForTableBody();
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
try {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(createdSite.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(createdSite.entry.id, { permanent: true });
|
||||
} catch (error) {}
|
||||
});
|
||||
|
||||
|
||||
@@ -16,22 +16,28 @@
|
||||
*/
|
||||
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { LoginPage, UploadActions, BrowserVisibility, FileBrowserUtil } from '@alfresco/adf-testing';
|
||||
import {
|
||||
LoginSSOPage,
|
||||
UploadActions,
|
||||
BrowserVisibility,
|
||||
FileBrowserUtil,
|
||||
ApiService,
|
||||
UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { FolderModel } from '../../models/ACS/folder.model';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Version component actions', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const contentListPage = contentServicesPage.getDocumentList();
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
let acsUser: UserModel;
|
||||
|
||||
const txtFileComma = new FileModel({
|
||||
name: 'comma,name',
|
||||
@@ -58,17 +64,14 @@ describe('Version component actions', () => {
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.TEXT_FOLDER.folder_location
|
||||
});
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const apiService = new ApiService();
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
await uploadActions.uploadFile( txtFileModel.location, txtFileModel.name, '-my-');
|
||||
await uploadActions.uploadFile(file0BytesModel.location, file0BytesModel.name, '-my-');
|
||||
@@ -79,7 +82,7 @@ describe('Version component actions', () => {
|
||||
|
||||
await uploadActions.createFolder(folderSecond.name, '-my-');
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
|
||||
@@ -15,68 +15,71 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { BrowserActions, LoginPage, NotificationHistoryPage, StringUtil, UploadActions } from '@alfresco/adf-testing';
|
||||
import {
|
||||
ApiService,
|
||||
BrowserActions,
|
||||
LoginSSOPage,
|
||||
NotificationHistoryPage,
|
||||
StringUtil,
|
||||
UploadActions, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { FolderDialogPage } from '../../pages/adf/dialog/folder-dialog.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { browser, protractor } from 'protractor';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Edit folder directive', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const editFolderDialog = new FolderDialogPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
const anotherAcsUser = new AcsUserModel();
|
||||
const acsUser = new UserModel();
|
||||
const anotherAcsUser = new UserModel();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const notificationHistoryPage = new NotificationHistoryPage();
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const pdfFile = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_path
|
||||
});
|
||||
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const updateFolderName = StringUtil.generateRandomString(5);
|
||||
let editFolder, anotherFolder, filePdfNode, subFolder;
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(anotherAcsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
await usersActions.createUser(anotherAcsUser);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
editFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-');
|
||||
anotherFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-');
|
||||
subFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), editFolder.entry.id);
|
||||
filePdfNode = await uploadActions.uploadFile(pdfFile.location, pdfFile.name, '-my-');
|
||||
|
||||
await this.alfrescoJsApi.core.nodesApi.updateNode(editFolder.entry.id,
|
||||
await apiService.getInstance().core.nodesApi.updateNode(editFolder.entry.id,
|
||||
|
||||
{
|
||||
permissions: {
|
||||
locallySet: [{
|
||||
authorityId: anotherAcsUser.getId(),
|
||||
authorityId: anotherAcsUser.email,
|
||||
name: 'Consumer',
|
||||
accessStatus: 'ALLOWED'
|
||||
}]
|
||||
}
|
||||
});
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await uploadActions.deleteFileOrFolder(editFolder.entry.id);
|
||||
await uploadActions.deleteFileOrFolder(anotherFolder.entry.id);
|
||||
await uploadActions.deleteFileOrFolder(filePdfNode.entry.id);
|
||||
@@ -223,9 +226,8 @@ describe('Edit folder directive', () => {
|
||||
});
|
||||
|
||||
describe('Edit Folder - no permission', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(anotherAcsUser);
|
||||
await loginPage.login(anotherAcsUser.email, anotherAcsUser.password);
|
||||
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/files/' + editFolder.entry.id);
|
||||
await contentServicesPage.getDocumentList().dataTablePage().waitTillContentLoaded();
|
||||
});
|
||||
|
||||
@@ -15,44 +15,47 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ContentNodeSelectorDialogPage, LoginPage, StringUtil, UploadActions } from '@alfresco/adf-testing';
|
||||
import {
|
||||
ApiService,
|
||||
ContentNodeSelectorDialogPage,
|
||||
LoginSSOPage,
|
||||
StringUtil,
|
||||
UploadActions, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { browser } from 'protractor';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { CustomSourcesPage } from '../../pages/adf/demo-shell/custom-sources.page';
|
||||
import { TrashcanPage } from '../../pages/adf/trashcan.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Favorite directive', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
let acsUser: UserModel;
|
||||
const customSourcesPage = new CustomSourcesPage();
|
||||
const trashcanPage = new TrashcanPage();
|
||||
const contentListPage = contentServicesPage.getDocumentList();
|
||||
const contentNodeSelector = new ContentNodeSelectorDialogPage();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const pdfFile = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_path
|
||||
});
|
||||
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
let testFolder1, testFolder2, testFolder3, testFolder4, testFile;
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
testFolder1 = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-');
|
||||
testFolder2 = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-');
|
||||
@@ -60,13 +63,13 @@ describe('Favorite directive', () => {
|
||||
testFolder4 = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-');
|
||||
testFile = await uploadActions.uploadFile(pdfFile.location, pdfFile.name, '-my-');
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await uploadActions.deleteFileOrFolder(testFolder1.entry.id);
|
||||
await uploadActions.deleteFileOrFolder(testFolder2.entry.id);
|
||||
await uploadActions.deleteFileOrFolder(testFolder3.entry.id);
|
||||
|
||||
@@ -17,29 +17,33 @@
|
||||
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { browser } from 'protractor';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { TrashcanPage } from '../../pages/adf/trashcan.page';
|
||||
import { LoginPage, NotificationHistoryPage, StringUtil, UploadActions, BrowserActions, BreadcrumbPage } from '@alfresco/adf-testing';
|
||||
import {
|
||||
LoginSSOPage,
|
||||
NotificationHistoryPage,
|
||||
StringUtil,
|
||||
UploadActions,
|
||||
BrowserActions,
|
||||
BreadcrumbPage,
|
||||
ApiService, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Restore content directive', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
const anotherAcsUser = new AcsUserModel();
|
||||
const acsUser = new UserModel();
|
||||
const anotherAcsUser = new UserModel();
|
||||
const trashcanPage = new TrashcanPage();
|
||||
const breadCrumbPage = new BreadcrumbPage();
|
||||
const notificationHistoryPage = new NotificationHistoryPage();
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const pdfFileModel = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
||||
@@ -58,15 +62,15 @@ describe('Restore content directive', () => {
|
||||
|
||||
const folderName = StringUtil.generateRandomString(5);
|
||||
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
let folderWithContent, folderWithFolder, subFolder, subFile, testFile, restoreFile, publicSite, siteFolder,
|
||||
siteFile;
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(anotherAcsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
await usersActions.createUser(anotherAcsUser);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
await uploadActions.createFolder(folderName, '-my-');
|
||||
folderWithContent = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-');
|
||||
@@ -76,11 +80,11 @@ describe('Restore content directive', () => {
|
||||
subFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), folderWithFolder.entry.id);
|
||||
restoreFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, '-my-');
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await uploadActions.deleteFileOrFolder(folderWithContent.entry.id);
|
||||
await uploadActions.deleteFileOrFolder(folderWithFolder.entry.id);
|
||||
});
|
||||
@@ -92,7 +96,6 @@ describe('Restore content directive', () => {
|
||||
});
|
||||
|
||||
describe('Restore same name folders', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
@@ -174,7 +177,7 @@ describe('Restore content directive', () => {
|
||||
await contentServicesPage.checkContentIsDisplayed(subFolder.entry.name);
|
||||
await contentServicesPage.deleteContent(subFolder.entry.name);
|
||||
await contentServicesPage.checkContentIsNotDisplayed(subFolder.entry.name);
|
||||
await breadCrumbPage.chooseBreadCrumb(acsUser.id);
|
||||
await breadCrumbPage.chooseBreadCrumb(acsUser.email);
|
||||
await contentServicesPage.waitForTableBody();
|
||||
await contentServicesPage.checkContentIsDisplayed(folderWithFolder.entry.name);
|
||||
await contentServicesPage.deleteContent(folderWithFolder.entry.name);
|
||||
@@ -231,20 +234,19 @@ describe('Restore content directive', () => {
|
||||
});
|
||||
|
||||
describe('Restore deleted library', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
const publicSiteName = `00${StringUtil.generateRandomString(5)}`;
|
||||
const publicSiteBody = { visibility: 'PUBLIC', title: publicSiteName };
|
||||
publicSite = await this.alfrescoJsApi.core.sitesApi.createSite(publicSiteBody);
|
||||
publicSite = await apiService.getInstance().core.sitesApi.createSite(publicSiteBody);
|
||||
siteFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), publicSite.entry.guid);
|
||||
siteFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, siteFolder.entry.id);
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(publicSite.entry.id);
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(publicSite.entry.id);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
try {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(publicSite.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(publicSite.entry.id, { permanent: true });
|
||||
} catch (error) {
|
||||
}
|
||||
});
|
||||
@@ -269,11 +271,10 @@ describe('Restore content directive', () => {
|
||||
});
|
||||
|
||||
describe('Restore with folder hierarchies', () => {
|
||||
|
||||
let parentFolder, folderWithin, pdfFile, pngFile, mainFile, mainFolder;
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(anotherAcsUser.id, anotherAcsUser.password);
|
||||
await apiService.getInstance().login(anotherAcsUser.email, anotherAcsUser.password);
|
||||
await uploadActions.createFolder(folderName, '-my-');
|
||||
parentFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-');
|
||||
folderWithin = await uploadActions.createFolder(StringUtil.generateRandomString(5), parentFolder.entry.id);
|
||||
@@ -282,13 +283,13 @@ describe('Restore content directive', () => {
|
||||
mainFile = await uploadActions.uploadFile(testFileModel.location, testFileModel.name, '-my-');
|
||||
mainFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-');
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(anotherAcsUser);
|
||||
await loginPage.login(anotherAcsUser.email, anotherAcsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await uploadActions.deleteFileOrFolder(parentFolder.entry.id);
|
||||
await uploadActions.deleteFileOrFolder(mainFolder.entry.id);
|
||||
await uploadActions.deleteFileOrFolder(mainFile.entry.id);
|
||||
|
||||
@@ -18,26 +18,24 @@
|
||||
import { browser, by, element } from 'protractor';
|
||||
import {
|
||||
BreadcrumbPage,
|
||||
LoginPage,
|
||||
LoginSSOPage,
|
||||
PaginationPage,
|
||||
UploadActions,
|
||||
StringUtil,
|
||||
ContentNodeSelectorDialogPage,
|
||||
ViewerPage
|
||||
ViewerPage, ApiService, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { Util } from '../../util/util';
|
||||
import { BreadCrumbDropdownPage } from '../../pages/adf/content-services/breadcrumb/bread-crumb-dropdown.page';
|
||||
import { InfinitePaginationPage } from '../../pages/adf/core/infinite-pagination.page';
|
||||
import { FolderModel } from '../../models/ACS/folder.model';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Document List Component - Actions', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const contentListPage = contentServicesPage.getDocumentList();
|
||||
@@ -46,15 +44,13 @@ describe('Document List Component - Actions', () => {
|
||||
const breadCrumbDropdownPage = new BreadCrumbDropdownPage();
|
||||
const breadCrumbPage = new BreadcrumbPage();
|
||||
const viewerPage = new ViewerPage();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const infinitePaginationPage = new InfinitePaginationPage(element(by.css('adf-content-node-selector')));
|
||||
|
||||
describe('Document List Component - Check Actions', () => {
|
||||
|
||||
let uploadedFolder, secondUploadedFolder;
|
||||
let acsUser = null;
|
||||
let pdfUploadedNode;
|
||||
@@ -77,20 +73,19 @@ describe('Document List Component - Actions', () => {
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
acsUser = new AcsUserModel();
|
||||
folderName = `TATSUMAKY_${StringUtil.generateRandomString(5)}_SENPOUKYAKU`;
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
pdfUploadedNode = await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, '-my-');
|
||||
await uploadActions.uploadFile(testFileModel.location, testFileModel.name, '-my-');
|
||||
uploadedFolder = await uploadActions.createFolder(folderName, '-my-');
|
||||
secondUploadedFolder = await uploadActions.createFolder('secondFolder', '-my-');
|
||||
|
||||
fileNames = Util.generateSequenceFiles(1, nrOfFiles, files.base, files.extension);
|
||||
fileNames = StringUtil.generateFilesNames(1, nrOfFiles, files.base, files.extension);
|
||||
await uploadActions.createEmptyFiles(fileNames, uploadedFolder.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await browser.sleep(10000);
|
||||
});
|
||||
@@ -104,7 +99,6 @@ describe('Document List Component - Actions', () => {
|
||||
});
|
||||
|
||||
describe('File Actions', () => {
|
||||
|
||||
it('[C213257] Should be able to copy a file', async () => {
|
||||
await contentServicesPage.checkContentIsDisplayed(pdfUploadedNode.entry.name);
|
||||
await contentServicesPage.getDocumentList().rightClickOnRow(pdfFileModel.name);
|
||||
@@ -213,7 +207,6 @@ describe('Document List Component - Actions', () => {
|
||||
});
|
||||
|
||||
describe('Folder Actions', () => {
|
||||
|
||||
it('[C260138] Should be able to copy a folder', async () => {
|
||||
await contentServicesPage.copyContent(folderName);
|
||||
await contentNodeSelector.checkDialogIsDisplayed();
|
||||
@@ -255,7 +248,6 @@ describe('Document List Component - Actions', () => {
|
||||
});
|
||||
|
||||
describe('Folder Actions - Copy and Move', () => {
|
||||
|
||||
const folderModel1 = new FolderModel({ name: StringUtil.generateRandomString() });
|
||||
const folderModel2 = new FolderModel({ name: StringUtil.generateRandomString() });
|
||||
const folderModel3 = new FolderModel({ name: StringUtil.generateRandomString() });
|
||||
@@ -266,12 +258,12 @@ describe('Document List Component - Actions', () => {
|
||||
let folder1, folder2, folder3, folder4, folder5, folder6;
|
||||
|
||||
let folders;
|
||||
const contentServicesUser = new AcsUserModel();
|
||||
const contentServicesUser = new UserModel();
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(contentServicesUser);
|
||||
await this.alfrescoJsApi.login(contentServicesUser.id, contentServicesUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(contentServicesUser);
|
||||
await apiService.getInstance().login(contentServicesUser.email, contentServicesUser.password);
|
||||
folder1 = await uploadActions.createFolder('A' + folderModel1.name, '-my-');
|
||||
folder2 = await uploadActions.createFolder('B' + folderModel2.name, '-my-');
|
||||
folder3 = await uploadActions.createFolder('C' + folderModel3.name, '-my-');
|
||||
@@ -282,7 +274,7 @@ describe('Document List Component - Actions', () => {
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(contentServicesUser);
|
||||
await loginPage.login(contentServicesUser.email, contentServicesUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
await paginationPage.selectItemsPerPage('5');
|
||||
@@ -291,7 +283,7 @@ describe('Document List Component - Actions', () => {
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
for (const folder of folders) {
|
||||
await uploadActions.deleteFileOrFolder(folder.entry.id);
|
||||
}
|
||||
@@ -343,11 +335,11 @@ describe('Document List Component - Actions', () => {
|
||||
await contentNodeSelector.checkDialogIsDisplayed();
|
||||
await breadCrumbDropdownPage.clickParentFolder();
|
||||
await breadCrumbDropdownPage.checkBreadCrumbDropdownIsDisplayed();
|
||||
await breadCrumbDropdownPage.choosePath(contentServicesUser.id);
|
||||
await breadCrumbDropdownPage.choosePath(contentServicesUser.email);
|
||||
await contentNodeSelector.clickMoveCopyButton();
|
||||
await contentServicesPage.checkContentIsNotDisplayed('A' + folderModel1.name);
|
||||
|
||||
await breadCrumbPage.chooseBreadCrumb(contentServicesUser.id);
|
||||
await breadCrumbPage.chooseBreadCrumb(contentServicesUser.email);
|
||||
await contentServicesPage.waitForTableBody();
|
||||
await contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
||||
});
|
||||
@@ -390,5 +382,5 @@ describe('Document List Component - Actions', () => {
|
||||
await contentServicesPage.doubleClickRow('F' + folderModel6.name);
|
||||
await contentServicesPage.checkContentIsDisplayed('A' + folderModel1.name);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -16,28 +16,26 @@
|
||||
*/
|
||||
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, StringUtil, UploadActions, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { ApiService, LoginSSOPage, StringUtil, UploadActions, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import moment from 'moment-es6';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Document List Component', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
let uploadedFolder, uploadedFolderExtra;
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
let acsUser = null;
|
||||
let testFileNode, pdfBFileNode;
|
||||
|
||||
afterEach(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
if (uploadedFolder) {
|
||||
await uploadActions.deleteFileOrFolder(uploadedFolder.entry.id);
|
||||
uploadedFolder = null;
|
||||
@@ -54,11 +52,9 @@ describe('Document List Component', () => {
|
||||
await uploadActions.deleteFileOrFolder(pdfBFileNode.entry.id);
|
||||
pdfBFileNode = null;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
describe('Custom Column', () => {
|
||||
|
||||
let folderName;
|
||||
const pdfFileModel = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
||||
@@ -80,24 +76,21 @@ describe('Document List Component', () => {
|
||||
let pdfUploadedNode, docxUploadedNode, timeAgoUploadedNode, mediumDateUploadedNode;
|
||||
|
||||
beforeAll(async () => {
|
||||
|
||||
acsUser = new AcsUserModel();
|
||||
|
||||
/* cspell:disable-next-line */
|
||||
folderName = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
uploadedFolder = await uploadActions.createFolder(folderName, '-my-');
|
||||
pdfUploadedNode = await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, '-my-');
|
||||
docxUploadedNode = await uploadActions.uploadFile(docxFileModel.location, docxFileModel.name, '-my-');
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
if (pdfUploadedNode) {
|
||||
await uploadActions.deleteFileOrFolder(pdfUploadedNode.entry.id);
|
||||
@@ -111,11 +104,10 @@ describe('Document List Component', () => {
|
||||
if (mediumDateUploadedNode) {
|
||||
await uploadActions.deleteFileOrFolder(mediumDateUploadedNode.entry.id);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
it('[C279926] Should only display the user\'s files and folders', async () => {
|
||||
@@ -135,7 +127,7 @@ describe('Document List Component', () => {
|
||||
});
|
||||
|
||||
it('[C279928] Should be able to display date with timeAgo', async () => {
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
timeAgoUploadedNode = await uploadActions.uploadFile(timeAgoFileModel.location, timeAgoFileModel.name, '-my-');
|
||||
await contentServicesPage.goToDocumentList();
|
||||
const dateValue = await contentServicesPage.getColumnValueForRow(timeAgoFileModel.name, 'Created');
|
||||
@@ -143,7 +135,7 @@ describe('Document List Component', () => {
|
||||
});
|
||||
|
||||
it('[C279929] Should be able to display the date with date type', async () => {
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
mediumDateUploadedNode = await uploadActions.uploadFile(mediumFileModel.location, mediumFileModel.name, '-my-');
|
||||
const createdDate = moment(mediumDateUploadedNode.createdAt).format('ll');
|
||||
await contentServicesPage.goToDocumentList();
|
||||
@@ -154,7 +146,6 @@ describe('Document List Component', () => {
|
||||
});
|
||||
|
||||
describe('Column Sorting', () => {
|
||||
|
||||
const fakeFileA = new FileModel({
|
||||
name: 'A',
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.TEST.file_path
|
||||
@@ -173,24 +164,22 @@ describe('Document List Component', () => {
|
||||
let fileANode, fileBNode, fileCNode;
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
const user = new AcsUserModel();
|
||||
const user = await usersActions.createUser();
|
||||
await apiService.getInstance().login(user.email, user.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(user);
|
||||
|
||||
await this.alfrescoJsApi.login(user.id, user.password);
|
||||
fileANode = await uploadActions.uploadFile(fakeFileA.location, fakeFileA.name, '-my-');
|
||||
fileBNode = await uploadActions.uploadFile(fakeFileB.location, fakeFileB.name, '-my-');
|
||||
fileCNode = await uploadActions.uploadFile(fakeFileC.location, fakeFileC.name, '-my-');
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(user);
|
||||
await loginPage.login(user.email, user.password);
|
||||
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
if (fileANode) {
|
||||
await uploadActions.deleteFileOrFolder(fileANode.entry.id);
|
||||
}
|
||||
@@ -200,7 +189,6 @@ describe('Document List Component', () => {
|
||||
if (fileCNode) {
|
||||
await uploadActions.deleteFileOrFolder(fileCNode.entry.id);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
it('[C260112] Should be able to sort by name (Ascending)', async () => {
|
||||
@@ -229,12 +217,10 @@ describe('Document List Component', () => {
|
||||
});
|
||||
|
||||
it('[C279959] Should display empty folder state for new folders', async () => {
|
||||
acsUser = new AcsUserModel();
|
||||
|
||||
const folderName = 'BANANA';
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
await contentServicesPage.createNewFolder(folderName);
|
||||
await contentServicesPage.doubleClickRow(folderName);
|
||||
@@ -247,14 +233,13 @@ describe('Document List Component', () => {
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
acsUser = new AcsUserModel();
|
||||
/* cspell:disable-next-line */
|
||||
const folderName = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
uploadedFolder = await uploadActions.createFolder(folderName, '-my-');
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
await contentServicesPage.checkContentIsDisplayed(uploadedFolder.entry.name);
|
||||
await contentServicesPage.doubleClickRow(uploadedFolder.entry.name);
|
||||
@@ -263,10 +248,9 @@ describe('Document List Component', () => {
|
||||
});
|
||||
|
||||
it('[C261997] Should be able to clean Recent Files history', async () => {
|
||||
acsUser = new AcsUserModel();
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
const cleanUser = await usersActions.createUser();
|
||||
await loginPage.login(cleanUser.email, cleanUser.password);
|
||||
await contentServicesPage.clickOnContentServices();
|
||||
await contentServicesPage.checkRecentFileToBeShowed();
|
||||
const icon = await contentServicesPage.getRecentFileIcon();
|
||||
@@ -277,15 +261,14 @@ describe('Document List Component', () => {
|
||||
});
|
||||
|
||||
it('[C279970] Should display Islocked field for folders', async () => {
|
||||
acsUser = new AcsUserModel();
|
||||
const folderNameA = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
const folderNameB = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
uploadedFolder = await uploadActions.createFolder(folderNameA, '-my-');
|
||||
uploadedFolderExtra = await uploadActions.createFolder(folderNameB, '-my-');
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
await contentServicesPage.checkContentIsDisplayed(folderNameA);
|
||||
await contentServicesPage.checkContentIsDisplayed(folderNameB);
|
||||
@@ -302,13 +285,12 @@ describe('Document List Component', () => {
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PDF_B.file_name,
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.PDF_B.file_path
|
||||
});
|
||||
acsUser = new AcsUserModel();
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
testFileNode = await uploadActions.uploadFile(testFileA.location, testFileA.name, '-my-');
|
||||
pdfBFileNode = await uploadActions.uploadFile(testFileB.location, testFileB.name, '-my-');
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
await contentServicesPage.checkContentIsDisplayed(testFileA.name);
|
||||
await contentServicesPage.checkContentIsDisplayed(testFileB.name);
|
||||
@@ -317,15 +299,13 @@ describe('Document List Component', () => {
|
||||
});
|
||||
|
||||
describe('Once uploaded 20 folders', () => {
|
||||
|
||||
let folderCreated;
|
||||
|
||||
beforeAll(async () => {
|
||||
acsUser = new AcsUserModel();
|
||||
folderCreated = [];
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
let folderName = '';
|
||||
let folder = null;
|
||||
|
||||
@@ -343,14 +323,13 @@ describe('Document List Component', () => {
|
||||
});
|
||||
|
||||
it('[C277093] Should sort files with Items per page set to default', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
await contentServicesPage.checkListIsSortedByNameColumn('asc');
|
||||
});
|
||||
});
|
||||
|
||||
describe('Column Template', () => {
|
||||
|
||||
const file0BytesModel = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.TXT_0B.file_name,
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.TXT_0B.file_path
|
||||
@@ -360,13 +339,12 @@ describe('Document List Component', () => {
|
||||
const viewer = new ViewerPage();
|
||||
|
||||
beforeAll(async () => {
|
||||
acsUser = new AcsUserModel();
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
file = await uploadActions.uploadFile(file0BytesModel.location, file0BytesModel.name, '-my-');
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
});
|
||||
|
||||
@@ -17,36 +17,34 @@
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import {
|
||||
LoginPage,
|
||||
LoginSSOPage,
|
||||
UploadActions,
|
||||
StringUtil,
|
||||
ContentNodeSelectorDialogPage,
|
||||
NotificationHistoryPage, BrowserActions
|
||||
NotificationHistoryPage, BrowserActions, ApiService, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Document List Component', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const contentNodeSelector = new ContentNodeSelectorDialogPage();
|
||||
const notificationHistoryPage = new NotificationHistoryPage();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
let uploadedFolder, uploadedFile, sourceFolder, destinationFolder, subFolder, subFolder2, copyFolder, subFile,
|
||||
duplicateFolderName;
|
||||
let acsUser = null, anotherAcsUser: AcsUserModel;
|
||||
const acsUser = new UserModel();
|
||||
const anotherAcsUser = new UserModel();
|
||||
let folderName, sameNameFolder, site;
|
||||
|
||||
const pdfFileModel = new FileModel({
|
||||
@@ -60,22 +58,20 @@ describe('Document List Component', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
acsUser = new AcsUserModel();
|
||||
anotherAcsUser = new AcsUserModel();
|
||||
folderName = StringUtil.generateRandomString(5);
|
||||
sameNameFolder = StringUtil.generateRandomString(5);
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(anotherAcsUser);
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
await usersActions.createUser(anotherAcsUser);
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(8),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: anotherAcsUser.getId(),
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: anotherAcsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.COLLABORATOR
|
||||
});
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
uploadedFolder = await uploadActions.createFolder(folderName, '-my-');
|
||||
destinationFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-');
|
||||
sourceFolder = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-');
|
||||
@@ -87,11 +83,11 @@ describe('Document List Component', () => {
|
||||
await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, uploadedFolder.entry.id);
|
||||
await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, sourceFolder.entry.id);
|
||||
uploadedFile = await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, '-my-');
|
||||
await this.alfrescoJsApi.core.nodesApi.updateNode(sourceFolder.entry.id,
|
||||
await apiService.getInstance().core.nodesApi.updateNode(sourceFolder.entry.id,
|
||||
{
|
||||
permissions: {
|
||||
locallySet: [{
|
||||
authorityId: anotherAcsUser.getId(),
|
||||
authorityId: anotherAcsUser.email,
|
||||
name: 'Consumer',
|
||||
accessStatus: 'ALLOWED'
|
||||
}]
|
||||
@@ -104,18 +100,17 @@ describe('Document List Component', () => {
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await uploadActions.deleteFileOrFolder(uploadedFolder.entry.id);
|
||||
await uploadActions.deleteFileOrFolder(uploadedFile.entry.id);
|
||||
await uploadActions.deleteFileOrFolder(sourceFolder.entry.id);
|
||||
await uploadActions.deleteFileOrFolder(destinationFolder.entry.id);
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
describe('Document List Component - Actions Move and Copy', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
@@ -208,9 +203,8 @@ describe('Document List Component', () => {
|
||||
});
|
||||
|
||||
describe('Document List actionns - Move, Copy on no permission folder', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(anotherAcsUser);
|
||||
await loginPage.login(anotherAcsUser.email, anotherAcsUser.password);
|
||||
await BrowserActions.getUrl(`${browser.params.testConfig.adf.url}/files/${sourceFolder.entry.id}`);
|
||||
await contentServicesPage.getDocumentList().dataTablePage().waitTillContentLoaded();
|
||||
});
|
||||
@@ -271,7 +265,7 @@ describe('Document List Component', () => {
|
||||
await contentServicesPage.checkContentIsDisplayed(pdfFileModel.name);
|
||||
await contentServicesPage.checkDeleteIsDisabled(pdfFileModel.name);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await BrowserActions.getUrl(`${browser.params.testConfig.adf.url}/files/${sourceFolder.entry.id}`);
|
||||
await contentServicesPage.getDocumentList().dataTablePage().waitTillContentLoaded();
|
||||
|
||||
|
||||
@@ -16,27 +16,24 @@
|
||||
*/
|
||||
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, StringUtil, UploadActions } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { ApiService, LoginSSOPage, StringUtil, UploadActions } from '@alfresco/adf-testing';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Document List Component', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
let acsUser = null;
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
describe('Gallery View', () => {
|
||||
|
||||
const cardProperties = {
|
||||
DISPLAY_NAME: 'Display name',
|
||||
SIZE: 'Size',
|
||||
@@ -45,8 +42,6 @@ describe('Document List Component', () => {
|
||||
CREATED: 'Created'
|
||||
};
|
||||
|
||||
let funnyUser;
|
||||
|
||||
const pdfFile = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_path
|
||||
@@ -65,23 +60,22 @@ describe('Document List Component', () => {
|
||||
let filePdfNode, fileTestNode, fileDocxNode, folderNode, filePDFSubNode;
|
||||
|
||||
beforeAll(async () => {
|
||||
acsUser = new AcsUserModel();
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
funnyUser = await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
filePdfNode = await uploadActions.uploadFile(pdfFile.location, pdfFile.name, '-my-');
|
||||
fileTestNode = await uploadActions.uploadFile(testFile.location, testFile.name, '-my-');
|
||||
fileDocxNode = await uploadActions.uploadFile(docxFile.location, docxFile.name, '-my-');
|
||||
folderNode = await uploadActions.createFolder(folderName, '-my-');
|
||||
filePDFSubNode = await uploadActions.uploadFile(pdfFile.location, pdfFile.name, folderNode.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
if (filePdfNode) {
|
||||
await uploadActions.deleteFileOrFolder(filePdfNode.entry.id);
|
||||
}
|
||||
@@ -97,8 +91,7 @@ describe('Document List Component', () => {
|
||||
if (folderNode) {
|
||||
await uploadActions.deleteFileOrFolder(folderNode.entry.id);
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await navigationBarPage.clickHomeButton();
|
||||
@@ -129,27 +122,27 @@ describe('Document List Component', () => {
|
||||
await contentServicesPage.checkDocumentCardPropertyIsShowed(folderName, cardProperties.CREATED);
|
||||
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(folderName, cardProperties.DISPLAY_NAME)).toBe(folderName);
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(folderName, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(folderName, cardProperties.CREATED_BY)).toBe(`${acsUser.firstName} ${acsUser.lastName}`);
|
||||
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(folderName, cardProperties.CREATED)).toMatch(/(ago|few)/);
|
||||
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.DISPLAY_NAME)).toBe(pdfFile.name);
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.SIZE)).toBe(`105.02 KB`);
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.CREATED_BY)).toBe(`${acsUser.firstName} ${acsUser.lastName}`);
|
||||
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.CREATED)).toMatch(/(ago|few)/);
|
||||
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.DISPLAY_NAME)).toBe(docxFile.name);
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.SIZE)).toBe(`11.81 KB`);
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.CREATED_BY))
|
||||
.toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
||||
.toBe(`${acsUser.firstName} ${acsUser.lastName}`);
|
||||
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.CREATED)).toMatch(/(ago|few)/);
|
||||
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.DISPLAY_NAME)).toBe(testFile.name);
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.SIZE)).toBe(`14 Bytes`);
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.CREATED_BY))
|
||||
.toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
||||
.toBe(`${acsUser.firstName} ${acsUser.lastName}`);
|
||||
|
||||
await expect(await contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.CREATED)).toMatch(/(ago|few)/);
|
||||
});
|
||||
|
||||
@@ -15,16 +15,23 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, UploadActions, PaginationPage, LocalStorageUtil, FileBrowserUtil } from '@alfresco/adf-testing';
|
||||
import {
|
||||
ArrayUtil,
|
||||
StringUtil,
|
||||
LoginSSOPage,
|
||||
UploadActions,
|
||||
PaginationPage,
|
||||
LocalStorageUtil,
|
||||
FileBrowserUtil,
|
||||
ApiService, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FolderModel } from '../../models/ACS/folder.model';
|
||||
import { Util } from '../../util/util';
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { UploadDialogPage } from '../../pages/adf/dialog/upload-dialog.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Document List - Pagination', () => {
|
||||
const pagination = {
|
||||
@@ -47,13 +54,13 @@ describe('Document List - Pagination', () => {
|
||||
default: '25'
|
||||
};
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const paginationPage = new PaginationPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const uploadDialog = new UploadDialogPage();
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
let acsUser: UserModel;
|
||||
const newFolderModel = new FolderModel({ name: 'newFolder' });
|
||||
let fileNames = [];
|
||||
const nrOfFiles = 20;
|
||||
@@ -64,12 +71,10 @@ describe('Document List - Pagination', () => {
|
||||
const folderTwoModel = new FolderModel({ name: 'folderTwo' });
|
||||
const folderThreeModel = new FolderModel({ name: 'folderThree' });
|
||||
const numberOfSubFolders = 6;
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
const docxFileModel = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.DOCX.file_name,
|
||||
@@ -77,12 +82,12 @@ describe('Document List - Pagination', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
fileNames = Util.generateSequenceFiles(10, nrOfFiles + 9, pagination.base, pagination.extension);
|
||||
secondSetOfFiles = Util.generateSequenceFiles(10, secondSetNumber + 9, pagination.secondSetBase, pagination.extension);
|
||||
fileNames = StringUtil.generateFilesNames(10, nrOfFiles + 9, pagination.base, pagination.extension);
|
||||
secondSetOfFiles = StringUtil.generateFilesNames(10, secondSetNumber + 9, pagination.secondSetBase, pagination.extension);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
const folderThreeUploadedModel = await uploadActions.createFolder(folderThreeModel.name, '-my-');
|
||||
const newFolderUploadedModel = await uploadActions.createFolder(newFolderModel.name, '-my-');
|
||||
@@ -90,7 +95,7 @@ describe('Document List - Pagination', () => {
|
||||
await uploadActions.createEmptyFiles(fileNames, newFolderUploadedModel.entry.id);
|
||||
await uploadActions.createEmptyFiles(secondSetOfFiles, folderThreeUploadedModel.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
@@ -108,7 +113,7 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual( `Showing 1-${nrOfFiles} of ${nrOfFiles}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(nrOfFiles);
|
||||
const list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, fileNames)).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, fileNames)).toEqual(true);
|
||||
await paginationPage.checkNextPageButtonIsDisabled();
|
||||
await paginationPage.checkPreviousPageButtonIsDisabled();
|
||||
});
|
||||
@@ -122,17 +127,17 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual( `Showing 1-${nrOfFiles} of ${nrOfFiles}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(nrOfFiles);
|
||||
const list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, fileNames)).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, fileNames)).toEqual(true);
|
||||
await paginationPage.checkNextPageButtonIsDisabled();
|
||||
await paginationPage.checkPreviousPageButtonIsDisabled();
|
||||
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
await contentServicesPage.checkDocumentListElementsAreDisplayed();
|
||||
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.twenty);
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
it('[C260069] Should be able to set Items per page to 5', async () => {
|
||||
@@ -144,7 +149,7 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual(`Showing 1-${itemsPerPage.fiveValue * currentPage} of ${nrOfFiles}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
|
||||
let list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, fileNames.slice(0, 5))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, fileNames.slice(0, 5))).toEqual(true);
|
||||
await paginationPage.clickOnNextPage();
|
||||
currentPage++;
|
||||
await contentServicesPage.checkDocumentListElementsAreDisplayed();
|
||||
@@ -152,7 +157,7 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual( `Showing 6-${itemsPerPage.fiveValue * currentPage} of ${nrOfFiles}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
|
||||
list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, fileNames.slice(5, 10))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, fileNames.slice(5, 10))).toEqual(true);
|
||||
await paginationPage.clickOnNextPage();
|
||||
currentPage++;
|
||||
await contentServicesPage.checkDocumentListElementsAreDisplayed();
|
||||
@@ -160,7 +165,7 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual(`Showing 11-${itemsPerPage.fiveValue * currentPage} of ${nrOfFiles}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
|
||||
list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, fileNames.slice(10, 15))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, fileNames.slice(10, 15))).toEqual(true);
|
||||
await paginationPage.clickOnNextPage();
|
||||
currentPage++;
|
||||
await contentServicesPage.checkDocumentListElementsAreDisplayed();
|
||||
@@ -168,13 +173,13 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual(`Showing 16-${itemsPerPage.fiveValue * currentPage} of ${nrOfFiles}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
|
||||
list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, fileNames.slice(15, 20))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, fileNames.slice(15, 20))).toEqual(true);
|
||||
|
||||
await browser.refresh();
|
||||
await contentServicesPage.checkDocumentListElementsAreDisplayed();
|
||||
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
it('[C260067] Should be able to set Items per page to 10', async () => {
|
||||
@@ -187,7 +192,7 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual(`Showing 1-${itemsPerPage.tenValue * currentPage} of ${nrOfFiles}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.tenValue);
|
||||
let list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, fileNames.slice(0, 10))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, fileNames.slice(0, 10))).toEqual(true);
|
||||
await paginationPage.clickOnNextPage();
|
||||
currentPage++;
|
||||
await contentServicesPage.checkDocumentListElementsAreDisplayed();
|
||||
@@ -195,13 +200,13 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual(`Showing 11-${itemsPerPage.tenValue * currentPage} of ${nrOfFiles}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.tenValue);
|
||||
list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, fileNames.slice(10, 20))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, fileNames.slice(10, 20))).toEqual(true);
|
||||
|
||||
await browser.refresh();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.ten);
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
currentPage = 1;
|
||||
});
|
||||
|
||||
@@ -216,7 +221,7 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual(`Showing 1-${itemsPerPage.fifteenValue * currentPage} of ${nrOfFiles}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fifteenValue);
|
||||
let list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, fileNames.slice(0, 15))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, fileNames.slice(0, 15))).toEqual(true);
|
||||
currentPage++;
|
||||
await paginationPage.clickOnNextPage();
|
||||
await contentServicesPage.checkDocumentListElementsAreDisplayed();
|
||||
@@ -225,7 +230,7 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual( `Showing 16-${nrOfFiles} of ${nrOfFiles}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(nrOfFiles - itemsPerPage.fifteenValue);
|
||||
list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, fileNames.slice(15, 20))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, fileNames.slice(15, 20))).toEqual(true);
|
||||
|
||||
await browser.refresh();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
@@ -279,7 +284,7 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual(`Showing 1-${itemsPerPage.fifteenValue * currentPage} of ${secondSetNumber}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fifteenValue);
|
||||
let list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, secondSetOfFiles.slice(0, 15))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, secondSetOfFiles.slice(0, 15))).toEqual(true);
|
||||
|
||||
currentPage++;
|
||||
await paginationPage.clickOnNextPage();
|
||||
@@ -288,7 +293,7 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual(`Showing 16-${secondSetNumber} of ${secondSetNumber}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(secondSetNumber - itemsPerPage.fifteenValue);
|
||||
list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, secondSetOfFiles.slice(15, 25))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, secondSetOfFiles.slice(15, 25))).toEqual(true);
|
||||
|
||||
currentPage = 1;
|
||||
await paginationPage.selectItemsPerPage(itemsPerPage.twenty);
|
||||
@@ -297,7 +302,7 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual(`Showing 1-${itemsPerPage.twentyValue * currentPage} of ${secondSetNumber}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.twentyValue);
|
||||
list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, secondSetOfFiles.slice(0, 20))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, secondSetOfFiles.slice(0, 20))).toEqual(true);
|
||||
|
||||
currentPage++;
|
||||
await paginationPage.clickOnNextPage();
|
||||
@@ -306,7 +311,7 @@ describe('Document List - Pagination', () => {
|
||||
await expect(await paginationPage.getPaginationRange()).toEqual( `Showing 21-${secondSetNumber} of ${secondSetNumber}`);
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(secondSetNumber - itemsPerPage.twentyValue);
|
||||
list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, secondSetOfFiles.slice(20, 25))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, secondSetOfFiles.slice(20, 25))).toEqual(true);
|
||||
});
|
||||
|
||||
it('[C216321] Should be able to modify the supported page size value', async () => {
|
||||
|
||||
@@ -18,46 +18,38 @@
|
||||
import { browser } from 'protractor';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { LoginPage, ErrorPage, StringUtil, BrowserActions } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { LoginSSOPage, ErrorPage, StringUtil, BrowserActions, ApiService } from '@alfresco/adf-testing';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Document List Component', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const errorPage = new ErrorPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
let privateSite;
|
||||
let acsUser = null;
|
||||
|
||||
beforeAll(() => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
});
|
||||
|
||||
describe('Permission Message', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
acsUser = new AcsUserModel();
|
||||
const siteName = `PRIVATE_TEST_SITE_${StringUtil.generateRandomString(5)}`;
|
||||
const privateSiteBody = { visibility: 'PRIVATE', title: siteName };
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
privateSite = await this.alfrescoJsApi.core.sitesApi.createSite(privateSiteBody);
|
||||
privateSite = await apiService.getInstance().core.sitesApi.createSite(privateSiteBody);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(privateSite.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(privateSite.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
it('[C217334] Should display a message when accessing file without permissions', async () => {
|
||||
|
||||
@@ -15,28 +15,24 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, UploadActions } from '@alfresco/adf-testing';
|
||||
import { ApiService, DropActions, LoginSSOPage, UploadActions } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { DropActions } from '../../actions/drop.actions';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Document List Component - Properties', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const navigationBar = new NavigationBarPage();
|
||||
|
||||
let subFolder, parentFolder;
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const apiService = new ApiService();
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
let acsUser = null;
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const pngFile = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
@@ -44,25 +40,22 @@ describe('Document List Component - Properties', () => {
|
||||
});
|
||||
|
||||
describe('Allow drop files property', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
acsUser = new AcsUserModel();
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
parentFolder = await uploadActions.createFolder('parentFolder', '-my-');
|
||||
|
||||
subFolder = await uploadActions.createFolder('subFolder', parentFolder.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await uploadActions.deleteFileOrFolder(subFolder.entry.id);
|
||||
await uploadActions.deleteFileOrFolder(parentFolder.entry.id);
|
||||
});
|
||||
|
||||
@@ -15,42 +15,38 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, PaginationPage } from '@alfresco/adf-testing';
|
||||
import { ApiService, LoginSSOPage, PaginationPage, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FolderModel } from '../../models/ACS/folder.model';
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { UploadDialogPage } from '../../pages/adf/dialog/upload-dialog.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Document List - Selection', () => {
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const uploadDialog = new UploadDialogPage();
|
||||
const paginationPage = new PaginationPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
let acsUser: UserModel;
|
||||
const folderModel = new FolderModel({ name: 'folder' });
|
||||
const docxFileModel = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.DOCX.file_name,
|
||||
'location': browser.params.resources.Files.ADF_DOCUMENTS.DOCX.file_location
|
||||
});
|
||||
const displayColumnName = 'Display name';
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
try {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await contentServicesPage.goToDocumentList();
|
||||
await contentServicesPage.checkDocumentListElementsAreDisplayed();
|
||||
|
||||
@@ -16,29 +16,27 @@
|
||||
*/
|
||||
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, StringUtil, UploadActions } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { ApiService, LoginSSOPage, StringUtil, UploadActions } from '@alfresco/adf-testing';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Document List Component', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
let uploadedFolder, uploadedFolderExtra;
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const apiService = new ApiService();
|
||||
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
let acsUser = null;
|
||||
let testFileNode, pdfBFileNode;
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
afterEach(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
if (uploadedFolder) {
|
||||
await uploadActions.deleteFileOrFolder(uploadedFolder.entry.id);
|
||||
uploadedFolder = null;
|
||||
@@ -55,11 +53,9 @@ describe('Document List Component', () => {
|
||||
await uploadActions.deleteFileOrFolder(pdfBFileNode.entry.id);
|
||||
pdfBFileNode = null;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
describe('Thumbnails and tooltips', () => {
|
||||
|
||||
const pdfFile = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_path
|
||||
@@ -78,12 +74,11 @@ describe('Document List Component', () => {
|
||||
let filePdfNode, fileTestNode, fileDocxNode, folderNode;
|
||||
|
||||
beforeAll(async () => {
|
||||
acsUser = new AcsUserModel();
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
filePdfNode = await uploadActions.uploadFile(pdfFile.location, pdfFile.name, '-my-');
|
||||
fileTestNode = await uploadActions.uploadFile(testFile.location, testFile.name, '-my-');
|
||||
fileDocxNode = await uploadActions.uploadFile(docxFile.location, docxFile.name, '-my-');
|
||||
@@ -93,7 +88,7 @@ describe('Document List Component', () => {
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
if (filePdfNode) {
|
||||
await uploadActions.deleteFileOrFolder(filePdfNode.entry.id);
|
||||
}
|
||||
@@ -106,11 +101,10 @@ describe('Document List Component', () => {
|
||||
if (folderNode) {
|
||||
await uploadActions.deleteFileOrFolder(folderNode.entry.id);
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
|
||||
@@ -15,29 +15,27 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, UploadActions, StringUtil } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, UploadActions, StringUtil, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
import { ContentServicesPage } from '../pages/adf/content-services.page';
|
||||
import { LockFilePage } from '../pages/adf/lock-file.page';
|
||||
import { AcsUserModel } from '../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../models/ACS/file.model';
|
||||
import CONSTANTS = require('../util/constants');
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
||||
describe('Lock File', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const lockFilePage = new LockFilePage();
|
||||
const contentServices = new ContentServicesPage();
|
||||
const adminUser = new AcsUserModel();
|
||||
const managerUser = new AcsUserModel();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const adminUser = new UserModel();
|
||||
const managerUser = new UserModel();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
const pngFileModel = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
@@ -52,34 +50,33 @@ describe('Lock File', () => {
|
||||
let nodeId, site, documentLibrary, lockedFileNodeId;
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(adminUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(managerUser);
|
||||
await usersActions.createUser(adminUser);
|
||||
await usersActions.createUser(managerUser);
|
||||
|
||||
await this.alfrescoJsApi.login(adminUser.id, adminUser.password);
|
||||
await apiService.getInstance().login(adminUser.email, adminUser.password);
|
||||
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(),
|
||||
visibility: 'PRIVATE'
|
||||
});
|
||||
|
||||
const resultNode = await this.alfrescoJsApi.core.nodesApi.getNodeChildren(site.entry.guid);
|
||||
const resultNode = await apiService.getInstance().core.nodesApi.getNodeChildren(site.entry.guid);
|
||||
|
||||
documentLibrary = resultNode.list.entries[0].entry.id;
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: managerUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: managerUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
describe('Lock file interaction with the UI', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
const pngLockedUploadedFile = await uploadActions.uploadFile(pngFileToLock.location, pngFileToLock.name, documentLibrary);
|
||||
|
||||
@@ -90,41 +87,35 @@ describe('Lock File', () => {
|
||||
try {
|
||||
const pngUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, documentLibrary);
|
||||
nodeId = pngUploadedFile.entry.id;
|
||||
await loginPage.loginToContentServicesUsingUserModel(adminUser);
|
||||
await loginPage.login(adminUser.email, adminUser.password);
|
||||
await navigationBarPage.openContentServicesFolder(documentLibrary);
|
||||
|
||||
await contentServices.waitForTableBody();
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
try {
|
||||
await this.alfrescoJsApi.login(adminUser.id, adminUser.password);
|
||||
await apiService.getInstance().login(adminUser.email, adminUser.password);
|
||||
|
||||
await uploadActions.deleteFileOrFolder(nodeId);
|
||||
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
try {
|
||||
await this.alfrescoJsApi.login(adminUser.id, adminUser.password);
|
||||
await apiService.getInstance().login(adminUser.email, adminUser.password);
|
||||
|
||||
await this.alfrescoJsApi.core.nodesApi.unlockNode(lockedFileNodeId);
|
||||
await apiService.getInstance().core.nodesApi.unlockNode(lockedFileNodeId);
|
||||
|
||||
await uploadActions.deleteFileOrFolder(lockedFileNodeId);
|
||||
|
||||
} catch (error) {
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
it('[C286604] Should be able to open Lock file option by clicking the lock image', async () => {
|
||||
await contentServices.lockContent(pngFileModel.name);
|
||||
@@ -171,27 +162,25 @@ describe('Lock File', () => {
|
||||
});
|
||||
|
||||
describe('Locked file without owner permissions', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
const pngUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, documentLibrary);
|
||||
|
||||
nodeId = pngUploadedFile.entry.id;
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(managerUser);
|
||||
await loginPage.login(managerUser.email, managerUser.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(documentLibrary);
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await this.alfrescoJsApi.login(adminUser.id, adminUser.password);
|
||||
await apiService.getInstance().login(adminUser.email, adminUser.password);
|
||||
|
||||
try {
|
||||
await this.alfrescoJsApi.core.nodesApi.unlockNode(nodeId);
|
||||
await apiService.getInstance().core.nodesApi.unlockNode(nodeId);
|
||||
await uploadActions.deleteFileOrFolder(nodeId);
|
||||
} catch (error) {
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
it('[C286610] Should not be able to delete a locked file', async () => {
|
||||
await contentServices.lockContent(pngFileModel.name);
|
||||
@@ -201,12 +190,11 @@ describe('Lock File', () => {
|
||||
await lockFilePage.clickSaveButton();
|
||||
|
||||
try {
|
||||
await this.alfrescoJsApi.core.nodesApi.deleteNode(nodeId);
|
||||
await apiService.getInstance().core.nodesApi.deleteNode(nodeId);
|
||||
} catch (error) {
|
||||
await expect(error.status).toEqual(409);
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
it('[C286611] Should not be able to rename a locked file', async () => {
|
||||
await contentServices.lockContent(pngFileModel.name);
|
||||
@@ -216,13 +204,12 @@ describe('Lock File', () => {
|
||||
await lockFilePage.clickSaveButton();
|
||||
|
||||
try {
|
||||
await this.alfrescoJsApi.core.nodesApi.updateNode(nodeId, { name: 'My new name' });
|
||||
await apiService.getInstance().core.nodesApi.updateNode(nodeId, { name: 'My new name' });
|
||||
|
||||
} catch (error) {
|
||||
await expect(error.status).toEqual(409);
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
it('[C286612] Should not be able to move a locked file', async () => {
|
||||
await contentServices.lockContent(pngFileModel.name);
|
||||
@@ -232,7 +219,7 @@ describe('Lock File', () => {
|
||||
await lockFilePage.clickSaveButton();
|
||||
|
||||
try {
|
||||
await this.alfrescoJsApi.core.nodesApi.moveNode(nodeId, { targetParentId: '-my-' });
|
||||
await apiService.getInstance().core.nodesApi.moveNode(nodeId, { targetParentId: '-my-' });
|
||||
|
||||
} catch (error) {
|
||||
await expect(error.status).toEqual(409);
|
||||
@@ -247,7 +234,7 @@ describe('Lock File', () => {
|
||||
await lockFilePage.clickSaveButton();
|
||||
|
||||
try {
|
||||
await this.alfrescoJsApi.core.nodesApi.updateNodeContent(nodeId, 'NEW FILE CONTENT');
|
||||
await apiService.getInstance().core.nodesApi.updateNodeContent(nodeId, 'NEW FILE CONTENT');
|
||||
|
||||
} catch (error) {
|
||||
await expect(error.status).toEqual(409);
|
||||
@@ -256,7 +243,6 @@ describe('Lock File', () => {
|
||||
});
|
||||
|
||||
describe('Locked file with owner permissions', () => {
|
||||
|
||||
let pngFileToBeLocked;
|
||||
|
||||
beforeAll(async () => {
|
||||
@@ -265,29 +251,26 @@ describe('Lock File', () => {
|
||||
lockedFileNodeId = pngFileToBeLocked.entry.id;
|
||||
} catch (error) {
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
try {
|
||||
const pngUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, documentLibrary);
|
||||
nodeId = pngUploadedFile.entry.id;
|
||||
await loginPage.loginToContentServicesUsingUserModel(adminUser);
|
||||
await loginPage.login(adminUser.email, adminUser.password);
|
||||
await navigationBarPage.openContentServicesFolder(documentLibrary);
|
||||
} catch (error) {
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await this.alfrescoJsApi.login(adminUser.id, adminUser.password);
|
||||
await apiService.getInstance().login(adminUser.email, adminUser.password);
|
||||
|
||||
try {
|
||||
await uploadActions.deleteFileOrFolder(nodeId);
|
||||
} catch (error) {
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
it('[C286614] Owner of the locked file should be able to rename if Allow owner to modify is checked', async () => {
|
||||
await contentServices.lockContent(pngFileModel.name);
|
||||
@@ -298,12 +281,11 @@ describe('Lock File', () => {
|
||||
await lockFilePage.clickSaveButton();
|
||||
|
||||
try {
|
||||
const response = await this.alfrescoJsApi.core.nodesApi.updateNode(nodeId, { name: 'My new name' });
|
||||
const response = await apiService.getInstance().core.nodesApi.updateNode(nodeId, { name: 'My new name' });
|
||||
await expect(response.entry.name).toEqual('My new name');
|
||||
} catch (error) {
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
it('[C286615] Owner of the locked file should be able to update a new version if Allow owner to modify is checked', async () => {
|
||||
await contentServices.lockContent(pngFileModel.name);
|
||||
@@ -314,12 +296,11 @@ describe('Lock File', () => {
|
||||
await lockFilePage.clickSaveButton();
|
||||
|
||||
try {
|
||||
const response = await this.alfrescoJsApi.core.nodesApi.updateNodeContent(nodeId, 'NEW FILE CONTENT');
|
||||
await expect(response.entry.modifiedAt).toBeGreaterThan(response.entry.createdAt);
|
||||
const response = await apiService.getInstance().core.nodesApi.updateNodeContent(nodeId, 'NEW FILE CONTENT');
|
||||
await expect(response.entry.modifiedAt.getTime()).toBeGreaterThan(response.entry.createdAt.getTime());
|
||||
} catch (error) {
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
it('[C286616] Owner of the locked file should be able to move if Allow owner to modify is checked', async () => {
|
||||
await contentServices.lockContent(pngFileModel.name);
|
||||
@@ -330,15 +311,14 @@ describe('Lock File', () => {
|
||||
await lockFilePage.clickSaveButton();
|
||||
|
||||
try {
|
||||
await this.alfrescoJsApi.core.nodesApi.moveNode(nodeId, { targetParentId: '-my-' });
|
||||
await apiService.getInstance().core.nodesApi.moveNode(nodeId, { targetParentId: '-my-' });
|
||||
|
||||
const movedFile = await this.alfrescoJsApi.core.nodesApi.getNode(nodeId);
|
||||
const movedFile = await apiService.getInstance().core.nodesApi.getNode(nodeId);
|
||||
|
||||
await expect(movedFile.entry.parentId).not.toEqual(documentLibrary);
|
||||
} catch (error) {
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
it('[C286617] Owner of the locked file should be able to delete if Allow owner to modify is checked', async () => {
|
||||
await contentServices.lockContent(pngFileToLock.name);
|
||||
|
||||
@@ -15,27 +15,34 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, UploadActions, LocalStorageUtil, ViewerPage } from '@alfresco/adf-testing';
|
||||
import {
|
||||
CheckboxPage,
|
||||
LoginSSOPage,
|
||||
UploadActions,
|
||||
LocalStorageUtil,
|
||||
ViewerPage,
|
||||
ApiService, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { MetadataViewPage } from '../../pages/adf/metadata-view.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { check } from '../../util/material';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Aspect oriented config', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const viewerPage = new ViewerPage();
|
||||
const metadataViewPage = new MetadataViewPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const modelOneName = 'modelOne', emptyAspectName = 'emptyAspect';
|
||||
const defaultModel = 'cm', defaultEmptyPropertiesAspect = 'taggable', aspectName = 'Taggable';
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
let acsUser: UserModel;
|
||||
|
||||
const pngFileModel = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
@@ -44,39 +51,35 @@ describe('Aspect oriented config', () => {
|
||||
let uploadActions;
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
uploadActions = new UploadActions(apiService);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
try {
|
||||
await this.alfrescoJsApi.core.customModelApi.createCustomModel('ACTIVE', modelOneName, modelOneName, modelOneName, modelOneName);
|
||||
await apiService.getInstance().core.customModelApi.createCustomModel('ACTIVE', modelOneName, modelOneName, modelOneName, modelOneName);
|
||||
} catch (e) {
|
||||
}
|
||||
|
||||
try {
|
||||
await this.alfrescoJsApi.core.customModelApi.createCustomAspect(modelOneName, emptyAspectName, null, emptyAspectName, emptyAspectName);
|
||||
await apiService.getInstance().core.customModelApi.createCustomAspect(modelOneName, emptyAspectName, null, emptyAspectName, emptyAspectName);
|
||||
} catch (e) {
|
||||
}
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
const uploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, '-my-');
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
const aspects = await this.alfrescoJsApi.core.nodesApi.getNode(uploadedFile.entry.id);
|
||||
const aspects = await apiService.getInstance().core.nodesApi.getNode(uploadedFile.entry.id);
|
||||
|
||||
aspects.entry.aspectNames.push(modelOneName.concat(':', emptyAspectName));
|
||||
|
||||
aspects.entry.aspectNames.push(defaultModel.concat(':', defaultEmptyPropertiesAspect));
|
||||
|
||||
await this.alfrescoJsApi.core.nodesApi.updateNode(uploadedFile.entry.id, { aspectNames: aspects.entry.aspectNames });
|
||||
await apiService.getInstance().core.nodesApi.updateNode(uploadedFile.entry.id, { aspectNames: aspects.entry.aspectNames });
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
@@ -89,7 +92,6 @@ describe('Aspect oriented config', () => {
|
||||
});
|
||||
|
||||
it('[C261117] Should be possible restrict the display properties of one an aspect', async () => {
|
||||
|
||||
await LocalStorageUtil.setConfigField('content-metadata', JSON.stringify({
|
||||
presets: {
|
||||
default: [
|
||||
@@ -130,7 +132,6 @@ describe('Aspect oriented config', () => {
|
||||
});
|
||||
|
||||
it('[C260185] Should ignore not existing aspect when present in the configuration', async () => {
|
||||
|
||||
await LocalStorageUtil.setConfigField('content-metadata', JSON.stringify({
|
||||
presets: {
|
||||
default: {
|
||||
@@ -157,7 +158,6 @@ describe('Aspect oriented config', () => {
|
||||
});
|
||||
|
||||
it('[C260183] Should show all the aspect if the content-metadata configuration is NOT provided', async () => {
|
||||
|
||||
await LocalStorageUtil.setConfigField('content-metadata', '{}');
|
||||
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
@@ -175,7 +175,6 @@ describe('Aspect oriented config', () => {
|
||||
});
|
||||
|
||||
it('[C260182] Should show all the aspects if the default configuration contains the star symbol', async () => {
|
||||
|
||||
await LocalStorageUtil.setConfigField('content-metadata', JSON.stringify({
|
||||
presets: {
|
||||
default: '*'
|
||||
@@ -197,7 +196,6 @@ describe('Aspect oriented config', () => {
|
||||
});
|
||||
|
||||
it('[C268899] Should be possible use a Translation key as Title of a metadata group', async () => {
|
||||
|
||||
await LocalStorageUtil.setConfigField('content-metadata', '{' +
|
||||
' "presets": {' +
|
||||
' "default": [' +
|
||||
@@ -241,7 +239,6 @@ describe('Aspect oriented config', () => {
|
||||
});
|
||||
|
||||
it('[C279968] Should be possible use a custom preset', async () => {
|
||||
|
||||
await LocalStorageUtil.setConfigField('content-metadata', '{' +
|
||||
' "presets": {' +
|
||||
' "custom-preset": {' +
|
||||
@@ -258,7 +255,7 @@ describe('Aspect oriented config', () => {
|
||||
await viewerPage.checkInfoSideBarIsDisplayed();
|
||||
await metadataViewPage.clickOnPropertiesTab();
|
||||
|
||||
await check(metadataViewPage.presetSwitch);
|
||||
await CheckboxPage.check(metadataViewPage.presetSwitch);
|
||||
|
||||
await metadataViewPage.enterPresetText('custom-preset');
|
||||
|
||||
@@ -270,7 +267,6 @@ describe('Aspect oriented config', () => {
|
||||
});
|
||||
|
||||
it('[C299186] The aspect without properties is not displayed', async () => {
|
||||
|
||||
await LocalStorageUtil.setConfigField('content-metadata', '{' +
|
||||
' "presets": { "' + modelOneName +
|
||||
' ": { "' + modelOneName + ':' + emptyAspectName +
|
||||
@@ -293,7 +289,6 @@ describe('Aspect oriented config', () => {
|
||||
});
|
||||
|
||||
it('[C299187] The aspect with empty properties is displayed when edit', async () => {
|
||||
|
||||
await LocalStorageUtil.setConfigField('content-metadata', '{' +
|
||||
' "presets": { "' + defaultModel +
|
||||
' ": { "' + defaultModel + ':' + defaultEmptyPropertiesAspect +
|
||||
|
||||
@@ -15,14 +15,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, UploadActions, StringUtil, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, UploadActions, StringUtil, ViewerPage, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { MetadataViewPage } from '../../pages/adf/metadata-view.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('permissions', () => {
|
||||
|
||||
@@ -39,64 +38,62 @@ describe('permissions', () => {
|
||||
EDIT_BUTTON_TOOLTIP: 'Edit'
|
||||
};
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const viewerPage = new ViewerPage();
|
||||
const metadataViewPage = new MetadataViewPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
const consumerUser = new AcsUserModel();
|
||||
const collaboratorUser = new AcsUserModel();
|
||||
const contributorUser = new AcsUserModel();
|
||||
const consumerUser = new UserModel();
|
||||
const collaboratorUser = new UserModel();
|
||||
const contributorUser = new UserModel();
|
||||
let site;
|
||||
|
||||
const pngFileModel = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_path
|
||||
});
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await usersActions.createUser(consumerUser);
|
||||
await usersActions.createUser(collaboratorUser);
|
||||
await usersActions.createUser(contributorUser);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(consumerUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(collaboratorUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(contributorUser);
|
||||
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: consumerUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: consumerUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.CONSUMER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: collaboratorUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: collaboratorUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.COLLABORATOR
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: contributorUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: contributorUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.CONTRIBUTOR
|
||||
});
|
||||
|
||||
await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, site.entry.guid);
|
||||
});
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
it('[C274692] Should not be possible edit metadata properties when the user is a consumer user', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(consumerUser);
|
||||
await loginPage.login(consumerUser.email, consumerUser.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(site.entry.guid);
|
||||
|
||||
@@ -108,7 +105,7 @@ describe('permissions', () => {
|
||||
});
|
||||
|
||||
it('[C279971] Should be possible edit metadata properties when the user is a collaborator user', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(collaboratorUser);
|
||||
await loginPage.login(collaboratorUser.email, collaboratorUser.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(site.entry.guid);
|
||||
|
||||
@@ -128,7 +125,7 @@ describe('permissions', () => {
|
||||
});
|
||||
|
||||
it('[C279972] Should be possible edit metadata properties when the user is a contributor user', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(collaboratorUser);
|
||||
await loginPage.login(collaboratorUser.email, collaboratorUser.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(site.entry.guid);
|
||||
|
||||
|
||||
@@ -15,15 +15,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, UploadActions, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { ApiService, CheckboxPage, LoginSSOPage, UploadActions, UserModel, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { MetadataViewPage } from '../../pages/adf/metadata-view.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { check, uncheck } from '../../util/material';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('CardView Component - properties', () => {
|
||||
|
||||
@@ -40,29 +38,26 @@ describe('CardView Component - properties', () => {
|
||||
EDIT_BUTTON_TOOLTIP: 'Edit'
|
||||
};
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const viewerPage = new ViewerPage();
|
||||
const metadataViewPage = new MetadataViewPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
let acsUser: UserModel;
|
||||
|
||||
const pngFileModel = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_path
|
||||
});
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const apiService = new ApiService();
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
const pdfUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, '-my-');
|
||||
|
||||
@@ -70,7 +65,7 @@ describe('CardView Component - properties', () => {
|
||||
|
||||
pngFileModel.update(pdfUploadedFile.entry);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
@@ -96,7 +91,7 @@ describe('CardView Component - properties', () => {
|
||||
await metadataViewPage.checkPropertyIsVisible('properties.exif:flash', 'boolean');
|
||||
await metadataViewPage.checkPropertyIsNotVisible('properties.exif:model', 'textitem');
|
||||
|
||||
await check(metadataViewPage.displayEmptySwitch);
|
||||
await CheckboxPage.check(metadataViewPage.displayEmptySwitch);
|
||||
|
||||
await metadataViewPage.checkPropertyIsVisible('properties.exif:flash', 'boolean');
|
||||
await metadataViewPage.checkPropertyIsVisible('properties.exif:model', 'textitem');
|
||||
@@ -109,7 +104,7 @@ describe('CardView Component - properties', () => {
|
||||
await metadataViewPage.clickOnPropertiesTab();
|
||||
await metadataViewPage.editIconIsDisplayed();
|
||||
|
||||
await check(metadataViewPage.readonlySwitch);
|
||||
await CheckboxPage.check(metadataViewPage.readonlySwitch);
|
||||
|
||||
await metadataViewPage.editIconIsNotDisplayed();
|
||||
});
|
||||
@@ -135,7 +130,7 @@ describe('CardView Component - properties', () => {
|
||||
await metadataViewPage.checkMetadataGroupIsExpand('EXIF');
|
||||
await metadataViewPage.checkMetadataGroupIsNotExpand('properties');
|
||||
|
||||
await check(metadataViewPage.multiSwitch);
|
||||
await CheckboxPage.check(metadataViewPage.multiSwitch);
|
||||
|
||||
await metadataViewPage.clickMetadataGroup('properties');
|
||||
|
||||
@@ -149,13 +144,13 @@ describe('CardView Component - properties', () => {
|
||||
await viewerPage.checkInfoSideBarIsDisplayed();
|
||||
await metadataViewPage.clickOnPropertiesTab();
|
||||
|
||||
await uncheck(metadataViewPage.defaultPropertiesSwitch);
|
||||
await CheckboxPage.uncheck(metadataViewPage.defaultPropertiesSwitch);
|
||||
|
||||
await metadataViewPage.checkMetadataGroupIsNotPresent('properties');
|
||||
await metadataViewPage.checkMetadataGroupIsPresent('EXIF');
|
||||
await metadataViewPage.checkMetadataGroupIsExpand('EXIF');
|
||||
|
||||
await check(metadataViewPage.defaultPropertiesSwitch);
|
||||
await CheckboxPage.check(metadataViewPage.defaultPropertiesSwitch);
|
||||
|
||||
await metadataViewPage.checkMetadataGroupIsPresent('properties');
|
||||
await metadataViewPage.checkMetadataGroupIsExpand('properties');
|
||||
@@ -169,7 +164,7 @@ describe('CardView Component - properties', () => {
|
||||
|
||||
await metadataViewPage.informationButtonIsDisplayed();
|
||||
|
||||
await uncheck(metadataViewPage.defaultPropertiesSwitch);
|
||||
await CheckboxPage.uncheck(metadataViewPage.defaultPropertiesSwitch);
|
||||
|
||||
await metadataViewPage.informationButtonIsNotDisplayed();
|
||||
});
|
||||
@@ -185,7 +180,7 @@ describe('CardView Component - properties', () => {
|
||||
|
||||
await metadataViewPage.checkMetadataGroupIsExpand('EXIF');
|
||||
await metadataViewPage.checkMetadataGroupIsNotExpand('properties');
|
||||
await check(metadataViewPage.displayEmptySwitch);
|
||||
await CheckboxPage.check(metadataViewPage.displayEmptySwitch);
|
||||
|
||||
await metadataViewPage.checkPropertyIsVisible('properties.exif:flash', 'boolean');
|
||||
await metadataViewPage.checkPropertyIsVisible('properties.exif:model', 'textitem');
|
||||
|
||||
@@ -16,21 +16,20 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
LoginPage,
|
||||
LoginSSOPage,
|
||||
LocalStorageUtil,
|
||||
BrowserActions,
|
||||
UploadActions,
|
||||
ViewerPage,
|
||||
StringUtil
|
||||
StringUtil, ApiService, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { MetadataViewPage } from '../../pages/adf/metadata-view.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { browser } from 'protractor';
|
||||
import moment = require('moment');
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Metadata component', () => {
|
||||
|
||||
@@ -47,13 +46,13 @@ describe('Metadata component', () => {
|
||||
EDIT_BUTTON_TOOLTIP: 'Edit'
|
||||
};
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const viewerPage = new ViewerPage();
|
||||
const metadataViewPage = new MetadataViewPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
let acsUser: UserModel;
|
||||
|
||||
const folderName = StringUtil.generateRandomString();
|
||||
|
||||
@@ -62,17 +61,14 @@ describe('Metadata component', () => {
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_path
|
||||
});
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const apiService = new ApiService();
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
const pngUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, '-my-');
|
||||
Object.assign(pngFileModel, pngUploadedFile.entry);
|
||||
pngFileModel.update(pngUploadedFile.entry);
|
||||
@@ -83,9 +79,8 @@ describe('Metadata component', () => {
|
||||
});
|
||||
|
||||
describe('Viewer Metadata', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
await LocalStorageUtil.setConfigField('content-metadata', JSON.stringify({
|
||||
@@ -229,11 +224,10 @@ describe('Metadata component', () => {
|
||||
});
|
||||
|
||||
describe('Folder metadata', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
await uploadActions.createFolder(folderName, '-my-');
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
});
|
||||
@@ -266,7 +260,7 @@ describe('Metadata component', () => {
|
||||
});
|
||||
|
||||
it('[C279960] Should show the last username modifier when modify a File', async () => {
|
||||
await loginPage.loginToContentServices(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await BrowserActions.getUrl(browser.params.testConfig.adf.url + `/(overlay:files/${pngFileModel.id}/view)`);
|
||||
|
||||
@@ -283,7 +277,7 @@ describe('Metadata component', () => {
|
||||
await metadataViewPage.clickSaveMetadata();
|
||||
await expect(await metadataViewPage.getPropertyText('properties.cm:description')).toEqual('check author example description');
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
|
||||
await viewerPage.viewFile(pngFileModel.name);
|
||||
|
||||
@@ -17,34 +17,39 @@
|
||||
|
||||
import { PermissionsPage } from '../../pages/adf/permissions.page';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { StringUtil, BrowserActions, NotificationHistoryPage, LoginPage, UploadActions, ViewerPage } from '@alfresco/adf-testing';
|
||||
import {
|
||||
StringUtil,
|
||||
BrowserActions,
|
||||
NotificationHistoryPage,
|
||||
LoginSSOPage,
|
||||
UploadActions,
|
||||
ViewerPage,
|
||||
ApiService, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { FolderModel } from '../../models/ACS/folder.model';
|
||||
import { MetadataViewPage } from '../../pages/adf/metadata-view.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { UploadDialogPage } from '../../pages/adf/dialog/upload-dialog.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Permissions Component', () => {
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const loginPage = new LoginPage();
|
||||
const apiService = new ApiService();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const permissionsPage = new PermissionsPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const contentList = contentServicesPage.getDocumentList();
|
||||
const viewerPage = new ViewerPage();
|
||||
const metadataViewPage = new MetadataViewPage();
|
||||
const notificationHistoryPage = new NotificationHistoryPage();
|
||||
const uploadDialog = new UploadDialogPage();
|
||||
let fileOwnerUser, filePermissionUser, file;
|
||||
let file;
|
||||
const fileModel = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.TXT_0B.file_name,
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.TXT_0B.file_path
|
||||
@@ -74,19 +79,17 @@ describe('Permissions Component', () => {
|
||||
|
||||
let roleConsumerFolder, roleCoordinatorFolder, roleContributorFolder, roleCollaboratorFolder, roleEditorFolder;
|
||||
let folders;
|
||||
fileOwnerUser = new AcsUserModel();
|
||||
const fileOwnerUser = new UserModel();
|
||||
const filePermissionUser = new UserModel();
|
||||
|
||||
filePermissionUser = new AcsUserModel();
|
||||
|
||||
const duplicateUserPermissionMessage = 'One or more of the permissions you have set is already present : authority -> ' + filePermissionUser.getId() + ' / role -> Contributor';
|
||||
const duplicateUserPermissionMessage = 'One or more of the permissions you have set is already present : authority -> ' + filePermissionUser.email + ' / role -> Contributor';
|
||||
|
||||
beforeAll(async () => {
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(fileOwnerUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(filePermissionUser);
|
||||
await this.alfrescoJsApi.core.groupsApi.createGroup(groupBody);
|
||||
await this.alfrescoJsApi.login(fileOwnerUser.id, fileOwnerUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(fileOwnerUser);
|
||||
await usersActions.createUser(filePermissionUser);
|
||||
await apiService.getInstance().core.groupsApi.createGroup(groupBody);
|
||||
await apiService.getInstance().login(fileOwnerUser.email, fileOwnerUser.password);
|
||||
|
||||
roleConsumerFolder = await uploadActions.createFolder(roleConsumerFolderModel.name, '-my-');
|
||||
roleCoordinatorFolder = await uploadActions.createFolder(roleCoordinatorFolderModel.name, '-my-');
|
||||
@@ -96,58 +99,58 @@ describe('Permissions Component', () => {
|
||||
|
||||
folders = [roleConsumerFolder, roleContributorFolder, roleCoordinatorFolder, roleCollaboratorFolder, roleEditorFolder];
|
||||
|
||||
await this.alfrescoJsApi.core.nodesApi.updateNode(roleConsumerFolder.entry.id,
|
||||
await apiService.getInstance().core.nodesApi.updateNode(roleConsumerFolder.entry.id,
|
||||
|
||||
{
|
||||
permissions: {
|
||||
locallySet: [{
|
||||
authorityId: filePermissionUser.getId(),
|
||||
authorityId: filePermissionUser.email,
|
||||
name: 'Consumer',
|
||||
accessStatus: 'ALLOWED'
|
||||
}]
|
||||
}
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.nodesApi.updateNode(roleCollaboratorFolder.entry.id,
|
||||
await apiService.getInstance().core.nodesApi.updateNode(roleCollaboratorFolder.entry.id,
|
||||
{
|
||||
permissions: {
|
||||
locallySet: [{
|
||||
authorityId: filePermissionUser.getId(),
|
||||
authorityId: filePermissionUser.email,
|
||||
name: 'Collaborator',
|
||||
accessStatus: 'ALLOWED'
|
||||
}]
|
||||
}
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.nodesApi.updateNode(roleCoordinatorFolder.entry.id,
|
||||
await apiService.getInstance().core.nodesApi.updateNode(roleCoordinatorFolder.entry.id,
|
||||
{
|
||||
permissions: {
|
||||
locallySet: [{
|
||||
authorityId: filePermissionUser.getId(),
|
||||
authorityId: filePermissionUser.email,
|
||||
name: 'Coordinator',
|
||||
accessStatus: 'ALLOWED'
|
||||
}]
|
||||
}
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.nodesApi.updateNode(roleContributorFolder.entry.id,
|
||||
await apiService.getInstance().core.nodesApi.updateNode(roleContributorFolder.entry.id,
|
||||
|
||||
{
|
||||
permissions: {
|
||||
locallySet: [{
|
||||
authorityId: filePermissionUser.getId(),
|
||||
authorityId: filePermissionUser.email,
|
||||
name: 'Contributor',
|
||||
accessStatus: 'ALLOWED'
|
||||
}]
|
||||
}
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.nodesApi.updateNode(roleEditorFolder.entry.id,
|
||||
await apiService.getInstance().core.nodesApi.updateNode(roleEditorFolder.entry.id,
|
||||
|
||||
{
|
||||
permissions: {
|
||||
locallySet: [{
|
||||
authorityId: filePermissionUser.getId(),
|
||||
authorityId: filePermissionUser.email,
|
||||
name: 'Editor',
|
||||
accessStatus: 'ALLOWED'
|
||||
}]
|
||||
@@ -164,19 +167,17 @@ describe('Permissions Component', () => {
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
for (const folder of folders) {
|
||||
await uploadActions.deleteFileOrFolder(folder.entry.id);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
describe('Inherit and assigning permissions', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await this.alfrescoJsApi.login(fileOwnerUser.id, fileOwnerUser.password);
|
||||
await apiService.getInstance().login(fileOwnerUser.email, fileOwnerUser.password);
|
||||
file = await uploadActions.uploadFile(fileModel.location, fileModel.name, '-my-');
|
||||
await loginPage.loginToContentServicesUsingUserModel(fileOwnerUser);
|
||||
await loginPage.login(fileOwnerUser.email, fileOwnerUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
await contentServicesPage.checkContentIsDisplayed(fileModel.name);
|
||||
await contentServicesPage.checkSelectedSiteIsDisplayed('My files');
|
||||
@@ -191,8 +192,7 @@ describe('Permissions Component', () => {
|
||||
await uploadActions.deleteFileOrFolder(file.entry.id);
|
||||
} catch (error) {
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
it('[C268974] Inherit Permission', async () => {
|
||||
await permissionsPage.checkPermissionInheritedButtonIsDisplayed();
|
||||
@@ -230,7 +230,7 @@ describe('Permissions Component', () => {
|
||||
await permissionsPage.clickAddPermissionButton();
|
||||
await permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||
await permissionsPage.checkSearchUserInputIsDisplayed();
|
||||
await permissionsPage.searchUserOrGroup(filePermissionUser.getId());
|
||||
await permissionsPage.searchUserOrGroup(filePermissionUser.email);
|
||||
await permissionsPage.checkResultListIsDisplayed();
|
||||
await permissionsPage.checkUserOrGroupIsDisplayed('EVERYONE');
|
||||
await permissionsPage.searchUserOrGroup('somerandomtext');
|
||||
@@ -240,11 +240,10 @@ describe('Permissions Component', () => {
|
||||
});
|
||||
|
||||
describe('Changing and duplicate Permissions', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await this.alfrescoJsApi.login(fileOwnerUser.id, fileOwnerUser.password);
|
||||
await apiService.getInstance().login(fileOwnerUser.email, fileOwnerUser.password);
|
||||
file = await uploadActions.uploadFile(fileModel.location, fileModel.name, '-my-');
|
||||
await loginPage.loginToContentServicesUsingUserModel(fileOwnerUser);
|
||||
await loginPage.login(fileOwnerUser.email, fileOwnerUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
await contentServicesPage.checkContentIsDisplayed(fileModel.name);
|
||||
await contentServicesPage.checkSelectedSiteIsDisplayed('My files');
|
||||
@@ -254,9 +253,9 @@ describe('Permissions Component', () => {
|
||||
await permissionsPage.clickAddPermissionButton();
|
||||
await permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||
await permissionsPage.checkSearchUserInputIsDisplayed();
|
||||
await permissionsPage.searchUserOrGroup(filePermissionUser.getId());
|
||||
await permissionsPage.clickUserOrGroup(filePermissionUser.getFirstName());
|
||||
await permissionsPage.checkUserOrGroupIsAdded(filePermissionUser.getId());
|
||||
await permissionsPage.searchUserOrGroup(filePermissionUser.email);
|
||||
await permissionsPage.clickUserOrGroup(filePermissionUser.firstName);
|
||||
await permissionsPage.checkUserOrGroupIsAdded(filePermissionUser.email);
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
@@ -264,8 +263,8 @@ describe('Permissions Component', () => {
|
||||
});
|
||||
|
||||
it('[C274691] Should be able to add a new User with permission to the file and also change locally set permissions', async () => {
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Contributor');
|
||||
await permissionsPage.clickRoleDropdownByUserOrGroupName(filePermissionUser.getId());
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.email)).toEqual('Contributor');
|
||||
await permissionsPage.clickRoleDropdownByUserOrGroupName(filePermissionUser.email);
|
||||
const roleDropdownOptions = permissionsPage.getRoleDropdownOptions();
|
||||
await expect(await roleDropdownOptions.count()).toBe(5);
|
||||
await expect(await BrowserActions.getText(roleDropdownOptions.get(0))).toBe('Contributor');
|
||||
@@ -274,40 +273,39 @@ describe('Permissions Component', () => {
|
||||
await expect(await BrowserActions.getText(roleDropdownOptions.get(3))).toBe('Editor');
|
||||
await expect(await BrowserActions.getText(roleDropdownOptions.get(4))).toBe('Consumer');
|
||||
await permissionsPage.selectOption('Collaborator');
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Collaborator');
|
||||
await permissionsPage.clickRoleDropdownByUserOrGroupName(filePermissionUser.getId());
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.email)).toEqual('Collaborator');
|
||||
await permissionsPage.clickRoleDropdownByUserOrGroupName(filePermissionUser.email);
|
||||
await permissionsPage.selectOption('Coordinator');
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Coordinator');
|
||||
await permissionsPage.clickRoleDropdownByUserOrGroupName(filePermissionUser.getId());
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.email)).toEqual('Coordinator');
|
||||
await permissionsPage.clickRoleDropdownByUserOrGroupName(filePermissionUser.email);
|
||||
await permissionsPage.selectOption('Editor');
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Editor');
|
||||
await permissionsPage.clickRoleDropdownByUserOrGroupName(filePermissionUser.getId());
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.email)).toEqual('Editor');
|
||||
await permissionsPage.clickRoleDropdownByUserOrGroupName(filePermissionUser.email);
|
||||
await permissionsPage.selectOption('Consumer');
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Consumer');
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.email)).toEqual('Consumer');
|
||||
});
|
||||
|
||||
it('[C276980] Should not be able to duplicate User or Group to the locally set permissions', async () => {
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Contributor');
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.email)).toEqual('Contributor');
|
||||
await permissionsPage.clickAddPermissionButton();
|
||||
await permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||
await permissionsPage.checkSearchUserInputIsDisplayed();
|
||||
await permissionsPage.searchUserOrGroup(filePermissionUser.getId());
|
||||
await permissionsPage.clickUserOrGroup(filePermissionUser.getFirstName());
|
||||
await permissionsPage.searchUserOrGroup(filePermissionUser.email);
|
||||
await permissionsPage.clickUserOrGroup(filePermissionUser.firstName);
|
||||
|
||||
await notificationHistoryPage.checkNotifyContains(duplicateUserPermissionMessage);
|
||||
});
|
||||
|
||||
it('[C276982] Should be able to remove User or Group from the locally set permissions', async () => {
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Contributor');
|
||||
await expect(await permissionsPage.getRoleCellValue(filePermissionUser.email)).toEqual('Contributor');
|
||||
await permissionsPage.clickDeletePermissionButton();
|
||||
await permissionsPage.checkUserOrGroupIsDeleted(filePermissionUser.getId());
|
||||
await permissionsPage.checkUserOrGroupIsDeleted(filePermissionUser.email);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Role: Consumer, Contributor, Coordinator, Collaborator, Editor, No Permissions', () => {
|
||||
|
||||
it('[C276993] Role Consumer', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
||||
await loginPage.login(filePermissionUser.email, filePermissionUser.password);
|
||||
await navigationBarPage.openContentServicesFolder(roleConsumerFolder.entry.id);
|
||||
await contentServicesPage.checkContentIsDisplayed('RoleConsumer' + fileModel.name);
|
||||
await contentList.doubleClickRow('RoleConsumer' + fileModel.name);
|
||||
@@ -324,7 +322,7 @@ describe('Permissions Component', () => {
|
||||
});
|
||||
|
||||
it('[C276996] Role Contributor', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
||||
await loginPage.login(filePermissionUser.email, filePermissionUser.password);
|
||||
await navigationBarPage.openContentServicesFolder(roleContributorFolder.entry.id);
|
||||
await contentServicesPage.checkContentIsDisplayed('RoleContributor' + fileModel.name);
|
||||
await contentList.doubleClickRow('RoleContributor' + fileModel.name);
|
||||
@@ -344,7 +342,7 @@ describe('Permissions Component', () => {
|
||||
});
|
||||
|
||||
it('[C277000] Role Editor', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
||||
await loginPage.login(filePermissionUser.email, filePermissionUser.password);
|
||||
await navigationBarPage.openContentServicesFolder(roleEditorFolder.entry.id);
|
||||
await contentServicesPage.checkContentIsDisplayed('RoleEditor' + fileModel.name);
|
||||
await contentList.doubleClickRow('RoleEditor' + fileModel.name);
|
||||
@@ -366,7 +364,7 @@ describe('Permissions Component', () => {
|
||||
});
|
||||
|
||||
it('[C277003] Role Collaborator', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
||||
await loginPage.login(filePermissionUser.email, filePermissionUser.password);
|
||||
await navigationBarPage.openContentServicesFolder(roleCollaboratorFolder.entry.id);
|
||||
await contentServicesPage.checkContentIsDisplayed('RoleCollaborator' + fileModel.name);
|
||||
await contentList.doubleClickRow('RoleCollaborator' + fileModel.name);
|
||||
@@ -391,7 +389,7 @@ describe('Permissions Component', () => {
|
||||
});
|
||||
|
||||
it('[C277004] Role Coordinator', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
||||
await loginPage.login(filePermissionUser.email, filePermissionUser.password);
|
||||
await navigationBarPage.openContentServicesFolder(roleCoordinatorFolder.entry.id);
|
||||
await contentServicesPage.checkContentIsDisplayed('RoleCoordinator' + fileModel.name);
|
||||
await contentList.doubleClickRow('RoleCoordinator' + fileModel.name);
|
||||
@@ -416,7 +414,7 @@ describe('Permissions Component', () => {
|
||||
});
|
||||
|
||||
it('[C279881] No Permission User', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
|
||||
await loginPage.login(filePermissionUser.email, filePermissionUser.password);
|
||||
await navigationBarPage.openContentServicesFolder(roleConsumerFolder.entry.id);
|
||||
await contentServicesPage.checkContentIsDisplayed('RoleConsumer' + fileModel.name);
|
||||
await contentServicesPage.checkSelectedSiteIsDisplayed('My files');
|
||||
|
||||
@@ -16,10 +16,15 @@
|
||||
*/
|
||||
|
||||
import { PermissionsPage } from '../../pages/adf/permissions.page';
|
||||
import { LoginPage, BrowserActions, UploadActions, StringUtil, NotificationHistoryPage, ViewerPage } from '@alfresco/adf-testing';
|
||||
import {
|
||||
LoginSSOPage,
|
||||
BrowserActions,
|
||||
UploadActions,
|
||||
StringUtil,
|
||||
NotificationHistoryPage,
|
||||
ViewerPage, ApiService, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { browser } from 'protractor';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
@@ -27,17 +32,15 @@ import { MetadataViewPage } from '../../pages/adf/metadata-view.page';
|
||||
import { UploadDialogPage } from '../../pages/adf/dialog/upload-dialog.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { VersionManagePage } from '../../pages/adf/version-manager.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Permissions Component', () => {
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const loginPage = new LoginPage();
|
||||
const apiService = new ApiService();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const permissionsPage = new PermissionsPage();
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
const contentList = contentServicesPage.getDocumentList();
|
||||
|
||||
@@ -48,8 +51,6 @@ describe('Permissions Component', () => {
|
||||
const uploadDialog = new UploadDialogPage();
|
||||
const versionManagePage = new VersionManagePage();
|
||||
|
||||
let folderOwnerUser, consumerUser, siteConsumerUser, contributorUser, managerUser, collaboratorUser;
|
||||
|
||||
let publicSite, privateSite, folderName;
|
||||
|
||||
const fileModel = new FileModel({
|
||||
@@ -74,23 +75,23 @@ describe('Permissions Component', () => {
|
||||
|
||||
let siteFolder, privateSiteFile;
|
||||
|
||||
folderOwnerUser = new AcsUserModel();
|
||||
consumerUser = new AcsUserModel();
|
||||
siteConsumerUser = new AcsUserModel();
|
||||
collaboratorUser = new AcsUserModel();
|
||||
contributorUser = new AcsUserModel();
|
||||
managerUser = new AcsUserModel();
|
||||
const folderOwnerUser = new UserModel();
|
||||
const consumerUser: UserModel = new UserModel();
|
||||
const siteConsumerUser: UserModel = new UserModel();
|
||||
const collaboratorUser: UserModel = new UserModel();
|
||||
const contributorUser: UserModel = new UserModel();
|
||||
const managerUser: UserModel = new UserModel();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(folderOwnerUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(siteConsumerUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(consumerUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(contributorUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(collaboratorUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(managerUser);
|
||||
await this.alfrescoJsApi.login(folderOwnerUser.id, folderOwnerUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(folderOwnerUser);
|
||||
await usersActions.createUser(siteConsumerUser);
|
||||
await usersActions.createUser(consumerUser);
|
||||
await usersActions.createUser(contributorUser);
|
||||
await usersActions.createUser(collaboratorUser);
|
||||
await usersActions.createUser(managerUser);
|
||||
await apiService.getInstance().login(folderOwnerUser.email, folderOwnerUser.password);
|
||||
|
||||
await browser.sleep(15000);
|
||||
|
||||
@@ -104,42 +105,42 @@ describe('Permissions Component', () => {
|
||||
|
||||
const privateSiteBody = { visibility: 'PRIVATE', title: privateSiteName };
|
||||
|
||||
publicSite = await this.alfrescoJsApi.core.sitesApi.createSite(publicSiteBody);
|
||||
privateSite = await this.alfrescoJsApi.core.sitesApi.createSite(privateSiteBody);
|
||||
publicSite = await apiService.getInstance().core.sitesApi.createSite(publicSiteBody);
|
||||
privateSite = await apiService.getInstance().core.sitesApi.createSite(privateSiteBody);
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(publicSite.entry.id, {
|
||||
id: siteConsumerUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(publicSite.entry.id, {
|
||||
id: siteConsumerUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.CONSUMER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(publicSite.entry.id, {
|
||||
id: collaboratorUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(publicSite.entry.id, {
|
||||
id: collaboratorUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.COLLABORATOR
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(publicSite.entry.id, {
|
||||
id: contributorUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(publicSite.entry.id, {
|
||||
id: contributorUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.CONTRIBUTOR
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(publicSite.entry.id, {
|
||||
id: managerUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(publicSite.entry.id, {
|
||||
id: managerUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(privateSite.entry.id, {
|
||||
id: managerUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(privateSite.entry.id, {
|
||||
id: managerUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
|
||||
siteFolder = await uploadActions.createFolder(folderName, publicSite.entry.guid);
|
||||
privateSiteFile = await uploadActions.uploadFile(fileModel.location, 'privateSite' + fileModel.name, privateSite.entry.guid);
|
||||
|
||||
await this.alfrescoJsApi.core.nodesApi.updateNode(privateSiteFile.entry.id,
|
||||
await apiService.getInstance().core.nodesApi.updateNode(privateSiteFile.entry.id,
|
||||
{
|
||||
permissions: {
|
||||
locallySet: [{
|
||||
authorityId: managerUser.getId(),
|
||||
authorityId: managerUser.email,
|
||||
name: 'SiteConsumer',
|
||||
accessStatus: 'ALLOWED'
|
||||
}]
|
||||
@@ -152,15 +153,14 @@ describe('Permissions Component', () => {
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(publicSite.entry.id, { permanent: true });
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(privateSite.entry.id, { permanent: true });
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(publicSite.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(privateSite.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
describe('Role Site Dropdown', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(folderOwnerUser);
|
||||
await loginPage.login(folderOwnerUser.email, folderOwnerUser.password);
|
||||
|
||||
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/files/' + publicSite.entry.guid);
|
||||
});
|
||||
@@ -181,14 +181,14 @@ describe('Permissions Component', () => {
|
||||
await permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||
await permissionsPage.checkSearchUserInputIsDisplayed();
|
||||
|
||||
await permissionsPage.searchUserOrGroup(consumerUser.getId());
|
||||
await permissionsPage.searchUserOrGroup(consumerUser.email);
|
||||
|
||||
await permissionsPage.clickUserOrGroup(consumerUser.getFirstName());
|
||||
await permissionsPage.checkUserOrGroupIsAdded(consumerUser.getId());
|
||||
await permissionsPage.clickUserOrGroup(consumerUser.firstName);
|
||||
await permissionsPage.checkUserOrGroupIsAdded(consumerUser.email);
|
||||
|
||||
await expect(await permissionsPage.getRoleCellValue(consumerUser.getId())).toEqual('SiteCollaborator');
|
||||
await expect(await permissionsPage.getRoleCellValue(consumerUser.email)).toEqual('SiteCollaborator');
|
||||
|
||||
await permissionsPage.clickRoleDropdownByUserOrGroupName(consumerUser.getId());
|
||||
await permissionsPage.clickRoleDropdownByUserOrGroupName(consumerUser.email);
|
||||
|
||||
const roleDropdownOptions = permissionsPage.getRoleDropdownOptions();
|
||||
|
||||
@@ -201,9 +201,9 @@ describe('Permissions Component', () => {
|
||||
});
|
||||
|
||||
describe('Roles: SiteConsumer, SiteCollaborator, SiteContributor, SiteManager', () => {
|
||||
|
||||
it('[C276994] Role SiteConsumer', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(siteConsumerUser);
|
||||
await loginPage.login(siteConsumerUser.email, siteConsumerUser.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
|
||||
await contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name);
|
||||
|
||||
@@ -230,7 +230,8 @@ describe('Permissions Component', () => {
|
||||
});
|
||||
|
||||
it('[C276997] Role SiteContributor', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(contributorUser);
|
||||
await loginPage.login(contributorUser.email, contributorUser.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
|
||||
await contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name);
|
||||
|
||||
@@ -260,8 +261,8 @@ describe('Permissions Component', () => {
|
||||
});
|
||||
|
||||
it('[C277005] Role SiteCollaborator', async () => {
|
||||
await loginPage.login(collaboratorUser.email, collaboratorUser.password);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(collaboratorUser);
|
||||
await navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
|
||||
await contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name);
|
||||
|
||||
@@ -299,7 +300,8 @@ describe('Permissions Component', () => {
|
||||
});
|
||||
|
||||
it('[C277006] Role SiteManager', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(managerUser);
|
||||
await loginPage.login(managerUser.email, managerUser.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
|
||||
await contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name);
|
||||
|
||||
@@ -336,9 +338,9 @@ describe('Permissions Component', () => {
|
||||
});
|
||||
|
||||
describe('Roles: Private site and Manager User', () => {
|
||||
|
||||
it('[C277196] should a user with Manager permissions be able to upload a new version for the created file', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(managerUser);
|
||||
await loginPage.login(managerUser.email, managerUser.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(privateSite.entry.guid);
|
||||
|
||||
await contentServicesPage.versionManagerContent('privateSite' + fileModel.name);
|
||||
|
||||
@@ -16,29 +16,27 @@
|
||||
*/
|
||||
|
||||
import {
|
||||
LoginPage,
|
||||
LoginSSOPage,
|
||||
BrowserActions,
|
||||
LocalStorageUtil,
|
||||
NotificationHistoryPage,
|
||||
UploadActions,
|
||||
ViewerPage, ApiUtil
|
||||
ViewerPage, ApiUtil, ApiService, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { ShareDialogPage } from '../../pages/adf/dialog/share-dialog.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi, SharedLinkEntry, SharedLinkPaging } from '@alfresco/js-api';
|
||||
import { SharedLinkEntry, SharedLinkPaging } from '@alfresco/js-api';
|
||||
import { CustomSourcesPage } from '../../pages/adf/demo-shell/custom-sources.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Share file', () => {
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const loginPage = new LoginPage();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const contentListPage = contentServicesPage.getDocumentList();
|
||||
const shareDialog = new ShareDialogPage();
|
||||
@@ -46,8 +44,8 @@ describe('Share file', () => {
|
||||
const customSourcesPage = new CustomSourcesPage();
|
||||
const viewerPage = new ViewerPage();
|
||||
const notificationHistoryPage = new NotificationHistoryPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
let acsUser: UserModel;
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const pngFileModel = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_path
|
||||
@@ -65,17 +63,17 @@ describe('Share file', () => {
|
||||
};
|
||||
|
||||
const apiCall = async () => {
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
return this.alfrescoJsApi.core.sharedlinksApi.findSharedLinks();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
return apiService.getInstance().core.sharedlinksApi.findSharedLinks();
|
||||
};
|
||||
|
||||
return ApiUtil.waitForApi(apiCall, predicate, 10, 2000);
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
const pngUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, '-my-');
|
||||
|
||||
@@ -83,14 +81,13 @@ describe('Share file', () => {
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await uploadActions.deleteFileOrFolder(nodeId);
|
||||
});
|
||||
|
||||
describe('Shared link dialog', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentListPage.selectRow(pngFileModel.name);
|
||||
await BrowserActions.closeMenuAndDialogs();
|
||||
@@ -162,9 +159,8 @@ describe('Share file', () => {
|
||||
});
|
||||
|
||||
describe('Shared link preview', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
});
|
||||
|
||||
@@ -20,45 +20,46 @@ import {
|
||||
StringUtil,
|
||||
BrowserActions,
|
||||
NotificationHistoryPage,
|
||||
LoginPage,
|
||||
LoginSSOPage,
|
||||
ErrorPage,
|
||||
UploadActions
|
||||
UploadActions, ApiService, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { ShareDialogPage } from '../../pages/adf/dialog/share-dialog.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { browser } from 'protractor';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Unshare file', () => {
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const loginPage = new LoginPage();
|
||||
const apiService = new ApiService();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const contentListPage = contentServicesPage.getDocumentList();
|
||||
const navBar = new NavigationBarPage();
|
||||
const errorPage = new ErrorPage();
|
||||
const notificationHistoryPage = new NotificationHistoryPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
const shareDialog = new ShareDialogPage();
|
||||
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const siteName = `PRIVATE-TEST-SITE-${StringUtil.generateRandomString(5)}`;
|
||||
const acsUser = new AcsUserModel();
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
let nodeBody;
|
||||
let nodeId;
|
||||
let testSite;
|
||||
let acsUser: UserModel;
|
||||
|
||||
let nodeBody, nodeId, testSite;
|
||||
|
||||
const pngFileModel = new FileModel({
|
||||
name: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
location: browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_path
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
const site = {
|
||||
title: siteName,
|
||||
visibility: 'PRIVATE',
|
||||
@@ -66,7 +67,7 @@ describe('Unshare file', () => {
|
||||
};
|
||||
|
||||
const memberBody = {
|
||||
id: acsUser.id,
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.CONSUMER
|
||||
};
|
||||
|
||||
@@ -78,39 +79,37 @@ describe('Unshare file', () => {
|
||||
}
|
||||
};
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
testSite = await this.alfrescoJsApi.core.sitesApi.createSite(site);
|
||||
testSite = await apiService.getInstance().core.sitesApi.createSite(site);
|
||||
|
||||
const docLibId = (await this.alfrescoJsApi.core.sitesApi.getSiteContainers(siteName)).list.entries[0].entry.id;
|
||||
const testFile1Id = (await this.alfrescoJsApi.core.nodesApi.addNode(docLibId, nodeBody)).entry.id;
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(siteName, memberBody);
|
||||
const docLibId = (await apiService.getInstance().core.sitesApi.getSiteContainers(siteName)).list.entries[0].entry.id;
|
||||
const testFile1Id = (await apiService.getInstance().core.nodesApi.addNode(docLibId, nodeBody)).entry.id;
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(siteName, memberBody);
|
||||
|
||||
await this.alfrescoJsApi.core.nodesApi.updateNode(testFile1Id, {
|
||||
await apiService.getInstance().core.nodesApi.updateNode(testFile1Id, {
|
||||
permissions: {
|
||||
isInheritanceEnabled: false,
|
||||
locallySet: [
|
||||
{
|
||||
authorityId: acsUser.id,
|
||||
authorityId: acsUser.email,
|
||||
name: CONSTANTS.CS_USER_ROLES.CONSUMER
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
await this.alfrescoJsApi.core.sharedlinksApi.addSharedLink({ nodeId: testFile1Id });
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().core.sharedlinksApi.addSharedLink({ nodeId: testFile1Id });
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
const pngUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, '-my-');
|
||||
nodeId = pngUploadedFile.entry.id;
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await navBar.clickContentServicesButton();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(testSite.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(testSite.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
@@ -159,15 +158,15 @@ describe('Unshare file', () => {
|
||||
await shareDialog.confirmationDialogIsDisplayed();
|
||||
await shareDialog.clickConfirmationDialogRemoveButton();
|
||||
await shareDialog.dialogIsClosed();
|
||||
await BrowserActions.getUrl(sharedLink.replace(browser.params.testConfig.adf_acs.host, browser.params.testConfig.adf.host));
|
||||
await BrowserActions.getUrl(sharedLink.replace(browser.params.testConfig.appConfig.ecmHost, browser.params.testConfig.adf.host));
|
||||
await errorPage.checkErrorCode();
|
||||
});
|
||||
});
|
||||
|
||||
describe('without permission', () => {
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(siteName, { permanent: true });
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(siteName, { permanent: true });
|
||||
});
|
||||
|
||||
it('[C286555] Should NOT be able to unshare file without permission', async () => {
|
||||
|
||||
@@ -15,29 +15,27 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, LikePage, RatePage, UploadActions } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { LoginSSOPage, LikePage, RatePage, UploadActions, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { SocialPage } from '../../pages/adf/demo-shell/social.page';
|
||||
import { browser } from 'protractor';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Social component', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const likePage = new LikePage();
|
||||
const ratePage = new RatePage();
|
||||
const socialPage = new SocialPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const componentOwner = new AcsUserModel();
|
||||
const componentVisitor = new AcsUserModel();
|
||||
const secondComponentVisitor = new AcsUserModel();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const componentOwner = new UserModel();
|
||||
const componentVisitor = new UserModel();
|
||||
const secondComponentVisitor = new UserModel();
|
||||
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
const blueLikeColor = ('rgba(33, 150, 243, 1)');
|
||||
const greyLikeColor = ('rgba(128, 128, 128, 1)');
|
||||
@@ -52,44 +50,43 @@ describe('Social component', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(componentOwner);
|
||||
await usersActions.createUser(componentOwner);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(componentVisitor);
|
||||
await usersActions.createUser(componentVisitor);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(secondComponentVisitor);
|
||||
await usersActions.createUser(secondComponentVisitor);
|
||||
|
||||
await this.alfrescoJsApi.login(componentOwner.id, componentOwner.password);
|
||||
await apiService.getInstance().login(componentOwner.email, componentOwner.password);
|
||||
|
||||
emptyFile = await uploadActions.uploadFile(emptyFileModel.location, emptyFileModel.name, '-my-');
|
||||
|
||||
await this.alfrescoJsApi.core.nodesApi.updateNode(emptyFile.entry.id,
|
||||
await apiService.getInstance().core.nodesApi.updateNode(emptyFile.entry.id,
|
||||
|
||||
{
|
||||
permissions: {
|
||||
locallySet: [{
|
||||
authorityId: componentVisitor.getId(),
|
||||
authorityId: componentVisitor.email,
|
||||
name: 'Consumer',
|
||||
accessStatus: 'ALLOWED'
|
||||
}, {
|
||||
authorityId: secondComponentVisitor.getId(),
|
||||
authorityId: secondComponentVisitor.email,
|
||||
name: 'Consumer',
|
||||
accessStatus: 'ALLOWED'
|
||||
}]
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
await uploadActions.deleteFileOrFolder(emptyFile.entry.id);
|
||||
});
|
||||
await uploadActions.deleteFileOrFolder(emptyFile.entry.email);
|
||||
});
|
||||
|
||||
describe('User interaction on their own components', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(componentOwner);
|
||||
await loginPage.login(componentOwner.email, componentOwner.password);
|
||||
await navigationBarPage.clickSocialButton();
|
||||
});
|
||||
|
||||
@@ -109,12 +106,11 @@ describe('Social component', () => {
|
||||
await likePage.removeHoverFromLikeButton();
|
||||
await expect(await likePage.getUnLikedIconColor()).toBe(greyLikeColor);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('User interaction on components that belong to other users', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(componentVisitor);
|
||||
await loginPage.login(componentVisitor.email, componentVisitor.password);
|
||||
await navigationBarPage.clickSocialButton();
|
||||
});
|
||||
|
||||
@@ -145,12 +141,11 @@ describe('Social component', () => {
|
||||
await expect(await ratePage.getRatingCounter()).toBe('0');
|
||||
await expect(await ratePage.isNotStarRated(4));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('Multiple Users interaction', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(componentVisitor);
|
||||
await loginPage.login(componentVisitor.email, componentVisitor.password);
|
||||
await navigationBarPage.clickSocialButton();
|
||||
});
|
||||
|
||||
@@ -163,7 +158,7 @@ describe('Social component', () => {
|
||||
await likePage.removeHoverFromLikeButton();
|
||||
await expect(await likePage.getLikedIconColor()).toBe(blueLikeColor);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(secondComponentVisitor);
|
||||
await loginPage.login(secondComponentVisitor.email, secondComponentVisitor.password);
|
||||
await navigationBarPage.clickSocialButton();
|
||||
await socialPage.writeCustomNodeId(emptyFile.entry.id);
|
||||
await expect(await likePage.getUnLikedIconColor()).toBe(greyLikeColor);
|
||||
@@ -185,7 +180,7 @@ describe('Social component', () => {
|
||||
await expect(await ratePage.isStarRated(4));
|
||||
await expect(await ratePage.getRatedStarColor(4)).toBe(yellowRatedStarColor);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(secondComponentVisitor);
|
||||
await loginPage.login(secondComponentVisitor.email, secondComponentVisitor.password);
|
||||
await navigationBarPage.clickSocialButton();
|
||||
await socialPage.writeCustomNodeId(emptyFile.entry.id);
|
||||
await expect(await socialPage.getNodeIdFieldValue()).toEqual(emptyFile.entry.id);
|
||||
|
||||
@@ -25,12 +25,11 @@ import {
|
||||
IdentityService,
|
||||
SettingsPage,
|
||||
StringUtil,
|
||||
UserModel,
|
||||
FileBrowserUtil,
|
||||
ViewerPage
|
||||
} from '@alfresco/adf-testing';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('SSO in ADF using ACS and AIS, Download Directive, Viewer, DocumentList, implicitFlow true', () => {
|
||||
|
||||
@@ -40,8 +39,11 @@ describe('SSO in ADF using ACS and AIS, Download Directive, Viewer, DocumentList
|
||||
const contentListPage = contentServicesPage.getDocumentList();
|
||||
const loginSsoPage = new LoginSSOPage();
|
||||
const viewerPage = new ViewerPage();
|
||||
let silentLogin;
|
||||
let implicitFlow;
|
||||
|
||||
const apiService = new ApiService({ authType: 'OAUTH' });
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const identityService = new IdentityService(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const firstPdfFileModel = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.PDF_B.file_name,
|
||||
@@ -53,54 +55,28 @@ describe('SSO in ADF using ACS and AIS, Download Directive, Viewer, DocumentList
|
||||
'location': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_path
|
||||
});
|
||||
|
||||
let pdfUploadedFile, pngUploadedFile, folder;
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host,
|
||||
authType: 'OAUTH',
|
||||
oauth2: {
|
||||
host: browser.params.testConfig.adf.hostSso,
|
||||
clientId: browser.params.config.oauth2.clientId,
|
||||
scope: 'openid',
|
||||
secret: '',
|
||||
implicitFlow: false,
|
||||
silentLogin: false,
|
||||
redirectUri: '/',
|
||||
redirectUriLogout: '/logout'
|
||||
}
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
let pdfUploadedFile, pngUploadedFile, folder, acsUser;
|
||||
const folderName = StringUtil.generateRandomString(5);
|
||||
const acsUser = new UserModel();
|
||||
let identityService: IdentityService;
|
||||
|
||||
describe('SSO in ADF using ACS and AIS, implicit flow set', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.testConfig.adf_acs.host, browser.params.testConfig.adf.hostSso, 'ECM');
|
||||
await apiService.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
identityService = new IdentityService(apiService);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await identityService.createIdentityUserAndSyncECMBPM(acsUser);
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
folder = await uploadActions.createFolder(folderName, '-my-');
|
||||
|
||||
pdfUploadedFile = await uploadActions.uploadFile(firstPdfFileModel.location, firstPdfFileModel.name, folder.entry.id);
|
||||
pngUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, folder.entry.id);
|
||||
|
||||
silentLogin = false;
|
||||
implicitFlow = true;
|
||||
|
||||
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host,
|
||||
browser.params.testConfig.adf.hostSso,
|
||||
browser.params.testConfig.adf.hostIdentity, silentLogin, implicitFlow, browser.params.config.oauth2.clientId);
|
||||
await settingsPage.setProviderEcmSso(browser.params.testConfig.appConfig.ecmHost,
|
||||
browser.params.testConfig.appConfig.oauth2.host,
|
||||
browser.params.testConfig.appConfig.identityHost, false, true, browser.params.testConfig.appConfig.oauth2.clientId);
|
||||
|
||||
await loginSsoPage.clickOnSSOButton();
|
||||
await loginSsoPage.loginSSOIdentityService(acsUser.id, acsUser.password);
|
||||
await loginSsoPage.loginSSOIdentityService(acsUser.email, acsUser.password);
|
||||
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.checkAcsContainer();
|
||||
@@ -110,12 +86,12 @@ describe('SSO in ADF using ACS and AIS, Download Directive, Viewer, DocumentList
|
||||
|
||||
afterAll(async () => {
|
||||
try {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await uploadActions.deleteFileOrFolder(folder.entry.id);
|
||||
await identityService.deleteIdentityUser(acsUser.id);
|
||||
await identityService.deleteIdentityUser(acsUser.email);
|
||||
} catch (error) {
|
||||
}
|
||||
await this.alfrescoJsApi.logout();
|
||||
await apiService.getInstance().logout();
|
||||
await browser.executeScript('window.sessionStorage.clear();');
|
||||
await browser.executeScript('window.localStorage.clear();');
|
||||
});
|
||||
|
||||
@@ -15,26 +15,24 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { AcsUserModel } from '../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../models/ACS/file.model';
|
||||
import { LoginPage, UploadActions, StringUtil } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, UploadActions, StringUtil, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { TagPage } from '../pages/adf/tag.page';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { browser } from 'protractor';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
||||
describe('Tag component', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const tagPage = new TagPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
let acsUser: UserModel;
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const pdfFileModel = new FileModel({ name: browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_name });
|
||||
const deleteFile = new FileModel({ name: StringUtil.generateRandomString() });
|
||||
const sameTag = StringUtil.generateRandomString().toLowerCase();
|
||||
@@ -53,12 +51,11 @@ describe('Tag component', () => {
|
||||
let pdfUploadedFile, nodeId;
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
pdfUploadedFile = await uploadActions.uploadFile(pdfFileModel.location, pdfFileModel.name, '-my-');
|
||||
|
||||
@@ -70,9 +67,9 @@ describe('Tag component', () => {
|
||||
|
||||
Object.assign(deleteFile, uploadedDeleteFile.entry);
|
||||
|
||||
await this.alfrescoJsApi.core.tagsApi.addTag(nodeId, tags);
|
||||
await apiService.getInstance().core.tagsApi.addTag(nodeId, tags);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
|
||||
@@ -15,14 +15,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, PaginationPage, UploadActions } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { StringUtil, LoginSSOPage, PaginationPage, UploadActions, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { AcsUserModel } from '../models/ACS/acs-user.model';
|
||||
import { FolderModel } from '../models/ACS/folder.model';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
import { TrashcanPage } from '../pages/adf/trashcan.page';
|
||||
import { Util } from '../util/util';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
||||
describe('Trashcan - Pagination', () => {
|
||||
const pagination = {
|
||||
@@ -42,33 +40,31 @@ describe('Trashcan - Pagination', () => {
|
||||
default: '25'
|
||||
};
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const trashcanPage = new TrashcanPage();
|
||||
const paginationPage = new PaginationPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
let acsUser: UserModel;
|
||||
const newFolderModel = new FolderModel({ name: 'newFolder' });
|
||||
const noOfFiles = 20;
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const fileNames = Util.generateSequenceFiles(10, noOfFiles + 9, pagination.base, pagination.extension);
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const fileNames = StringUtil.generateFilesNames(10, noOfFiles + 9, pagination.base, pagination.extension);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
const folderUploadedModel = await uploadActions.createFolder(newFolderModel.name, '-my-');
|
||||
const emptyFiles: any = await uploadActions.createEmptyFiles(fileNames, folderUploadedModel.entry.id);
|
||||
for (const entry of emptyFiles.list.entries) {
|
||||
await this.alfrescoJsApi.node.deleteNode(entry.entry.id).then(() => {}, () => {
|
||||
this.alfrescoJsApi.node.deleteNode(entry.entry.id);
|
||||
await apiService.getInstance().node.deleteNode(entry.entry.id).then(() => {}, async () => {
|
||||
await apiService.getInstance().node.deleteNode(entry.entry.id);
|
||||
});
|
||||
}
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await navigationBarPage.clickTrashcanButton();
|
||||
await trashcanPage.waitForTableBody();
|
||||
});
|
||||
|
||||
@@ -15,25 +15,23 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, UploadActions } from '@alfresco/adf-testing';
|
||||
import { ApiService, LoginSSOPage, UploadActions, UserModel } from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
import { TreeViewPage } from '../pages/adf/content-services/tree-view.page';
|
||||
import { AcsUserModel } from '../models/ACS/acs-user.model';
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
||||
describe('Tree View Component', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const treeViewPage = new TreeViewPage();
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
let acsUser: UserModel;
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
let treeFolder, secondTreeFolder, thirdTreeFolder;
|
||||
|
||||
@@ -46,30 +44,30 @@ describe('Tree View Component', () => {
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
treeFolder = await this.alfrescoJsApi.nodes.addNode(nodeNames.parentFolder, {
|
||||
treeFolder = await apiService.getInstance().nodes.addNode(nodeNames.parentFolder, {
|
||||
name: nodeNames.folder,
|
||||
nodeType: 'cm:folder'
|
||||
});
|
||||
secondTreeFolder = await this.alfrescoJsApi.nodes.addNode(nodeNames.parentFolder, {
|
||||
secondTreeFolder = await apiService.getInstance().nodes.addNode(nodeNames.parentFolder, {
|
||||
name: nodeNames.secondFolder,
|
||||
nodeType: 'cm:folder'
|
||||
});
|
||||
thirdTreeFolder = await this.alfrescoJsApi.nodes.addNode(secondTreeFolder.entry.id, {
|
||||
thirdTreeFolder = await apiService.getInstance().nodes.addNode(secondTreeFolder.entry.id, {
|
||||
name: nodeNames.thirdFolder,
|
||||
nodeType: 'cm:folder'
|
||||
});
|
||||
await this.alfrescoJsApi.nodes.addNode(thirdTreeFolder.entry.id, {
|
||||
await apiService.getInstance().nodes.addNode(thirdTreeFolder.entry.id, {
|
||||
name: nodeNames.document,
|
||||
nodeType: 'cm:content'
|
||||
});
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await navigationBarPage.clickTreeViewButton();
|
||||
});
|
||||
@@ -77,7 +75,7 @@ describe('Tree View Component', () => {
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await uploadActions.deleteFileOrFolder(treeFolder.entry.id);
|
||||
await uploadActions.deleteFileOrFolder(secondTreeFolder.entry.id);
|
||||
|
||||
@@ -16,26 +16,24 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, UploadActions } from '@alfresco/adf-testing';
|
||||
import { ApiService, LoginSSOPage, UploadActions, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { UploadDialogPage } from '../../pages/adf/dialog/upload-dialog.page';
|
||||
import { UploadTogglesPage } from '../../pages/adf/dialog/upload-toggles.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Upload component', async () => {
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const apiService = new ApiService();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const uploadDialog = new UploadDialogPage();
|
||||
const uploadToggles = new UploadTogglesPage();
|
||||
const loginPage = new LoginPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const loginPage = new LoginSSOPage();
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
let acsUser: UserModel;
|
||||
|
||||
const pngFile = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
@@ -53,11 +51,11 @@ describe('Upload component', async () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
|
||||
@@ -16,25 +16,26 @@
|
||||
*/
|
||||
|
||||
import { element, by, browser } from 'protractor';
|
||||
import { LoginPage, LocalStorageUtil } from '@alfresco/adf-testing';
|
||||
import { DropActions, LoginSSOPage, LocalStorageUtil, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { UploadDialogPage } from '../../pages/adf/dialog/upload-dialog.page';
|
||||
import { UploadTogglesPage } from '../../pages/adf/dialog/upload-toggles.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { DropActions } from '../../actions/drop.actions';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { FolderModel } from '../../models/ACS/folder.model';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Upload component - Excluded Files', () => {
|
||||
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const uploadDialog = new UploadDialogPage();
|
||||
const uploadToggles = new UploadTogglesPage();
|
||||
const loginPage = new LoginPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
let acsUser: UserModel;
|
||||
|
||||
const iniExcludedFile = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.INI.file_name,
|
||||
@@ -67,18 +68,13 @@ describe('Upload component - Excluded Files', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
@@ -15,30 +15,29 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { BrowserActions, LoginPage, UploadActions } from '@alfresco/adf-testing';
|
||||
import { ApiService, BrowserActions, LoginSSOPage, UploadActions, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { UploadDialogPage } from '../../pages/adf/dialog/upload-dialog.page';
|
||||
import { UploadTogglesPage } from '../../pages/adf/dialog/upload-toggles.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { VersionManagePage } from '../../pages/adf/version-manager.page';
|
||||
import { FolderModel } from '../../models/ACS/folder.model';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Upload component', () => {
|
||||
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const uploadDialog = new UploadDialogPage();
|
||||
const uploadToggles = new UploadTogglesPage();
|
||||
const loginPage = new LoginPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const versionManagePage = new VersionManagePage();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const apiService = new ApiService();
|
||||
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
let acsUser: UserModel;
|
||||
|
||||
const firstPdfFileModel = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.PDF_B.file_name,
|
||||
@@ -88,10 +87,10 @@ describe('Upload component', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
@@ -232,7 +231,7 @@ describe('Upload component', () => {
|
||||
document.querySelector("#adf-upload-dialog-cancel-all").click();
|
||||
document.querySelector("#adf-upload-dialog-cancel").click();
|
||||
}
|
||||
}, 2000)`);
|
||||
}, 500)`);
|
||||
await contentServicesPage.uploadFolder(adfBigFolder.location);
|
||||
|
||||
await expect(await uploadDialog.getTitleText()).toEqual('Upload canceled');
|
||||
|
||||
@@ -17,30 +17,28 @@
|
||||
|
||||
import { element, by, browser } from 'protractor';
|
||||
|
||||
import { LoginPage, UploadActions, StringUtil } from '@alfresco/adf-testing';
|
||||
import { DropActions, LoginSSOPage, UploadActions, StringUtil, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { UploadDialogPage } from '../../pages/adf/dialog/upload-dialog.page';
|
||||
import { UploadTogglesPage } from '../../pages/adf/dialog/upload-toggles.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { DropActions } from '../../actions/drop.actions';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Upload component', () => {
|
||||
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const uploadDialog = new UploadDialogPage();
|
||||
const uploadToggles = new UploadTogglesPage();
|
||||
const loginPage = new LoginPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const loginPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
let acsUser: UserModel;
|
||||
|
||||
const firstPdfFileModel = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.PDF_B.file_name,
|
||||
'location': browser.params.resources.Files.ADF_DOCUMENTS.PDF_B.file_path
|
||||
@@ -67,10 +65,10 @@ describe('Upload component', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
const pdfUploadedFile = await uploadActions.uploadFile(firstPdfFileModel.location, firstPdfFileModel.name, '-my-');
|
||||
Object.assign(firstPdfFileModel, pdfUploadedFile.entry);
|
||||
});
|
||||
@@ -84,7 +82,6 @@ describe('Upload component', () => {
|
||||
});
|
||||
|
||||
describe('', () => {
|
||||
|
||||
afterEach(async () => {
|
||||
const nodeList = await contentServicesPage.getElementsDisplayedId();
|
||||
for (const node of nodeList) {
|
||||
|
||||
@@ -16,24 +16,23 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { StringUtil, LoginPage, NotificationHistoryPage } from '@alfresco/adf-testing';
|
||||
import { StringUtil, LoginSSOPage, NotificationHistoryPage, ApiService } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { UploadDialogPage } from '../../pages/adf/dialog/upload-dialog.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Upload - User permission', () => {
|
||||
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const uploadDialog = new UploadDialogPage();
|
||||
const loginPage = new LoginPage();
|
||||
let acsUser;
|
||||
let acsUserTwo;
|
||||
const loginPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const notificationHistoryPage = new NotificationHistoryPage();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const emptyFile = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.TXT_0B.file_name,
|
||||
@@ -50,49 +49,42 @@ describe('Upload - User permission', () => {
|
||||
'location': browser.params.resources.Files.ADF_DOCUMENTS.PDF.file_location
|
||||
});
|
||||
|
||||
let acsUser, acsUserTwo, consumerSite, managerSite;
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
acsUser = await usersActions.createUser(acsUser);
|
||||
acsUserTwo = await usersActions.createUser(acsUserTwo);
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
acsUser = new AcsUserModel();
|
||||
acsUserTwo = new AcsUserModel();
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUserTwo);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
|
||||
this.consumerSite = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
consumerSite = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
this.managerSite = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
managerSite = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(this.consumerSite.entry.id, {
|
||||
id: acsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(consumerSite.entry.id, {
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.CONSUMER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(this.managerSite.entry.id, {
|
||||
id: acsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(managerSite.entry.id, {
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(this.managerSite.entry.id, { permanent: true });
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(this.consumerSite.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(managerSite.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(consumerSite.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
describe('Consumer permissions', () => {
|
||||
@@ -102,14 +94,13 @@ describe('Upload - User permission', () => {
|
||||
});
|
||||
|
||||
it('[C291921] Should display tooltip for uploading files without permissions', async () => {
|
||||
await navigationBarPage.openContentServicesFolder(this.consumerSite.entry.guid);
|
||||
await navigationBarPage.openContentServicesFolder(consumerSite.entry.guid);
|
||||
|
||||
await contentServicesPage.checkDragAndDropDIsDisplayed();
|
||||
|
||||
await contentServicesPage.dragAndDropFile(emptyFile.location);
|
||||
|
||||
await uploadDialog.fileIsError(emptyFile.name);
|
||||
|
||||
await uploadDialog.displayTooltip();
|
||||
|
||||
await expect(await uploadDialog.getTooltip()).toEqual('Insufficient permissions to upload in this location [403]');
|
||||
@@ -124,7 +115,7 @@ describe('Upload - User permission', () => {
|
||||
await uploadDialog.clickOnCloseButton();
|
||||
await uploadDialog.dialogIsNotDisplayed();
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(this.consumerSite.entry.guid);
|
||||
await navigationBarPage.openContentServicesFolder(consumerSite.entry.guid);
|
||||
|
||||
await browser.sleep(3000);
|
||||
|
||||
@@ -135,9 +126,8 @@ describe('Upload - User permission', () => {
|
||||
});
|
||||
|
||||
describe('full permissions', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await navigationBarPage.openContentServicesFolder(this.managerSite.entry.guid);
|
||||
await navigationBarPage.openContentServicesFolder(managerSite.entry.guid);
|
||||
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
@@ -150,7 +140,6 @@ describe('Upload - User permission', () => {
|
||||
});
|
||||
|
||||
describe('multiple users', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
@@ -163,7 +152,7 @@ describe('Upload - User permission', () => {
|
||||
await contentServicesPage.checkContentIsDisplayed(emptyFile.name);
|
||||
|
||||
await navigationBarPage.clickLoginButton();
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUserTwo);
|
||||
await loginPage.login(acsUserTwo.email, acsUserTwo.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
|
||||
await contentServicesPage.checkContentIsNotDisplayed(emptyFile.name);
|
||||
@@ -173,7 +162,7 @@ describe('Upload - User permission', () => {
|
||||
await contentServicesPage.checkContentIsDisplayed(pngFile.name);
|
||||
|
||||
await navigationBarPage.clickLoginButton();
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
|
||||
await contentServicesPage.checkContentIsNotDisplayed(pngFile.name);
|
||||
|
||||
@@ -15,25 +15,33 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { BrowserActions, BrowserVisibility, FileBrowserUtil, LoginPage, UploadActions } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import {
|
||||
ApiService,
|
||||
BrowserActions,
|
||||
BrowserVisibility,
|
||||
FileBrowserUtil,
|
||||
LoginSSOPage,
|
||||
UploadActions, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { browser, by, element } from 'protractor';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { UploadDialogPage } from '../../pages/adf/dialog/upload-dialog.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { VersionManagePage } from '../../pages/adf/version-manager.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Version component actions', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const versionManagePage = new VersionManagePage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const uploadDialog = new UploadDialogPage();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
let acsUser: UserModel;
|
||||
|
||||
const txtFileModel = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.TXT.file_name,
|
||||
@@ -52,18 +60,14 @@ describe('Version component actions', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
uploadActions = new UploadActions(apiService);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
acsUser = await usersActions.createUser();
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
const txtUploadedFile = await uploadActions.uploadFile(txtFileModel.location, txtFileModel.name, '-my-');
|
||||
Object.assign(txtFileModel, txtUploadedFile.entry);
|
||||
txtFileModel.update(txtUploadedFile.entry);
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
});
|
||||
|
||||
@@ -16,20 +16,25 @@
|
||||
*/
|
||||
|
||||
import { element, by, browser } from 'protractor';
|
||||
import { LoginPage, BrowserActions, UploadActions, StringUtil, NotificationHistoryPage } from '@alfresco/adf-testing';
|
||||
import {
|
||||
LoginSSOPage,
|
||||
BrowserActions,
|
||||
UploadActions,
|
||||
StringUtil,
|
||||
NotificationHistoryPage,
|
||||
ApiService, UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { VersionManagePage } from '../../pages/adf/version-manager.page';
|
||||
import { UploadDialogPage } from '../../pages/adf/dialog/upload-dialog.page';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { NodeActions } from '../../actions/ACS/node.actions';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Version component permissions', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const versionManagePage = new VersionManagePage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const uploadDialog = new UploadDialogPage();
|
||||
@@ -37,12 +42,15 @@ describe('Version component permissions', () => {
|
||||
const contentServices = new ContentServicesPage();
|
||||
let site;
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
const consumerUser = new AcsUserModel();
|
||||
const collaboratorUser = new AcsUserModel();
|
||||
const contributorUser = new AcsUserModel();
|
||||
const managerUser = new AcsUserModel();
|
||||
const fileCreatorUser = new AcsUserModel();
|
||||
const acsUser = new UserModel();
|
||||
const consumerUser = new UserModel();
|
||||
const collaboratorUser = new UserModel();
|
||||
const contributorUser = new UserModel();
|
||||
const managerUser = new UserModel();
|
||||
const fileCreatorUser = new UserModel();
|
||||
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const newVersionFile = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.PNG_B.file_name,
|
||||
@@ -59,86 +67,83 @@ describe('Version component permissions', () => {
|
||||
'location': browser.params.resources.Files.ADF_DOCUMENTS.PNG_D.file_path
|
||||
});
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const nodeActions = new NodeActions();
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(consumerUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(collaboratorUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(contributorUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(managerUser);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(fileCreatorUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
await usersActions.createUser(consumerUser);
|
||||
await usersActions.createUser(collaboratorUser);
|
||||
await usersActions.createUser(contributorUser);
|
||||
await usersActions.createUser(managerUser);
|
||||
await usersActions.createUser(fileCreatorUser);
|
||||
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: consumerUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: consumerUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.CONSUMER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: collaboratorUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: collaboratorUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.COLLABORATOR
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: contributorUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: contributorUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.CONTRIBUTOR
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: managerUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: managerUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: fileCreatorUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: fileCreatorUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
|
||||
const lockFileUploaded = await uploadActions.uploadFile(lockFileModel.location, lockFileModel.name, site.entry.guid);
|
||||
Object.assign(lockFileModel, lockFileUploaded.entry);
|
||||
|
||||
nodeActions.lockNode(this.alfrescoJsApi, lockFileModel.id);
|
||||
await apiService.getInstance().nodes.lockNode(lockFileModel.id, {
|
||||
type: 'FULL',
|
||||
lifetime: 'PERSISTENT'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.login(fileCreatorUser.id, fileCreatorUser.password);
|
||||
await apiService.getInstance().login(fileCreatorUser.email, fileCreatorUser.password);
|
||||
|
||||
await uploadActions.uploadFile(differentCreatorFile.location, differentCreatorFile.name, site.entry.guid);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
describe('Manager', () => {
|
||||
|
||||
const sameCreatorFile = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
'location': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_path
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(managerUser.id, managerUser.password);
|
||||
await apiService.getInstance().login(managerUser.email, managerUser.password);
|
||||
|
||||
const sameCreatorFileUploaded = await uploadActions.uploadFile(sameCreatorFile.location, sameCreatorFile.name, site.entry.guid);
|
||||
Object.assign(sameCreatorFile, sameCreatorFileUploaded.entry);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(managerUser);
|
||||
await loginPage.login(managerUser.email, managerUser.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(site.entry.guid);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.nodes.deleteNode(sameCreatorFile.id);
|
||||
await apiService.getInstance().nodes.deleteNode(sameCreatorFile.id);
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
});
|
||||
|
||||
@@ -170,9 +175,8 @@ describe('Version component permissions', () => {
|
||||
});
|
||||
|
||||
describe('Consumer', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(consumerUser);
|
||||
await loginPage.login(consumerUser.email, consumerUser.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(site.entry.guid);
|
||||
});
|
||||
@@ -200,18 +204,18 @@ describe('Version component permissions', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(contributorUser.id, contributorUser.password);
|
||||
await apiService.getInstance().login(contributorUser.email, contributorUser.password);
|
||||
|
||||
const sameCreatorFileUploaded = await uploadActions.uploadFile(sameCreatorFile.location, sameCreatorFile.name, site.entry.guid);
|
||||
Object.assign(sameCreatorFile, sameCreatorFileUploaded.entry);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(contributorUser);
|
||||
await loginPage.login(contributorUser.email, contributorUser.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(site.entry.guid);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.nodes.deleteNode(sameCreatorFile.id);
|
||||
await apiService.getInstance().nodes.deleteNode(sameCreatorFile.id);
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
});
|
||||
|
||||
@@ -255,18 +259,18 @@ describe('Version component permissions', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(collaboratorUser.id, collaboratorUser.password);
|
||||
await apiService.getInstance().login(collaboratorUser.email, collaboratorUser.password);
|
||||
|
||||
const sameCreatorFileUploaded = await uploadActions.uploadFile(sameCreatorFile.location, sameCreatorFile.name, site.entry.guid);
|
||||
Object.assign(sameCreatorFile, sameCreatorFileUploaded.entry);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(collaboratorUser);
|
||||
await loginPage.login(collaboratorUser.email, collaboratorUser.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(site.entry.guid);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.nodes.deleteNode(sameCreatorFile.id);
|
||||
await apiService.getInstance().nodes.deleteNode(sameCreatorFile.id);
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
});
|
||||
|
||||
|
||||
@@ -16,22 +16,31 @@
|
||||
*/
|
||||
|
||||
import { by, element, browser } from 'protractor';
|
||||
import { LoginPage, UploadActions, BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||
import {
|
||||
LoginSSOPage,
|
||||
UploadActions,
|
||||
BrowserVisibility,
|
||||
BrowserActions,
|
||||
ApiService,
|
||||
UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { VersionManagePage } from '../../pages/adf/version-manager.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Version Properties', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const versionManagePage = new VersionManagePage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
let acsUser: UserModel;
|
||||
|
||||
const txtFileModel = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.TXT_0B.file_name,
|
||||
@@ -42,19 +51,15 @@ describe('Version Properties', () => {
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
'location': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_location
|
||||
});
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
const txtUploadedFile = await uploadActions.uploadFile(txtFileModel.location, txtFileModel.name, '-my-');
|
||||
|
||||
@@ -62,7 +67,7 @@ describe('Version Properties', () => {
|
||||
|
||||
txtFileModel.update(txtUploadedFile.entry);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
|
||||
@@ -16,23 +16,32 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, UploadActions, BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||
import {
|
||||
LoginSSOPage,
|
||||
UploadActions,
|
||||
BrowserVisibility,
|
||||
BrowserActions,
|
||||
ApiService,
|
||||
UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { VersionManagePage } from '../../pages/adf/version-manager.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Version component', () => {
|
||||
|
||||
let txtUploadedFile;
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const versionManagePage = new VersionManagePage();
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
let acsUser: UserModel;
|
||||
|
||||
const txtFileModel = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.TXT.file_name,
|
||||
@@ -58,26 +67,22 @@ describe('Version component', () => {
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.PNG_D.file_name,
|
||||
'location': browser.params.resources.Files.ADF_DOCUMENTS.PNG_D.file_location
|
||||
});
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
txtUploadedFile = await uploadActions.uploadFile(txtFileModel.location, txtFileModel.name, '-my-');
|
||||
Object.assign(txtFileModel, txtUploadedFile.entry);
|
||||
|
||||
txtFileModel.update(txtUploadedFile.entry);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.waitForTableBody();
|
||||
|
||||
@@ -26,11 +26,11 @@ describe('Auth Guard SSO', () => {
|
||||
|
||||
it('[C307058] Should be redirected to 403 when user doesn\'t have permissions', async () => {
|
||||
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url,
|
||||
browser.params.testConfig.adf.hostSso,
|
||||
browser.params.testConfig.adf.hostIdentity,
|
||||
false, true, browser.params.config.oauth2.clientId);
|
||||
browser.params.testConfig.appConfig.oauth2.host,
|
||||
browser.params.testConfig.appConfig.identityHost,
|
||||
false, true, browser.params.testConfig.appConfig.oauth2.clientId);
|
||||
await loginSSOPage.clickOnSSOButton();
|
||||
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/cloud/simple-app');
|
||||
await browser.sleep(1000);
|
||||
const error = await errorPage.getErrorCode();
|
||||
|
||||
@@ -15,32 +15,29 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { DataTableComponentPage, LoginPage } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { ApiService, DataTableComponentPage, LoginSSOPage, UserModel } from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { DataTablePage } from '../../pages/adf/demo-shell/data-table.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Datatable component - selection', () => {
|
||||
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const dataTablePage = new DataTablePage();
|
||||
const loginPage = new LoginPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const acsUser = new UserModel();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const dataTableComponent = new DataTableComponentPage();
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await navigationBarPage.navigateToDatatable();
|
||||
});
|
||||
|
||||
@@ -15,41 +15,37 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, NotificationHistoryPage } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { ApiService, DropActions, LoginSSOPage, NotificationHistoryPage, UserModel } from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { DropActions } from '../../actions/drop.actions';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { DataTablePage } from '../../pages/adf/demo-shell/data-table.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Datatable component', () => {
|
||||
|
||||
const dataTablePage = new DataTablePage('defaultTable');
|
||||
const copyContentDataTablePage = new DataTablePage('copyClipboardDataTable');
|
||||
const dragAndDropDataTablePage = new DataTablePage();
|
||||
const loginPage = new LoginPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const acsUser = new UserModel();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const notificationHistoryPage = new NotificationHistoryPage();
|
||||
const dragAndDrop = new DropActions();
|
||||
const pngFile = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
'location': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_location
|
||||
});
|
||||
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const dragAndDrop = new DropActions();
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
@@ -57,7 +53,6 @@ describe('Datatable component', () => {
|
||||
});
|
||||
|
||||
describe('Datatable component - copyContent', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
await navigationBarPage.navigateToCopyContentDatatable();
|
||||
await dataTablePage.dataTable.waitForTableBody();
|
||||
@@ -142,7 +137,6 @@ describe('Datatable component', () => {
|
||||
});
|
||||
|
||||
describe('Datatable component - Drag and Drop', () => {
|
||||
|
||||
beforeAll(async () => {
|
||||
await navigationBarPage.navigateToDragAndDropDatatable();
|
||||
await dragAndDropDataTablePage.dataTable.waitForTableBody();
|
||||
|
||||
@@ -15,28 +15,25 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, ErrorPage, BrowserActions } from '@alfresco/adf-testing';
|
||||
import { AcsUserModel } from '../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { LoginSSOPage, ErrorPage, BrowserActions, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
||||
describe('Error Component', () => {
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
const loginPage = new LoginPage();
|
||||
const acsUser = new UserModel();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const errorPage = new ErrorPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
beforeAll(async () => {
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
|
||||
@@ -14,20 +14,22 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { HeaderPage, LoginPage, SettingsPage } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { ApiService, HeaderPage, LoginSSOPage, SettingsPage, UserModel } from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
||||
describe('Header Component', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const headerPage = new HeaderPage();
|
||||
const settingsPage = new SettingsPage();
|
||||
|
||||
let user, tenantId;
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const acsUser = new UserModel();
|
||||
|
||||
const names = {
|
||||
app_title_default: 'ADF Demo Application',
|
||||
@@ -43,34 +45,16 @@ describe('Header Component', () => {
|
||||
logo_tooltip: 'test_tooltip'
|
||||
};
|
||||
|
||||
beforeAll(async() => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'BPM',
|
||||
hostBpm: browser.params.testConfig.adf_aps.host
|
||||
});
|
||||
beforeAll(async () => {
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
const users = new UsersActions();
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
|
||||
user = await users.createTenantAndUser(this.alfrescoJsApi);
|
||||
|
||||
tenantId = user.tenantId;
|
||||
|
||||
await this.alfrescoJsApi.login(user.email, user.password);
|
||||
|
||||
await loginPage.loginToProcessServicesUsingUserModel(user);
|
||||
});
|
||||
|
||||
beforeEach(async() => {
|
||||
await navigationBarPage.clickHeaderDataButton();
|
||||
await usersActions.createUser(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async() => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
|
||||
});
|
||||
beforeEach(async () => {
|
||||
await navigationBarPage.clickHeaderDataButton();
|
||||
});
|
||||
|
||||
it('[C280002] Should be able to view Header component', async () => {
|
||||
await headerPage.checkShowMenuCheckBoxIsDisplayed();
|
||||
|
||||
@@ -15,30 +15,26 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage } from '@alfresco/adf-testing';
|
||||
import { ApiService, LoginSSOPage, UserModel } from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
import { IconsPage } from '../pages/adf/icons.page';
|
||||
import { AcsUserModel } from '../models/ACS/acs-user.model';
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
||||
describe('Universal Icon component', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const acsUser = new AcsUserModel();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const acsUser = new UserModel();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const iconsPage = new IconsPage();
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
beforeAll(async () => {
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
|
||||
@@ -15,24 +15,25 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LocalStorageUtil, LoginPage, UploadActions } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { StringUtil, LocalStorageUtil, LoginSSOPage, UploadActions, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { AcsUserModel } from '../models/ACS/acs-user.model';
|
||||
import { FolderModel } from '../models/ACS/folder.model';
|
||||
import { ContentServicesPage } from '../pages/adf/content-services.page';
|
||||
import { InfinitePaginationPage } from '../pages/adf/core/infinite-pagination.page';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
import { Util } from '../util/util';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
||||
describe('Enable infinite scrolling', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const infinitePaginationPage = new InfinitePaginationPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const acsUser = new UserModel();
|
||||
const folderModel = new FolderModel({ 'name': 'folderOne' });
|
||||
|
||||
let fileNames = [];
|
||||
@@ -49,22 +50,18 @@ describe('Enable infinite scrolling', () => {
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
fileNames = Util.generateSequenceFiles(1, nrOfFiles, files.base, files.extension);
|
||||
deleteFileNames = Util.generateSequenceFiles(1, nrOfDeletedFiles, files.base, files.extension);
|
||||
fileNames = StringUtil.generateFilesNames(1, nrOfFiles, files.base, files.extension);
|
||||
deleteFileNames = StringUtil.generateFilesNames(1, nrOfDeletedFiles, files.base, files.extension);
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
const folderUploadedModel = await uploadActions.createFolder(folderModel.name, '-my-');
|
||||
emptyFolderModel = await uploadActions.createFolder('emptyFolder', '-my-');
|
||||
|
||||
@@ -15,31 +15,32 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { BrowserActions, ErrorPage, LoginPage, SettingsPage, UserInfoPage } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import {
|
||||
ApiService,
|
||||
BrowserActions,
|
||||
ErrorPage,
|
||||
LocalStorageUtil,
|
||||
UserInfoPage,
|
||||
UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { ProcessServicesPage } from '../../pages/adf/process-services/process-services.page';
|
||||
import { Util } from '../../util/util';
|
||||
import { LoginPage } from '../../pages/adf/demo-shell/login.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Login component', () => {
|
||||
|
||||
const settingsPage = new SettingsPage();
|
||||
const processServicesPage = new ProcessServicesPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const userInfoPage = new UserInfoPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const loginPage = new LoginPage();
|
||||
const errorPage = new ErrorPage();
|
||||
const adminUserModel = new AcsUserModel({
|
||||
'id': browser.params.testConfig.adf.adminUser,
|
||||
'password': browser.params.testConfig.adf.adminPassword
|
||||
});
|
||||
|
||||
const userA = new AcsUserModel();
|
||||
const userB = new AcsUserModel();
|
||||
const userA = new UserModel();
|
||||
const userB = new UserModel();
|
||||
|
||||
const errorMessages = {
|
||||
username: 'Your username needs to be at least 2 characters.',
|
||||
@@ -50,33 +51,32 @@ describe('Login component', () => {
|
||||
const invalidUsername = 'invaliduser';
|
||||
const invalidPassword = 'invalidpassword';
|
||||
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ALL',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host,
|
||||
hostBpm: browser.params.testConfig.adf_aps.host
|
||||
});
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(userA);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(userB);
|
||||
await usersActions.createUser(userA);
|
||||
await usersActions.createUser(userB);
|
||||
});
|
||||
|
||||
it('[C276746] Should display the right information in user-info when a different users logs in', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(userA);
|
||||
await LocalStorageUtil.setStorageItem('providers', 'ECM');
|
||||
|
||||
await loginPage.login(userA.email, userA.password);
|
||||
await userInfoPage.clickUserProfile();
|
||||
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(userA.firstName + ' ' + userA.lastName);
|
||||
await expect(await userInfoPage.getContentEmail()).toEqual(userA.email);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(userB);
|
||||
await loginPage.login(userB.email, userB.password);
|
||||
await userInfoPage.clickUserProfile();
|
||||
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(userB.firstName + ' ' + userB.lastName);
|
||||
await expect(await userInfoPage.getContentEmail()).toEqual(userB.email);
|
||||
});
|
||||
|
||||
it('[C299206] Should redirect the user without the right access role on a forbidden page', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(userA);
|
||||
await loginPage.login(userA.email, userA.password);
|
||||
await navigationBarPage.navigateToProcessServicesCloudPage();
|
||||
await expect(await errorPage.getErrorCode()).toBe('403');
|
||||
await expect(await errorPage.getErrorTitle()).toBe('You don\'t have permission to access this server.');
|
||||
@@ -120,7 +120,7 @@ describe('Login component', () => {
|
||||
|
||||
it('[C260045] Should enable login button after entering a valid username and a password', async () => {
|
||||
await loginPage.goToLoginPage();
|
||||
await loginPage.enterUsername(adminUserModel.id);
|
||||
await loginPage.enterUsername(browser.params.testConfig.admin.email);
|
||||
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
await loginPage.enterPassword('a');
|
||||
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(true);
|
||||
@@ -165,11 +165,11 @@ describe('Login component', () => {
|
||||
});
|
||||
|
||||
it('[C260049] Should be possible to login to Process Services with Content Services disabled', async () => {
|
||||
await LocalStorageUtil.setStorageItem('providers', 'BPM');
|
||||
|
||||
await loginPage.goToLoginPage();
|
||||
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderBpm();
|
||||
await loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await navigationBarPage.navigateToProcessServicesPage();
|
||||
await processServicesPage.checkApsContainer();
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
@@ -177,23 +177,21 @@ describe('Login component', () => {
|
||||
});
|
||||
|
||||
it('[C260050] Should be possible to login to Content Services with Process Services disabled', async () => {
|
||||
await LocalStorageUtil.setStorageItem('providers', 'ECM');
|
||||
|
||||
await loginPage.goToLoginPage();
|
||||
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderEcm();
|
||||
await loginPage.login(browser.params.testConfig.adf.adminUser, browser.params.testConfig.adf.adminPassword);
|
||||
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.checkAcsContainer();
|
||||
});
|
||||
|
||||
it('[C260051] Should be able to login to both Content Services and Process Services', async () => {
|
||||
await LocalStorageUtil.setStorageItem('providers', 'ALL');
|
||||
|
||||
await loginPage.goToLoginPage();
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderEcmBpm();
|
||||
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderEcmBpm();
|
||||
await loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await navigationBarPage.navigateToProcessServicesPage();
|
||||
await processServicesPage.checkApsContainer();
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
@@ -203,30 +201,28 @@ describe('Login component', () => {
|
||||
});
|
||||
|
||||
it('[C277754] Should the user be redirect to the login page when the Content Service session expire', async () => {
|
||||
await LocalStorageUtil.setStorageItem('providers', 'ECM');
|
||||
|
||||
await loginPage.goToLoginPage();
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderEcmBpm();
|
||||
await loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await browser.executeScript('window.localStorage.removeItem("ADF_ticket-ECM");');
|
||||
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/files');
|
||||
await loginPage.waitForElements();
|
||||
|
||||
await LocalStorageUtil.setStorageItem('providers', 'ALL');
|
||||
});
|
||||
|
||||
it('[C279932] Should successRoute property change the landing page when the user Login', async () => {
|
||||
await loginPage.goToLoginPage();
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderEcmBpm();
|
||||
await loginPage.enableSuccessRouteSwitch();
|
||||
await loginPage.enterSuccessRoute('activiti');
|
||||
await loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await processServicesPage.checkApsContainer();
|
||||
});
|
||||
|
||||
it('[C279931] Should the user be redirect to the login page when the Process Service session expire', async () => {
|
||||
await loginPage.goToLoginPage();
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderEcmBpm();
|
||||
await loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await browser.executeScript('window.localStorage.removeItem("ADF_ticket-BPM");');
|
||||
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/activiti');
|
||||
await loginPage.waitForElements();
|
||||
@@ -234,11 +230,9 @@ describe('Login component', () => {
|
||||
|
||||
it('[C279930] Should a user still be logged-in when open a new tab', async () => {
|
||||
await loginPage.goToLoginPage();
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderEcmBpm();
|
||||
await loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await Util.openNewTabInBrowser();
|
||||
await browser.executeScript("window.open('about: blank', '_blank');");
|
||||
|
||||
const handles = await browser.getAllWindowHandles();
|
||||
await browser.switchTo().window(handles[1]);
|
||||
@@ -250,16 +244,13 @@ describe('Login component', () => {
|
||||
|
||||
it('[C279933] Should be possible change the login component logo when logoImageUrl is changed', async () => {
|
||||
await loginPage.goToLoginPage();
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderEcmBpm();
|
||||
await loginPage.enableLogoSwitch();
|
||||
await loginPage.enterLogo('https://rawgit.com/Alfresco/alfresco-ng2-components/master/assets/angular2.png');
|
||||
await loginPage.checkLoginImgURL();
|
||||
});
|
||||
|
||||
it('[C291854] Should be possible login in valid credentials', async () => {
|
||||
await BrowserActions.getUrl(browser.params.testConfig.adf.url);
|
||||
await loginPage.waitForElements();
|
||||
await loginPage.goToLoginPage();
|
||||
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
await loginPage.enterUsername(invalidUsername);
|
||||
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
@@ -267,6 +258,6 @@ describe('Login component', () => {
|
||||
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(true);
|
||||
await loginPage.clickSignInButton();
|
||||
await expect(await loginPage.getLoginError()).toEqual(errorMessages.invalid_credentials);
|
||||
await loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -15,9 +15,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginSSOPage, SettingsPage, LoginPage, BrowserVisibility } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, SettingsPage, BrowserVisibility } from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { NavigationBarPage } from '../../../pages/adf/navigation-bar.page';
|
||||
import { LoginPage } from '../../../pages/adf/demo-shell/login.page';
|
||||
|
||||
describe('Login component - SSO', () => {
|
||||
|
||||
@@ -26,11 +27,7 @@ describe('Login component - SSO', () => {
|
||||
const loginPage = new LoginPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
const silentLogin = false;
|
||||
let implicitFlow;
|
||||
|
||||
describe('Login component - SSO implicit Flow', () => {
|
||||
|
||||
afterEach(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
await browser.executeScript('window.sessionStorage.clear();');
|
||||
@@ -39,35 +36,33 @@ describe('Login component - SSO', () => {
|
||||
});
|
||||
|
||||
it('[C261050] Should be possible login with SSO', async () => {
|
||||
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host,
|
||||
browser.params.testConfig.adf.hostSso,
|
||||
browser.params.testConfig.adf.hostIdentity, false, true, browser.params.config.oauth2.clientId);
|
||||
await settingsPage.setProviderEcmSso(browser.params.testConfig.appConfig.ecmHost,
|
||||
browser.params.testConfig.appConfig.oauth2.host,
|
||||
browser.params.testConfig.appConfig.identityHost, false, true, browser.params.testConfig.appConfig.oauth2.clientId);
|
||||
await loginSSOPage.clickOnSSOButton();
|
||||
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
});
|
||||
|
||||
it('[C280667] Should be redirect directly to keycloak without show the login page with silent login', async () => {
|
||||
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host,
|
||||
browser.params.testConfig.adf.hostSso,
|
||||
browser.params.testConfig.adf.hostIdentity, true, true, browser.params.config.oauth2.clientId);
|
||||
await settingsPage.setProviderEcmSso(browser.params.testConfig.appConfig.ecmHost,
|
||||
browser.params.testConfig.appConfig.oauth2.host,
|
||||
browser.params.testConfig.appConfig.identityHost, true, true, browser.params.testConfig.appConfig.oauth2.clientId);
|
||||
|
||||
await browser.refresh();
|
||||
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Login component - SSO Grant type password (implicit flow false)', () => {
|
||||
|
||||
it('[C299158] Should be possible to login with SSO, with grant type password (Implicit Flow false)', async () => {
|
||||
implicitFlow = false;
|
||||
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host,
|
||||
browser.params.testConfig.adf.hostSso,
|
||||
browser.params.testConfig.adf.hostIdentity, silentLogin, implicitFlow, browser.params.config.oauth2.clientId);
|
||||
await settingsPage.setProviderEcmSso(browser.params.testConfig.appConfig.ecmHost,
|
||||
browser.params.testConfig.appConfig.oauth2.host,
|
||||
browser.params.testConfig.appConfig.identityHost, false, false, browser.params.testConfig.appConfig.oauth2.clientId);
|
||||
|
||||
await loginPage.waitForElements();
|
||||
|
||||
await loginPage.enterUsername(browser.params.testConfig.adf.adminEmail);
|
||||
await loginPage.enterPassword(browser.params.testConfig.adf.adminPassword);
|
||||
await loginPage.enterUsername(browser.params.testConfig.admin.email);
|
||||
await loginPage.enterPassword(browser.params.testConfig.admin.password);
|
||||
await loginPage.clickSignInButton();
|
||||
|
||||
await BrowserVisibility.waitUntilElementIsVisible(loginPage.sidenavLayout);
|
||||
|
||||
@@ -27,10 +27,10 @@ describe('Logout component - SSO', () => {
|
||||
|
||||
it('[C280665] Should be possible change the logout redirect URL', async () => {
|
||||
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url,
|
||||
browser.params.testConfig.adf.hostSso,
|
||||
browser.params.testConfig.adf.hostIdentity, false, true, browser.params.config.oauth2.clientId, '/login');
|
||||
browser.params.testConfig.appConfig.oauth2.host,
|
||||
browser.params.testConfig.appConfig.identityHost, false, true, browser.params.testConfig.appConfig.oauth2.clientId, '/login');
|
||||
await loginSSOPage.clickOnSSOButton();
|
||||
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
|
||||
await browser.sleep(2000);
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
|
||||
import { browser } from 'protractor';
|
||||
|
||||
import { LoginPage, SettingsPage, UploadActions, StringUtil } from '@alfresco/adf-testing';
|
||||
import { SettingsPage, UploadActions, StringUtil, ApiService, LocalStorageUtil } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { ProcessServicesPage } from '../../pages/adf/process-services/process-services.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { LogoutPage } from '../../pages/adf/demo-shell/logout.page';
|
||||
import { LoginPage } from '../../pages/adf/demo-shell/login.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Login component - Redirect', () => {
|
||||
|
||||
@@ -32,39 +32,31 @@ describe('Login component - Redirect', () => {
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const loginPage = new LoginPage();
|
||||
const user = new AcsUserModel();
|
||||
const userFolderOwner = new AcsUserModel();
|
||||
const adminUserModel = new AcsUserModel({
|
||||
'id': browser.params.testConfig.adf.adminUser,
|
||||
'password': browser.params.testConfig.adf.adminPassword
|
||||
});
|
||||
let uploadedFolder;
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host,
|
||||
hostBpm: browser.params.testConfig.adf_aps.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const logoutPage = new LogoutPage();
|
||||
|
||||
let user;
|
||||
let uploadedFolder;
|
||||
|
||||
const apiService = new ApiService();
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(user);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(userFolderOwner);
|
||||
|
||||
await this.alfrescoJsApi.login(user.id, user.password);
|
||||
user = await usersActions.createUser();
|
||||
await apiService.getInstance().login(user.email, user.password);
|
||||
|
||||
uploadedFolder = await uploadActions.createFolder('protecteFolder' + StringUtil.generateRandomString(), '-my-');
|
||||
});
|
||||
});
|
||||
|
||||
it('[C213838] Should after login in CS be redirect to Login page when try to access to PS', async () => {
|
||||
await LocalStorageUtil.setStorageItem('providers', 'ECM');
|
||||
|
||||
await loginPage.goToLoginPage();
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderEcm();
|
||||
await loginPage.login(user.id, user.password);
|
||||
await loginPage.login(user.email, user.password);
|
||||
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.checkAcsContainer();
|
||||
@@ -75,6 +67,8 @@ describe('Login component - Redirect', () => {
|
||||
});
|
||||
|
||||
it('[C260085] Should after login in PS be redirect to Login page when try to access to CS', async () => {
|
||||
await LocalStorageUtil.setStorageItem('providers', 'BPM');
|
||||
|
||||
await loginPage.goToLoginPage();
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderBpm();
|
||||
@@ -82,7 +76,7 @@ describe('Login component - Redirect', () => {
|
||||
await loginPage.enableSuccessRouteSwitch();
|
||||
await loginPage.enterSuccessRoute('activiti');
|
||||
|
||||
await loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await navigationBarPage.navigateToProcessServicesPage();
|
||||
await processServicesPage.checkApsContainer();
|
||||
@@ -93,12 +87,14 @@ describe('Login component - Redirect', () => {
|
||||
});
|
||||
|
||||
it('[C260081] Should after login in BOTH not be redirect to Login page when try to access to CS or PS', async () => {
|
||||
await LocalStorageUtil.setStorageItem('providers', 'ALL');
|
||||
|
||||
await loginPage.goToLoginPage();
|
||||
await loginPage.clickSettingsIcon();
|
||||
|
||||
await settingsPage.setProviderEcmBpm();
|
||||
|
||||
await loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await navigationBarPage.navigateToProcessServicesPage();
|
||||
await processServicesPage.checkApsContainer();
|
||||
@@ -111,7 +107,7 @@ describe('Login component - Redirect', () => {
|
||||
await loginPage.goToLoginPage();
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderEcm();
|
||||
await loginPage.login(user.id, user.password);
|
||||
await loginPage.login(user.email, user.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
|
||||
|
||||
@@ -128,7 +124,7 @@ describe('Login component - Redirect', () => {
|
||||
|
||||
await loginPage.waitForElements();
|
||||
|
||||
await loginPage.login(user.id, user.password);
|
||||
await loginPage.login(user.email, user.password);
|
||||
|
||||
actualUrl = await browser.getCurrentUrl();
|
||||
await expect(actualUrl).toEqual(browser.params.testConfig.adf.url + '/files/' + uploadedFolder.entry.id);
|
||||
@@ -138,7 +134,7 @@ describe('Login component - Redirect', () => {
|
||||
await loginPage.goToLoginPage();
|
||||
await loginPage.clickSettingsIcon();
|
||||
await settingsPage.setProviderEcm();
|
||||
await loginPage.login(user.id, user.password);
|
||||
await loginPage.login(user.email, user.password);
|
||||
|
||||
await navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
|
||||
|
||||
@@ -156,7 +152,7 @@ describe('Login component - Redirect', () => {
|
||||
await browser.refresh();
|
||||
await loginPage.waitForElements();
|
||||
|
||||
await loginPage.enterUsername(user.id);
|
||||
await loginPage.enterUsername(user.email);
|
||||
await loginPage.enterPassword(user.password);
|
||||
await loginPage.clickSignInButton();
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, SettingsPage } from '@alfresco/adf-testing';
|
||||
import { SettingsPage } from '@alfresco/adf-testing';
|
||||
import { LoginPage } from '../../pages/adf/demo-shell/login.page';
|
||||
|
||||
describe('Login component - Remember Me', () => {
|
||||
|
||||
|
||||
+23
-27
@@ -15,49 +15,45 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage } from '@alfresco/adf-testing';
|
||||
import { AcsUserModel } from '../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { ApiService, LoginSSOPage, UserModel } from '@alfresco/adf-testing';
|
||||
import { NotificationDemoPage } from '../pages/adf/demo-shell/notification.page';
|
||||
import { browser } from 'protractor';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
||||
describe('Notifications Component', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const notificationPage = new NotificationDemoPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
let acsUser: UserModel;
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
acsUser = await usersActions.createUser();
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await notificationPage.goToNotificationsPage();
|
||||
|
||||
await notificationPage.enterDurationField(3000);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await notificationPage.enterDurationField(3000);
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await notificationPage.waitForSnackBarToClose();
|
||||
await browser.executeScript(`document.querySelector('button[data-automation-id="notification-custom-dismiss-button"]').click();`);
|
||||
await notificationPage.enterDurationField(3000);
|
||||
});
|
||||
|
||||
it('[C279979] Should not show notification when the message is empty and button is clicked', async () => {
|
||||
@@ -88,15 +84,6 @@ describe('Notifications Component', () => {
|
||||
await expect(await notificationPage.isNotificationSnackBarDisplayed()).toEqual(true);
|
||||
});
|
||||
|
||||
it('[C279987] Should show custom notification during a limited time when a duration is added', async () => {
|
||||
await notificationPage.enterMessageField('test');
|
||||
await notificationPage.enterDurationField(1000);
|
||||
await notificationPage.clickNotificationButton();
|
||||
await expect(await notificationPage.isNotificationSnackBarDisplayed()).toEqual(true);
|
||||
await browser.sleep(2000);
|
||||
await expect(await notificationPage.isNotificationSnackBarDisplayed()).toEqual(false);
|
||||
});
|
||||
|
||||
it('[C280000] Should show notification with action when the message is not empty and custom button is clicked', async () => {
|
||||
await notificationPage.enterMessageField('test');
|
||||
await notificationPage.clickActionToggle();
|
||||
@@ -110,6 +97,15 @@ describe('Notifications Component', () => {
|
||||
await notificationPage.clickActionToggle();
|
||||
});
|
||||
|
||||
it('[C279987] Should show custom notification during a limited time when a duration is added', async () => {
|
||||
await notificationPage.enterMessageField('test');
|
||||
await notificationPage.enterDurationField(1000);
|
||||
await notificationPage.clickNotificationButton();
|
||||
await expect(await notificationPage.isNotificationSnackBarDisplayed()).toEqual(true);
|
||||
await browser.sleep(2000);
|
||||
await expect(await notificationPage.isNotificationSnackBarDisplayed()).toEqual(false);
|
||||
});
|
||||
|
||||
it('[C280001] Should meet configuration when a custom notification is set', async () => {
|
||||
await notificationPage.enterMessageField('test');
|
||||
await notificationPage.enterDurationField(1000);
|
||||
@@ -15,23 +15,33 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, PaginationPage, UploadActions, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import {
|
||||
ArrayUtil,
|
||||
StringUtil,
|
||||
LoginSSOPage,
|
||||
PaginationPage,
|
||||
UploadActions,
|
||||
ViewerPage,
|
||||
ApiService,
|
||||
UserModel
|
||||
} from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { AcsUserModel } from '../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../models/ACS/file.model';
|
||||
import { FolderModel } from '../models/ACS/folder.model';
|
||||
import { ContentServicesPage } from '../pages/adf/content-services.page';
|
||||
import { Util } from '../util/util';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
||||
describe('Pagination - returns to previous page when current is empty', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const paginationPage = new PaginationPage();
|
||||
const viewerPage = new ViewerPage();
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
const viewerPage = new ViewerPage();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const acsUser = new UserModel();
|
||||
const folderModel = new FolderModel({ 'name': 'folderOne' });
|
||||
const parentFolderModel = new FolderModel({ 'name': 'parentFolder' });
|
||||
|
||||
@@ -59,19 +69,15 @@ describe('Pagination - returns to previous page when current is empty', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
fileNames = Util.generateSequenceFiles(1, nrOfFiles, files.base, files.extension);
|
||||
fileNames = StringUtil.generateFilesNames(1, nrOfFiles, files.base, files.extension);
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
const folderUploadedModel = await uploadActions.createFolder(folderModel.name, '-my-');
|
||||
|
||||
@@ -87,7 +93,7 @@ describe('Pagination - returns to previous page when current is empty', () => {
|
||||
|
||||
pngFileUploaded = await uploadActions.uploadFile(pngFileInfo.location, pngFileInfo.name, lastFolderResponse.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
@@ -102,7 +108,7 @@ describe('Pagination - returns to previous page when current is empty', () => {
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
|
||||
|
||||
let list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, fileNames.slice(0, 5))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, fileNames.slice(0, 5))).toEqual(true);
|
||||
|
||||
await paginationPage.clickOnNextPage();
|
||||
|
||||
@@ -111,7 +117,7 @@ describe('Pagination - returns to previous page when current is empty', () => {
|
||||
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
|
||||
|
||||
list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, fileNames.slice(5, 6))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, fileNames.slice(5, 6))).toEqual(true);
|
||||
|
||||
await contentServicesPage.deleteContent(lastFile);
|
||||
await contentServicesPage.checkContentIsNotDisplayed(lastFile);
|
||||
@@ -120,7 +126,7 @@ describe('Pagination - returns to previous page when current is empty', () => {
|
||||
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
|
||||
|
||||
list = await contentServicesPage.getAllRowsNameColumn();
|
||||
await expect(Util.arrayContainsArray(list, fileNames.slice(0, 5))).toEqual(true);
|
||||
await expect(ArrayUtil.arrayContainsArray(list, fileNames.slice(0, 5))).toEqual(true);
|
||||
});
|
||||
|
||||
it('[C297494] Should display content when navigating to a non-empty folder not in the first page', async () => {
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { BrowserActions, LoginPage, SettingsPage } from '@alfresco/adf-testing';
|
||||
import { BrowserActions, SettingsPage } from '@alfresco/adf-testing';
|
||||
import { browser, protractor } from 'protractor';
|
||||
import { AcsUserModel } from '../models/ACS/acs-user.model';
|
||||
import { ContentServicesPage } from '../pages/adf/content-services.page';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
|
||||
import { LoginPage } from '../pages/adf/demo-shell/login.page';
|
||||
|
||||
describe('Settings component', () => {
|
||||
|
||||
@@ -32,11 +32,6 @@ describe('Settings component', () => {
|
||||
const loginError = 'Request has been terminated ' +
|
||||
'Possible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.';
|
||||
|
||||
const adminUserModel = new AcsUserModel({
|
||||
'id': browser.params.testConfig.adf.adminUser,
|
||||
'password': browser.params.testConfig.adf.adminPassword
|
||||
});
|
||||
|
||||
describe('Should be able to change Urls in the Settings', () => {
|
||||
beforeEach(async () => {
|
||||
await settingsPage.goToSettingsPage();
|
||||
@@ -54,8 +49,8 @@ describe('Settings component', () => {
|
||||
await loginPage.waitForElements();
|
||||
await settingsPage.goToSettingsPage();
|
||||
await expect(await settingsPage.getSelectedOptionText()).toEqual('ALL', 'The Settings changes are not saved');
|
||||
await expect(await settingsPage.getBpmHostUrl()).toEqual(browser.params.testConfig.adf_aps.host, 'The BPM Settings changes are not saved');
|
||||
await expect(await settingsPage.getEcmHostUrl()).toEqual(browser.params.testConfig.adf_acs.host, 'The ECM Settings changes are not saved');
|
||||
await expect(await settingsPage.getBpmHostUrl()).toEqual(browser.params.testConfig.appConfig.bpmHost, 'The BPM Settings changes are not saved');
|
||||
await expect(await settingsPage.getEcmHostUrl()).toEqual(browser.params.testConfig.appConfig.ecmHost, 'The ECM Settings changes are not saved');
|
||||
});
|
||||
|
||||
it('[C291949] Should have field validation for Content Services Url', async () => {
|
||||
@@ -79,8 +74,8 @@ describe('Settings component', () => {
|
||||
await settingsPage.setContentServicesURL('http://localhost:7070');
|
||||
await settingsPage.clickApply();
|
||||
await loginPage.waitForElements();
|
||||
await loginPage.enterUsername(adminUserModel.id);
|
||||
await loginPage.enterPassword(adminUserModel.password);
|
||||
await loginPage.enterUsername(browser.params.testConfig.admin.email);
|
||||
await loginPage.enterPassword(browser.params.testConfig.admin.password);
|
||||
await loginPage.clickSignInButton();
|
||||
await expect(await loginPage.getLoginError()).toMatch(loginError);
|
||||
});
|
||||
@@ -90,8 +85,8 @@ describe('Settings component', () => {
|
||||
await settingsPage.setProcessServicesURL('http://localhost:7070');
|
||||
await settingsPage.clickApply();
|
||||
await loginPage.waitForElements();
|
||||
await loginPage.enterUsername(adminUserModel.id);
|
||||
await loginPage.enterPassword(adminUserModel.password);
|
||||
await loginPage.enterUsername(browser.params.testConfig.admin.email);
|
||||
await loginPage.enterPassword(browser.params.testConfig.admin.password);
|
||||
await loginPage.clickSignInButton();
|
||||
await expect(await loginPage.getLoginError()).toMatch(loginError);
|
||||
});
|
||||
@@ -101,8 +96,8 @@ describe('Settings component', () => {
|
||||
beforeAll(async () => {
|
||||
await settingsPage.goToSettingsPage();
|
||||
await settingsPage.setProvider('ALL');
|
||||
await settingsPage.setContentServicesURL(browser.params.testConfig.adf_acs.host);
|
||||
await settingsPage.setProcessServicesURL(browser.params.testConfig.adf_aps.host);
|
||||
await settingsPage.setContentServicesURL(browser.params.testConfig.appConfig.ecmHost);
|
||||
await settingsPage.setProcessServicesURL(browser.params.testConfig.appConfig.bpmHost);
|
||||
await settingsPage.clickApply();
|
||||
});
|
||||
|
||||
@@ -116,8 +111,8 @@ describe('Settings component', () => {
|
||||
await settingsPage.checkProviderOptions();
|
||||
await settingsPage.checkBasicAuthRadioIsSelected();
|
||||
await settingsPage.checkSsoRadioIsNotSelected();
|
||||
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host);
|
||||
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host);
|
||||
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.appConfig.ecmHost);
|
||||
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.appConfig.bpmHost);
|
||||
|
||||
await expect(await settingsPage.getBackButton().isEnabled()).toBe(true);
|
||||
await expect(await settingsPage.getApplyButton().isEnabled()).toBe(true);
|
||||
@@ -131,8 +126,8 @@ describe('Settings component', () => {
|
||||
await settingsPage.checkProviderDropdownIsDisplayed();
|
||||
await settingsPage.setProviderBpm();
|
||||
await loginPage.waitForElements();
|
||||
await loginPage.enterUsername(adminUserModel.id);
|
||||
await loginPage.enterPassword(adminUserModel.password);
|
||||
await loginPage.enterUsername(browser.params.testConfig.admin.email);
|
||||
await loginPage.enterPassword(browser.params.testConfig.admin.password);
|
||||
await loginPage.clickSignInButton();
|
||||
await navigationBarPage.navigateToProcessServicesPage();
|
||||
await processServicesPage.checkApsContainer();
|
||||
@@ -142,7 +137,7 @@ describe('Settings component', () => {
|
||||
|
||||
await settingsPage.checkBasicAuthRadioIsSelected();
|
||||
await settingsPage.checkSsoRadioIsNotSelected();
|
||||
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host);
|
||||
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.appConfig.bpmHost);
|
||||
|
||||
await expect(await settingsPage.getBackButton().isEnabled()).toBe(true);
|
||||
await expect(await settingsPage.getApplyButton().isEnabled()).toBe(true);
|
||||
@@ -161,8 +156,8 @@ describe('Settings component', () => {
|
||||
await settingsPage.checkProviderDropdownIsDisplayed();
|
||||
await settingsPage.setProviderEcm();
|
||||
await loginPage.waitForElements();
|
||||
await loginPage.enterUsername(adminUserModel.id);
|
||||
await loginPage.enterPassword(adminUserModel.password);
|
||||
await loginPage.enterUsername(browser.params.testConfig.admin.email);
|
||||
await loginPage.enterPassword(browser.params.testConfig.admin.password);
|
||||
await loginPage.clickSignInButton();
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.checkAcsContainer();
|
||||
@@ -171,7 +166,7 @@ describe('Settings component', () => {
|
||||
await settingsPage.checkBasicAuthRadioIsSelected();
|
||||
await settingsPage.checkSsoRadioIsNotSelected();
|
||||
|
||||
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host);
|
||||
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.appConfig.ecmHost);
|
||||
await expect(await settingsPage.getBackButton().isEnabled()).toBe(true);
|
||||
await expect(await settingsPage.getApplyButton().isEnabled()).toBe(true);
|
||||
await settingsPage.clickBackButton();
|
||||
@@ -188,8 +183,8 @@ describe('Settings component', () => {
|
||||
await settingsPage.checkProviderDropdownIsDisplayed();
|
||||
await settingsPage.setProviderEcmBpm();
|
||||
await loginPage.waitForElements();
|
||||
await loginPage.enterUsername(adminUserModel.id);
|
||||
await loginPage.enterPassword(adminUserModel.password);
|
||||
await loginPage.enterUsername(browser.params.testConfig.admin.email);
|
||||
await loginPage.enterPassword(browser.params.testConfig.admin.password);
|
||||
await loginPage.clickSignInButton();
|
||||
await navigationBarPage.clickContentServicesButton();
|
||||
await contentServicesPage.checkAcsContainer();
|
||||
@@ -200,8 +195,8 @@ describe('Settings component', () => {
|
||||
await expect(await settingsPage.getSelectedOptionText()).toBe('ALL');
|
||||
await settingsPage.checkBasicAuthRadioIsSelected();
|
||||
await settingsPage.checkSsoRadioIsNotSelected();
|
||||
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host);
|
||||
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host);
|
||||
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.appConfig.ecmHost);
|
||||
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.appConfig.bpmHost);
|
||||
|
||||
await expect(await settingsPage.getBackButton().isEnabled()).toBe(true);
|
||||
await expect(await settingsPage.getApplyButton().isEnabled()).toBe(true);
|
||||
|
||||
@@ -15,38 +15,38 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ApiService, IdentityService, LoginSSOPage, SettingsPage, UserInfoPage } from '@alfresco/adf-testing';
|
||||
import {
|
||||
ApiService,
|
||||
LoginSSOPage,
|
||||
SettingsPage,
|
||||
UserInfoPage
|
||||
} from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
||||
describe('User Info - SSO', () => {
|
||||
|
||||
const settingsPage = new SettingsPage();
|
||||
const loginSSOPage = new LoginSSOPage();
|
||||
const userInfoPage = new UserInfoPage();
|
||||
let silentLogin, identityUser;
|
||||
let identityService: IdentityService;
|
||||
|
||||
const apiService = new ApiService({ authType: 'OAUTH', provider: 'ECM' });
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
let identityUser;
|
||||
|
||||
beforeAll(async () => {
|
||||
const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.testConfig.adf.url, browser.params.testConfig.adf.hostSso, 'ECM');
|
||||
await apiService.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
identityService = new IdentityService(apiService);
|
||||
identityUser = await identityService.createIdentityUser();
|
||||
identityUser = await usersActions.createUser();
|
||||
|
||||
silentLogin = false;
|
||||
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url,
|
||||
browser.params.testConfig.adf.hostSso,
|
||||
browser.params.testConfig.adf.hostIdentity, silentLogin, true, browser.params.config.oauth2.clientId);
|
||||
browser.params.testConfig.appConfig.oauth2.host,
|
||||
browser.params.testConfig.appConfig.identityHost, false, true, browser.params.testConfig.appConfig.oauth2.clientId);
|
||||
|
||||
await loginSSOPage.clickOnSSOButton();
|
||||
|
||||
await loginSSOPage.loginSSOIdentityService(identityUser.email, identityUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
if (identityService) {
|
||||
await identityService.deleteIdentityUser(identityUser.idIdentityService);
|
||||
}
|
||||
});
|
||||
|
||||
it('[C290066] Should display UserInfo when login using SSO', async () => {
|
||||
|
||||
@@ -15,22 +15,27 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, UserInfoPage } from '@alfresco/adf-testing';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { PeopleApi } from '@alfresco/js-api';
|
||||
import { ApiService, LocalStorageUtil, LoginSSOPage, UserInfoPage } from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
import { AcsUserModel } from '../models/ACS/acs-user.model';
|
||||
import { FileModel } from '../models/ACS/file.model';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
import PeopleAPI = require('../restAPI/ACS/PeopleAPI');
|
||||
import path = require('path');
|
||||
import fs = require('fs');
|
||||
|
||||
describe('User Info component', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const userInfoPage = new UserInfoPage();
|
||||
let processUserModel, contentUserModel;
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const peopleApi: PeopleApi = new PeopleApi(apiService.getInstance());
|
||||
|
||||
let user;
|
||||
|
||||
const acsAvatarFileModel = new FileModel({
|
||||
'name': browser.params.resources.Files.PROFILE_IMAGES.ECM.file_name,
|
||||
'location': browser.params.resources.Files.PROFILE_IMAGES.ECM.file_location
|
||||
@@ -41,43 +46,25 @@ describe('User Info component', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
const users = new UsersActions();
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ALL',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host,
|
||||
hostBpm: browser.params.testConfig.adf_aps.host
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
|
||||
processUserModel = await users.createTenantAndUser(this.alfrescoJsApi);
|
||||
|
||||
contentUserModel = new AcsUserModel({
|
||||
'id': processUserModel.email,
|
||||
'password': processUserModel.password,
|
||||
'firstName': processUserModel.firstName,
|
||||
'lastName': processUserModel.lastName,
|
||||
'email': processUserModel.email
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(contentUserModel);
|
||||
});
|
||||
user = await usersActions.createUser();
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
});
|
||||
|
||||
it('[C260111] Should display UserInfo when Process Services and Content Services are enabled', async () => {
|
||||
await loginPage.loginToAllUsingUserModel(contentUserModel);
|
||||
await loginPage.login(user.email, user.password);
|
||||
|
||||
await userInfoPage.clickUserProfile();
|
||||
await userInfoPage.dialogIsDisplayed();
|
||||
await userInfoPage.checkContentServicesTabIsSelected();
|
||||
|
||||
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
|
||||
await expect(await userInfoPage.getContentTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
|
||||
await expect(await userInfoPage.getContentEmail()).toEqual(contentUserModel.email);
|
||||
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(user.firstName + ' ' + user.lastName);
|
||||
await expect(await userInfoPage.getContentTitle()).toEqual(user.firstName + ' ' + user.lastName);
|
||||
await expect(await userInfoPage.getContentEmail()).toEqual(user.email);
|
||||
await expect(await userInfoPage.getContentJobTitle()).toEqual('N/A');
|
||||
|
||||
await userInfoPage.checkInitialImage();
|
||||
@@ -89,22 +76,22 @@ describe('User Info component', () => {
|
||||
|
||||
await browser.sleep(1000);
|
||||
|
||||
await expect(await userInfoPage.getProcessHeaderTitle()).toEqual(processUserModel.firstName + ' ' + processUserModel.lastName);
|
||||
await expect(await userInfoPage.getProcessTitle()).toEqual(processUserModel.firstName + ' ' + processUserModel.lastName);
|
||||
await expect(await userInfoPage.getProcessEmail()).toEqual(processUserModel.email);
|
||||
await expect(await userInfoPage.getProcessHeaderTitle()).toEqual(user.firstName + ' ' + user.lastName);
|
||||
await expect(await userInfoPage.getProcessTitle()).toEqual(user.firstName + ' ' + user.lastName);
|
||||
await expect(await userInfoPage.getProcessEmail()).toEqual(user.email);
|
||||
|
||||
await userInfoPage.closeUserProfile();
|
||||
});
|
||||
|
||||
it('[C260113] Should display UserInfo when Content Services is enabled and Process Services is disabled', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(contentUserModel);
|
||||
await loginPage.login(user.email, user.password);
|
||||
|
||||
await userInfoPage.clickUserProfile();
|
||||
await userInfoPage.dialogIsDisplayed();
|
||||
|
||||
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
|
||||
await expect(await userInfoPage.getContentTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
|
||||
await expect(await userInfoPage.getContentEmail()).toEqual(contentUserModel.email);
|
||||
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(user.firstName + ' ' + user.lastName);
|
||||
await expect(await userInfoPage.getContentTitle()).toEqual(user.firstName + ' ' + user.lastName);
|
||||
await expect(await userInfoPage.getContentEmail()).toEqual(user.email);
|
||||
await expect(await userInfoPage.getContentJobTitle()).toEqual('N/A');
|
||||
|
||||
await userInfoPage.checkInitialImage();
|
||||
@@ -115,15 +102,17 @@ describe('User Info component', () => {
|
||||
});
|
||||
|
||||
it('[C260115] Should display UserInfo when Process Services is enabled and Content Services is disabled', async () => {
|
||||
await loginPage.loginToProcessServicesUsingUserModel(contentUserModel);
|
||||
await LocalStorageUtil.setStorageItem('providers', 'BPM');
|
||||
|
||||
await loginPage.login(user.email, user.password);
|
||||
|
||||
await userInfoPage.clickUserProfile();
|
||||
|
||||
await userInfoPage.dialogIsDisplayed();
|
||||
|
||||
await expect(await userInfoPage.getProcessHeaderTitle()).toEqual(processUserModel.firstName + ' ' + processUserModel.lastName);
|
||||
await expect(await userInfoPage.getProcessTitle()).toEqual(processUserModel.firstName + ' ' + processUserModel.lastName);
|
||||
await expect(await userInfoPage.getProcessEmail()).toEqual(processUserModel.email);
|
||||
await expect(await userInfoPage.getProcessHeaderTitle()).toEqual(user.firstName + ' ' + user.lastName);
|
||||
await expect(await userInfoPage.getProcessTitle()).toEqual(user.firstName + ' ' + user.lastName);
|
||||
await expect(await userInfoPage.getProcessEmail()).toEqual(user.email);
|
||||
|
||||
await userInfoPage.checkInitialImage();
|
||||
await userInfoPage.APSProfileImageNotDisplayed();
|
||||
@@ -132,11 +121,11 @@ describe('User Info component', () => {
|
||||
});
|
||||
|
||||
it('[C260117] Should display UserInfo with profile image uploaded in ACS', async () => {
|
||||
await PeopleAPI.updateAvatarViaAPI(contentUserModel, acsAvatarFileModel, '-me-');
|
||||
await PeopleAPI.getAvatarViaAPI(4, contentUserModel, '-me-', async() => {
|
||||
});
|
||||
await LocalStorageUtil.setStorageItem('providers', 'ECM');
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(contentUserModel);
|
||||
await updateAvatarACS();
|
||||
|
||||
await loginPage.login(user.email, user.password);
|
||||
|
||||
await userInfoPage.clickUserProfile();
|
||||
|
||||
@@ -146,11 +135,13 @@ describe('User Info component', () => {
|
||||
});
|
||||
|
||||
it('[C260118] Should display UserInfo with profile image uploaded in APS', async () => {
|
||||
const users = new UsersActions();
|
||||
await this.alfrescoJsApi.login(contentUserModel.email, contentUserModel.password);
|
||||
await users.changeProfilePictureAps(this.alfrescoJsApi, apsAvatarFileModel.getLocation());
|
||||
await LocalStorageUtil.setStorageItem('providers', 'BPM');
|
||||
|
||||
await loginPage.loginToProcessServicesUsingUserModel(contentUserModel);
|
||||
const users = new UsersActions(apiService);
|
||||
await apiService.getInstance().login(user.email, user.password);
|
||||
await users.changeProfilePictureAps(apsAvatarFileModel.getLocation());
|
||||
|
||||
await loginPage.login(user.email, user.password);
|
||||
|
||||
await userInfoPage.clickUserProfile();
|
||||
|
||||
@@ -161,15 +152,23 @@ describe('User Info component', () => {
|
||||
});
|
||||
|
||||
it('[C260120] Should not display profile image in UserInfo when deleted in ACS', async () => {
|
||||
await PeopleAPI.deleteAvatarViaAPI(contentUserModel, '-me-');
|
||||
await LocalStorageUtil.setStorageItem('providers', 'ECM');
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(contentUserModel);
|
||||
await peopleApi.deleteAvatarImage(user.email);
|
||||
|
||||
await loginPage.login(user.email, user.password);
|
||||
|
||||
await userInfoPage.clickUserProfile();
|
||||
|
||||
await userInfoPage.checkInitialImage();
|
||||
await userInfoPage.APSProfileImageNotDisplayed();
|
||||
await userInfoPage.ACSProfileImageNotDisplayed();
|
||||
await userInfoPage.closeUserProfile();
|
||||
});
|
||||
|
||||
const updateAvatarACS = async function () {
|
||||
await apiService.getInstance().login(user.email, user.password);
|
||||
const absolutePath = path.resolve(path.join(browser.params.testConfig.main.rootPath, acsAvatarFileModel.getLocation()));
|
||||
const file: any = fs.readFileSync(absolutePath);
|
||||
await peopleApi.updateAvatarImage('-me-', file);
|
||||
};
|
||||
});
|
||||
|
||||
@@ -16,28 +16,26 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, UploadActions, StringUtil, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, UploadActions, StringUtil, ViewerPage, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../../pages/adf/content-services.page';
|
||||
import CONSTANTS = require('../../../util/constants');
|
||||
import { FolderModel } from '../../../models/ACS/folder.model';
|
||||
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { NavigationBarPage } from '../../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../../actions/users.actions';
|
||||
|
||||
describe('Viewer', () => {
|
||||
|
||||
const viewerPage = new ViewerPage();
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
let site;
|
||||
const acsUser = new AcsUserModel();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const acsUser = new UserModel();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
const archiveFolderInfo = new FolderModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.ARCHIVE_FOLDER.folder_name,
|
||||
@@ -45,21 +43,21 @@ describe('Viewer', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(8),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
});
|
||||
|
||||
@@ -70,7 +68,7 @@ describe('Viewer', () => {
|
||||
beforeAll(async () => {
|
||||
archiveFolderUploaded = await uploadActions.createFolder(archiveFolderInfo.name, '-my-');
|
||||
uploadedArchives = await uploadActions.uploadFolder(archiveFolderInfo.location, archiveFolderUploaded.entry.id);
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
|
||||
@@ -16,29 +16,27 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, UploadActions, StringUtil, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, UploadActions, StringUtil, ViewerPage, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../../pages/adf/content-services.page';
|
||||
import CONSTANTS = require('../../../util/constants');
|
||||
import { FileModel } from '../../../models/ACS/file.model';
|
||||
import { FolderModel } from '../../../models/ACS/folder.model';
|
||||
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { NavigationBarPage } from '../../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../../actions/users.actions';
|
||||
|
||||
describe('Viewer', () => {
|
||||
|
||||
const viewerPage = new ViewerPage();
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const apiService = new ApiService();
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
let site;
|
||||
const acsUser = new AcsUserModel();
|
||||
const acsUser = new UserModel();
|
||||
let pngFileUploaded;
|
||||
|
||||
const pngFileInfo = new FileModel({
|
||||
@@ -52,31 +50,31 @@ describe('Viewer', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(8),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
pngFileUploaded = await uploadActions.uploadFile(pngFileInfo.location, pngFileInfo.name, site.entry.guid);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
});
|
||||
|
||||
it('[C272813] Should be redirected to site when opening and closing a file in a site', async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await navigationBarPage.goToSite(site);
|
||||
await contentServicesPage.checkAcsContainer();
|
||||
@@ -89,7 +87,6 @@ describe('Viewer', () => {
|
||||
});
|
||||
|
||||
describe('Other Folder Uploaded', () => {
|
||||
|
||||
let uploadedOthers;
|
||||
let otherFolderUploaded;
|
||||
|
||||
@@ -98,7 +95,7 @@ describe('Viewer', () => {
|
||||
|
||||
uploadedOthers = await uploadActions.uploadFolder(otherFolderInfo.location, otherFolderUploaded.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
|
||||
@@ -16,54 +16,51 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, StringUtil, UploadActions, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { ApiService, LoginSSOPage, StringUtil, UploadActions, ViewerPage, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../../pages/adf/content-services.page';
|
||||
import CONSTANTS = require('../../../util/constants');
|
||||
import { FolderModel } from '../../../models/ACS/folder.model';
|
||||
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { UsersActions } from '../../../actions/users.actions';
|
||||
|
||||
describe('Viewer', () => {
|
||||
|
||||
const viewerPage = new ViewerPage();
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
let site;
|
||||
const acsUser = new AcsUserModel();
|
||||
const acsUser = new UserModel();
|
||||
|
||||
const excelFolderInfo = new FolderModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.EXCEL_FOLDER.folder_name,
|
||||
'location': browser.params.resources.Files.ADF_DOCUMENTS.EXCEL_FOLDER.folder_path
|
||||
});
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
|
||||
const apiService = new ApiService();
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(8),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
describe('Excel Folder Uploaded', () => {
|
||||
|
||||
let uploadedExcels;
|
||||
let excelFolderUploaded;
|
||||
|
||||
@@ -72,7 +69,7 @@ describe('Viewer', () => {
|
||||
|
||||
uploadedExcels = await uploadActions.uploadFolder(excelFolderInfo.location, excelFolderUploaded.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
|
||||
@@ -16,25 +16,24 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, StringUtil, UploadActions, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { ApiService, LoginSSOPage, StringUtil, UploadActions, ViewerPage, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../../pages/adf/content-services.page';
|
||||
import CONSTANTS = require('../../../util/constants');
|
||||
import { FolderModel } from '../../../models/ACS/folder.model';
|
||||
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { UsersActions } from '../../../actions/users.actions';
|
||||
|
||||
describe('Viewer', () => {
|
||||
|
||||
const viewerPage = new ViewerPage();
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
|
||||
const apiService = new ApiService();
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
let site;
|
||||
const acsUser = new AcsUserModel();
|
||||
const acsUser = new UserModel();
|
||||
|
||||
const imgFolderInfo = new FolderModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.IMG_FOLDER.folder_name,
|
||||
@@ -47,28 +46,27 @@ describe('Viewer', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(8),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
describe('Image Folder Uploaded', () => {
|
||||
|
||||
let uploadedImages, uploadedImgRenditionFolderInfo;
|
||||
let imgFolderUploaded, imgFolderRenditionUploaded;
|
||||
|
||||
@@ -81,7 +79,7 @@ describe('Viewer', () => {
|
||||
|
||||
uploadedImgRenditionFolderInfo = await uploadActions.uploadFolder(imgRenditionFolderInfo.location, imgFolderRenditionUploaded.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
|
||||
@@ -15,56 +15,54 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, UploadActions, StringUtil, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, UploadActions, StringUtil, ViewerPage, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../../pages/adf/content-services.page';
|
||||
import CONSTANTS = require('../../../util/constants');
|
||||
import { FolderModel } from '../../../models/ACS/folder.model';
|
||||
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { browser } from 'protractor';
|
||||
import { UsersActions } from '../../../actions/users.actions';
|
||||
|
||||
describe('Viewer', () => {
|
||||
|
||||
const viewerPage = new ViewerPage();
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
let site;
|
||||
const acsUser = new AcsUserModel();
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
const acsUser = new UserModel();
|
||||
|
||||
const pptFolderInfo = new FolderModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.PPT_FOLDER.folder_name,
|
||||
'location': browser.params.resources.Files.ADF_DOCUMENTS.PPT_FOLDER.folder_path
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
let site;
|
||||
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
beforeAll(async () => {
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(8),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
describe('PowerPoint Folder Uploaded', () => {
|
||||
|
||||
let uploadedPpt;
|
||||
let pptFolderUploaded;
|
||||
|
||||
@@ -73,7 +71,7 @@ describe('Viewer', () => {
|
||||
|
||||
uploadedPpt = await uploadActions.uploadFolder(pptFolderInfo.location, pptFolderUploaded.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
|
||||
@@ -16,25 +16,23 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, UploadActions, StringUtil, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, UploadActions, StringUtil, ViewerPage, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../../pages/adf/content-services.page';
|
||||
import CONSTANTS = require('../../../util/constants');
|
||||
import { FolderModel } from '../../../models/ACS/folder.model';
|
||||
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { UsersActions } from '../../../actions/users.actions';
|
||||
|
||||
describe('Viewer', () => {
|
||||
|
||||
const viewerPage = new ViewerPage();
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
let site;
|
||||
const acsUser = new AcsUserModel();
|
||||
const acsUser = new UserModel();
|
||||
|
||||
const textFolderInfo = new FolderModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.TEXT_FOLDER.folder_name,
|
||||
@@ -42,28 +40,27 @@ describe('Viewer', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(8),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
describe('Text Folder Uploaded', () => {
|
||||
|
||||
let uploadedTexts;
|
||||
let textFolderUploaded;
|
||||
|
||||
@@ -72,7 +69,7 @@ describe('Viewer', () => {
|
||||
|
||||
uploadedTexts = await uploadActions.uploadFolder(textFolderInfo.location, textFolderUploaded.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
|
||||
@@ -16,28 +16,25 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, UploadActions, StringUtil, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, UploadActions, StringUtil, ViewerPage, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../../pages/adf/content-services.page';
|
||||
import CONSTANTS = require('../../../util/constants');
|
||||
import { FolderModel } from '../../../models/ACS/folder.model';
|
||||
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { NavigationBarPage } from '../../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../../actions/users.actions';
|
||||
|
||||
describe('Viewer', () => {
|
||||
|
||||
const viewerPage = new ViewerPage();
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
let site;
|
||||
const acsUser = new AcsUserModel();
|
||||
const acsUser = new UserModel();
|
||||
|
||||
const wordFolderInfo = new FolderModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.WORD_FOLDER.folder_name,
|
||||
@@ -45,29 +42,28 @@ describe('Viewer', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(8),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await navigationBarPage.clickLogoutButton();
|
||||
});
|
||||
|
||||
describe('Word Folder Uploaded', () => {
|
||||
|
||||
let uploadedWords;
|
||||
let wordFolderUploaded;
|
||||
|
||||
@@ -76,7 +72,7 @@ describe('Viewer', () => {
|
||||
|
||||
uploadedWords = await uploadActions.uploadFolder(wordFolderInfo.location, wordFolderUploaded.entry.id);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
|
||||
@@ -16,27 +16,25 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, UploadActions, StringUtil, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, UploadActions, StringUtil, ViewerPage, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Info Drawer', () => {
|
||||
|
||||
const viewerPage = new ViewerPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
let site;
|
||||
const acsUser = new AcsUserModel();
|
||||
const acsUser = new UserModel();
|
||||
let pngFileUploaded;
|
||||
|
||||
const pngFileInfo = new FileModel({
|
||||
@@ -45,32 +43,32 @@ describe('Info Drawer', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(8),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
pngFileUploaded = await uploadActions.uploadFile(pngFileInfo.location, pngFileInfo.name, site.entry.guid);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
await uploadActions.deleteFileOrFolder(pngFileUploaded.entry.id);
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
});
|
||||
|
||||
beforeEach(async() => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await navigationBarPage.goToSite(site);
|
||||
await contentServicesPage.checkAcsContainer();
|
||||
|
||||
@@ -16,18 +16,17 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, UploadActions, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { ApiService, LoginSSOPage, UploadActions, ViewerPage, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Content Services Viewer', () => {
|
||||
const acsUser = new AcsUserModel();
|
||||
const acsUser = new UserModel();
|
||||
const viewerPage = new ViewerPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
|
||||
let zoom;
|
||||
@@ -68,18 +67,17 @@ describe('Content Services Viewer', () => {
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.PPT.file_name,
|
||||
'firstPageText': browser.params.resources.Files.ADF_DOCUMENTS.PPT.first_page_text
|
||||
});
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
const pdfFileUploaded = await uploadActions.uploadFile(pdfFile.location, pdfFile.name, '-my-');
|
||||
Object.assign(pdfFile, pdfFileUploaded.entry);
|
||||
@@ -102,7 +100,7 @@ describe('Content Services Viewer', () => {
|
||||
const unsupportedFileUploaded = await uploadActions.uploadFile(unsupportedFile.location, unsupportedFile.name, '-my-');
|
||||
Object.assign(unsupportedFile, unsupportedFileUploaded.entry);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
@@ -16,25 +16,24 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, UploadActions, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { ApiService, LoginSSOPage, UploadActions, ViewerPage, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Viewer', () => {
|
||||
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const viewerPage = new ViewerPage();
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const acsUser = new AcsUserModel();
|
||||
|
||||
const apiService = new ApiService();
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
const acsUser = new UserModel();
|
||||
let txtFileUploaded;
|
||||
|
||||
const txtFileInfo = new FileModel({
|
||||
@@ -43,14 +42,14 @@ describe('Viewer', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
txtFileUploaded = await uploadActions.uploadFile(txtFileInfo.location, txtFileInfo.name, '-my-');
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
|
||||
@@ -16,30 +16,29 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, StringUtil, UploadActions, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { ApiService, LoginSSOPage, StringUtil, UploadActions, ViewerPage, UserModel } from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { MonacoExtensionPage } from '../../pages/adf/demo-shell/monaco-extension.page';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Viewer', () => {
|
||||
|
||||
const viewerPage = new ViewerPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
let site;
|
||||
const acsUser = new AcsUserModel();
|
||||
const acsUser = new UserModel();
|
||||
const monacoExtensionPage = new MonacoExtensionPage();
|
||||
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
let site;
|
||||
|
||||
let jsFileUploaded;
|
||||
const jsFileInfo = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.JS.file_name,
|
||||
@@ -47,35 +46,34 @@ describe('Viewer', () => {
|
||||
});
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(8),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
jsFileUploaded = await uploadActions.uploadFile(jsFileInfo.location, jsFileInfo.name, '-my-');
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
await uploadActions.deleteFileOrFolder(jsFileUploaded.entry.id);
|
||||
});
|
||||
|
||||
describe('Viewer extension', () => {
|
||||
|
||||
it('[C297698] Should be able to add an extension for code editor viewer', async () => {
|
||||
await navigationBarPage.clickAboutButton();
|
||||
|
||||
|
||||
@@ -16,19 +16,18 @@
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
import { LoginPage, UploadActions, DataTableComponentPage, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, UploadActions, DataTableComponentPage, ViewerPage, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Viewer - properties', () => {
|
||||
|
||||
const acsUser = new AcsUserModel();
|
||||
const acsUser = new UserModel();
|
||||
const viewerPage = new ViewerPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const dataTable = new DataTableComponentPage();
|
||||
|
||||
@@ -41,18 +40,16 @@ describe('Viewer - properties', () => {
|
||||
'name': 'fileForOverlay.png',
|
||||
'location': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_path
|
||||
});
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
let pngFileUploaded = await uploadActions.uploadFile(pngFile.location, pngFile.name, '-my-');
|
||||
Object.assign(pngFile, pngFileUploaded.entry);
|
||||
@@ -60,7 +57,7 @@ describe('Viewer - properties', () => {
|
||||
pngFileUploaded = await uploadActions.uploadFile(fileForOverlay.location, fileForOverlay.name, '-my-');
|
||||
Object.assign(fileForOverlay, pngFileUploaded.entry);
|
||||
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
|
||||
await contentServicesPage.goToDocumentList();
|
||||
|
||||
|
||||
@@ -15,32 +15,31 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage, UploadActions, StringUtil, BrowserActions, ViewerPage } from '@alfresco/adf-testing';
|
||||
import { LoginSSOPage, UploadActions, StringUtil, BrowserActions, ViewerPage, ApiService, UserModel } from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { ContentServicesPage } from '../../pages/adf/content-services.page';
|
||||
import { ShareDialogPage } from '../../pages/adf/dialog/share-dialog.page';
|
||||
import CONSTANTS = require('../../util/constants');
|
||||
import { FileModel } from '../../models/ACS/file.model';
|
||||
import { AcsUserModel } from '../../models/ACS/acs-user.model';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { browser } from 'protractor';
|
||||
import { UsersActions } from '../../actions/users.actions';
|
||||
|
||||
describe('Viewer', () => {
|
||||
|
||||
const viewerPage = new ViewerPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const contentServicesPage = new ContentServicesPage();
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: browser.params.testConfig.adf_acs.host
|
||||
});
|
||||
const uploadActions = new UploadActions(this.alfrescoJsApi);
|
||||
const shareDialog = new ShareDialogPage();
|
||||
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
const uploadActions = new UploadActions(apiService);
|
||||
|
||||
let site;
|
||||
const acsUser = new AcsUserModel();
|
||||
const acsUser = new UserModel();
|
||||
let pngFileUploaded;
|
||||
const contentList = contentServicesPage.getDocumentList();
|
||||
const shareDialog = new ShareDialogPage();
|
||||
|
||||
const pngFileInfo = new FileModel({
|
||||
'name': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
@@ -55,38 +54,38 @@ describe('Viewer', () => {
|
||||
let pngFileShared, wordFileUploaded;
|
||||
|
||||
beforeAll(async () => {
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
await usersActions.createUser(acsUser);
|
||||
|
||||
site = await this.alfrescoJsApi.core.sitesApi.createSite({
|
||||
site = await apiService.getInstance().core.sitesApi.createSite({
|
||||
title: StringUtil.generateRandomString(8),
|
||||
visibility: 'PUBLIC'
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.id,
|
||||
await apiService.getInstance().core.sitesApi.addSiteMember(site.entry.id, {
|
||||
id: acsUser.email,
|
||||
role: CONSTANTS.CS_USER_ROLES.MANAGER
|
||||
});
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
pngFileUploaded = await uploadActions.uploadFile(pngFileInfo.location, pngFileInfo.name, site.entry.guid);
|
||||
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
|
||||
wordFileUploaded = await uploadActions.uploadFile(wordFileInfo.location, wordFileInfo.name, '-my-');
|
||||
|
||||
pngFileShared = await this.alfrescoJsApi.core.sharedlinksApi.addSharedLink({ 'nodeId': pngFileUploaded.entry.id });
|
||||
pngFileShared = await apiService.getInstance().core.sharedlinksApi.addSharedLink({ 'nodeId': pngFileUploaded.entry.id });
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
|
||||
await apiService.getInstance().login(acsUser.email, acsUser.password);
|
||||
await uploadActions.deleteFileOrFolder(wordFileUploaded.entry.id);
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
await loginPage.login(acsUser.email, acsUser.password);
|
||||
});
|
||||
|
||||
it('[C260105] Should be able to open an image file shared via API', async () => {
|
||||
|
||||
@@ -15,48 +15,39 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { LoginPage } from '@alfresco/adf-testing';
|
||||
import { ApiService, LoginSSOPage, UserModel } from '@alfresco/adf-testing';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
import { AnalyticsPage } from '../pages/adf/process-services/analytics.page';
|
||||
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
|
||||
import { ProcessServiceTabBarPage } from '../pages/adf/process-services/process-service-tab-bar.page';
|
||||
import { browser } from 'protractor';
|
||||
import { Tenant } from '../models/APS/tenant';
|
||||
import { User } from '../models/APS/user';
|
||||
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { UsersActions } from '../actions/users.actions';
|
||||
|
||||
describe('Analytics Smoke Test', () => {
|
||||
|
||||
const loginPage = new LoginPage();
|
||||
const loginPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const processServiceTabBarPage = new ProcessServiceTabBarPage();
|
||||
const analyticsPage = new AnalyticsPage();
|
||||
const processServicesPage = new ProcessServicesPage();
|
||||
let tenantId;
|
||||
|
||||
const reportTitle = 'New Title';
|
||||
let procUserModel: UserModel;
|
||||
|
||||
const apiService = new ApiService();
|
||||
const usersActions = new UsersActions(apiService);
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'BPM',
|
||||
hostBpm: browser.params.testConfig.adf_aps.host
|
||||
});
|
||||
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
|
||||
|
||||
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
|
||||
procUserModel = await usersActions.createUser();
|
||||
|
||||
const newTenant = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
|
||||
|
||||
tenantId = newTenant.id;
|
||||
const procUserModel = new User({ tenantId: tenantId });
|
||||
|
||||
await this.alfrescoJsApi.activiti.adminUsersApi.createNewUser(procUserModel);
|
||||
|
||||
await loginPage.loginToProcessServicesUsingUserModel(procUserModel);
|
||||
});
|
||||
await loginPage.login(procUserModel.email, procUserModel.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
|
||||
});
|
||||
await apiService.getInstance().activiti.adminTenantsApi.deleteTenant(procUserModel.tenantId);
|
||||
});
|
||||
|
||||
it('[C260346] Should be able to change title of a report', async () => {
|
||||
await navigationBarPage.navigateToProcessServicesPage();
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
/*!
|
||||
* @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 { StringUtil } from '@alfresco/adf-testing';
|
||||
|
||||
export class AcsUserModel {
|
||||
|
||||
firstName = StringUtil.generateRandomString();
|
||||
lastName = StringUtil.generateRandomString();
|
||||
password = StringUtil.generateRandomString();
|
||||
email = StringUtil.generateRandomString();
|
||||
id = StringUtil.generateRandomString();
|
||||
|
||||
constructor(details?: any) {
|
||||
Object.assign(this, details);
|
||||
}
|
||||
|
||||
getFirstName = function () {
|
||||
return this.firstName;
|
||||
};
|
||||
|
||||
getLastName = function () {
|
||||
return this.lastName;
|
||||
};
|
||||
|
||||
getPassword = function () {
|
||||
return this.password;
|
||||
};
|
||||
|
||||
getEmail = function () {
|
||||
return this.email;
|
||||
};
|
||||
|
||||
getId = function () {
|
||||
return this.id;
|
||||
};
|
||||
|
||||
getJobTitle = function () {
|
||||
return this.jobTitle;
|
||||
};
|
||||
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
/*!
|
||||
* @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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* App definition representation JSON Object
|
||||
*
|
||||
* @param details - JSON object used to overwrite the default values
|
||||
* @constructor
|
||||
*/
|
||||
|
||||
var AppDefinition = function (details) {
|
||||
this.defaultAppId = "1";
|
||||
this.deploymentId = "1";
|
||||
this.description = "App deployment";
|
||||
this.icon = "default icon";
|
||||
this.id = 0;
|
||||
this.modelId = 0;
|
||||
this.name = "App name";
|
||||
this.tenantId = 0;
|
||||
this.theme = "default theme";
|
||||
|
||||
Object.assign(this, details);
|
||||
};
|
||||
|
||||
module.exports = AppDefinition;
|
||||
@@ -1,49 +0,0 @@
|
||||
/*!
|
||||
* @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.
|
||||
*/
|
||||
|
||||
var ProcessCreatedByModel = function (details) {
|
||||
|
||||
this.id;
|
||||
this.firstName;
|
||||
this.lastName;
|
||||
this.email;
|
||||
|
||||
this.getFirstName = function () {
|
||||
return this.firstName;
|
||||
};
|
||||
|
||||
this.getId = function () {
|
||||
return this.id;
|
||||
};
|
||||
|
||||
this.getLastName = function () {
|
||||
return this.lastName;
|
||||
};
|
||||
|
||||
this.getEmail = function () {
|
||||
return this.email;
|
||||
};
|
||||
|
||||
this.getEntireName = function() {
|
||||
return this.firstName + " " + this.getLastName();
|
||||
};
|
||||
|
||||
Object.assign(this, details);
|
||||
|
||||
};
|
||||
|
||||
module.exports = ProcessCreatedByModel;
|
||||
@@ -1,32 +0,0 @@
|
||||
/*!
|
||||
* @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.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Process Instance representation JSON Object
|
||||
*
|
||||
* @param details - JSON object used to overwrite the default values
|
||||
* @constructor
|
||||
*/
|
||||
|
||||
var ProcessInstance = function (details) {
|
||||
this.processDefinitionId = 1234;
|
||||
this.name = "Process started from REST API";
|
||||
|
||||
Object.assign(this, details);
|
||||
};
|
||||
|
||||
module.exports = ProcessInstance;
|
||||
@@ -1,83 +0,0 @@
|
||||
/*!
|
||||
* @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.
|
||||
*/
|
||||
|
||||
var ProcessCreatedByModel = require('./ProcessCreatedByModel');
|
||||
|
||||
var ProcessModel = function (details) {
|
||||
|
||||
this.id;
|
||||
this.name;
|
||||
this.version;
|
||||
this.modelType;
|
||||
this.description;
|
||||
this.createdByFullName;
|
||||
this.createdBy;
|
||||
this.lastUpdatedByFullName;
|
||||
this.lastUpdatedBy;
|
||||
this.lastUpdated;
|
||||
this.startedBy = {};
|
||||
|
||||
this.getName = function () {
|
||||
return this.name;
|
||||
};
|
||||
|
||||
this.getId = function () {
|
||||
return this.id;
|
||||
};
|
||||
|
||||
this.getVersion = function () {
|
||||
return this.version;
|
||||
};
|
||||
|
||||
this.getModelType = function () {
|
||||
return this.modelType;
|
||||
};
|
||||
|
||||
this.getDescription = function () {
|
||||
return this.description;
|
||||
};
|
||||
|
||||
this.getCreatedByFullName = function () {
|
||||
return this.createdByFullName;
|
||||
};
|
||||
|
||||
this.getCreatedBy = function () {
|
||||
return this.createdBy;
|
||||
};
|
||||
|
||||
this.getLastUpdatedByFullName = function () {
|
||||
return this.lastUpdatedByFullName;
|
||||
};
|
||||
|
||||
this.getLastUpdatedBy = function () {
|
||||
return this.lastUpdatedBy;
|
||||
};
|
||||
|
||||
this.getLastUpdated = function () {
|
||||
return this.lastUpdated;
|
||||
};
|
||||
|
||||
this.getStartedBy = function () {
|
||||
return this.startedBy;
|
||||
};
|
||||
|
||||
Object.assign(this, details);
|
||||
Object.assign(this.startedBy, new ProcessCreatedByModel(details.startedBy));
|
||||
|
||||
|
||||
};
|
||||
module.exports = ProcessModel;
|
||||
@@ -1,40 +0,0 @@
|
||||
/*!
|
||||
* @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 { StringUtil } from '@alfresco/adf-testing';
|
||||
|
||||
/**
|
||||
* Create tenant JSON Object
|
||||
*
|
||||
* @param details - JSON object used to overwrite the default values
|
||||
* @constructor
|
||||
*/
|
||||
export class User {
|
||||
|
||||
email = StringUtil.generateRandomEmail('@activiti.test.com');
|
||||
firstName = StringUtil.generateRandomString();
|
||||
lastName = StringUtil.generateRandomString();
|
||||
password = StringUtil.generatePasswordString();
|
||||
type = 'enterprise';
|
||||
tenantId = 1;
|
||||
company = null;
|
||||
id = 0;
|
||||
|
||||
constructor(details?: any) {
|
||||
Object.assign(this, details);
|
||||
}
|
||||
}
|
||||
@@ -15,15 +15,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { BrowserActions, BrowserVisibility, DateUtil, DocumentListPage, TogglePage } from '@alfresco/adf-testing';
|
||||
import { DropActions, BrowserActions, BrowserVisibility, DateUtil, DocumentListPage, TogglePage, DropdownPage } from '@alfresco/adf-testing';
|
||||
import { $$, browser, by, element, ElementFinder, ElementArrayFinder, protractor } from 'protractor';
|
||||
import { DropActions } from '../../actions/drop.actions';
|
||||
import { CreateLibraryDialogPage } from './dialog/create-library-dialog.page';
|
||||
import { FolderDialogPage } from './dialog/folder-dialog.page';
|
||||
import { NavigationBarPage } from './navigation-bar.page';
|
||||
|
||||
import path = require('path');
|
||||
import { DropdownPage } from '../../../lib/testing/src/lib/material/pages/dropdown.page';
|
||||
|
||||
export class ContentServicesPage {
|
||||
|
||||
|
||||
+5
-42
@@ -15,16 +15,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TogglePage } from '../../material/pages/toggle.page';
|
||||
import { browser, by, element, ElementFinder } from 'protractor';
|
||||
import { BrowserVisibility } from '../utils/browser-visibility';
|
||||
import { LocalStorageUtil } from '../utils/local-storage.util';
|
||||
import { BrowserActions } from '../utils/browser-actions';
|
||||
import { TogglePage, BrowserActions, BrowserVisibility, LoginSSOPage } from '@alfresco/adf-testing';
|
||||
|
||||
export class LoginPage {
|
||||
|
||||
loginURL: string = browser.baseUrl + '/login';
|
||||
|
||||
loginSSOPage: LoginSSOPage = new LoginSSOPage();
|
||||
|
||||
togglePage: TogglePage = new TogglePage();
|
||||
txtUsername: ElementFinder = element(by.css('input[id="username"]'));
|
||||
txtPassword: ElementFinder = element(by.css('input[id="password"]'));
|
||||
@@ -125,42 +124,9 @@ export class LoginPage {
|
||||
}
|
||||
|
||||
async getSignInButtonIsEnabled(): Promise<boolean> {
|
||||
await BrowserVisibility.waitUntilElementIsVisible(this.signInButton);
|
||||
return this.signInButton.isEnabled();
|
||||
}
|
||||
|
||||
async loginToAllUsingUserModel(userModel): Promise<void> {
|
||||
await this.goToLoginPage();
|
||||
await LocalStorageUtil.clearStorage();
|
||||
await LocalStorageUtil.setStorageItem('providers', 'ALL');
|
||||
await LocalStorageUtil.apiReset();
|
||||
await this.login(userModel.email, userModel.password);
|
||||
}
|
||||
|
||||
async loginToProcessServicesUsingUserModel(userModel): Promise<void> {
|
||||
await this.goToLoginPage();
|
||||
await LocalStorageUtil.clearStorage();
|
||||
await LocalStorageUtil.setStorageItem('providers', 'BPM');
|
||||
await LocalStorageUtil.apiReset();
|
||||
await this.login(userModel.email, userModel.password);
|
||||
}
|
||||
|
||||
async loginToContentServicesUsingUserModel(userModel): Promise<void> {
|
||||
await this.goToLoginPage();
|
||||
await LocalStorageUtil.clearStorage();
|
||||
await LocalStorageUtil.setStorageItem('providers', 'ECM');
|
||||
await LocalStorageUtil.apiReset();
|
||||
await this.login(userModel.getId(), userModel.getPassword());
|
||||
}
|
||||
|
||||
async loginToContentServices(username, password): Promise<void> {
|
||||
await this.goToLoginPage();
|
||||
await LocalStorageUtil.clearStorage();
|
||||
await LocalStorageUtil.setStorageItem('providers', 'ECM');
|
||||
await LocalStorageUtil.apiReset();
|
||||
await this.login(username, password);
|
||||
}
|
||||
|
||||
async clickSignInButton(): Promise<void> {
|
||||
await BrowserActions.click(this.signInButton);
|
||||
}
|
||||
@@ -237,10 +203,7 @@ export class LoginPage {
|
||||
await BrowserActions.clearSendKeys(this.logoTxt, logo);
|
||||
}
|
||||
|
||||
async login(username, password): Promise<void> {
|
||||
await this.enterUsername(username);
|
||||
await this.enterPassword(password);
|
||||
await this.clickSignInButton();
|
||||
await BrowserVisibility.waitUntilElementIsVisible(this.sidenavLayout);
|
||||
async login(username: string, password: string): Promise<void> {
|
||||
await this.loginSSOPage.login(username, password);
|
||||
}
|
||||
}
|
||||
@@ -31,29 +31,29 @@ export class StartTaskDialogPage {
|
||||
selectFormDropdown = new DropdownPage(element(by.css('mat-select[id="form_id"]')));
|
||||
selectAssigneeDropdown = new DropdownPage();
|
||||
|
||||
async addName(userName): Promise<void> {
|
||||
async addName(userName: string): Promise<void> {
|
||||
await BrowserVisibility.waitUntilElementIsVisible(this.name);
|
||||
await this.name.clear();
|
||||
await this.name.sendKeys(userName);
|
||||
}
|
||||
|
||||
async addDescription(userDescription): Promise<void> {
|
||||
async addDescription(userDescription: string): Promise<void> {
|
||||
await BrowserVisibility.waitUntilElementIsVisible(this.description);
|
||||
await this.description.sendKeys(userDescription);
|
||||
}
|
||||
|
||||
async addDueDate(date): Promise<void> {
|
||||
async addDueDate(date: string): Promise<void> {
|
||||
await BrowserVisibility.waitUntilElementIsVisible(this.dueDate);
|
||||
await this.dueDate.sendKeys(date);
|
||||
}
|
||||
|
||||
async addAssignee(name): Promise<void> {
|
||||
async addAssignee(name: string): Promise<void> {
|
||||
await BrowserVisibility.waitUntilElementIsVisible(this.assignee);
|
||||
await this.assignee.sendKeys(name);
|
||||
await this.selectAssigneeFromList(name);
|
||||
}
|
||||
|
||||
async selectAssigneeFromList(name): Promise<void> {
|
||||
async selectAssigneeFromList(name: string): Promise<void> {
|
||||
await this.selectAssigneeDropdown.selectOption(name);
|
||||
}
|
||||
|
||||
@@ -82,12 +82,12 @@ export class StartTaskDialogPage {
|
||||
await BrowserActions.click(this.cancelButton);
|
||||
}
|
||||
|
||||
async blur(locator): Promise<void> {
|
||||
async blur(locator: ElementFinder): Promise<void> {
|
||||
await BrowserActions.click(locator);
|
||||
await locator.sendKeys(Key.TAB);
|
||||
}
|
||||
|
||||
async checkValidationErrorIsDisplayed(error, elementRef = 'mat-error'): Promise<void> {
|
||||
async checkValidationErrorIsDisplayed(error: string, elementRef = 'mat-error'): Promise<void> {
|
||||
const errorElement: ElementFinder = element(by.cssContainingText(elementRef, error));
|
||||
await BrowserVisibility.waitUntilElementIsVisible(errorElement);
|
||||
}
|
||||
|
||||
@@ -29,19 +29,19 @@ export class FiltersPage {
|
||||
|
||||
async goToFilter(filterName): Promise<void> {
|
||||
await BrowserActions.closeMenuAndDialogs();
|
||||
await BrowserActions.clickExecuteScript(`button[data-automation-id="${filterName}_filter"]`);
|
||||
await BrowserActions.clickExecuteScript(`[data-automation-id="${filterName}_filter"]`);
|
||||
}
|
||||
|
||||
async sortByName(sortOrder: string): Promise<void> {
|
||||
await this.dataTable.sortByColumn(sortOrder, 'name');
|
||||
}
|
||||
|
||||
async getAllRowsNameColumn() {
|
||||
async getAllRowsNameColumn(): Promise<string[]> {
|
||||
return this.dataTable.getAllRowsColumnValues('Name');
|
||||
}
|
||||
|
||||
async checkFilterIsHighlighted(filterName: string): Promise<void> {
|
||||
const highlightedFilter: ElementFinder = element(by.css(`.adf-active button[data-automation-id='${filterName}_filter']`));
|
||||
const highlightedFilter: ElementFinder = element(by.css(`.adf-active [data-automation-id='${filterName}_filter']`));
|
||||
await BrowserVisibility.waitUntilElementIsVisible(highlightedFilter);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,27 +28,27 @@ export class TasksListPage {
|
||||
return this.dataTable;
|
||||
}
|
||||
|
||||
getRowsDisplayedWithSameName(taskName): Promise<string> {
|
||||
getRowsDisplayedWithSameName(taskName: string): Promise<string> {
|
||||
return this.dataTable.getRowsWithSameColumnValues('Name', taskName);
|
||||
}
|
||||
|
||||
checkContentIsDisplayed(taskName): Promise<void> {
|
||||
return this.dataTable.checkContentIsDisplayed('Name', taskName);
|
||||
async checkContentIsDisplayed(taskName: string): Promise<void> {
|
||||
await this.dataTable.checkContentIsDisplayed('Name', taskName);
|
||||
}
|
||||
|
||||
checkContentIsNotDisplayed(taskName): Promise<void> {
|
||||
return this.dataTable.checkContentIsNotDisplayed('Name', taskName);
|
||||
async checkContentIsNotDisplayed(taskName: string): Promise<void> {
|
||||
await this.dataTable.checkContentIsNotDisplayed('Name', taskName);
|
||||
}
|
||||
|
||||
checkRowIsSelected(taskName): Promise<void> {
|
||||
return this.dataTable.checkRowIsSelected('Name', taskName);
|
||||
async checkRowIsSelected(taskName: string): Promise<void> {
|
||||
await this.dataTable.checkRowIsSelected('Name', taskName);
|
||||
}
|
||||
|
||||
selectRow(taskName): Promise<void> {
|
||||
return this.dataTable.selectRow('Name', taskName);
|
||||
async selectRow(taskName: string): Promise<void> {
|
||||
await this.dataTable.selectRow('Name', taskName);
|
||||
}
|
||||
|
||||
getAllRowsNameColumn(): Promise<any> {
|
||||
getAllRowsNameColumn(): Promise<string[]> {
|
||||
return this.dataTable.getAllRowsColumnValues('Name');
|
||||
}
|
||||
|
||||
|
||||
@@ -24,15 +24,16 @@ describe('About Process Services Cloud', () => {
|
||||
const loginSSOPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const aboutPage = new AboutPage();
|
||||
let identityService: IdentityService;
|
||||
|
||||
const apiService = new ApiService();
|
||||
const identityService = new IdentityService(apiService);
|
||||
|
||||
let testUser;
|
||||
const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.config.bpmHost, browser.params.config.oauth2.host, 'BPM');
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
identityService = new IdentityService(apiService);
|
||||
testUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.ACTIVITI_USER, identityService.ROLES.ACTIVITI_DEVOPS]);
|
||||
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
|
||||
testUser = await identityService.createIdentityUserWithRole( [identityService.ROLES.ACTIVITI_USER, identityService.ROLES.ACTIVITI_DEVOPS]);
|
||||
await loginSSOPage.login(testUser.email, testUser.password);
|
||||
await apiService.login(testUser.email, testUser.password);
|
||||
await navigationBarPage.clickAboutButton();
|
||||
});
|
||||
|
||||
@@ -15,32 +15,33 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ApiService, ApplicationsService, AppListCloudPage, IdentityService, LocalStorageUtil, LoginSSOPage } from '@alfresco/adf-testing';
|
||||
import { ApiService, Application, AppListCloudPage, IdentityService, LocalStorageUtil, LoginSSOPage } from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
|
||||
describe('Applications list', () => {
|
||||
|
||||
const simpleApp = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name;
|
||||
|
||||
const loginSSOPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const appListCloudPage = new AppListCloudPage();
|
||||
const simpleApp = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name;
|
||||
|
||||
let identityService: IdentityService;
|
||||
let applicationsService: ApplicationsService;
|
||||
const apiService = new ApiService();
|
||||
const applicationsService = new Application(apiService);
|
||||
const identityService = new IdentityService(apiService);
|
||||
|
||||
let testUser;
|
||||
const appNames = [];
|
||||
let applications;
|
||||
const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.config.bpmHost, browser.params.config.oauth2.host, 'BPM');
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
identityService = new IdentityService(apiService);
|
||||
testUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.ACTIVITI_USER, identityService.ROLES.ACTIVITI_DEVOPS]);
|
||||
testUser = await identityService.createIdentityUserWithRole( [identityService.ROLES.ACTIVITI_USER, identityService.ROLES.ACTIVITI_DEVOPS]);
|
||||
|
||||
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
|
||||
await loginSSOPage.login(testUser.email, testUser.password);
|
||||
await apiService.login(testUser.email, testUser.password);
|
||||
applicationsService = new ApplicationsService(apiService);
|
||||
|
||||
applications = await applicationsService.getApplicationsByStatus('RUNNING');
|
||||
|
||||
applications.list.entries.forEach(app => {
|
||||
@@ -48,6 +49,7 @@ describe('Applications list', () => {
|
||||
});
|
||||
|
||||
await LocalStorageUtil.setConfigField('alfresco-deployed-apps', '[]');
|
||||
await LocalStorageUtil.apiReset();
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
@@ -60,6 +62,7 @@ describe('Applications list', () => {
|
||||
await appListCloudPage.checkApsContainer();
|
||||
|
||||
const list = await appListCloudPage.getNameOfTheApplications();
|
||||
|
||||
await expect(JSON.stringify(list)).toEqual(JSON.stringify(appNames));
|
||||
});
|
||||
|
||||
|
||||
@@ -15,7 +15,13 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ApiService, AppListCloudPage, GroupIdentityService, IdentityService, LoginSSOPage } from '@alfresco/adf-testing';
|
||||
import {
|
||||
ApiService,
|
||||
AppListCloudPage,
|
||||
GroupIdentityService,
|
||||
IdentityService,
|
||||
LoginSSOPage
|
||||
} from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { ProcessCloudDemoPage } from '../pages/adf/demo-shell/process-services/process-cloud-demo.page';
|
||||
import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tasks-cloud-demo.page';
|
||||
@@ -23,209 +29,208 @@ import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
|
||||
describe('Edit process filters cloud', () => {
|
||||
|
||||
describe('Edit process Filters', () => {
|
||||
const loginSSOPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const appListCloudComponent = new AppListCloudPage();
|
||||
const tasksCloudDemoPage = new TasksCloudDemoPage();
|
||||
const processCloudDemoPage = new ProcessCloudDemoPage();
|
||||
const simpleApp = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name;
|
||||
|
||||
const simpleApp = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name;
|
||||
let identityService: IdentityService;
|
||||
let groupIdentityService: GroupIdentityService;
|
||||
let testUser, groupInfo;
|
||||
const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.config.bpmHost, browser.params.config.oauth2.host, 'BPM');
|
||||
const loginSSOPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const appListCloudComponent = new AppListCloudPage();
|
||||
const tasksCloudDemoPage = new TasksCloudDemoPage();
|
||||
const processCloudDemoPage = new ProcessCloudDemoPage();
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
identityService = new IdentityService(apiService);
|
||||
groupIdentityService = new GroupIdentityService(apiService);
|
||||
testUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.ACTIVITI_USER]);
|
||||
groupInfo = await groupIdentityService.getGroupInfoByGroupName('hr');
|
||||
await identityService.addUserToGroup(testUser.idIdentityService, groupInfo.id);
|
||||
const apiService = new ApiService();
|
||||
const identityService = new IdentityService(apiService);
|
||||
const groupIdentityService = new GroupIdentityService(apiService);
|
||||
|
||||
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
|
||||
});
|
||||
let testUser, groupInfo;
|
||||
|
||||
afterAll(async () => {
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
await identityService.deleteIdentityUser(testUser.idIdentityService);
|
||||
});
|
||||
beforeAll(async () => {
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
|
||||
beforeEach(async () => {
|
||||
await navigationBarPage.navigateToProcessServicesCloudPage();
|
||||
await appListCloudComponent.checkApsContainer();
|
||||
await appListCloudComponent.goToApp(simpleApp);
|
||||
await tasksCloudDemoPage.taskListCloudComponent().checkTaskListIsLoaded();
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickOnProcessFilters();
|
||||
const editProcessFilterCloud = processCloudDemoPage.editProcessFilterCloudComponent();
|
||||
await editProcessFilterCloud.openFilter();
|
||||
await editProcessFilterCloud.checkCustomiseFilterHeaderIsExpanded();
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
});
|
||||
testUser = await identityService.createIdentityUserWithRole([identityService.ROLES.ACTIVITI_USER]);
|
||||
groupInfo = await groupIdentityService.getGroupInfoByGroupName('hr');
|
||||
await identityService.addUserToGroup(testUser.idIdentityService, groupInfo.id);
|
||||
|
||||
it('[C291804] Delete Save and Save as actions should be displayed when clicking on custom filter header', async () => {
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('All Processes');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkSaveButtonIsDisplayed();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkSaveAsButtonIsDisplayed();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkDeleteButtonIsDisplayed();
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().checkSaveButtonIsEnabled()).toEqual(false);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().checkSaveAsButtonIsEnabled()).toEqual(false);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().checkDeleteButtonIsEnabled()).toEqual(true);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
});
|
||||
await loginSSOPage.login(testUser.email, testUser.password);
|
||||
});
|
||||
|
||||
it('[C291805] New process filter is added when clicking Save As button', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
afterAll(async () => {
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
await identityService.deleteIdentityUser(testUser.idIdentityService);
|
||||
});
|
||||
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnSaveButton();
|
||||
beforeEach(async () => {
|
||||
await navigationBarPage.navigateToProcessServicesCloudPage();
|
||||
await appListCloudComponent.checkApsContainer();
|
||||
await appListCloudComponent.goToApp(simpleApp);
|
||||
await tasksCloudDemoPage.taskListCloudComponent().checkTaskListIsLoaded();
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickOnProcessFilters();
|
||||
const editProcessFilterCloud = processCloudDemoPage.editProcessFilterCloudComponent();
|
||||
await editProcessFilterCloud.openFilter();
|
||||
await editProcessFilterCloud.checkCustomiseFilterHeaderIsExpanded();
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
});
|
||||
|
||||
await browser.driver.sleep(1000);
|
||||
it('[C291804] Delete Save and Save as actions should be displayed when clicking on custom filter header', async () => {
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('All Processes');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkSaveButtonIsDisplayed();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkSaveAsButtonIsDisplayed();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkDeleteButtonIsDisplayed();
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().checkSaveButtonIsEnabled()).toEqual(false);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().checkSaveAsButtonIsEnabled()).toEqual(false);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().checkDeleteButtonIsEnabled()).toEqual(true);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
});
|
||||
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().checkSaveButtonIsEnabled()).toEqual(false);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().checkSaveAsButtonIsEnabled()).toEqual(false);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().checkDeleteButtonIsEnabled()).toEqual(true);
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('StartDate');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickProcessFilter('custom-new');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton();
|
||||
});
|
||||
it('[C291805] New process filter is added when clicking Save As button', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
|
||||
it('[C291806] Two process filters with same name can be created when clicking the Save As button', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnSaveButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnSaveButton();
|
||||
|
||||
await browser.driver.sleep(1000);
|
||||
await browser.driver.sleep(1000);
|
||||
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkCustomiseFilterHeaderIsExpanded();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Name');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().checkSaveButtonIsEnabled()).toEqual(false);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().checkSaveAsButtonIsEnabled()).toEqual(false);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().checkDeleteButtonIsEnabled()).toEqual(true);
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('StartDate');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickProcessFilter('custom-new');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton();
|
||||
});
|
||||
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnSaveButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkCustomiseFilterHeaderIsExpanded();
|
||||
it('[C291806] Two process filters with same name can be created when clicking the Save As button', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnSaveButton();
|
||||
|
||||
await browser.driver.sleep(1000);
|
||||
await browser.driver.sleep(1000);
|
||||
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkCustomiseFilterHeaderIsExpanded();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Name');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
|
||||
await browser.driver.sleep(1000);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnSaveButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkCustomiseFilterHeaderIsExpanded();
|
||||
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickProcessFilter('custom-new');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkCustomiseFilterHeaderIsExpanded();
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton();
|
||||
});
|
||||
await browser.driver.sleep(1000);
|
||||
|
||||
it('[C291807] A process filter is overrided when clicking on save button', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnSaveButton();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton();
|
||||
|
||||
await browser.driver.sleep(1000);
|
||||
await browser.driver.sleep(1000);
|
||||
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkCustomiseFilterHeaderIsExpanded();
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Name');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkCustomiseFilterHeaderIsExpanded();
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickProcessFilter('custom-new');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkCustomiseFilterHeaderIsExpanded();
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton();
|
||||
});
|
||||
|
||||
await browser.driver.sleep(1000);
|
||||
it('[C291807] A process filter is overrided when clicking on save button', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnSaveButton();
|
||||
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton();
|
||||
});
|
||||
await browser.driver.sleep(1000);
|
||||
|
||||
it('[C291808] A process filter is deleted when clicking on delete button', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New');
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkCustomiseFilterHeaderIsExpanded();
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Name');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkCustomiseFilterHeaderIsExpanded();
|
||||
|
||||
await browser.driver.sleep(1000);
|
||||
await browser.driver.sleep(1000);
|
||||
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnSaveButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton();
|
||||
});
|
||||
|
||||
await browser.driver.sleep(1000);
|
||||
it('[C291808] A process filter is deleted when clicking on delete button', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('New');
|
||||
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('All Processes');
|
||||
await processCloudDemoPage.processFilterCloudComponent.checkProcessFilterNotDisplayed('New');
|
||||
});
|
||||
await browser.driver.sleep(1000);
|
||||
|
||||
it('[C291810] Process filter should not be created when process filter dialog is closed', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('Cancel');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().getFilterName()).toEqual('Cancel');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnCancelButton();
|
||||
await processCloudDemoPage.processFilterCloudComponent.checkProcessFilterNotDisplayed('Cancel');
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual('All Processes');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickRunningProcessesFilter();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual('Running Processes');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual('All Processes');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('StartDate');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
});
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnSaveButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickDeleteButton();
|
||||
|
||||
it('[C291811] Save button of process filter dialog should be disabled when process name is empty', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clearFilterName();
|
||||
await browser.driver.sleep(1000);
|
||||
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().getFilterName()).toEqual('');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().checkSaveButtonIsEnabled()).toEqual(false);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().checkCancelButtonIsEnabled()).toEqual(true);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnCancelButton();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toBe('All Processes');
|
||||
await processCloudDemoPage.processFilterCloudComponent.checkProcessFilterNotDisplayed('New');
|
||||
});
|
||||
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkCustomiseFilterHeaderIsExpanded();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('StartDate');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('StartDate');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveButton();
|
||||
});
|
||||
it('[C291810] Process filter should not be created when process filter dialog is closed', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().setFilterName('Cancel');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().getFilterName()).toEqual('Cancel');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnCancelButton();
|
||||
await processCloudDemoPage.processFilterCloudComponent.checkProcessFilterNotDisplayed('Cancel');
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual('All Processes');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickRunningProcessesFilter();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual('Running Processes');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await expect(await processCloudDemoPage.processFilterCloudComponent.getActiveFilterName()).toEqual('All Processes');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('StartDate');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
});
|
||||
|
||||
it('[C291809] Process filter dialog is displayed when clicking on Save As button', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Name');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().checkCancelButtonIsEnabled()).toEqual(true);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().checkSaveButtonIsEnabled()).toEqual(true);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().getTitle()).toEqual('Save filter as');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().getFilterName()).toEqual('All Processes');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnCancelButton();
|
||||
});
|
||||
});
|
||||
it('[C291811] Save button of process filter dialog should be disabled when process name is empty', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Id');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clearFilterName();
|
||||
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().getFilterName()).toEqual('');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().checkSaveButtonIsEnabled()).toEqual(false);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().checkCancelButtonIsEnabled()).toEqual(true);
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnCancelButton();
|
||||
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().openFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().checkCustomiseFilterHeaderIsExpanded();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('StartDate');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().getSortFilterDropDownValue()).toEqual('StartDate');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveButton();
|
||||
});
|
||||
|
||||
it('[C291809] Process filter dialog is displayed when clicking on Save As button', async () => {
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().setSortFilterDropDown('Name');
|
||||
await processCloudDemoPage.processFilterCloudComponent.clickAllProcessesFilter();
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().clickSaveAsButton();
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().checkCancelButtonIsEnabled()).toEqual(true);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().checkSaveButtonIsEnabled()).toEqual(true);
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().getTitle()).toEqual('Save filter as');
|
||||
await expect(await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().getFilterName()).toEqual('All Processes');
|
||||
await processCloudDemoPage.editProcessFilterCloudComponent().editProcessFilterDialog().clickOnCancelButton();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -30,259 +30,258 @@ import { TasksCloudDemoPage } from '../pages/adf/demo-shell/process-services/tas
|
||||
|
||||
describe('Edit task filters cloud', () => {
|
||||
|
||||
describe('Edit Task Filters', () => {
|
||||
const loginSSOPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const appListCloudComponent = new AppListCloudPage();
|
||||
const tasksCloudDemoPage = new TasksCloudDemoPage();
|
||||
let tasksService: TasksService;
|
||||
let identityService: IdentityService;
|
||||
let groupIdentityService: GroupIdentityService;
|
||||
let testUser, groupInfo;
|
||||
const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.config.bpmHost, browser.params.config.oauth2.host, 'BPM');
|
||||
const simpleApp = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name;
|
||||
|
||||
const simpleApp = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name;
|
||||
const completedTaskName = StringUtil.generateRandomString(),
|
||||
assignedTaskName = StringUtil.generateRandomString();
|
||||
const loginSSOPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const appListCloudComponent = new AppListCloudPage();
|
||||
const tasksCloudDemoPage = new TasksCloudDemoPage();
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
identityService = new IdentityService(apiService);
|
||||
groupIdentityService = new GroupIdentityService(apiService);
|
||||
tasksService = new TasksService(apiService);
|
||||
testUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.ACTIVITI_USER]);
|
||||
groupInfo = await groupIdentityService.getGroupInfoByGroupName('hr');
|
||||
await identityService.addUserToGroup(testUser.idIdentityService, groupInfo.id);
|
||||
const apiService = new ApiService();
|
||||
const identityService = new IdentityService(apiService);
|
||||
const groupIdentityService = new GroupIdentityService(apiService);
|
||||
const tasksService = new TasksService(apiService);
|
||||
|
||||
await apiService.login(testUser.email, testUser.password);
|
||||
const assignedTask = await tasksService.createStandaloneTask(assignedTaskName, simpleApp);
|
||||
await tasksService.claimTask(assignedTask.entry.id, simpleApp);
|
||||
await tasksService.createAndCompleteTask(completedTaskName, simpleApp);
|
||||
let testUser, groupInfo;
|
||||
|
||||
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
|
||||
});
|
||||
const completedTaskName = StringUtil.generateRandomString(),
|
||||
assignedTaskName = StringUtil.generateRandomString();
|
||||
|
||||
afterAll(async () => {
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
await identityService.deleteIdentityUser(testUser.idIdentityService);
|
||||
});
|
||||
beforeAll(async () => {
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
|
||||
beforeEach(async () => {
|
||||
await navigationBarPage.navigateToProcessServicesCloudPage();
|
||||
await appListCloudComponent.checkApsContainer();
|
||||
await appListCloudComponent.goToApp(simpleApp);
|
||||
});
|
||||
testUser = await identityService.createIdentityUserWithRole([identityService.ROLES.ACTIVITI_USER]);
|
||||
groupInfo = await groupIdentityService.getGroupInfoByGroupName('hr');
|
||||
await identityService.addUserToGroup(testUser.idIdentityService, groupInfo.id);
|
||||
|
||||
afterEach(async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
});
|
||||
await apiService.login(testUser.email, testUser.password);
|
||||
const assignedTask = await tasksService.createStandaloneTask(assignedTaskName, simpleApp);
|
||||
await tasksService.claimTask(assignedTask.entry.id, simpleApp);
|
||||
await tasksService.createAndCompleteTask(completedTaskName, simpleApp);
|
||||
|
||||
it('[C291785] All the filters property should be set up accordingly with the Query Param', async () => {
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getStatusFilterDropDownValue()).toEqual('ASSIGNED');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('CreatedDate');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getOrderFilterDropDownValue()).toEqual('DESC');
|
||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assignedTaskName);
|
||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(completedTaskName);
|
||||
await loginSSOPage.login(testUser.email, testUser.password);
|
||||
});
|
||||
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('Completed Tasks');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getStatusFilterDropDownValue()).toEqual('COMPLETED');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('CreatedDate');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getOrderFilterDropDownValue()).toEqual('DESC');
|
||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(assignedTaskName);
|
||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTaskName);
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
});
|
||||
afterAll(async () => {
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
await identityService.deleteIdentityUser(testUser.idIdentityService);
|
||||
});
|
||||
|
||||
it('[C306896] Delete Save and Save as actions should be displayed when clicking on custom filter header', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
beforeEach(async () => {
|
||||
await navigationBarPage.navigateToProcessServicesCloudPage();
|
||||
await appListCloudComponent.checkApsContainer();
|
||||
await appListCloudComponent.goToApp(simpleApp);
|
||||
});
|
||||
|
||||
await editTaskFilterCloudComponent.checkSaveButtonIsDisplayed();
|
||||
await editTaskFilterCloudComponent.checkSaveAsButtonIsDisplayed();
|
||||
await editTaskFilterCloudComponent.checkDeleteButtonIsDisplayed();
|
||||
afterEach(async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
});
|
||||
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkSaveButtonIsEnabled()).toEqual(false);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkSaveAsButtonIsEnabled()).toEqual(false);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkDeleteButtonIsEnabled()).toEqual(true);
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
});
|
||||
it('[C291785] All the filters property should be set up accordingly with the Query Param', async () => {
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getStatusFilterDropDownValue()).toEqual('ASSIGNED');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('CreatedDate');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getOrderFilterDropDownValue()).toEqual('DESC');
|
||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assignedTaskName);
|
||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(completedTaskName);
|
||||
|
||||
it('[C291795] New filter is added when clicking Save As button', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('Completed Tasks');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getStatusFilterDropDownValue()).toEqual('COMPLETED');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('CreatedDate');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getOrderFilterDropDownValue()).toEqual('DESC');
|
||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(assignedTaskName);
|
||||
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTaskName);
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
});
|
||||
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await editTaskFilterCloudComponent.openFilter();
|
||||
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
|
||||
it('[C306896] Delete Save and Save as actions should be displayed when clicking on custom filter header', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await editTaskFilterCloudComponent.checkSaveButtonIsDisplayed();
|
||||
await editTaskFilterCloudComponent.checkSaveAsButtonIsDisplayed();
|
||||
await editTaskFilterCloudComponent.checkDeleteButtonIsDisplayed();
|
||||
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkSaveButtonIsEnabled()).toEqual(false);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkSaveAsButtonIsEnabled()).toEqual(false);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkDeleteButtonIsEnabled()).toEqual(true);
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
});
|
||||
|
||||
const editTaskFilterDialog = tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog();
|
||||
await editTaskFilterDialog.setFilterName('New');
|
||||
await editTaskFilterDialog.clickOnSaveButton();
|
||||
it('[C291795] New filter is added when clicking Save As button', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkSaveButtonIsEnabled()).toEqual(false);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkSaveAsButtonIsEnabled()).toEqual(false);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkDeleteButtonIsEnabled()).toEqual(true);
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('CreatedDate');
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('custom-new');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
|
||||
});
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await editTaskFilterCloudComponent.openFilter();
|
||||
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
|
||||
|
||||
it('[C291796] Two filters with same name can be created when clicking the Save As button', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await editTaskFilterCloudComponent.openFilter();
|
||||
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
const editTaskFilterDialog = tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog();
|
||||
await editTaskFilterDialog.setFilterName('New');
|
||||
await editTaskFilterDialog.clickOnSaveButton();
|
||||
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkSaveButtonIsEnabled()).toEqual(false);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkSaveAsButtonIsEnabled()).toEqual(false);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkDeleteButtonIsEnabled()).toEqual(true);
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('CreatedDate');
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('custom-new');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
|
||||
});
|
||||
|
||||
const editTaskFilterDialog = editTaskFilterCloudComponent.editTaskFilterDialog();
|
||||
await editTaskFilterDialog.setFilterName('New');
|
||||
await editTaskFilterDialog.clickOnSaveButton();
|
||||
it('[C291796] Two filters with same name can be created when clicking the Save As button', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await editTaskFilterCloudComponent.openFilter();
|
||||
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
|
||||
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().setSortFilterDropDown('Priority');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('New');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().clickOnSaveButton();
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Priority');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('custom-new');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
|
||||
});
|
||||
const editTaskFilterDialog = editTaskFilterCloudComponent.editTaskFilterDialog();
|
||||
await editTaskFilterDialog.setFilterName('New');
|
||||
await editTaskFilterDialog.clickOnSaveButton();
|
||||
|
||||
it('[C291797] A filter is overrided when clicking on save button', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await editTaskFilterCloudComponent.openFilter();
|
||||
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().setSortFilterDropDown('Priority');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('New');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().clickOnSaveButton();
|
||||
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Priority');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('custom-new');
|
||||
|
||||
const editTaskFilterDialog = await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog();
|
||||
await editTaskFilterDialog.setFilterName('New');
|
||||
await editTaskFilterDialog.clickOnSaveButton();
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
|
||||
});
|
||||
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().setSortFilterDropDown('Name');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveButton();
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
it('[C291797] A filter is overrided when clicking on save button', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
|
||||
});
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await editTaskFilterCloudComponent.openFilter();
|
||||
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
|
||||
|
||||
it('[C291798] A filter is deleted when clicking on delete button', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await editTaskFilterCloudComponent.openFilter();
|
||||
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
|
||||
const editTaskFilterDialog = await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog();
|
||||
await editTaskFilterDialog.setFilterName('New');
|
||||
await editTaskFilterDialog.clickOnSaveButton();
|
||||
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().setSortFilterDropDown('Name');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveButton();
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
|
||||
const editTaskFilterDialog = await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog();
|
||||
await editTaskFilterDialog.setFilterName('New');
|
||||
await editTaskFilterDialog.clickOnSaveButton();
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Name');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
|
||||
});
|
||||
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
|
||||
it('[C291798] A filter is deleted when clicking on delete button', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.checkTaskFilterNotDisplayed('New');
|
||||
});
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await editTaskFilterCloudComponent.openFilter();
|
||||
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
|
||||
|
||||
it('[C291800] Task filter should not be created when task filter dialog is closed', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await editTaskFilterCloudComponent.openFilter();
|
||||
await editTaskFilterCloudComponent.setSortFilterDropDown('Priority');
|
||||
const editTaskFilterDialog = await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog();
|
||||
await editTaskFilterDialog.setFilterName('New');
|
||||
await editTaskFilterDialog.clickOnSaveButton();
|
||||
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Priority');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().getFilterName()).toEqual('My Tasks');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('Cancel');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().getFilterName()).toEqual('Cancel');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().clickOnCancelButton();
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.checkTaskFilterNotDisplayed('Cancel');
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toEqual('My Tasks');
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('CreatedDate');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
});
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('New');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickDeleteButton();
|
||||
|
||||
it('[C291801] Save button of task filter dialog should be disabled when task name is empty', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.checkTaskFilterNotDisplayed('New');
|
||||
});
|
||||
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await editTaskFilterCloudComponent.openFilter();
|
||||
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
|
||||
it('[C291800] Task filter should not be created when task filter dialog is closed', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await editTaskFilterCloudComponent.openFilter();
|
||||
await editTaskFilterCloudComponent.setSortFilterDropDown('Priority');
|
||||
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().getFilterName()).toEqual('My Tasks');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Priority');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().getFilterName()).toEqual('My Tasks');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().setFilterName('Cancel');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().getFilterName()).toEqual('Cancel');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().clickOnCancelButton();
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.checkTaskFilterNotDisplayed('Cancel');
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toEqual('My Tasks');
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('CreatedDate');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
|
||||
});
|
||||
|
||||
const tasksCloud = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await tasksCloud.editTaskFilterDialog().clearFilterName();
|
||||
it('[C291801] Save button of task filter dialog should be disabled when task name is empty', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().getFilterName()).toEqual('');
|
||||
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await editTaskFilterCloudComponent.openFilter();
|
||||
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
|
||||
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().checkSaveButtonIsEnabled()).toEqual(false);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().checkCancelButtonIsEnabled()).toEqual(true);
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().clickOnCancelButton();
|
||||
});
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
|
||||
it('[C291799] Task filter dialog is displayed when clicking on Save As button', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
const tasksCloud = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await tasksCloud.openFilter();
|
||||
await tasksCloud.setSortFilterDropDown('Id');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().checkSaveButtonIsEnabled()).toEqual(true);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().checkCancelButtonIsEnabled()).toEqual(true);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().getTitle()).toEqual('Save filter as');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().getFilterName()).toEqual('My Tasks');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().clickOnCancelButton();
|
||||
});
|
||||
});
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().getFilterName()).toEqual('My Tasks');
|
||||
|
||||
const tasksCloud = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await tasksCloud.editTaskFilterDialog().clearFilterName();
|
||||
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().getFilterName()).toEqual('');
|
||||
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().checkSaveButtonIsEnabled()).toEqual(false);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().checkCancelButtonIsEnabled()).toEqual(true);
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().clickOnCancelButton();
|
||||
});
|
||||
|
||||
it('[C291799] Task filter dialog is displayed when clicking on Save As button', async () => {
|
||||
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
|
||||
const tasksCloud = tasksCloudDemoPage.editTaskFilterCloudComponent();
|
||||
await tasksCloud.openFilter();
|
||||
await tasksCloud.setSortFilterDropDown('Id');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().checkSaveButtonIsEnabled()).toEqual(true);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().checkCancelButtonIsEnabled()).toEqual(true);
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().getTitle()).toEqual('Save filter as');
|
||||
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().getFilterName()).toEqual('My Tasks');
|
||||
await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().clickOnCancelButton();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -26,6 +26,7 @@ import { TasksCloudDemoPage } from '../../pages/adf/demo-shell/process-services/
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
|
||||
describe('Form Field Component - Dropdown Widget', () => {
|
||||
|
||||
const loginSSOPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const appListCloudComponent = new AppListCloudPage();
|
||||
@@ -34,49 +35,41 @@ describe('Form Field Component - Dropdown Widget', () => {
|
||||
const notificationHistoryPage = new NotificationHistoryPage();
|
||||
const taskHeaderCloudPage = new TaskHeaderCloudPage();
|
||||
const widget = new ProcessCloudWidgetPage();
|
||||
const dropdown = widget.dropdown();
|
||||
const apiService = new ApiService(
|
||||
browser.params.config.oauth2.clientId,
|
||||
browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.providers
|
||||
);
|
||||
|
||||
let tasksService: TasksService;
|
||||
let identityService: IdentityService;
|
||||
let groupIdentityService: GroupIdentityService;
|
||||
let processDefinitionService: ProcessDefinitionsService;
|
||||
let processInstancesService: ProcessInstancesService;
|
||||
let queryService: QueryService;
|
||||
const apiService = new ApiService();
|
||||
const identityService = new IdentityService(apiService);
|
||||
const groupIdentityService = new GroupIdentityService(apiService);
|
||||
const processDefinitionService = new ProcessDefinitionsService(apiService);
|
||||
const processInstancesService = new ProcessInstancesService(apiService);
|
||||
const queryService = new QueryService(apiService);
|
||||
const tasksService = new TasksService(apiService);
|
||||
|
||||
const dropdown = widget.dropdown();
|
||||
|
||||
let runningProcessInstance, testUser, groupInfo, tasklist, task;
|
||||
const simpleApp = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name;
|
||||
|
||||
beforeAll(async () => {
|
||||
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
identityService = new IdentityService(apiService);
|
||||
groupIdentityService = new GroupIdentityService(apiService);
|
||||
testUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.ACTIVITI_USER]);
|
||||
|
||||
testUser = await identityService.createIdentityUserWithRole( [identityService.ROLES.ACTIVITI_USER]);
|
||||
|
||||
groupInfo = await groupIdentityService.getGroupInfoByGroupName('hr');
|
||||
await identityService.addUserToGroup(testUser.idIdentityService, groupInfo.id);
|
||||
await apiService.login(testUser.email, testUser.password);
|
||||
|
||||
processDefinitionService = new ProcessDefinitionsService(apiService);
|
||||
const processDefinition = await processDefinitionService
|
||||
.getProcessDefinitionByName(browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.processes.dropdownrestprocess, simpleApp);
|
||||
|
||||
processInstancesService = new ProcessInstancesService(apiService);
|
||||
await processInstancesService.createProcessInstance(processDefinition.entry.key, simpleApp);
|
||||
|
||||
runningProcessInstance = await processInstancesService.createProcessInstance(processDefinition.entry.key, simpleApp);
|
||||
queryService = new QueryService(apiService);
|
||||
|
||||
tasklist = await queryService.getProcessInstanceTasks(runningProcessInstance.entry.id, simpleApp);
|
||||
task = await tasklist.list.entries[0];
|
||||
tasksService = new TasksService(apiService);
|
||||
await tasksService.claimTask(task.entry.id, simpleApp);
|
||||
|
||||
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
|
||||
await loginSSOPage.login(testUser.email, testUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
|
||||
@@ -33,16 +33,17 @@ import {
|
||||
groupReadOnlyFormMock
|
||||
} from '../../resources/forms/people-group-formwidget-mocks';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
|
||||
describe('People and Group of people Widgets', () => {
|
||||
|
||||
const loginSSOPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const formCloudComponentPage = new FormCloudComponentPage();
|
||||
const widget = new ProcessCloudWidgetPage();
|
||||
const formPage = new FormPage();
|
||||
|
||||
const peopleCloudWidget = widget.peopleCloudWidget();
|
||||
const groupCloudWidget = widget.groupCloudWidget();
|
||||
const formPage = new FormPage();
|
||||
|
||||
const widgets = {
|
||||
peopleCloudWidgetSingleModeId: 'PeopleSingleMode',
|
||||
@@ -70,13 +71,7 @@ describe('People and Group of people Widgets', () => {
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'BPM',
|
||||
hostBpm: browser.params.testConfig.adf_aps.host
|
||||
});
|
||||
|
||||
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.hrUser.email, browser.params.testConfig.hrUser.password);
|
||||
|
||||
await loginSSOPage.login(browser.params.testConfig.hrUser.email, browser.params.testConfig.hrUser.password);
|
||||
await navigationBarPage.navigateToFormCloudPage();
|
||||
});
|
||||
|
||||
|
||||
@@ -34,6 +34,8 @@ import { ProcessCloudDemoPage } from '../../pages/adf/demo-shell/process-service
|
||||
|
||||
describe('Task cloud visibility', async () => {
|
||||
|
||||
const simpleApp = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name;
|
||||
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const appListCloudComponent = new AppListCloudPage();
|
||||
const tasksCloudDemoPage = new TasksCloudDemoPage();
|
||||
@@ -43,23 +45,23 @@ describe('Task cloud visibility', async () => {
|
||||
const processCloudDemoPage = new ProcessCloudDemoPage();
|
||||
const loginSSOPage = new LoginSSOPage();
|
||||
|
||||
const simpleApp = browser.params.resources.ACTIVITI_CLOUD_APPS.SIMPLE_APP.name;
|
||||
const apiService = new ApiService();
|
||||
const identityService = new IdentityService(apiService);
|
||||
const groupIdentityService = new GroupIdentityService(apiService);
|
||||
|
||||
const standaloneTaskName = StringUtil.generateRandomString(5);
|
||||
const processName = StringUtil.generateRandomString(5);
|
||||
let identityService: IdentityService;
|
||||
let groupIdentityService: GroupIdentityService;
|
||||
|
||||
let testUser, groupInfo;
|
||||
const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.config.bpmHost, browser.params.config.oauth2.host, 'BPM');
|
||||
|
||||
beforeAll(async () => {
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
identityService = new IdentityService(apiService);
|
||||
groupIdentityService = new GroupIdentityService(apiService);
|
||||
testUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.ACTIVITI_USER]);
|
||||
|
||||
testUser = await identityService.createIdentityUserWithRole( [identityService.ROLES.ACTIVITI_USER]);
|
||||
groupInfo = await groupIdentityService.getGroupInfoByGroupName('hr');
|
||||
await identityService.addUserToGroup(testUser.idIdentityService, groupInfo.id);
|
||||
|
||||
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
|
||||
await loginSSOPage.login(testUser.email, testUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
@@ -87,11 +89,11 @@ describe('Task cloud visibility', async () => {
|
||||
await taskFormCloudComponent.formFields().checkWidgetIsHidden('Number2');
|
||||
await expect(await taskFormCloudComponent.formFields().isCompleteFormButtonDisabled()).toBeTruthy();
|
||||
|
||||
await taskFormCloudComponent.formFields().setFieldValue(by.id, 'Number1', 5);
|
||||
await taskFormCloudComponent.formFields().setFieldValue(by.id, 'Number1', '5');
|
||||
await taskFormCloudComponent.formFields().checkWidgetIsVisible('Number2');
|
||||
await expect(await taskFormCloudComponent.formFields().isCompleteFormButtonDisabled()).toBeFalsy();
|
||||
|
||||
await taskFormCloudComponent.formFields().setFieldValue(by.id, 'Number1', 123);
|
||||
await taskFormCloudComponent.formFields().setFieldValue(by.id, 'Number1', '123');
|
||||
await expect(await taskFormCloudComponent.formFields().isCompleteFormButtonDisabled()).toBeTruthy();
|
||||
await taskFormCloudComponent.formFields().checkWidgetIsHidden('Number2');
|
||||
});
|
||||
@@ -116,15 +118,15 @@ describe('Task cloud visibility', async () => {
|
||||
await taskFormCloudComponent.formFields().checkWidgetIsHidden('Number2');
|
||||
await expect(await taskFormCloudComponent.formFields().isCompleteFormButtonDisabled()).toBeTruthy();
|
||||
|
||||
await taskFormCloudComponent.formFields().setFieldValue(by.id, 'Number1', 5);
|
||||
await taskFormCloudComponent.formFields().setFieldValue(by.id, 'Number1', '5');
|
||||
await taskFormCloudComponent.formFields().checkWidgetIsVisible('Number2');
|
||||
await expect(await taskFormCloudComponent.formFields().isCompleteFormButtonDisabled()).toBeFalsy();
|
||||
|
||||
await taskFormCloudComponent.formFields().setFieldValue(by.id, 'Number1', 123);
|
||||
await taskFormCloudComponent.formFields().setFieldValue(by.id, 'Number1', '123');
|
||||
await expect(await taskFormCloudComponent.formFields().isCompleteFormButtonDisabled()).toBeTruthy();
|
||||
await taskFormCloudComponent.formFields().checkWidgetIsHidden('Number2');
|
||||
|
||||
await taskFormCloudComponent.formFields().setFieldValue(by.id, 'Number1', 4);
|
||||
await taskFormCloudComponent.formFields().setFieldValue(by.id, 'Number1', '4');
|
||||
await expect(await taskFormCloudComponent.formFields().isCompleteFormButtonDisabled()).toBeFalsy();
|
||||
await taskFormCloudComponent.clickCompleteButton();
|
||||
});
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
import { FormCloudComponentPage, LoginSSOPage, ProcessCloudWidgetPage } from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { tabFieldValueVisibilityJson, tabVarValueVisibilityJson, tabVarFieldVisibilityJson,
|
||||
tabFieldFieldVisibilityJson, tabFieldVarVisibilityJson, tabVarVarVisibilityJson,
|
||||
@@ -27,7 +26,6 @@ import { tabFieldValueVisibilityJson, tabVarValueVisibilityJson, tabVarFieldVisi
|
||||
describe('Visibility conditions on tabs - cloud', () => {
|
||||
|
||||
const loginSSOPage = new LoginSSOPage();
|
||||
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const formCloudDemoPage = new FormCloudComponentPage();
|
||||
const widget = new ProcessCloudWidgetPage();
|
||||
@@ -54,13 +52,7 @@ describe('Visibility conditions on tabs - cloud', () => {
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'BPM',
|
||||
hostBpm: browser.params.testConfig.adf_aps.host
|
||||
});
|
||||
|
||||
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.hrUser.email, browser.params.testConfig.hrUser.password);
|
||||
|
||||
await loginSSOPage.login(browser.params.testConfig.hrUser.email, browser.params.testConfig.hrUser.password);
|
||||
await navigationBarPage.navigateToFormCloudPage();
|
||||
});
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
import { FormCloudComponentPage, LoginSSOPage, ProcessCloudWidgetPage } from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
|
||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
|
||||
import { checkboxVisibilityFormJson, multipleCheckboxVisibilityFormJson } from '../../resources/forms/checkbox-visibility-condition';
|
||||
import { multipleTextVisibilityFormJson, multipleVisibilityFormJson } from '../../resources/forms/multiple-visibility-conditions';
|
||||
@@ -28,7 +27,6 @@ import { dropdownVisibilityFormFieldJson, dropdownVisibilityFormVariableJson } f
|
||||
describe('Visibility conditions - cloud', () => {
|
||||
|
||||
const loginSSOPage = new LoginSSOPage();
|
||||
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const formCloudDemoPage = new FormCloudComponentPage();
|
||||
const widget = new ProcessCloudWidgetPage();
|
||||
@@ -83,20 +81,12 @@ describe('Visibility conditions - cloud', () => {
|
||||
};
|
||||
|
||||
beforeAll(async () => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'BPM',
|
||||
hostBpm: browser.params.testConfig.adf_aps.host
|
||||
});
|
||||
|
||||
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.hrUser.email, browser.params.testConfig.hrUser.password);
|
||||
|
||||
await loginSSOPage.login(browser.params.testConfig.hrUser.email, browser.params.testConfig.hrUser.password);
|
||||
await navigationBarPage.navigateToFormCloudPage();
|
||||
|
||||
await formCloudDemoPage.setConfigToEditor(checkboxVisibilityFormJson);
|
||||
});
|
||||
|
||||
it('[C309647] Should be able to see Checkbox widget when visibility condition refers to another field with specific value', async () => {
|
||||
|
||||
await widget.textWidget().isWidgetVisible(widgets.textOneId);
|
||||
await widget.checkboxWidget().isCheckboxHidden(checkbox.checkboxFieldValue);
|
||||
await widget.textWidget().setValue(widgets.textOneId, value.displayCheckbox);
|
||||
@@ -107,7 +97,6 @@ describe('Visibility conditions - cloud', () => {
|
||||
});
|
||||
|
||||
it('[C309648] Should be able to see Checkbox widget when visibility condition refers to a form variable and a field', async () => {
|
||||
|
||||
await widget.textWidget().isWidgetVisible(widgets.textOneId);
|
||||
await widget.checkboxWidget().isCheckboxHidden(checkbox.checkboxVariableField);
|
||||
|
||||
@@ -119,7 +108,6 @@ describe('Visibility conditions - cloud', () => {
|
||||
});
|
||||
|
||||
it('[C309649] Should be able to see Checkbox widget when visibility condition refers to a field and a form variable', async () => {
|
||||
|
||||
await widget.textWidget().isWidgetVisible(widgets.textOneId);
|
||||
await widget.checkboxWidget().isCheckboxHidden(checkbox.checkboxFieldVariable);
|
||||
|
||||
@@ -131,7 +119,6 @@ describe('Visibility conditions - cloud', () => {
|
||||
});
|
||||
|
||||
it('[C311425] Should be able to see Checkbox widget when visibility condition refers to a field and another field', async () => {
|
||||
|
||||
await widget.textWidget().isWidgetVisible(widgets.textOneId);
|
||||
await widget.textWidget().isWidgetVisible(widgets.textTwoId);
|
||||
await widget.checkboxWidget().isCheckboxHidden(checkbox.checkboxFieldField);
|
||||
|
||||
@@ -15,7 +15,15 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { ApiService, GroupCloudComponentPage, GroupIdentityService, IdentityService, LoginSSOPage, PeopleCloudComponentPage, RolesService } from '@alfresco/adf-testing';
|
||||
import {
|
||||
ApiService,
|
||||
GroupCloudComponentPage,
|
||||
GroupIdentityService,
|
||||
IdentityService,
|
||||
LoginSSOPage,
|
||||
PeopleCloudComponentPage,
|
||||
RolesService
|
||||
} from '@alfresco/adf-testing';
|
||||
import { browser } from 'protractor';
|
||||
import { PeopleGroupCloudComponentPage } from '../pages/adf/demo-shell/process-services/people-group-cloud-component.page';
|
||||
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
@@ -23,18 +31,17 @@ import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
|
||||
describe('People Groups Cloud Component', () => {
|
||||
|
||||
describe('People Groups Cloud Component', () => {
|
||||
|
||||
const loginSSOPage = new LoginSSOPage();
|
||||
const navigationBarPage = new NavigationBarPage();
|
||||
const peopleGroupCloudComponentPage = new PeopleGroupCloudComponentPage();
|
||||
const peopleCloudComponent = new PeopleCloudComponentPage();
|
||||
const groupCloudComponentPage = new GroupCloudComponentPage();
|
||||
let identityService: IdentityService;
|
||||
let groupIdentityService: GroupIdentityService;
|
||||
let rolesService: RolesService;
|
||||
const apiService = new ApiService(
|
||||
browser.params.config.oauth2.clientId,
|
||||
browser.params.config.bpmHost, browser.params.config.oauth2.host, browser.params.config.providers
|
||||
);
|
||||
|
||||
const apiService = new ApiService();
|
||||
const identityService = new IdentityService(apiService);
|
||||
const rolesService = new RolesService(apiService);
|
||||
const groupIdentityService = new GroupIdentityService(apiService);
|
||||
|
||||
let apsUser;
|
||||
let testUser;
|
||||
@@ -50,22 +57,17 @@ describe('People Groups Cloud Component', () => {
|
||||
let groups = [];
|
||||
|
||||
beforeAll(async () => {
|
||||
|
||||
await apiService.login(browser.params.identityAdmin.email, browser.params.identityAdmin.password);
|
||||
|
||||
identityService = new IdentityService(apiService);
|
||||
testUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.ACTIVITI_USER]);
|
||||
apsUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.ACTIVITI_USER]);
|
||||
activitiUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.ACTIVITI_USER]);
|
||||
devopsUser = await identityService.createIdentityUserWithRole(apiService, [identityService.ROLES.ACTIVITI_DEVOPS]);
|
||||
testUser = await identityService.createIdentityUserWithRole([identityService.ROLES.ACTIVITI_USER]);
|
||||
apsUser = await identityService.createIdentityUserWithRole([identityService.ROLES.ACTIVITI_USER]);
|
||||
activitiUser = await identityService.createIdentityUserWithRole([identityService.ROLES.ACTIVITI_USER]);
|
||||
devopsUser = await identityService.createIdentityUserWithRole([identityService.ROLES.ACTIVITI_DEVOPS]);
|
||||
noRoleUser = await identityService.createIdentityUser();
|
||||
|
||||
rolesService = new RolesService(apiService);
|
||||
apsAdminRoleId = await rolesService.getRoleIdByRoleName(identityService.ROLES.ACTIVITI_ADMIN);
|
||||
apsUserRoleId = await rolesService.getRoleIdByRoleName(identityService.ROLES.ACTIVITI_USER);
|
||||
|
||||
groupIdentityService = new GroupIdentityService(apiService);
|
||||
|
||||
groupUser = await groupIdentityService.createIdentityGroup();
|
||||
await groupIdentityService.assignRole(groupUser.id, apsUserRoleId, identityService.ROLES.ACTIVITI_USER);
|
||||
|
||||
@@ -78,7 +80,7 @@ describe('People Groups Cloud Component', () => {
|
||||
`${testUser.idIdentityService}`, `${devopsUser.idIdentityService}`];
|
||||
groups = [`${groupUser.id}`, `${groupAdmin.id}`, `${groupNoRole.id}`];
|
||||
|
||||
await loginSSOPage.loginSSOIdentityService(testUser.email, testUser.password);
|
||||
await loginSSOPage.login(testUser.email, testUser.password);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
@@ -89,7 +91,6 @@ describe('People Groups Cloud Component', () => {
|
||||
for (const group of groups) {
|
||||
await groupIdentityService.deleteIdentityGroup(group);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
@@ -103,7 +104,6 @@ describe('People Groups Cloud Component', () => {
|
||||
});
|
||||
|
||||
describe('[C297674] Should be able to add filtering to People Cloud Component', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await peopleGroupCloudComponentPage.clickPeopleCloudMultipleSelection();
|
||||
await peopleGroupCloudComponentPage.checkPeopleCloudMultipleSelectionIsSelected();
|
||||
@@ -142,7 +142,6 @@ describe('People Groups Cloud Component', () => {
|
||||
});
|
||||
|
||||
describe('[C309674] Should be able to add filtering to Group Cloud Component', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
await peopleGroupCloudComponentPage.clickGroupCloudMultipleSelection();
|
||||
await peopleGroupCloudComponentPage.clickGroupCloudFilterRole();
|
||||
@@ -191,7 +190,6 @@ describe('People Groups Cloud Component', () => {
|
||||
});
|
||||
|
||||
it('[C305033] Should fetch the preselect users based on the Validate flag set to True in Single mode selection', async () => {
|
||||
|
||||
await peopleGroupCloudComponentPage.clickPeopleCloudSingleSelection();
|
||||
await peopleGroupCloudComponentPage.checkPeopleCloudSingleSelectionIsSelected();
|
||||
|
||||
@@ -212,7 +210,6 @@ describe('People Groups Cloud Component', () => {
|
||||
});
|
||||
|
||||
it('[C309676] Should fetch the preselect users based on the Validate flag set to True in Multiple mode selection', async () => {
|
||||
|
||||
await peopleGroupCloudComponentPage.clickPeopleCloudMultipleSelection();
|
||||
await peopleGroupCloudComponentPage.checkPeopleCloudMultipleSelectionIsSelected();
|
||||
await peopleGroupCloudComponentPage.clickPreselectValidation();
|
||||
@@ -252,5 +249,5 @@ describe('People Groups Cloud Component', () => {
|
||||
await peopleCloudComponent.checkSelectedPeople('TestFirstName2 TestLastName2');
|
||||
await peopleCloudComponent.checkSelectedPeople('TestFirstName3 TestLastName3');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user