[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:
Eugenio Romano
2020-06-04 14:41:30 +01:00
committed by GitHub
co-authored by Denys Vuika
parent f0df6b3a5f
commit a78f24ada1
297 changed files with 5130 additions and 9622 deletions
@@ -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();
});
+51 -71
View File
@@ -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);
@@ -1,122 +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 { LoginPage } from '@alfresco/adf-testing';
import { AcsUserModel } from '../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { NotificationDemoPage } from '../pages/adf/demo-shell/notification.page';
import { browser } from 'protractor';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
describe('Notifications Component', () => {
const loginPage = new LoginPage();
const notificationPage = new NotificationDemoPage();
const navigationBarPage = new NavigationBarPage();
const acsUser = new AcsUserModel();
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 notificationPage.goToNotificationsPage();
await notificationPage.enterDurationField(3000);
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
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 () => {
await notificationPage.clearMessage();
await notificationPage.clickNotificationButton();
await expect(await notificationPage.isNotificationSnackBarDisplayed()).toEqual(false);
});
it('[C279977] Should show notification when the message is not empty and button is clicked', async () => {
await notificationPage.enterMessageField('test');
await notificationPage.clickNotificationButton();
await expect(await notificationPage.getSnackBarMessage()).toEqual('test');
});
it('[C279978] Should show notification with action when the message is not empty and button is clicked', async () => {
await notificationPage.enterMessageField('test');
await notificationPage.clickActionToggle();
await notificationPage.clickNotificationButton();
await expect(await notificationPage.getSnackBarMessage()).toEqual('test');
await notificationPage.clickActionButton();
await notificationPage.checkActionEvent();
await notificationPage.clickActionToggle();
});
it('[C279981] Should show notification with action when the message is not empty and custom configuration button is clicked', async () => {
await notificationPage.enterMessageField('test');
await notificationPage.clickNotificationButton();
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();
await notificationPage.clickNotificationButton();
await expect(await notificationPage.isNotificationSnackBarDisplayed()).toEqual(true);
await expect(await notificationPage.getSnackBarMessage()).toEqual('test');
await notificationPage.waitForSnackBarToClose();
await notificationPage.clickNotificationButton();
await notificationPage.clickActionButton();
await notificationPage.checkActionEvent();
await notificationPage.clickActionToggle();
});
it('[C280001] Should meet configuration when a custom notification is set', async () => {
await notificationPage.enterMessageField('test');
await notificationPage.enterDurationField(1000);
await notificationPage.selectHorizontalPosition('Right');
await notificationPage.selectVerticalPosition('Top');
await notificationPage.selectDirection('Left to right');
await notificationPage.clickNotificationButton();
await expect(await notificationPage.getConfigObject()).toBe('{"direction": "ltr", "duration": "1000", "horizontalPosition": "right", "verticalPosition": "top"}');
});
});
@@ -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();');
});
+13 -16
View File
@@ -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 () => {
+14 -18
View File
@@ -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();
});
+17 -19
View File
@@ -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();