mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-26 17:24:56 +00:00
[ADF-4100] Automate Permission Role dropdown for User (#4331)
* in progress * in progress * ADF-4012 pull request ready * crc's * crc's - moved the methods ProcessListCloudComponent to dataTablePage, to keep it common. * crc's - moved the methods ProcessListCloudComponent to dataTablePage, to keep it common. * changed the locator to use data-automation-id * linting fix * test automated - C268974 * test automated - C268974 * crc's * crc's * crc's * crc's * linting fix * added automation for C276980 - Duplicate User or Group * merged the overlapping testcases * Changed checkUserHasRoleSelected to use datatable methods * changed hte usernames to something more relevant and readable.
This commit is contained in:
parent
bda7e07b52
commit
c066a2f36b
@ -25,7 +25,6 @@ import { ContentListPage } from '../pages/adf/dialog/contentListPage';
|
||||
import AlfrescoApi = require('alfresco-js-api-node');
|
||||
import { FileModel } from '../models/ACS/fileModel';
|
||||
import { UploadActions } from '../actions/ACS/upload.actions';
|
||||
import { DataTablePage } from '../pages/adf/dataTablePage';
|
||||
import { Util } from '../util/util';
|
||||
import { browser } from 'protractor';
|
||||
|
||||
@ -36,8 +35,7 @@ describe('Permissions Component', function () {
|
||||
let permissionsPage = new PermissionsPage();
|
||||
let uploadActions = new UploadActions();
|
||||
let contentList = new ContentListPage();
|
||||
let dataTablePage = new DataTablePage();
|
||||
let acsUser, file;
|
||||
let fileOwnerUser, filePermissionUser, file;
|
||||
|
||||
let fileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.TXT_0B.file_name,
|
||||
@ -50,20 +48,25 @@ describe('Permissions Component', function () {
|
||||
};
|
||||
|
||||
let groupId;
|
||||
let alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
|
||||
fileOwnerUser = new AcsUserModel();
|
||||
|
||||
filePermissionUser = new AcsUserModel();
|
||||
const duplicateUserPermissionMessage = 'One or more of the permissions you have set is already present : authority -> ' + filePermissionUser.getId() + ' / role -> Contributor';
|
||||
|
||||
beforeAll(async (done) => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
|
||||
acsUser = new AcsUserModel();
|
||||
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
await alfrescoJsApi.core.peopleApi.addPerson(fileOwnerUser);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await alfrescoJsApi.core.peopleApi.addPerson(filePermissionUser);
|
||||
|
||||
let group = await this.alfrescoJsApi.core.groupsApi.createGroup(groupBody);
|
||||
let group = await alfrescoJsApi.core.groupsApi.createGroup(groupBody);
|
||||
|
||||
groupId = group.entry.id;
|
||||
|
||||
@ -72,63 +75,132 @@ describe('Permissions Component', function () {
|
||||
done();
|
||||
});
|
||||
|
||||
beforeEach(async (done) => {
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
|
||||
file = await uploadActions.uploadFile(this.alfrescoJsApi, fileModel.location, fileModel.name, '-my-');
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
contentList.checkContentIsDisplayed(fileModel.name);
|
||||
contentList.rightClickOnRowNamed(fileModel.name);
|
||||
contentList.pressContextMenuActionNamed('Permission');
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
afterEach(async (done) => {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, file.entry.id);
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
afterAll(async (done) => {
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
|
||||
await this.alfrescoJsApi.core.groupsApi.deleteGroup(groupId);
|
||||
await alfrescoJsApi.core.groupsApi.deleteGroup(groupId);
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C286272] Should be able to see results when searching for a user', () => {
|
||||
permissionsPage.checkAddPermissionButtonIsDisplayed();
|
||||
permissionsPage.clickAddPermissionButton();
|
||||
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||
permissionsPage.checkSearchUserInputIsDisplayed();
|
||||
permissionsPage.searchUserOrGroup('a');
|
||||
permissionsPage.checkResultListIsDisplayed();
|
||||
describe('Inherit and assigning permissions', function () {
|
||||
|
||||
beforeEach(async (done) => {
|
||||
await alfrescoJsApi.login(fileOwnerUser.id, fileOwnerUser.password);
|
||||
|
||||
file = await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, fileModel.name, '-my-');
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(fileOwnerUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
contentList.checkContentIsDisplayed(fileModel.name);
|
||||
contentList.rightClickOnRowNamed(fileModel.name);
|
||||
contentList.pressContextMenuActionNamed('Permission');
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
afterEach(async (done) => {
|
||||
await uploadActions.deleteFilesOrFolder(alfrescoJsApi, file.entry.id);
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C286272] Should be able to see results when searching for a user', () => {
|
||||
permissionsPage.checkAddPermissionButtonIsDisplayed();
|
||||
permissionsPage.clickAddPermissionButton();
|
||||
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||
permissionsPage.checkSearchUserInputIsDisplayed();
|
||||
permissionsPage.searchUserOrGroup('a');
|
||||
permissionsPage.checkResultListIsDisplayed();
|
||||
});
|
||||
|
||||
it('[C276979] Should be able to give permissions to a group of people', () => {
|
||||
permissionsPage.checkAddPermissionButtonIsDisplayed();
|
||||
permissionsPage.clickAddPermissionButton();
|
||||
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||
permissionsPage.checkSearchUserInputIsDisplayed();
|
||||
permissionsPage.searchUserOrGroup('GROUP_' + groupBody.id);
|
||||
permissionsPage.clickUserOrGroup('GROUP_' + groupBody.id);
|
||||
permissionsPage.checkUserOrGroupIsAdded('GROUP_' + groupBody.id);
|
||||
});
|
||||
|
||||
it('[C268974] Inherit Permission', () => {
|
||||
permissionsPage.checkPermissionInheritedButtonIsDisplayed();
|
||||
expect(permissionsPage.getPermissionInheritedButtonText()).toBe('Permission Inherited');
|
||||
permissionsPage.checkPermissionsDatatableIsDisplayed();
|
||||
permissionsPage.clickPermissionInheritedButton();
|
||||
expect(permissionsPage.getPermissionInheritedButtonText()).toBe('Inherit Permission');
|
||||
permissionsPage.checkNoPermissionsIsDisplayed();
|
||||
permissionsPage.clickPermissionInheritedButton();
|
||||
expect(permissionsPage.getPermissionInheritedButtonText()).toBe('Permission Inherited');
|
||||
permissionsPage.checkPermissionsDatatableIsDisplayed();
|
||||
});
|
||||
});
|
||||
|
||||
it('[C276979] Should be able to give permissions to a group of people', () => {
|
||||
permissionsPage.checkAddPermissionButtonIsDisplayed();
|
||||
permissionsPage.clickAddPermissionButton();
|
||||
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||
permissionsPage.checkSearchUserInputIsDisplayed();
|
||||
permissionsPage.searchUserOrGroup('GROUP_' + groupBody.id);
|
||||
permissionsPage.clickUserOrGroup('GROUP_' + groupBody.id);
|
||||
permissionsPage.checkUserOrGroupIsAdded('GROUP_' + groupBody.id);
|
||||
});
|
||||
describe('Changing and duplicate Permissions', function () {
|
||||
|
||||
beforeEach(async (done) => {
|
||||
await alfrescoJsApi.login(fileOwnerUser.id, fileOwnerUser.password);
|
||||
|
||||
file = await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, fileModel.name, '-my-');
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(fileOwnerUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
contentList.checkContentIsDisplayed(fileModel.name);
|
||||
contentList.rightClickOnRowNamed(fileModel.name);
|
||||
contentList.pressContextMenuActionNamed('Permission');
|
||||
permissionsPage.checkAddPermissionButtonIsDisplayed();
|
||||
permissionsPage.clickAddPermissionButton();
|
||||
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||
permissionsPage.checkSearchUserInputIsDisplayed();
|
||||
permissionsPage.searchUserOrGroup(filePermissionUser.getId());
|
||||
permissionsPage.clickUserOrGroup(filePermissionUser.getFirstName());
|
||||
permissionsPage.checkUserOrGroupIsAdded(filePermissionUser.getId());
|
||||
done();
|
||||
});
|
||||
|
||||
afterEach(async (done) => {
|
||||
await uploadActions.deleteFilesOrFolder(alfrescoJsApi, file.entry.id);
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C274691] Should be able to add a new User with permission to the file and also change locally set permissions', () => {
|
||||
|
||||
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Contributor');
|
||||
permissionsPage.clickRoleDropdown();
|
||||
expect(permissionsPage.getRoleDropdownOptions().count()).toBe(5);
|
||||
expect(permissionsPage.getRoleDropdownOptions().get(0).getText()).toBe('Contributor');
|
||||
expect(permissionsPage.getRoleDropdownOptions().get(1).getText()).toBe('Collaborator');
|
||||
expect(permissionsPage.getRoleDropdownOptions().get(2).getText()).toBe('Coordinator');
|
||||
expect(permissionsPage.getRoleDropdownOptions().get(3).getText()).toBe('Editor');
|
||||
expect(permissionsPage.getRoleDropdownOptions().get(4).getText()).toBe('Consumer');
|
||||
permissionsPage.selectOption('Collaborator');
|
||||
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Collaborator');
|
||||
permissionsPage.clickRoleDropdown();
|
||||
permissionsPage.selectOption('Coordinator');
|
||||
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Coordinator');
|
||||
permissionsPage.clickRoleDropdown();
|
||||
permissionsPage.selectOption('Editor');
|
||||
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Editor');
|
||||
permissionsPage.clickRoleDropdown();
|
||||
permissionsPage.selectOption('Consumer');
|
||||
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Consumer');
|
||||
|
||||
});
|
||||
|
||||
it('[C276980] Should not be able to duplicate User or Group to the locally set permissions', () => {
|
||||
|
||||
expect(permissionsPage.getRoleCellValue(filePermissionUser.getId())).toEqual('Contributor');
|
||||
permissionsPage.clickAddPermissionButton();
|
||||
permissionsPage.checkAddPermissionDialogIsDisplayed();
|
||||
permissionsPage.checkSearchUserInputIsDisplayed();
|
||||
permissionsPage.searchUserOrGroup(filePermissionUser.getId());
|
||||
permissionsPage.clickUserOrGroup(filePermissionUser.getFirstName());
|
||||
expect(permissionsPage.getAssignPermissionErrorText()).toBe(duplicateUserPermissionMessage);
|
||||
});
|
||||
|
||||
it('[C268974] Inherit Permission', () => {
|
||||
permissionsPage.checkPermissionInheritedButtonIsDisplayed();
|
||||
expect(permissionsPage.getPermissionInheritedButtonText()).toBe('Permission Inherited');
|
||||
permissionsPage.checkPermissionsDatatableIsDisplayed();
|
||||
permissionsPage.clickPermissionInheritedButton();
|
||||
expect(permissionsPage.getPermissionInheritedButtonText()).toBe('Inherit Permission');
|
||||
permissionsPage.checkNoPermissionsIsDisplayed();
|
||||
permissionsPage.clickPermissionInheritedButton();
|
||||
expect(permissionsPage.getPermissionInheritedButtonText()).toBe('Permission Inherited');
|
||||
permissionsPage.checkPermissionsDatatableIsDisplayed();
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -274,4 +274,8 @@ export class DataTablePage {
|
||||
return this.allColumns.count();
|
||||
}
|
||||
|
||||
getCellByNameAndColumn(content, columnName) {
|
||||
return this.getRowByRowName(content).element(by.css(`div[title='${columnName}']`));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -20,6 +20,10 @@ import { element, by } from 'protractor';
|
||||
import { Util } from '../../util/util';
|
||||
import { DataTablePage } from './dataTablePage';
|
||||
|
||||
let column = {
|
||||
role: 'Role'
|
||||
};
|
||||
|
||||
export class PermissionsPage {
|
||||
|
||||
addPermissionButton = element(by.css("button[data-automation-id='adf-add-permission-button']"));
|
||||
@ -30,6 +34,9 @@ export class PermissionsPage {
|
||||
permissionInheritedButton = element.all(by.css("div[class='adf-inherit_permission_button'] button")).first();
|
||||
permissionInheritedButtonText = this.permissionInheritedButton.element(by.css('span'));
|
||||
noPermissions = element(by.css('div[id="adf-no-permissions-template"]'));
|
||||
roleDropdown = element(by.id('adf-select-role-permission'));
|
||||
roleDropdownOptions = element.all(by.css('.mat-option-text'));
|
||||
assignPermissionError = element(by.css('simple-snack-bar'));
|
||||
|
||||
checkAddPermissionButtonIsDisplayed() {
|
||||
Util.waitUntilElementIsVisible(this.addPermissionButton);
|
||||
@ -92,4 +99,32 @@ export class PermissionsPage {
|
||||
return new DataTablePage(element(by.css('[class*="adf-datatable-permission"]')));
|
||||
}
|
||||
|
||||
getRoleCellValue(rowName) {
|
||||
let locator = new DataTablePage().getCellByNameAndColumn(rowName, column.role);
|
||||
Util.waitUntilElementIsVisible(locator);
|
||||
return locator.getText();
|
||||
}
|
||||
|
||||
clickRoleDropdown() {
|
||||
Util.waitUntilElementIsVisible(this.roleDropdown);
|
||||
return this.roleDropdown.click();
|
||||
}
|
||||
|
||||
getRoleDropdownOptions() {
|
||||
Util.waitUntilElementIsVisible(this.roleDropdownOptions);
|
||||
return this.roleDropdownOptions;
|
||||
}
|
||||
|
||||
selectOption(name) {
|
||||
let selectProcessDropdown = element(by.cssContainingText('.mat-option-text', name));
|
||||
Util.waitUntilElementIsVisible(selectProcessDropdown);
|
||||
Util.waitUntilElementIsClickable(selectProcessDropdown);
|
||||
selectProcessDropdown.click();
|
||||
return this;
|
||||
}
|
||||
|
||||
getAssignPermissionErrorText() {
|
||||
Util.waitUntilElementIsVisible(this.assignPermissionError);
|
||||
return this.assignPermissionError.getText();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user