[ADF-4376] Fix Sticky Header in Datatable Component (#4582)

* [ADF-4376] Fix Sticky Header in Datatable Component

* [ADF-4374] Rebase branch

* remove search from permissions test

* remove search from permissions test
This commit is contained in:
davidcanonieto 2019-04-12 17:27:51 +01:00 committed by Eugenio Romano
parent 4215666a96
commit 4cc449dfbb
8 changed files with 28 additions and 410 deletions

View File

@ -129,7 +129,7 @@ export class DataTableComponent {
[ [
{ type: 'image', key: 'icon', title: '', srTitle: 'Thumbnail' }, { type: 'image', key: 'icon', title: '', srTitle: 'Thumbnail' },
{ type: 'text', key: 'id', title: 'Id', sortable: true , cssClass: '' }, { type: 'text', key: 'id', title: 'Id', sortable: true , cssClass: '' },
{ type: 'text', key: 'createdOn', title: 'Created On', sortable: true, cssClass: 'adf-ellipsis-cell adf-expand-cell-2' }, { type: 'date', key: 'createdOn', title: 'Created On', sortable: true, cssClass: 'adf-ellipsis-cell adf-expand-cell-2' },
{ type: 'text', key: 'name', title: 'Name', cssClass: 'adf-ellipsis-cell', sortable: true }, { type: 'text', key: 'name', title: 'Name', cssClass: 'adf-ellipsis-cell', sortable: true },
{ type: 'text', key: 'createdBy.name', title: 'Created By', sortable: true, cssClass: ''}, { type: 'text', key: 'createdBy.name', title: 'Created By', sortable: true, cssClass: ''},
{ type: 'json', key: 'json', title: 'Json', cssClass: 'adf-expand-cell-2'} { type: 'json', key: 'json', title: 'Json', cssClass: 'adf-expand-cell-2'}

View File

@ -27,10 +27,10 @@ import { UploadActions } from '../../actions/ACS/upload.actions';
import { StringUtil } from '@alfresco/adf-testing'; import { StringUtil } from '@alfresco/adf-testing';
import { browser, protractor } from 'protractor'; import { browser, protractor } from 'protractor';
import { FolderModel } from '../../models/ACS/folderModel'; import { FolderModel } from '../../models/ACS/folderModel';
import { SearchDialog } from '../../pages/adf/dialog/searchDialog';
import { ViewerPage } from '../../pages/adf/viewerPage'; import { ViewerPage } from '../../pages/adf/viewerPage';
import { NotificationPage } from '../../pages/adf/notificationPage'; import { NotificationPage } from '../../pages/adf/notificationPage';
import { MetadataViewPage } from '../../pages/adf/metadataViewPage'; import { MetadataViewPage } from '../../pages/adf/metadataViewPage';
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
import { UploadDialog } from '../../pages/adf/dialog/uploadDialog'; import { UploadDialog } from '../../pages/adf/dialog/uploadDialog';
describe('Permissions Component', function () { describe('Permissions Component', function () {
@ -38,11 +38,11 @@ describe('Permissions Component', function () {
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const contentServicesPage = new ContentServicesPage(); const contentServicesPage = new ContentServicesPage();
const permissionsPage = new PermissionsPage(); const permissionsPage = new PermissionsPage();
const navigationBarPage = new NavigationBarPage();
const uploadActions = new UploadActions(); const uploadActions = new UploadActions();
const contentList = contentServicesPage.getDocumentList(); const contentList = contentServicesPage.getDocumentList();
const searchDialog = new SearchDialog();
const viewerPage = new ViewerPage(); const viewerPage = new ViewerPage();
const metadataViewPage = new MetadataViewPage(); const metadataViewPage = new MetadataViewPage();
const notificationPage = new NotificationPage(); const notificationPage = new NotificationPage();
@ -92,21 +92,15 @@ describe('Permissions Component', function () {
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
await alfrescoJsApi.core.peopleApi.addPerson(fileOwnerUser); await alfrescoJsApi.core.peopleApi.addPerson(fileOwnerUser);
await alfrescoJsApi.core.peopleApi.addPerson(filePermissionUser); await alfrescoJsApi.core.peopleApi.addPerson(filePermissionUser);
await alfrescoJsApi.core.groupsApi.createGroup(groupBody); await alfrescoJsApi.core.groupsApi.createGroup(groupBody);
await alfrescoJsApi.login(fileOwnerUser.id, fileOwnerUser.password); await alfrescoJsApi.login(fileOwnerUser.id, fileOwnerUser.password);
roleConsumerFolder = await uploadActions.createFolder(alfrescoJsApi, roleConsumerFolderModel.name, '-my-'); roleConsumerFolder = await uploadActions.createFolder(alfrescoJsApi, roleConsumerFolderModel.name, '-my-');
roleCoordinatorFolder = await uploadActions.createFolder(alfrescoJsApi, roleCoordinatorFolderModel.name, '-my-'); roleCoordinatorFolder = await uploadActions.createFolder(alfrescoJsApi, roleCoordinatorFolderModel.name, '-my-');
roleContributorFolder = await uploadActions.createFolder(alfrescoJsApi, roleContributorFolderModel.name, '-my-'); roleContributorFolder = await uploadActions.createFolder(alfrescoJsApi, roleContributorFolderModel.name, '-my-');
roleCollaboratorFolder = await uploadActions.createFolder(alfrescoJsApi, roleCollaboratorFolderModel.name, '-my-'); roleCollaboratorFolder = await uploadActions.createFolder(alfrescoJsApi, roleCollaboratorFolderModel.name, '-my-');
roleEditorFolder = await uploadActions.createFolder(alfrescoJsApi, roleEditorFolderModel.name, '-my-'); roleEditorFolder = await uploadActions.createFolder(alfrescoJsApi, roleEditorFolderModel.name, '-my-');
folders = [roleConsumerFolder, roleContributorFolder, roleCoordinatorFolder, roleCollaboratorFolder, roleEditorFolder]; folders = [roleConsumerFolder, roleContributorFolder, roleCoordinatorFolder, roleCollaboratorFolder, roleEditorFolder];
@ -114,131 +108,78 @@ describe('Permissions Component', function () {
await alfrescoJsApi.core.nodesApi.updateNode(roleConsumerFolder.entry.id, await alfrescoJsApi.core.nodesApi.updateNode(roleConsumerFolder.entry.id,
{ {
permissions: { permissions: {
locallySet: [{ locallySet: [{
authorityId: filePermissionUser.getId(), authorityId: filePermissionUser.getId(),
name: 'Consumer', name: 'Consumer',
accessStatus: 'ALLOWED' accessStatus: 'ALLOWED'
}] }]
} }
}); });
await alfrescoJsApi.core.nodesApi.updateNode(roleCollaboratorFolder.entry.id, await alfrescoJsApi.core.nodesApi.updateNode(roleCollaboratorFolder.entry.id,
{ {
permissions: { permissions: {
locallySet: [{ locallySet: [{
authorityId: filePermissionUser.getId(), authorityId: filePermissionUser.getId(),
name: 'Collaborator', name: 'Collaborator',
accessStatus: 'ALLOWED' accessStatus: 'ALLOWED'
}] }]
} }
}); });
await alfrescoJsApi.core.nodesApi.updateNode(roleCoordinatorFolder.entry.id, await alfrescoJsApi.core.nodesApi.updateNode(roleCoordinatorFolder.entry.id,
{ {
permissions: { permissions: {
locallySet: [{ locallySet: [{
authorityId: filePermissionUser.getId(), authorityId: filePermissionUser.getId(),
name: 'Coordinator', name: 'Coordinator',
accessStatus: 'ALLOWED' accessStatus: 'ALLOWED'
}] }]
} }
}); });
await alfrescoJsApi.core.nodesApi.updateNode(roleContributorFolder.entry.id, await alfrescoJsApi.core.nodesApi.updateNode(roleContributorFolder.entry.id,
{ {
permissions: { permissions: {
locallySet: [{ locallySet: [{
authorityId: filePermissionUser.getId(), authorityId: filePermissionUser.getId(),
name: 'Contributor', name: 'Contributor',
accessStatus: 'ALLOWED' accessStatus: 'ALLOWED'
}] }]
} }
}); });
await alfrescoJsApi.core.nodesApi.updateNode(roleEditorFolder.entry.id, await alfrescoJsApi.core.nodesApi.updateNode(roleEditorFolder.entry.id,
{ {
permissions: { permissions: {
locallySet: [{ locallySet: [{
authorityId: filePermissionUser.getId(), authorityId: filePermissionUser.getId(),
name: 'Editor', name: 'Editor',
accessStatus: 'ALLOWED' accessStatus: 'ALLOWED'
}] }]
} }
}); });
await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, 'RoleConsumer' + fileModel.name, roleConsumerFolder.entry.id); await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, 'RoleConsumer' + fileModel.name, roleConsumerFolder.entry.id);
await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, 'RoleContributor' + fileModel.name, roleContributorFolder.entry.id); await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, 'RoleContributor' + fileModel.name, roleContributorFolder.entry.id);
await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, 'RoleCoordinator' + fileModel.name, roleCoordinatorFolder.entry.id); await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, 'RoleCoordinator' + fileModel.name, roleCoordinatorFolder.entry.id);
await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, 'RoleCollaborator' + fileModel.name, roleCollaboratorFolder.entry.id); await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, 'RoleCollaborator' + fileModel.name, roleCollaboratorFolder.entry.id);
await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, 'RoleEditor' + fileModel.name, roleEditorFolder.entry.id); await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, 'RoleEditor' + fileModel.name, roleEditorFolder.entry.id);
browser.driver.sleep(15000); // wait search get the groups, files and folders
done(); done();
}); });
afterAll(async (done) => { afterAll(async (done) => {
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
await folders.forEach(function (folder) { await folders.forEach(function (folder) {
uploadActions.deleteFilesOrFolder(alfrescoJsApi, folder.entry.id); uploadActions.deleteFilesOrFolder(alfrescoJsApi, folder.entry.id);
}); });
done(); done();
}); });
describe('Inherit and assigning permissions', function () { describe('Inherit and assigning permissions', function () {
@ -252,11 +193,8 @@ describe('Permissions Component', function () {
loginPage.loginToContentServicesUsingUserModel(fileOwnerUser); loginPage.loginToContentServicesUsingUserModel(fileOwnerUser);
contentServicesPage.goToDocumentList(); contentServicesPage.goToDocumentList();
contentServicesPage.checkContentIsDisplayed(fileModel.name); contentServicesPage.checkContentIsDisplayed(fileModel.name);
contentServicesPage.checkSelectedSiteIsDisplayed('My files'); contentServicesPage.checkSelectedSiteIsDisplayed('My files');
contentList.rightClickOnRow(fileModel.name); contentList.rightClickOnRow(fileModel.name);
contentServicesPage.pressContextMenuActionNamed('Permission'); contentServicesPage.pressContextMenuActionNamed('Permission');
@ -481,28 +419,13 @@ describe('Permissions Component', function () {
loginPage.loginToContentServicesUsingUserModel(filePermissionUser); loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
contentServicesPage.goToDocumentList(); navigationBarPage.openContentServicesFolder(roleConsumerFolder.entry.id);
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(roleConsumerFolderModel.name)
.resultTableContainsRow(roleConsumerFolderModel.name)
.clickOnSpecificRow(roleConsumerFolderModel.name);
contentServicesPage.checkContentIsDisplayed('RoleConsumer' + fileModel.name); contentServicesPage.checkContentIsDisplayed('RoleConsumer' + fileModel.name);
contentList.doubleClickRow('RoleConsumer' + fileModel.name); contentList.doubleClickRow('RoleConsumer' + fileModel.name);
viewerPage.checkFileIsLoaded(); viewerPage.checkFileIsLoaded();
viewerPage.clickCloseButton(); viewerPage.clickCloseButton();
contentList.waitForTableBody(); contentList.waitForTableBody();
@ -527,28 +450,13 @@ describe('Permissions Component', function () {
loginPage.loginToContentServicesUsingUserModel(filePermissionUser); loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
contentServicesPage.goToDocumentList(); navigationBarPage.openContentServicesFolder(roleContributorFolder.entry.id);
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(roleContributorFolderModel.name)
.resultTableContainsRow(roleContributorFolderModel.name)
.clickOnSpecificRow(roleContributorFolderModel.name);
contentServicesPage.checkContentIsDisplayed('RoleContributor' + fileModel.name); contentServicesPage.checkContentIsDisplayed('RoleContributor' + fileModel.name);
contentList.doubleClickRow('RoleContributor' + fileModel.name); contentList.doubleClickRow('RoleContributor' + fileModel.name);
viewerPage.checkFileIsLoaded(); viewerPage.checkFileIsLoaded();
viewerPage.clickCloseButton(); viewerPage.clickCloseButton();
contentList.waitForTableBody(); contentList.waitForTableBody();
@ -566,7 +474,6 @@ describe('Permissions Component', function () {
contentServicesPage.uploadFile(testFileModel.location).checkContentIsDisplayed(testFileModel.name); contentServicesPage.uploadFile(testFileModel.location).checkContentIsDisplayed(testFileModel.name);
uploadDialog.fileIsUploaded(testFileModel.name); uploadDialog.fileIsUploaded(testFileModel.name);
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed(); uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
}); });
@ -575,28 +482,13 @@ describe('Permissions Component', function () {
loginPage.loginToContentServicesUsingUserModel(filePermissionUser); loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
contentServicesPage.goToDocumentList(); navigationBarPage.openContentServicesFolder(roleEditorFolder.entry.id);
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(roleEditorFolderModel.name)
.resultTableContainsRow(roleEditorFolderModel.name)
.clickOnSpecificRow(roleEditorFolderModel.name);
contentServicesPage.checkContentIsDisplayed('RoleEditor' + fileModel.name); contentServicesPage.checkContentIsDisplayed('RoleEditor' + fileModel.name);
contentList.doubleClickRow('RoleEditor' + fileModel.name); contentList.doubleClickRow('RoleEditor' + fileModel.name);
viewerPage.checkFileIsLoaded(); viewerPage.checkFileIsLoaded();
viewerPage.clickCloseButton(); viewerPage.clickCloseButton();
contentList.waitForTableBody(); contentList.waitForTableBody();
@ -616,9 +508,7 @@ describe('Permissions Component', function () {
await metadataViewPage.editIconClick(); await metadataViewPage.editIconClick();
metadataViewPage.editPropertyIconIsDisplayed('properties.cm:title'); metadataViewPage.editPropertyIconIsDisplayed('properties.cm:title');
metadataViewPage.clickEditPropertyIcons('properties.cm:title'); metadataViewPage.clickEditPropertyIcons('properties.cm:title');
metadataViewPage.enterPropertyText('properties.cm:title', 'newTitle1'); metadataViewPage.enterPropertyText('properties.cm:title', 'newTitle1');
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:title'); await metadataViewPage.clickUpdatePropertyIcon('properties.cm:title');
@ -639,28 +529,13 @@ describe('Permissions Component', function () {
loginPage.loginToContentServicesUsingUserModel(filePermissionUser); loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
contentServicesPage.goToDocumentList(); navigationBarPage.openContentServicesFolder(roleCollaboratorFolder.entry.id);
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(roleCollaboratorFolderModel.name)
.resultTableContainsRow(roleCollaboratorFolderModel.name)
.clickOnSpecificRow(roleCollaboratorFolderModel.name);
contentServicesPage.checkContentIsDisplayed('RoleCollaborator' + fileModel.name); contentServicesPage.checkContentIsDisplayed('RoleCollaborator' + fileModel.name);
contentList.doubleClickRow('RoleCollaborator' + fileModel.name); contentList.doubleClickRow('RoleCollaborator' + fileModel.name);
viewerPage.checkFileIsLoaded(); viewerPage.checkFileIsLoaded();
viewerPage.clickCloseButton(); viewerPage.clickCloseButton();
contentList.waitForTableBody(); contentList.waitForTableBody();
@ -680,9 +555,7 @@ describe('Permissions Component', function () {
await metadataViewPage.editIconClick(); await metadataViewPage.editIconClick();
metadataViewPage.editPropertyIconIsDisplayed('properties.cm:title'); metadataViewPage.editPropertyIconIsDisplayed('properties.cm:title');
metadataViewPage.clickEditPropertyIcons('properties.cm:title'); metadataViewPage.clickEditPropertyIcons('properties.cm:title');
metadataViewPage.enterPropertyText('properties.cm:title', 'newTitle2'); metadataViewPage.enterPropertyText('properties.cm:title', 'newTitle2');
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:title'); await metadataViewPage.clickUpdatePropertyIcon('properties.cm:title');
@ -694,7 +567,6 @@ describe('Permissions Component', function () {
contentServicesPage.uploadFile(testFileModel.location).checkContentIsDisplayed(testFileModel.name); contentServicesPage.uploadFile(testFileModel.location).checkContentIsDisplayed(testFileModel.name);
uploadDialog.fileIsUploaded(testFileModel.name); uploadDialog.fileIsUploaded(testFileModel.name);
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed(); uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
}); });
@ -705,28 +577,13 @@ describe('Permissions Component', function () {
loginPage.loginToContentServicesUsingUserModel(filePermissionUser); loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
contentServicesPage.goToDocumentList(); navigationBarPage.openContentServicesFolder(roleCoordinatorFolder.entry.id);
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(roleCoordinatorFolderModel.name)
.resultTableContainsRow(roleCoordinatorFolderModel.name)
.clickOnSpecificRow(roleCoordinatorFolderModel.name);
contentServicesPage.checkContentIsDisplayed('RoleCoordinator' + fileModel.name); contentServicesPage.checkContentIsDisplayed('RoleCoordinator' + fileModel.name);
contentList.doubleClickRow('RoleCoordinator' + fileModel.name); contentList.doubleClickRow('RoleCoordinator' + fileModel.name);
viewerPage.checkFileIsLoaded(); viewerPage.checkFileIsLoaded();
viewerPage.clickCloseButton(); viewerPage.clickCloseButton();
contentList.waitForTableBody(); contentList.waitForTableBody();
@ -740,9 +597,7 @@ describe('Permissions Component', function () {
await metadataViewPage.editIconClick(); await metadataViewPage.editIconClick();
metadataViewPage.editPropertyIconIsDisplayed('properties.cm:title'); metadataViewPage.editPropertyIconIsDisplayed('properties.cm:title');
metadataViewPage.clickEditPropertyIcons('properties.cm:title'); metadataViewPage.clickEditPropertyIcons('properties.cm:title');
metadataViewPage.enterPropertyText('properties.cm:title', 'newTitle3'); metadataViewPage.enterPropertyText('properties.cm:title', 'newTitle3');
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:title'); await metadataViewPage.clickUpdatePropertyIcon('properties.cm:title');
@ -750,17 +605,13 @@ describe('Permissions Component', function () {
expect(metadataViewPage.getPropertyText('properties.cm:title')).toEqual('newTitle3'); expect(metadataViewPage.getPropertyText('properties.cm:title')).toEqual('newTitle3');
metadataViewPage.clickCloseButton(); metadataViewPage.clickCloseButton();
contentServicesPage.uploadFile(pngFileModel.location).checkContentIsDisplayed(pngFileModel.name); contentServicesPage.uploadFile(pngFileModel.location).checkContentIsDisplayed(pngFileModel.name);
uploadDialog.fileIsUploaded(pngFileModel.name); uploadDialog.fileIsUploaded(pngFileModel.name);
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed(); uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
contentServicesPage.checkContentIsDisplayed('RoleCoordinator' + fileModel.name); contentServicesPage.checkContentIsDisplayed('RoleCoordinator' + fileModel.name);
contentServicesPage.deleteContent('RoleCoordinator' + fileModel.name); contentServicesPage.deleteContent('RoleCoordinator' + fileModel.name);
contentServicesPage.checkContentIsNotDisplayed('RoleCoordinator' + fileModel.name); contentServicesPage.checkContentIsNotDisplayed('RoleCoordinator' + fileModel.name);
}); });
@ -771,24 +622,9 @@ describe('Permissions Component', function () {
loginPage.loginToContentServicesUsingUserModel(filePermissionUser); loginPage.loginToContentServicesUsingUserModel(filePermissionUser);
contentServicesPage.goToDocumentList(); navigationBarPage.openContentServicesFolder(roleConsumerFolder.entry.id);
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(roleConsumerFolderModel.name)
.resultTableContainsRow(roleConsumerFolderModel.name)
.clickOnSpecificRow(roleConsumerFolderModel.name);
contentServicesPage.checkContentIsDisplayed('RoleConsumer' + fileModel.name); contentServicesPage.checkContentIsDisplayed('RoleConsumer' + fileModel.name);
contentServicesPage.checkSelectedSiteIsDisplayed('My files'); contentServicesPage.checkSelectedSiteIsDisplayed('My files');
contentList.rightClickOnRow('RoleConsumer' + fileModel.name); contentList.rightClickOnRow('RoleConsumer' + fileModel.name);
@ -796,13 +632,10 @@ describe('Permissions Component', function () {
contentServicesPage.pressContextMenuActionNamed('Permission'); contentServicesPage.pressContextMenuActionNamed('Permission');
permissionsPage.checkPermissionInheritedButtonIsDisplayed(); permissionsPage.checkPermissionInheritedButtonIsDisplayed();
permissionsPage.checkAddPermissionButtonIsDisplayed(); permissionsPage.checkAddPermissionButtonIsDisplayed();
permissionsPage.clickPermissionInheritedButton(); permissionsPage.clickPermissionInheritedButton();
notificationPage.checkNotifyContains('You are not allowed to change permissions'); notificationPage.checkNotifyContains('You are not allowed to change permissions');
notificationPage.checkNotificationSnackBarIsNotDisplayed(); notificationPage.checkNotificationSnackBarIsNotDisplayed();
permissionsPage.clickAddPermissionButton(); permissionsPage.clickAddPermissionButton();

View File

@ -16,63 +16,36 @@
*/ */
import { PermissionsPage } from '../../pages/adf/permissionsPage'; import { PermissionsPage } from '../../pages/adf/permissionsPage';
import { LoginPage } from '@alfresco/adf-testing'; import { LoginPage } from '@alfresco/adf-testing';
import { ContentServicesPage } from '../../pages/adf/contentServicesPage'; import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
import { AcsUserModel } from '../../models/ACS/acsUserModel'; import { AcsUserModel } from '../../models/ACS/acsUserModel';
import TestConfig = require('../../test.config'); import TestConfig = require('../../test.config');
import resources = require('../../util/resources'); import resources = require('../../util/resources');
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api'; import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { FileModel } from '../../models/ACS/fileModel'; import { FileModel } from '../../models/ACS/fileModel';
import { UploadActions } from '../../actions/ACS/upload.actions'; import { UploadActions } from '../../actions/ACS/upload.actions';
import { StringUtil } from '@alfresco/adf-testing'; import { StringUtil } from '@alfresco/adf-testing';
import { browser, protractor } from 'protractor'; import { browser, protractor } from 'protractor';
import { SearchDialog } from '../../pages/adf/dialog/searchDialog';
import { ViewerPage } from '../../pages/adf/viewerPage'; import { ViewerPage } from '../../pages/adf/viewerPage';
import { NotificationPage } from '../../pages/adf/notificationPage'; import { NotificationPage } from '../../pages/adf/notificationPage';
import CONSTANTS = require('../../util/constants'); import CONSTANTS = require('../../util/constants');
import { MetadataViewPage } from '../../pages/adf/metadataViewPage'; import { MetadataViewPage } from '../../pages/adf/metadataViewPage';
import { UploadDialog } from '../../pages/adf/dialog/uploadDialog'; import { UploadDialog } from '../../pages/adf/dialog/uploadDialog';
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
import { VersionManagePage } from '../../pages/adf/versionManagerPage';
describe('Permissions Component', function () { describe('Permissions Component', function () {
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const contentServicesPage = new ContentServicesPage(); const contentServicesPage = new ContentServicesPage();
const permissionsPage = new PermissionsPage(); const permissionsPage = new PermissionsPage();
const uploadActions = new UploadActions(); const uploadActions = new UploadActions();
const contentList = contentServicesPage.getDocumentList(); const contentList = contentServicesPage.getDocumentList();
const searchDialog = new SearchDialog();
const viewerPage = new ViewerPage(); const viewerPage = new ViewerPage();
const navigationBarPage = new NavigationBarPage();
const metadataViewPage = new MetadataViewPage(); const metadataViewPage = new MetadataViewPage();
const notificationPage = new NotificationPage(); const notificationPage = new NotificationPage();
const versionManagePage = new VersionManagePage();
const uploadDialog = new UploadDialog(); const uploadDialog = new UploadDialog();
let folderOwnerUser, consumerUser, siteConsumerUser, contributorUser, managerUser, collaboratorUser; let folderOwnerUser, consumerUser, siteConsumerUser, contributorUser, managerUser, collaboratorUser;
@ -80,49 +53,32 @@ describe('Permissions Component', function () {
let publicSite, privateSite, folderName; let publicSite, privateSite, folderName;
const fileModel = new FileModel({ const fileModel = new FileModel({
'name': resources.Files.ADF_DOCUMENTS.TXT_0B.file_name, 'name': resources.Files.ADF_DOCUMENTS.TXT_0B.file_name,
'location': resources.Files.ADF_DOCUMENTS.TXT_0B.file_location 'location': resources.Files.ADF_DOCUMENTS.TXT_0B.file_location
}); });
const testFileModel = new FileModel({ const testFileModel = new FileModel({
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name, 'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location 'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
}); });
const pngFileModel = new FileModel({ const pngFileModel = new FileModel({
'name': resources.Files.ADF_DOCUMENTS.PNG.file_name, 'name': resources.Files.ADF_DOCUMENTS.PNG.file_name,
'location': resources.Files.ADF_DOCUMENTS.PNG.file_location 'location': resources.Files.ADF_DOCUMENTS.PNG.file_location
}); });
const alfrescoJsApi = new AlfrescoApi({ const alfrescoJsApi = new AlfrescoApi({
provider: 'ECM', provider: 'ECM',
hostEcm: TestConfig.adf.url hostEcm: TestConfig.adf.url
}); });
let siteFolder, privateSiteFile; let siteFolder, privateSiteFile;
folderOwnerUser = new AcsUserModel(); folderOwnerUser = new AcsUserModel();
consumerUser = new AcsUserModel(); consumerUser = new AcsUserModel();
siteConsumerUser = new AcsUserModel(); siteConsumerUser = new AcsUserModel();
collaboratorUser = new AcsUserModel(); collaboratorUser = new AcsUserModel();
contributorUser = new AcsUserModel(); contributorUser = new AcsUserModel();
managerUser = new AcsUserModel(); managerUser = new AcsUserModel();
beforeAll(async (done) => { beforeAll(async (done) => {
@ -130,17 +86,11 @@ describe('Permissions Component', function () {
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
await alfrescoJsApi.core.peopleApi.addPerson(folderOwnerUser); await alfrescoJsApi.core.peopleApi.addPerson(folderOwnerUser);
await alfrescoJsApi.core.peopleApi.addPerson(siteConsumerUser); await alfrescoJsApi.core.peopleApi.addPerson(siteConsumerUser);
await alfrescoJsApi.core.peopleApi.addPerson(consumerUser); await alfrescoJsApi.core.peopleApi.addPerson(consumerUser);
await alfrescoJsApi.core.peopleApi.addPerson(contributorUser); await alfrescoJsApi.core.peopleApi.addPerson(contributorUser);
await alfrescoJsApi.core.peopleApi.addPerson(collaboratorUser); await alfrescoJsApi.core.peopleApi.addPerson(collaboratorUser);
await alfrescoJsApi.core.peopleApi.addPerson(managerUser); await alfrescoJsApi.core.peopleApi.addPerson(managerUser);
await alfrescoJsApi.login(folderOwnerUser.id, folderOwnerUser.password); await alfrescoJsApi.login(folderOwnerUser.id, folderOwnerUser.password);
const publicSiteName = `PUBLIC_TEST_SITE_${StringUtil.generateRandomString(5)}`; const publicSiteName = `PUBLIC_TEST_SITE_${StringUtil.generateRandomString(5)}`;
@ -154,47 +104,31 @@ describe('Permissions Component', function () {
const privateSiteBody = {visibility: 'PRIVATE', title: privateSiteName}; const privateSiteBody = {visibility: 'PRIVATE', title: privateSiteName};
publicSite = await alfrescoJsApi.core.sitesApi.createSite(publicSiteBody); publicSite = await alfrescoJsApi.core.sitesApi.createSite(publicSiteBody);
privateSite = await alfrescoJsApi.core.sitesApi.createSite(privateSiteBody); privateSite = await alfrescoJsApi.core.sitesApi.createSite(privateSiteBody);
await alfrescoJsApi.core.sitesApi.addSiteMember(publicSite.entry.id, { await alfrescoJsApi.core.sitesApi.addSiteMember(publicSite.entry.id, {
id: siteConsumerUser.id, id: siteConsumerUser.id,
role: CONSTANTS.CS_USER_ROLES.CONSUMER role: CONSTANTS.CS_USER_ROLES.CONSUMER
}); });
await alfrescoJsApi.core.sitesApi.addSiteMember(publicSite.entry.id, { await alfrescoJsApi.core.sitesApi.addSiteMember(publicSite.entry.id, {
id: collaboratorUser.id, id: collaboratorUser.id,
role: CONSTANTS.CS_USER_ROLES.COLLABORATOR role: CONSTANTS.CS_USER_ROLES.COLLABORATOR
}); });
await alfrescoJsApi.core.sitesApi.addSiteMember(publicSite.entry.id, { await alfrescoJsApi.core.sitesApi.addSiteMember(publicSite.entry.id, {
id: contributorUser.id, id: contributorUser.id,
role: CONSTANTS.CS_USER_ROLES.CONTRIBUTOR role: CONSTANTS.CS_USER_ROLES.CONTRIBUTOR
}); });
await alfrescoJsApi.core.sitesApi.addSiteMember(publicSite.entry.id, { await alfrescoJsApi.core.sitesApi.addSiteMember(publicSite.entry.id, {
id: managerUser.id, id: managerUser.id,
role: CONSTANTS.CS_USER_ROLES.MANAGER role: CONSTANTS.CS_USER_ROLES.MANAGER
}); });
await alfrescoJsApi.core.sitesApi.addSiteMember(privateSite.entry.id, { await alfrescoJsApi.core.sitesApi.addSiteMember(privateSite.entry.id, {
id: managerUser.id, id: managerUser.id,
role: CONSTANTS.CS_USER_ROLES.MANAGER role: CONSTANTS.CS_USER_ROLES.MANAGER
}); });
siteFolder = await uploadActions.createFolder(alfrescoJsApi, folderName, publicSite.entry.guid); siteFolder = await uploadActions.createFolder(alfrescoJsApi, folderName, publicSite.entry.guid);
@ -204,27 +138,17 @@ describe('Permissions Component', function () {
await alfrescoJsApi.core.nodesApi.updateNode(privateSiteFile.entry.id, await alfrescoJsApi.core.nodesApi.updateNode(privateSiteFile.entry.id,
{ {
permissions: { permissions: {
locallySet: [{ locallySet: [{
authorityId: managerUser.getId(), authorityId: managerUser.getId(),
name: 'SiteConsumer', name: 'SiteConsumer',
accessStatus: 'ALLOWED' accessStatus: 'ALLOWED'
}] }]
} }
}); });
await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, 'Site' + fileModel.name, siteFolder.entry.id); await uploadActions.uploadFile(alfrescoJsApi, fileModel.location, 'Site' + fileModel.name, siteFolder.entry.id);
browser.driver.sleep(15000); // wait search get the groups, files and folders
done(); done();
}); });
@ -232,13 +156,10 @@ describe('Permissions Component', function () {
afterAll(async (done) => { afterAll(async (done) => {
await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); await alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
await alfrescoJsApi.core.sitesApi.deleteSite(publicSite.entry.id); await alfrescoJsApi.core.sitesApi.deleteSite(publicSite.entry.id);
await alfrescoJsApi.core.sitesApi.deleteSite(privateSite.entry.id); await alfrescoJsApi.core.sitesApi.deleteSite(privateSite.entry.id);
done(); done();
}); });
describe('Role Site Dropdown', function () { describe('Role Site Dropdown', function () {
@ -258,23 +179,14 @@ describe('Permissions Component', function () {
contentServicesPage.pressContextMenuActionNamed('Permission'); contentServicesPage.pressContextMenuActionNamed('Permission');
permissionsPage.checkPermissionInheritedButtonIsDisplayed(); permissionsPage.checkPermissionInheritedButtonIsDisplayed();
permissionsPage.checkAddPermissionButtonIsDisplayed(); permissionsPage.checkAddPermissionButtonIsDisplayed();
permissionsPage.clickAddPermissionButton(); permissionsPage.clickAddPermissionButton();
permissionsPage.checkAddPermissionDialogIsDisplayed(); permissionsPage.checkAddPermissionDialogIsDisplayed();
permissionsPage.checkSearchUserInputIsDisplayed(); permissionsPage.checkSearchUserInputIsDisplayed();
permissionsPage.searchUserOrGroup(consumerUser.getId()); permissionsPage.searchUserOrGroup(consumerUser.getId());
permissionsPage.clickUserOrGroup(consumerUser.getFirstName()); permissionsPage.clickUserOrGroup(consumerUser.getFirstName());
permissionsPage.checkUserOrGroupIsAdded(consumerUser.getId()); permissionsPage.checkUserOrGroupIsAdded(consumerUser.getId());
done(); done();
}); });
it('[C277002] Should display the Role Site dropdown', () => { it('[C277002] Should display the Role Site dropdown', () => {
@ -303,21 +215,7 @@ describe('Permissions Component', function () {
loginPage.loginToContentServicesUsingUserModel(siteConsumerUser); loginPage.loginToContentServicesUsingUserModel(siteConsumerUser);
contentServicesPage.goToDocumentList(); navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(folderName)
.resultTableContainsRow(folderName)
.clickOnSpecificRow(folderName);
contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name); contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name);
@ -349,21 +247,7 @@ describe('Permissions Component', function () {
loginPage.loginToContentServicesUsingUserModel(contributorUser); loginPage.loginToContentServicesUsingUserModel(contributorUser);
contentServicesPage.goToDocumentList(); navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(folderName)
.resultTableContainsRow(folderName)
.clickOnSpecificRow(folderName);
contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name); contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name);
@ -397,21 +281,7 @@ describe('Permissions Component', function () {
loginPage.loginToContentServicesUsingUserModel(collaboratorUser); loginPage.loginToContentServicesUsingUserModel(collaboratorUser);
contentServicesPage.goToDocumentList(); navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(folderName)
.resultTableContainsRow(folderName)
.clickOnSpecificRow(folderName);
contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name); contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name);
@ -460,35 +330,16 @@ describe('Permissions Component', function () {
}); });
it('[C277006] Role SiteManager', () => { it('[C277006] Role SiteManager', () => {
loginPage.loginToContentServicesUsingUserModel(managerUser); loginPage.loginToContentServicesUsingUserModel(managerUser);
navigationBarPage.openContentServicesFolder(siteFolder.entry.id);
contentServicesPage.goToDocumentList();
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(folderName)
.resultTableContainsRow(folderName)
.clickOnSpecificRow(folderName);
contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name); contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name);
contentList.doubleClickRow('Site' + fileModel.name); contentList.doubleClickRow('Site' + fileModel.name);
viewerPage.checkFileIsLoaded(); viewerPage.checkFileIsLoaded();
viewerPage.clickCloseButton(); viewerPage.clickCloseButton();
contentList.waitForTableBody(); contentList.waitForTableBody();
contentServicesPage.metadataContent('Site' + fileModel.name); contentServicesPage.metadataContent('Site' + fileModel.name);
metadataViewPage.editIconIsDisplayed(); metadataViewPage.editIconIsDisplayed();
@ -498,9 +349,7 @@ describe('Permissions Component', function () {
await metadataViewPage.editIconClick(); await metadataViewPage.editIconClick();
metadataViewPage.editPropertyIconIsDisplayed('properties.cm:description'); metadataViewPage.editPropertyIconIsDisplayed('properties.cm:description');
metadataViewPage.clickEditPropertyIcons('properties.cm:description'); metadataViewPage.clickEditPropertyIcons('properties.cm:description');
metadataViewPage.enterDescriptionText('newDescription'); metadataViewPage.enterDescriptionText('newDescription');
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:description'); await metadataViewPage.clickUpdatePropertyIcon('properties.cm:description');
@ -508,81 +357,18 @@ describe('Permissions Component', function () {
expect(metadataViewPage.getPropertyText('properties.cm:description')).toEqual('newDescription'); expect(metadataViewPage.getPropertyText('properties.cm:description')).toEqual('newDescription');
metadataViewPage.clickCloseButton(); metadataViewPage.clickCloseButton();
contentServicesPage.uploadFile(testFileModel.location).checkContentIsDisplayed(testFileModel.name); contentServicesPage.uploadFile(testFileModel.location).checkContentIsDisplayed(testFileModel.name);
uploadDialog.fileIsUploaded(testFileModel.name); uploadDialog.fileIsUploaded(testFileModel.name);
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed(); uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name); contentServicesPage.checkContentIsDisplayed('Site' + fileModel.name);
contentServicesPage.deleteContent('Site' + fileModel.name); contentServicesPage.deleteContent('Site' + fileModel.name);
contentServicesPage.checkContentIsNotDisplayed('Site' + fileModel.name); contentServicesPage.checkContentIsNotDisplayed('Site' + fileModel.name);
}); });
}); });
}); });
describe('Site Consumer - Add new version', function () {
it('[C277118] Should be able to add new version with Site Consumer permission on file', () => {
loginPage.loginToContentServicesUsingUserModel(managerUser);
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
contentServicesPage.checkContentIsDisplayed('privateSite' + fileModel.name);
contentList.doubleClickRow('privateSite' + fileModel.name);
viewerPage.checkFileIsLoaded();
viewerPage.checkInfoButtonIsDisplayed();
viewerPage.clickInfoButton();
viewerPage.checkInfoSideBarIsDisplayed();
viewerPage.clickMoveRightChevron();
viewerPage.clickMoveRightChevron();
viewerPage.clickOnTab('Versions');
viewerPage.checkTabIsActive('Versions');
versionManagePage
.checkUploadNewVersionsButtonIsDisplayed()
.clickAddNewVersionsButton()
.checkMajorChangeIsDisplayed()
.checkMinorChangeIsDisplayed()
.checkCommentTextIsDisplayed()
.checkCancelButtonIsDisplayed();
versionManagePage.uploadNewVersionFile(pngFileModel.location);
versionManagePage.checkFileVersionExist('1.0');
expect(versionManagePage.getFileVersionName('1.0')).toEqual('privateSite' + fileModel.name);
versionManagePage.checkFileVersionExist('1.1');
expect(versionManagePage.getFileVersionName('1.1')).toEqual(pngFileModel.name);
viewerPage.checkFileNameIsDisplayed(pngFileModel.name);
});
});
}); });

View File

@ -58,8 +58,6 @@ export class ContentServicesPage {
emptyRecent = element(by.css('.adf-container-recent .adf-empty-list__title')); emptyRecent = element(by.css('.adf-container-recent .adf-empty-list__title'));
gridViewButton = element(by.css('button[data-automation-id="document-list-grid-view"]')); gridViewButton = element(by.css('button[data-automation-id="document-list-grid-view"]'));
cardViewContainer = element(by.css('div.adf-document-list-container div.adf-datatable-card')); cardViewContainer = element(by.css('div.adf-document-list-container div.adf-datatable-card'));
chooseButton = element(by.css('button[data-automation-id="content-node-selector-actions-choose"]'));
searchInputElement = element(by.css('input[data-automation-id="content-node-selector-search-input"]'));
shareNodeButton = element(by.cssContainingText('mat-icon', ' share ')); shareNodeButton = element(by.cssContainingText('mat-icon', ' share '));
nameColumnHeader = 'name'; nameColumnHeader = 'name';
createdByColumnHeader = 'createdByUser.displayName'; createdByColumnHeader = 'createdByUser.displayName';

View File

@ -15,6 +15,8 @@
* limitations under the License. * limitations under the License.
*/ */
/* tslint:disable */
import { browser } from 'protractor'; import { browser } from 'protractor';
export async function setConfigField(field: string, value: string) { export async function setConfigField(field: string, value: string) {

View File

@ -142,6 +142,7 @@
.adf-datatable-cell { .adf-datatable-cell {
& .adf-name-location-cell-location { & .adf-name-location-cell-location {
padding: 0;
display: block; display: block;
} }

View File

@ -334,9 +334,7 @@
} }
.adf-datatable-cell-value { .adf-datatable-cell-value {
overflow: hidden; word-break: break-word;
text-overflow: ellipsis;
word-break: break-all;
padding: 0 10px; padding: 0 10px;
} }
@ -504,20 +502,20 @@
.adf-sticky-header { .adf-sticky-header {
border-top: 0; border-top: 0;
max-width: calc(100% - 0.2em); height: 100%;
.adf-datatable-header { .adf-datatable-header {
position: absolute; display: block;
background-color: mat-color($background, card); margin-right: 0;
display: flex;
z-index: 10;
border-top: $data-table-dividers; border-top: $data-table-dividers;
border-bottom: $data-table-dividers; border-bottom: $data-table-dividers;
width: calc(100% - 17.4em);
} }
.adf-datatable-body { .adf-datatable-body {
margin-top: 57px; display: block;
flex: 1;
overflow-y: scroll;
margin-top: -1px;
} }
} }