[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
parent f0df6b3a5f
commit a78f24ada1
297 changed files with 5130 additions and 9622 deletions

View File

@@ -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();
});

View File

@@ -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();
});

View File

@@ -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();

View File

@@ -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();