[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,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 +

View File

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

View File

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

View File

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