[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

@@ -26,11 +26,11 @@ describe('Auth Guard SSO', () => {
it('[C307058] Should be redirected to 403 when user doesn\'t have permissions', async () => {
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url,
browser.params.testConfig.adf.hostSso,
browser.params.testConfig.adf.hostIdentity,
false, true, browser.params.config.oauth2.clientId);
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(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/cloud/simple-app');
await browser.sleep(1000);
const error = await errorPage.getErrorCode();

View File

@@ -15,32 +15,29 @@
* limitations under the License.
*/
import { DataTableComponentPage, LoginPage } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { ApiService, DataTableComponentPage, LoginSSOPage, UserModel } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { AcsUserModel } from '../../models/ACS/acs-user.model';
import { DataTablePage } from '../../pages/adf/demo-shell/data-table.page';
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
import { UsersActions } from '../../actions/users.actions';
describe('Datatable component - selection', () => {
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const dataTablePage = new DataTablePage();
const loginPage = new LoginPage();
const acsUser = new AcsUserModel();
const loginPage = new LoginSSOPage();
const acsUser = new UserModel();
const navigationBarPage = new NavigationBarPage();
const dataTableComponent = new DataTableComponentPage();
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);
await usersActions.createUser(acsUser);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
await navigationBarPage.navigateToDatatable();
});

View File

@@ -15,41 +15,37 @@
* limitations under the License.
*/
import { LoginPage, NotificationHistoryPage } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { ApiService, DropActions, LoginSSOPage, NotificationHistoryPage, UserModel } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { DropActions } from '../../actions/drop.actions';
import { AcsUserModel } from '../../models/ACS/acs-user.model';
import { FileModel } from '../../models/ACS/file.model';
import { DataTablePage } from '../../pages/adf/demo-shell/data-table.page';
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
import { UsersActions } from '../../actions/users.actions';
describe('Datatable component', () => {
const dataTablePage = new DataTablePage('defaultTable');
const copyContentDataTablePage = new DataTablePage('copyClipboardDataTable');
const dragAndDropDataTablePage = new DataTablePage();
const loginPage = new LoginPage();
const acsUser = new AcsUserModel();
const loginPage = new LoginSSOPage();
const acsUser = new UserModel();
const navigationBarPage = new NavigationBarPage();
const notificationHistoryPage = new NotificationHistoryPage();
const dragAndDrop = new DropActions();
const pngFile = new FileModel({
'name': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
'location': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_location
});
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const dragAndDrop = new DropActions();
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);
await usersActions.createUser(acsUser);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
});
afterAll(async () => {
@@ -57,7 +53,6 @@ describe('Datatable component', () => {
});
describe('Datatable component - copyContent', () => {
beforeAll(async () => {
await navigationBarPage.navigateToCopyContentDatatable();
await dataTablePage.dataTable.waitForTableBody();
@@ -142,7 +137,6 @@ describe('Datatable component', () => {
});
describe('Datatable component - Drag and Drop', () => {
beforeAll(async () => {
await navigationBarPage.navigateToDragAndDropDatatable();
await dragAndDropDataTablePage.dataTable.waitForTableBody();

View File

@@ -15,28 +15,25 @@
* limitations under the License.
*/
import { LoginPage, ErrorPage, BrowserActions } from '@alfresco/adf-testing';
import { AcsUserModel } from '../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { LoginSSOPage, ErrorPage, BrowserActions, ApiService, UserModel } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { UsersActions } from '../actions/users.actions';
describe('Error Component', () => {
const acsUser = new AcsUserModel();
const loginPage = new LoginPage();
const acsUser = new UserModel();
const loginPage = new LoginSSOPage();
const errorPage = new ErrorPage();
const navigationBarPage = new NavigationBarPage();
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
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);
beforeAll(async () => {
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await usersActions.createUser(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
});
afterAll(async () => {

View File

@@ -14,20 +14,22 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { HeaderPage, LoginPage, SettingsPage } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { ApiService, HeaderPage, LoginSSOPage, SettingsPage, UserModel } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { UsersActions } from '../actions/users.actions';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { UsersActions } from '../actions/users.actions';
describe('Header Component', () => {
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const headerPage = new HeaderPage();
const settingsPage = new SettingsPage();
let user, tenantId;
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const acsUser = new UserModel();
const names = {
app_title_default: 'ADF Demo Application',
@@ -43,34 +45,16 @@ describe('Header Component', () => {
logo_tooltip: 'test_tooltip'
};
beforeAll(async() => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
beforeAll(async () => {
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
const users = new UsersActions();
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
user = await users.createTenantAndUser(this.alfrescoJsApi);
tenantId = user.tenantId;
await this.alfrescoJsApi.login(user.email, user.password);
await loginPage.loginToProcessServicesUsingUserModel(user);
});
beforeEach(async() => {
await navigationBarPage.clickHeaderDataButton();
await usersActions.createUser(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 this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId);
});
beforeEach(async () => {
await navigationBarPage.clickHeaderDataButton();
});
it('[C280002] Should be able to view Header component', async () => {
await headerPage.checkShowMenuCheckBoxIsDisplayed();

View File

@@ -15,30 +15,26 @@
* limitations under the License.
*/
import { LoginPage } from '@alfresco/adf-testing';
import { ApiService, LoginSSOPage, UserModel } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { IconsPage } from '../pages/adf/icons.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('Universal Icon component', () => {
const loginPage = new LoginPage();
const acsUser = new AcsUserModel();
const loginPage = new LoginSSOPage();
const acsUser = new UserModel();
const navigationBarPage = new NavigationBarPage();
const iconsPage = new IconsPage();
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
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);
beforeAll(async () => {
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await usersActions.createUser(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
});
afterAll(async () => {

View File

@@ -15,24 +15,25 @@
* limitations under the License.
*/
import { LocalStorageUtil, LoginPage, UploadActions } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { StringUtil, LocalStorageUtil, LoginSSOPage, 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 { ContentServicesPage } from '../pages/adf/content-services.page';
import { InfinitePaginationPage } from '../pages/adf/core/infinite-pagination.page';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { Util } from '../util/util';
import { UsersActions } from '../actions/users.actions';
describe('Enable infinite scrolling', () => {
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const contentServicesPage = new ContentServicesPage();
const infinitePaginationPage = new InfinitePaginationPage();
const navigationBarPage = new NavigationBarPage();
const acsUser = new AcsUserModel();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const acsUser = new UserModel();
const folderModel = new FolderModel({ 'name': 'folderOne' });
let fileNames = [];
@@ -49,22 +50,18 @@ describe('Enable infinite scrolling', () => {
};
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
const 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);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
await usersActions.createUser(acsUser);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
fileNames = Util.generateSequenceFiles(1, nrOfFiles, files.base, files.extension);
deleteFileNames = Util.generateSequenceFiles(1, nrOfDeletedFiles, files.base, files.extension);
fileNames = StringUtil.generateFilesNames(1, nrOfFiles, files.base, files.extension);
deleteFileNames = StringUtil.generateFilesNames(1, nrOfDeletedFiles, files.base, files.extension);
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
const folderUploadedModel = await uploadActions.createFolder(folderModel.name, '-my-');
emptyFolderModel = await uploadActions.createFolder('emptyFolder', '-my-');

View File

@@ -15,31 +15,32 @@
* limitations under the License.
*/
import { BrowserActions, ErrorPage, LoginPage, SettingsPage, UserInfoPage } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import {
ApiService,
BrowserActions,
ErrorPage,
LocalStorageUtil,
UserInfoPage,
UserModel
} from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { AcsUserModel } from '../../models/ACS/acs-user.model';
import { ContentServicesPage } from '../../pages/adf/content-services.page';
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
import { ProcessServicesPage } from '../../pages/adf/process-services/process-services.page';
import { Util } from '../../util/util';
import { LoginPage } from '../../pages/adf/demo-shell/login.page';
import { UsersActions } from '../../actions/users.actions';
describe('Login component', () => {
const settingsPage = new SettingsPage();
const processServicesPage = new ProcessServicesPage();
const navigationBarPage = new NavigationBarPage();
const userInfoPage = new UserInfoPage();
const contentServicesPage = new ContentServicesPage();
const loginPage = new LoginPage();
const errorPage = new ErrorPage();
const adminUserModel = new AcsUserModel({
'id': browser.params.testConfig.adf.adminUser,
'password': browser.params.testConfig.adf.adminPassword
});
const userA = new AcsUserModel();
const userB = new AcsUserModel();
const userA = new UserModel();
const userB = new UserModel();
const errorMessages = {
username: 'Your username needs to be at least 2 characters.',
@@ -50,33 +51,32 @@ describe('Login component', () => {
const invalidUsername = 'invaliduser';
const invalidPassword = 'invalidpassword';
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ALL',
hostEcm: browser.params.testConfig.adf_acs.host,
hostBpm: browser.params.testConfig.adf_aps.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);
await this.alfrescoJsApi.core.peopleApi.addPerson(userA);
await this.alfrescoJsApi.core.peopleApi.addPerson(userB);
await usersActions.createUser(userA);
await usersActions.createUser(userB);
});
it('[C276746] Should display the right information in user-info when a different users logs in', async () => {
await loginPage.loginToContentServicesUsingUserModel(userA);
await LocalStorageUtil.setStorageItem('providers', 'ECM');
await loginPage.login(userA.email, userA.password);
await userInfoPage.clickUserProfile();
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(userA.firstName + ' ' + userA.lastName);
await expect(await userInfoPage.getContentEmail()).toEqual(userA.email);
await loginPage.loginToContentServicesUsingUserModel(userB);
await loginPage.login(userB.email, userB.password);
await userInfoPage.clickUserProfile();
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(userB.firstName + ' ' + userB.lastName);
await expect(await userInfoPage.getContentEmail()).toEqual(userB.email);
});
it('[C299206] Should redirect the user without the right access role on a forbidden page', async () => {
await loginPage.loginToContentServicesUsingUserModel(userA);
await loginPage.login(userA.email, userA.password);
await navigationBarPage.navigateToProcessServicesCloudPage();
await expect(await errorPage.getErrorCode()).toBe('403');
await expect(await errorPage.getErrorTitle()).toBe('You don\'t have permission to access this server.');
@@ -120,7 +120,7 @@ describe('Login component', () => {
it('[C260045] Should enable login button after entering a valid username and a password', async () => {
await loginPage.goToLoginPage();
await loginPage.enterUsername(adminUserModel.id);
await loginPage.enterUsername(browser.params.testConfig.admin.email);
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.enterPassword('a');
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(true);
@@ -165,11 +165,11 @@ describe('Login component', () => {
});
it('[C260049] Should be possible to login to Process Services with Content Services disabled', async () => {
await LocalStorageUtil.setStorageItem('providers', 'BPM');
await loginPage.goToLoginPage();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.clickSettingsIcon();
await settingsPage.setProviderBpm();
await loginPage.login(adminUserModel.id, adminUserModel.password);
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await navigationBarPage.clickContentServicesButton();
@@ -177,23 +177,21 @@ describe('Login component', () => {
});
it('[C260050] Should be possible to login to Content Services with Process Services disabled', async () => {
await LocalStorageUtil.setStorageItem('providers', 'ECM');
await loginPage.goToLoginPage();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcm();
await loginPage.login(browser.params.testConfig.adf.adminUser, browser.params.testConfig.adf.adminPassword);
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
});
it('[C260051] Should be able to login to both Content Services and Process Services', async () => {
await LocalStorageUtil.setStorageItem('providers', 'ALL');
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.login(adminUserModel.id, adminUserModel.password);
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
await navigationBarPage.clickContentServicesButton();
@@ -203,30 +201,28 @@ describe('Login component', () => {
});
it('[C277754] Should the user be redirect to the login page when the Content Service session expire', async () => {
await LocalStorageUtil.setStorageItem('providers', 'ECM');
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.login(adminUserModel.id, adminUserModel.password);
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await browser.executeScript('window.localStorage.removeItem("ADF_ticket-ECM");');
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/files');
await loginPage.waitForElements();
await LocalStorageUtil.setStorageItem('providers', 'ALL');
});
it('[C279932] Should successRoute property change the landing page when the user Login', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.enableSuccessRouteSwitch();
await loginPage.enterSuccessRoute('activiti');
await loginPage.login(adminUserModel.id, adminUserModel.password);
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await processServicesPage.checkApsContainer();
});
it('[C279931] Should the user be redirect to the login page when the Process Service session expire', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.login(adminUserModel.id, adminUserModel.password);
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await browser.executeScript('window.localStorage.removeItem("ADF_ticket-BPM");');
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/activiti');
await loginPage.waitForElements();
@@ -234,11 +230,9 @@ describe('Login component', () => {
it('[C279930] Should a user still be logged-in when open a new tab', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.login(adminUserModel.id, adminUserModel.password);
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await Util.openNewTabInBrowser();
await browser.executeScript("window.open('about: blank', '_blank');");
const handles = await browser.getAllWindowHandles();
await browser.switchTo().window(handles[1]);
@@ -250,16 +244,13 @@ describe('Login component', () => {
it('[C279933] Should be possible change the login component logo when logoImageUrl is changed', async () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.enableLogoSwitch();
await loginPage.enterLogo('https://rawgit.com/Alfresco/alfresco-ng2-components/master/assets/angular2.png');
await loginPage.checkLoginImgURL();
});
it('[C291854] Should be possible login in valid credentials', async () => {
await BrowserActions.getUrl(browser.params.testConfig.adf.url);
await loginPage.waitForElements();
await loginPage.goToLoginPage();
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
await loginPage.enterUsername(invalidUsername);
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(false);
@@ -267,6 +258,6 @@ describe('Login component', () => {
await expect(await loginPage.getSignInButtonIsEnabled()).toBe(true);
await loginPage.clickSignInButton();
await expect(await loginPage.getLoginError()).toEqual(errorMessages.invalid_credentials);
await loginPage.login(adminUserModel.id, adminUserModel.password);
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
});
});

View File

@@ -15,9 +15,10 @@
* limitations under the License.
*/
import { LoginSSOPage, SettingsPage, LoginPage, BrowserVisibility } from '@alfresco/adf-testing';
import { LoginSSOPage, SettingsPage, BrowserVisibility } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { NavigationBarPage } from '../../../pages/adf/navigation-bar.page';
import { LoginPage } from '../../../pages/adf/demo-shell/login.page';
describe('Login component - SSO', () => {
@@ -26,11 +27,7 @@ describe('Login component - SSO', () => {
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage();
const silentLogin = false;
let implicitFlow;
describe('Login component - SSO implicit Flow', () => {
afterEach(async () => {
await navigationBarPage.clickLogoutButton();
await browser.executeScript('window.sessionStorage.clear();');
@@ -39,35 +36,33 @@ describe('Login component - SSO', () => {
});
it('[C261050] Should be possible login with SSO', async () => {
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host,
browser.params.testConfig.adf.hostSso,
browser.params.testConfig.adf.hostIdentity, false, true, 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(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
});
it('[C280667] Should be redirect directly to keycloak without show the login page with silent login', async () => {
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf_acs.host,
browser.params.testConfig.adf.hostSso,
browser.params.testConfig.adf.hostIdentity, true, true, browser.params.config.oauth2.clientId);
await settingsPage.setProviderEcmSso(browser.params.testConfig.appConfig.ecmHost,
browser.params.testConfig.appConfig.oauth2.host,
browser.params.testConfig.appConfig.identityHost, true, true, browser.params.testConfig.appConfig.oauth2.clientId);
await browser.refresh();
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
});
});
describe('Login component - SSO Grant type password (implicit flow false)', () => {
it('[C299158] Should be possible to login with SSO, with grant type password (Implicit Flow false)', async () => {
implicitFlow = false;
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, false, browser.params.testConfig.appConfig.oauth2.clientId);
await loginPage.waitForElements();
await loginPage.enterUsername(browser.params.testConfig.adf.adminEmail);
await loginPage.enterPassword(browser.params.testConfig.adf.adminPassword);
await loginPage.enterUsername(browser.params.testConfig.admin.email);
await loginPage.enterPassword(browser.params.testConfig.admin.password);
await loginPage.clickSignInButton();
await BrowserVisibility.waitUntilElementIsVisible(loginPage.sidenavLayout);

View File

@@ -27,10 +27,10 @@ describe('Logout component - SSO', () => {
it('[C280665] Should be possible change the logout redirect URL', async () => {
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url,
browser.params.testConfig.adf.hostSso,
browser.params.testConfig.adf.hostIdentity, false, true, browser.params.config.oauth2.clientId, '/login');
browser.params.testConfig.appConfig.oauth2.host,
browser.params.testConfig.appConfig.identityHost, false, true, browser.params.testConfig.appConfig.oauth2.clientId, '/login');
await loginSSOPage.clickOnSSOButton();
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await loginSSOPage.loginSSOIdentityService(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await navigationBarPage.clickLogoutButton();
await browser.sleep(2000);

View File

@@ -17,13 +17,13 @@
import { browser } from 'protractor';
import { LoginPage, SettingsPage, UploadActions, StringUtil } from '@alfresco/adf-testing';
import { SettingsPage, UploadActions, StringUtil, ApiService, LocalStorageUtil } from '@alfresco/adf-testing';
import { ContentServicesPage } from '../../pages/adf/content-services.page';
import { ProcessServicesPage } from '../../pages/adf/process-services/process-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 { LogoutPage } from '../../pages/adf/demo-shell/logout.page';
import { LoginPage } from '../../pages/adf/demo-shell/login.page';
import { UsersActions } from '../../actions/users.actions';
describe('Login component - Redirect', () => {
@@ -32,39 +32,31 @@ describe('Login component - Redirect', () => {
const navigationBarPage = new NavigationBarPage();
const contentServicesPage = new ContentServicesPage();
const loginPage = new LoginPage();
const user = new AcsUserModel();
const userFolderOwner = new AcsUserModel();
const adminUserModel = new AcsUserModel({
'id': browser.params.testConfig.adf.adminUser,
'password': browser.params.testConfig.adf.adminPassword
});
let uploadedFolder;
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host,
hostBpm: browser.params.testConfig.adf_aps.host
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
const logoutPage = new LogoutPage();
let user;
let uploadedFolder;
const apiService = new ApiService();
const uploadActions = new UploadActions(apiService);
const usersActions = new UsersActions(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 this.alfrescoJsApi.core.peopleApi.addPerson(user);
await this.alfrescoJsApi.core.peopleApi.addPerson(userFolderOwner);
await this.alfrescoJsApi.login(user.id, user.password);
user = await usersActions.createUser();
await apiService.getInstance().login(user.email, user.password);
uploadedFolder = await uploadActions.createFolder('protecteFolder' + StringUtil.generateRandomString(), '-my-');
});
});
it('[C213838] Should after login in CS be redirect to Login page when try to access to PS', async () => {
await LocalStorageUtil.setStorageItem('providers', 'ECM');
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcm();
await loginPage.login(user.id, user.password);
await loginPage.login(user.email, user.password);
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
@@ -75,6 +67,8 @@ describe('Login component - Redirect', () => {
});
it('[C260085] Should after login in PS be redirect to Login page when try to access to CS', async () => {
await LocalStorageUtil.setStorageItem('providers', 'BPM');
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderBpm();
@@ -82,7 +76,7 @@ describe('Login component - Redirect', () => {
await loginPage.enableSuccessRouteSwitch();
await loginPage.enterSuccessRoute('activiti');
await loginPage.login(adminUserModel.id, adminUserModel.password);
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
@@ -93,12 +87,14 @@ describe('Login component - Redirect', () => {
});
it('[C260081] Should after login in BOTH not be redirect to Login page when try to access to CS or PS', async () => {
await LocalStorageUtil.setStorageItem('providers', 'ALL');
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcmBpm();
await loginPage.login(adminUserModel.id, adminUserModel.password);
await loginPage.login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
@@ -111,7 +107,7 @@ describe('Login component - Redirect', () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcm();
await loginPage.login(user.id, user.password);
await loginPage.login(user.email, user.password);
await navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
@@ -128,7 +124,7 @@ describe('Login component - Redirect', () => {
await loginPage.waitForElements();
await loginPage.login(user.id, user.password);
await loginPage.login(user.email, user.password);
actualUrl = await browser.getCurrentUrl();
await expect(actualUrl).toEqual(browser.params.testConfig.adf.url + '/files/' + uploadedFolder.entry.id);
@@ -138,7 +134,7 @@ describe('Login component - Redirect', () => {
await loginPage.goToLoginPage();
await loginPage.clickSettingsIcon();
await settingsPage.setProviderEcm();
await loginPage.login(user.id, user.password);
await loginPage.login(user.email, user.password);
await navigationBarPage.openContentServicesFolder(uploadedFolder.entry.id);
@@ -156,7 +152,7 @@ describe('Login component - Redirect', () => {
await browser.refresh();
await loginPage.waitForElements();
await loginPage.enterUsername(user.id);
await loginPage.enterUsername(user.email);
await loginPage.enterPassword(user.password);
await loginPage.clickSignInButton();

View File

@@ -15,7 +15,8 @@
* limitations under the License.
*/
import { LoginPage, SettingsPage } from '@alfresco/adf-testing';
import { SettingsPage } from '@alfresco/adf-testing';
import { LoginPage } from '../../pages/adf/demo-shell/login.page';
describe('Login component - Remember Me', () => {

View File

@@ -0,0 +1,118 @@
/*!
* @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 { ApiService, LoginSSOPage, UserModel } from '@alfresco/adf-testing';
import { NotificationDemoPage } from '../pages/adf/demo-shell/notification.page';
import { browser } from 'protractor';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { UsersActions } from '../actions/users.actions';
describe('Notifications Component', () => {
const loginPage = new LoginSSOPage();
const notificationPage = new NotificationDemoPage();
const navigationBarPage = new NavigationBarPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
let acsUser: UserModel;
beforeAll(async () => {
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 notificationPage.goToNotificationsPage();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
beforeEach(async () => {
await notificationPage.enterDurationField(3000);
});
afterEach(async () => {
await notificationPage.waitForSnackBarToClose();
await browser.executeScript(`document.querySelector('button[data-automation-id="notification-custom-dismiss-button"]').click();`);
});
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('[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('[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('[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"}');
});
});

View File

@@ -15,23 +15,33 @@
* limitations under the License.
*/
import { LoginPage, PaginationPage, UploadActions, ViewerPage } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import {
ArrayUtil,
StringUtil,
LoginSSOPage,
PaginationPage,
UploadActions,
ViewerPage,
ApiService,
UserModel
} from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { AcsUserModel } from '../models/ACS/acs-user.model';
import { FileModel } from '../models/ACS/file.model';
import { FolderModel } from '../models/ACS/folder.model';
import { ContentServicesPage } from '../pages/adf/content-services.page';
import { Util } from '../util/util';
import { UsersActions } from '../actions/users.actions';
describe('Pagination - returns to previous page when current is empty', () => {
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const contentServicesPage = new ContentServicesPage();
const paginationPage = new PaginationPage();
const viewerPage = new ViewerPage();
const acsUser = new AcsUserModel();
const viewerPage = new ViewerPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const acsUser = new UserModel();
const folderModel = new FolderModel({ 'name': 'folderOne' });
const parentFolderModel = new FolderModel({ 'name': 'parentFolder' });
@@ -59,19 +69,15 @@ describe('Pagination - returns to previous page when current is empty', () => {
});
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
const 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);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
await usersActions.createUser(acsUser);
fileNames = Util.generateSequenceFiles(1, nrOfFiles, files.base, files.extension);
fileNames = StringUtil.generateFilesNames(1, nrOfFiles, files.base, files.extension);
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
const folderUploadedModel = await uploadActions.createFolder(folderModel.name, '-my-');
@@ -87,7 +93,7 @@ describe('Pagination - returns to previous page when current is empty', () => {
pngFileUploaded = await uploadActions.uploadFile(pngFileInfo.location, pngFileInfo.name, lastFolderResponse.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
await contentServicesPage.goToDocumentList();
});
@@ -102,7 +108,7 @@ describe('Pagination - returns to previous page when current is empty', () => {
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();
@@ -111,7 +117,7 @@ describe('Pagination - returns to previous page when current is empty', () => {
await expect(await paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
list = await contentServicesPage.getAllRowsNameColumn();
await expect(Util.arrayContainsArray(list, fileNames.slice(5, 6))).toEqual(true);
await expect(ArrayUtil.arrayContainsArray(list, fileNames.slice(5, 6))).toEqual(true);
await contentServicesPage.deleteContent(lastFile);
await contentServicesPage.checkContentIsNotDisplayed(lastFile);
@@ -120,7 +126,7 @@ describe('Pagination - returns to previous page when current is empty', () => {
await expect(await contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
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);
});
it('[C297494] Should display content when navigating to a non-empty folder not in the first page', async () => {

View File

@@ -15,12 +15,12 @@
* limitations under the License.
*/
import { BrowserActions, LoginPage, SettingsPage } from '@alfresco/adf-testing';
import { BrowserActions, SettingsPage } from '@alfresco/adf-testing';
import { browser, protractor } from 'protractor';
import { AcsUserModel } from '../models/ACS/acs-user.model';
import { ContentServicesPage } from '../pages/adf/content-services.page';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import { ProcessServicesPage } from '../pages/adf/process-services/process-services.page';
import { LoginPage } from '../pages/adf/demo-shell/login.page';
describe('Settings component', () => {
@@ -32,11 +32,6 @@ describe('Settings component', () => {
const loginError = 'Request has been terminated ' +
'Possible causes: the network is offline, Origin is not allowed by Access-Control-Allow-Origin, the page is being unloaded, etc.';
const adminUserModel = new AcsUserModel({
'id': browser.params.testConfig.adf.adminUser,
'password': browser.params.testConfig.adf.adminPassword
});
describe('Should be able to change Urls in the Settings', () => {
beforeEach(async () => {
await settingsPage.goToSettingsPage();
@@ -54,8 +49,8 @@ describe('Settings component', () => {
await loginPage.waitForElements();
await settingsPage.goToSettingsPage();
await expect(await settingsPage.getSelectedOptionText()).toEqual('ALL', 'The Settings changes are not saved');
await expect(await settingsPage.getBpmHostUrl()).toEqual(browser.params.testConfig.adf_aps.host, 'The BPM Settings changes are not saved');
await expect(await settingsPage.getEcmHostUrl()).toEqual(browser.params.testConfig.adf_acs.host, 'The ECM Settings changes are not saved');
await expect(await settingsPage.getBpmHostUrl()).toEqual(browser.params.testConfig.appConfig.bpmHost, 'The BPM Settings changes are not saved');
await expect(await settingsPage.getEcmHostUrl()).toEqual(browser.params.testConfig.appConfig.ecmHost, 'The ECM Settings changes are not saved');
});
it('[C291949] Should have field validation for Content Services Url', async () => {
@@ -79,8 +74,8 @@ describe('Settings component', () => {
await settingsPage.setContentServicesURL('http://localhost:7070');
await settingsPage.clickApply();
await loginPage.waitForElements();
await loginPage.enterUsername(adminUserModel.id);
await loginPage.enterPassword(adminUserModel.password);
await loginPage.enterUsername(browser.params.testConfig.admin.email);
await loginPage.enterPassword(browser.params.testConfig.admin.password);
await loginPage.clickSignInButton();
await expect(await loginPage.getLoginError()).toMatch(loginError);
});
@@ -90,8 +85,8 @@ describe('Settings component', () => {
await settingsPage.setProcessServicesURL('http://localhost:7070');
await settingsPage.clickApply();
await loginPage.waitForElements();
await loginPage.enterUsername(adminUserModel.id);
await loginPage.enterPassword(adminUserModel.password);
await loginPage.enterUsername(browser.params.testConfig.admin.email);
await loginPage.enterPassword(browser.params.testConfig.admin.password);
await loginPage.clickSignInButton();
await expect(await loginPage.getLoginError()).toMatch(loginError);
});
@@ -101,8 +96,8 @@ describe('Settings component', () => {
beforeAll(async () => {
await settingsPage.goToSettingsPage();
await settingsPage.setProvider('ALL');
await settingsPage.setContentServicesURL(browser.params.testConfig.adf_acs.host);
await settingsPage.setProcessServicesURL(browser.params.testConfig.adf_aps.host);
await settingsPage.setContentServicesURL(browser.params.testConfig.appConfig.ecmHost);
await settingsPage.setProcessServicesURL(browser.params.testConfig.appConfig.bpmHost);
await settingsPage.clickApply();
});
@@ -116,8 +111,8 @@ describe('Settings component', () => {
await settingsPage.checkProviderOptions();
await settingsPage.checkBasicAuthRadioIsSelected();
await settingsPage.checkSsoRadioIsNotSelected();
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host);
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host);
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.appConfig.ecmHost);
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.appConfig.bpmHost);
await expect(await settingsPage.getBackButton().isEnabled()).toBe(true);
await expect(await settingsPage.getApplyButton().isEnabled()).toBe(true);
@@ -131,8 +126,8 @@ describe('Settings component', () => {
await settingsPage.checkProviderDropdownIsDisplayed();
await settingsPage.setProviderBpm();
await loginPage.waitForElements();
await loginPage.enterUsername(adminUserModel.id);
await loginPage.enterPassword(adminUserModel.password);
await loginPage.enterUsername(browser.params.testConfig.admin.email);
await loginPage.enterPassword(browser.params.testConfig.admin.password);
await loginPage.clickSignInButton();
await navigationBarPage.navigateToProcessServicesPage();
await processServicesPage.checkApsContainer();
@@ -142,7 +137,7 @@ describe('Settings component', () => {
await settingsPage.checkBasicAuthRadioIsSelected();
await settingsPage.checkSsoRadioIsNotSelected();
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host);
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.appConfig.bpmHost);
await expect(await settingsPage.getBackButton().isEnabled()).toBe(true);
await expect(await settingsPage.getApplyButton().isEnabled()).toBe(true);
@@ -161,8 +156,8 @@ describe('Settings component', () => {
await settingsPage.checkProviderDropdownIsDisplayed();
await settingsPage.setProviderEcm();
await loginPage.waitForElements();
await loginPage.enterUsername(adminUserModel.id);
await loginPage.enterPassword(adminUserModel.password);
await loginPage.enterUsername(browser.params.testConfig.admin.email);
await loginPage.enterPassword(browser.params.testConfig.admin.password);
await loginPage.clickSignInButton();
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
@@ -171,7 +166,7 @@ describe('Settings component', () => {
await settingsPage.checkBasicAuthRadioIsSelected();
await settingsPage.checkSsoRadioIsNotSelected();
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host);
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.appConfig.ecmHost);
await expect(await settingsPage.getBackButton().isEnabled()).toBe(true);
await expect(await settingsPage.getApplyButton().isEnabled()).toBe(true);
await settingsPage.clickBackButton();
@@ -188,8 +183,8 @@ describe('Settings component', () => {
await settingsPage.checkProviderDropdownIsDisplayed();
await settingsPage.setProviderEcmBpm();
await loginPage.waitForElements();
await loginPage.enterUsername(adminUserModel.id);
await loginPage.enterPassword(adminUserModel.password);
await loginPage.enterUsername(browser.params.testConfig.admin.email);
await loginPage.enterPassword(browser.params.testConfig.admin.password);
await loginPage.clickSignInButton();
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.checkAcsContainer();
@@ -200,8 +195,8 @@ describe('Settings component', () => {
await expect(await settingsPage.getSelectedOptionText()).toBe('ALL');
await settingsPage.checkBasicAuthRadioIsSelected();
await settingsPage.checkSsoRadioIsNotSelected();
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.adf_acs.host);
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.adf_aps.host);
await expect(await settingsPage.getEcmHostUrl()).toBe(browser.params.testConfig.appConfig.ecmHost);
await expect(await settingsPage.getBpmHostUrl()).toBe(browser.params.testConfig.appConfig.bpmHost);
await expect(await settingsPage.getBackButton().isEnabled()).toBe(true);
await expect(await settingsPage.getApplyButton().isEnabled()).toBe(true);

View File

@@ -15,38 +15,38 @@
* limitations under the License.
*/
import { ApiService, IdentityService, LoginSSOPage, SettingsPage, UserInfoPage } from '@alfresco/adf-testing';
import {
ApiService,
LoginSSOPage,
SettingsPage,
UserInfoPage
} from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { UsersActions } from '../actions/users.actions';
describe('User Info - SSO', () => {
const settingsPage = new SettingsPage();
const loginSSOPage = new LoginSSOPage();
const userInfoPage = new UserInfoPage();
let silentLogin, identityUser;
let identityService: IdentityService;
const apiService = new ApiService({ authType: 'OAUTH', provider: 'ECM' });
const usersActions = new UsersActions(apiService);
let identityUser;
beforeAll(async () => {
const apiService = new ApiService(browser.params.config.oauth2.clientId, browser.params.testConfig.adf.url, 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);
identityUser = await identityService.createIdentityUser();
identityUser = await usersActions.createUser();
silentLogin = false;
await settingsPage.setProviderEcmSso(browser.params.testConfig.adf.url,
browser.params.testConfig.adf.hostSso,
browser.params.testConfig.adf.hostIdentity, silentLogin, true, browser.params.config.oauth2.clientId);
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(identityUser.email, identityUser.password);
});
afterAll(async () => {
if (identityService) {
await identityService.deleteIdentityUser(identityUser.idIdentityService);
}
});
it('[C290066] Should display UserInfo when login using SSO', async () => {

View File

@@ -15,22 +15,27 @@
* limitations under the License.
*/
import { LoginPage, UserInfoPage } from '@alfresco/adf-testing';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { PeopleApi } from '@alfresco/js-api';
import { ApiService, LocalStorageUtil, LoginSSOPage, UserInfoPage } from '@alfresco/adf-testing';
import { browser } from 'protractor';
import { UsersActions } from '../actions/users.actions';
import { AcsUserModel } from '../models/ACS/acs-user.model';
import { FileModel } from '../models/ACS/file.model';
import { NavigationBarPage } from '../pages/adf/navigation-bar.page';
import PeopleAPI = require('../restAPI/ACS/PeopleAPI');
import path = require('path');
import fs = require('fs');
describe('User Info component', () => {
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const userInfoPage = new UserInfoPage();
let processUserModel, contentUserModel;
const navigationBarPage = new NavigationBarPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const peopleApi: PeopleApi = new PeopleApi(apiService.getInstance());
let user;
const acsAvatarFileModel = new FileModel({
'name': browser.params.resources.Files.PROFILE_IMAGES.ECM.file_name,
'location': browser.params.resources.Files.PROFILE_IMAGES.ECM.file_location
@@ -41,43 +46,25 @@ describe('User Info component', () => {
});
beforeAll(async () => {
const users = new UsersActions();
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ALL',
hostEcm: browser.params.testConfig.adf_acs.host,
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
processUserModel = await users.createTenantAndUser(this.alfrescoJsApi);
contentUserModel = new AcsUserModel({
'id': processUserModel.email,
'password': processUserModel.password,
'firstName': processUserModel.firstName,
'lastName': processUserModel.lastName,
'email': processUserModel.email
});
await this.alfrescoJsApi.core.peopleApi.addPerson(contentUserModel);
});
user = await usersActions.createUser();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
it('[C260111] Should display UserInfo when Process Services and Content Services are enabled', async () => {
await loginPage.loginToAllUsingUserModel(contentUserModel);
await loginPage.login(user.email, user.password);
await userInfoPage.clickUserProfile();
await userInfoPage.dialogIsDisplayed();
await userInfoPage.checkContentServicesTabIsSelected();
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
await expect(await userInfoPage.getContentTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
await expect(await userInfoPage.getContentEmail()).toEqual(contentUserModel.email);
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(user.firstName + ' ' + user.lastName);
await expect(await userInfoPage.getContentTitle()).toEqual(user.firstName + ' ' + user.lastName);
await expect(await userInfoPage.getContentEmail()).toEqual(user.email);
await expect(await userInfoPage.getContentJobTitle()).toEqual('N/A');
await userInfoPage.checkInitialImage();
@@ -89,22 +76,22 @@ describe('User Info component', () => {
await browser.sleep(1000);
await expect(await userInfoPage.getProcessHeaderTitle()).toEqual(processUserModel.firstName + ' ' + processUserModel.lastName);
await expect(await userInfoPage.getProcessTitle()).toEqual(processUserModel.firstName + ' ' + processUserModel.lastName);
await expect(await userInfoPage.getProcessEmail()).toEqual(processUserModel.email);
await expect(await userInfoPage.getProcessHeaderTitle()).toEqual(user.firstName + ' ' + user.lastName);
await expect(await userInfoPage.getProcessTitle()).toEqual(user.firstName + ' ' + user.lastName);
await expect(await userInfoPage.getProcessEmail()).toEqual(user.email);
await userInfoPage.closeUserProfile();
});
it('[C260113] Should display UserInfo when Content Services is enabled and Process Services is disabled', async () => {
await loginPage.loginToContentServicesUsingUserModel(contentUserModel);
await loginPage.login(user.email, user.password);
await userInfoPage.clickUserProfile();
await userInfoPage.dialogIsDisplayed();
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
await expect(await userInfoPage.getContentTitle()).toEqual(contentUserModel.firstName + ' ' + contentUserModel.lastName);
await expect(await userInfoPage.getContentEmail()).toEqual(contentUserModel.email);
await expect(await userInfoPage.getContentHeaderTitle()).toEqual(user.firstName + ' ' + user.lastName);
await expect(await userInfoPage.getContentTitle()).toEqual(user.firstName + ' ' + user.lastName);
await expect(await userInfoPage.getContentEmail()).toEqual(user.email);
await expect(await userInfoPage.getContentJobTitle()).toEqual('N/A');
await userInfoPage.checkInitialImage();
@@ -115,15 +102,17 @@ describe('User Info component', () => {
});
it('[C260115] Should display UserInfo when Process Services is enabled and Content Services is disabled', async () => {
await loginPage.loginToProcessServicesUsingUserModel(contentUserModel);
await LocalStorageUtil.setStorageItem('providers', 'BPM');
await loginPage.login(user.email, user.password);
await userInfoPage.clickUserProfile();
await userInfoPage.dialogIsDisplayed();
await expect(await userInfoPage.getProcessHeaderTitle()).toEqual(processUserModel.firstName + ' ' + processUserModel.lastName);
await expect(await userInfoPage.getProcessTitle()).toEqual(processUserModel.firstName + ' ' + processUserModel.lastName);
await expect(await userInfoPage.getProcessEmail()).toEqual(processUserModel.email);
await expect(await userInfoPage.getProcessHeaderTitle()).toEqual(user.firstName + ' ' + user.lastName);
await expect(await userInfoPage.getProcessTitle()).toEqual(user.firstName + ' ' + user.lastName);
await expect(await userInfoPage.getProcessEmail()).toEqual(user.email);
await userInfoPage.checkInitialImage();
await userInfoPage.APSProfileImageNotDisplayed();
@@ -132,11 +121,11 @@ describe('User Info component', () => {
});
it('[C260117] Should display UserInfo with profile image uploaded in ACS', async () => {
await PeopleAPI.updateAvatarViaAPI(contentUserModel, acsAvatarFileModel, '-me-');
await PeopleAPI.getAvatarViaAPI(4, contentUserModel, '-me-', async() => {
});
await LocalStorageUtil.setStorageItem('providers', 'ECM');
await loginPage.loginToContentServicesUsingUserModel(contentUserModel);
await updateAvatarACS();
await loginPage.login(user.email, user.password);
await userInfoPage.clickUserProfile();
@@ -146,11 +135,13 @@ describe('User Info component', () => {
});
it('[C260118] Should display UserInfo with profile image uploaded in APS', async () => {
const users = new UsersActions();
await this.alfrescoJsApi.login(contentUserModel.email, contentUserModel.password);
await users.changeProfilePictureAps(this.alfrescoJsApi, apsAvatarFileModel.getLocation());
await LocalStorageUtil.setStorageItem('providers', 'BPM');
await loginPage.loginToProcessServicesUsingUserModel(contentUserModel);
const users = new UsersActions(apiService);
await apiService.getInstance().login(user.email, user.password);
await users.changeProfilePictureAps(apsAvatarFileModel.getLocation());
await loginPage.login(user.email, user.password);
await userInfoPage.clickUserProfile();
@@ -161,15 +152,23 @@ describe('User Info component', () => {
});
it('[C260120] Should not display profile image in UserInfo when deleted in ACS', async () => {
await PeopleAPI.deleteAvatarViaAPI(contentUserModel, '-me-');
await LocalStorageUtil.setStorageItem('providers', 'ECM');
await loginPage.loginToContentServicesUsingUserModel(contentUserModel);
await peopleApi.deleteAvatarImage(user.email);
await loginPage.login(user.email, user.password);
await userInfoPage.clickUserProfile();
await userInfoPage.checkInitialImage();
await userInfoPage.APSProfileImageNotDisplayed();
await userInfoPage.ACSProfileImageNotDisplayed();
await userInfoPage.closeUserProfile();
});
const updateAvatarACS = async function () {
await apiService.getInstance().login(user.email, user.password);
const absolutePath = path.resolve(path.join(browser.params.testConfig.main.rootPath, acsAvatarFileModel.getLocation()));
const file: any = fs.readFileSync(absolutePath);
await peopleApi.updateAvatarImage('-me-', file);
};
});

View File

@@ -16,28 +16,26 @@
*/
import { browser } from 'protractor';
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 CONSTANTS = require('../../../util/constants');
import { FolderModel } from '../../../models/ACS/folder.model';
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { NavigationBarPage } from '../../../pages/adf/navigation-bar.page';
import { UsersActions } from '../../../actions/users.actions';
describe('Viewer', () => {
const viewerPage = new ViewerPage();
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const contentServicesPage = new ContentServicesPage();
const navigationBarPage = new NavigationBarPage();
let site;
const acsUser = new AcsUserModel();
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
const acsUser = new UserModel();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const uploadActions = new UploadActions(apiService);
const archiveFolderInfo = new FolderModel({
'name': browser.params.resources.Files.ADF_DOCUMENTS.ARCHIVE_FOLDER.folder_name,
@@ -45,21 +43,21 @@ describe('Viewer', () => {
});
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
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);
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.MANAGER
});
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
});
afterAll(async () => {
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
await navigationBarPage.clickLogoutButton();
});
@@ -70,7 +68,7 @@ describe('Viewer', () => {
beforeAll(async () => {
archiveFolderUploaded = await uploadActions.createFolder(archiveFolderInfo.name, '-my-');
uploadedArchives = await uploadActions.uploadFolder(archiveFolderInfo.location, archiveFolderUploaded.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
await contentServicesPage.goToDocumentList();
});

View File

@@ -16,29 +16,27 @@
*/
import { browser } from 'protractor';
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 CONSTANTS = require('../../../util/constants');
import { FileModel } from '../../../models/ACS/file.model';
import { FolderModel } from '../../../models/ACS/folder.model';
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { NavigationBarPage } from '../../../pages/adf/navigation-bar.page';
import { UsersActions } from '../../../actions/users.actions';
describe('Viewer', () => {
const viewerPage = new ViewerPage();
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const contentServicesPage = new ContentServicesPage();
const navigationBarPage = new NavigationBarPage();
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 site;
const acsUser = new AcsUserModel();
const acsUser = new UserModel();
let pngFileUploaded;
const pngFileInfo = new FileModel({
@@ -52,31 +50,31 @@ describe('Viewer', () => {
});
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);
await usersActions.createUser(acsUser);
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.MANAGER
});
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
pngFileUploaded = await uploadActions.uploadFile(pngFileInfo.location, pngFileInfo.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 });
await navigationBarPage.clickLogoutButton();
});
it('[C272813] Should be redirected to site when opening and closing a file in a site', async () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
await navigationBarPage.goToSite(site);
await contentServicesPage.checkAcsContainer();
@@ -89,7 +87,6 @@ describe('Viewer', () => {
});
describe('Other Folder Uploaded', () => {
let uploadedOthers;
let otherFolderUploaded;
@@ -98,7 +95,7 @@ describe('Viewer', () => {
uploadedOthers = await uploadActions.uploadFolder(otherFolderInfo.location, otherFolderUploaded.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
await contentServicesPage.goToDocumentList();
});

View File

@@ -16,54 +16,51 @@
*/
import { browser } from 'protractor';
import { LoginPage, StringUtil, UploadActions, ViewerPage } from '@alfresco/adf-testing';
import { ApiService, LoginSSOPage, StringUtil, UploadActions, ViewerPage, UserModel } from '@alfresco/adf-testing';
import { ContentServicesPage } from '../../../pages/adf/content-services.page';
import CONSTANTS = require('../../../util/constants');
import { FolderModel } from '../../../models/ACS/folder.model';
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../../actions/users.actions';
describe('Viewer', () => {
const viewerPage = new ViewerPage();
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const contentServicesPage = new ContentServicesPage();
let site;
const acsUser = new AcsUserModel();
const acsUser = new UserModel();
const excelFolderInfo = new FolderModel({
'name': browser.params.resources.Files.ADF_DOCUMENTS.EXCEL_FOLDER.folder_name,
'location': browser.params.resources.Files.ADF_DOCUMENTS.EXCEL_FOLDER.folder_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 apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await usersActions.createUser(acsUser);
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.MANAGER
});
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
});
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('Excel Folder Uploaded', () => {
let uploadedExcels;
let excelFolderUploaded;
@@ -72,7 +69,7 @@ describe('Viewer', () => {
uploadedExcels = await uploadActions.uploadFolder(excelFolderInfo.location, excelFolderUploaded.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
await contentServicesPage.goToDocumentList();
});

View File

@@ -16,25 +16,24 @@
*/
import { browser } from 'protractor';
import { LoginPage, StringUtil, UploadActions, ViewerPage } from '@alfresco/adf-testing';
import { ApiService, LoginSSOPage, StringUtil, UploadActions, ViewerPage, UserModel } from '@alfresco/adf-testing';
import { ContentServicesPage } from '../../../pages/adf/content-services.page';
import CONSTANTS = require('../../../util/constants');
import { FolderModel } from '../../../models/ACS/folder.model';
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../../actions/users.actions';
describe('Viewer', () => {
const viewerPage = new ViewerPage();
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 uploadActions = new UploadActions(apiService);
const usersActions = new UsersActions(apiService);
let site;
const acsUser = new AcsUserModel();
const acsUser = new UserModel();
const imgFolderInfo = new FolderModel({
'name': browser.params.resources.Files.ADF_DOCUMENTS.IMG_FOLDER.folder_name,
@@ -47,28 +46,27 @@ describe('Viewer', () => {
});
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);
await usersActions.createUser(acsUser);
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.MANAGER
});
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
});
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('Image Folder Uploaded', () => {
let uploadedImages, uploadedImgRenditionFolderInfo;
let imgFolderUploaded, imgFolderRenditionUploaded;
@@ -81,7 +79,7 @@ describe('Viewer', () => {
uploadedImgRenditionFolderInfo = await uploadActions.uploadFolder(imgRenditionFolderInfo.location, imgFolderRenditionUploaded.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
await contentServicesPage.goToDocumentList();
});

View File

@@ -15,56 +15,54 @@
* 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 CONSTANTS = require('../../../util/constants');
import { FolderModel } from '../../../models/ACS/folder.model';
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { browser } from 'protractor';
import { UsersActions } from '../../../actions/users.actions';
describe('Viewer', () => {
const viewerPage = new ViewerPage();
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);
let site;
const acsUser = new AcsUserModel();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const uploadActions = new UploadActions(apiService);
const acsUser = new UserModel();
const pptFolderInfo = new FolderModel({
'name': browser.params.resources.Files.ADF_DOCUMENTS.PPT_FOLDER.folder_name,
'location': browser.params.resources.Files.ADF_DOCUMENTS.PPT_FOLDER.folder_path
});
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
let site;
site = await this.alfrescoJsApi.core.sitesApi.createSite({
beforeAll(async () => {
await apiService.getInstance().login(browser.params.testConfig.admin.email, browser.params.testConfig.admin.password);
await usersActions.createUser(acsUser);
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.MANAGER
});
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
});
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('PowerPoint Folder Uploaded', () => {
let uploadedPpt;
let pptFolderUploaded;
@@ -73,7 +71,7 @@ describe('Viewer', () => {
uploadedPpt = await uploadActions.uploadFolder(pptFolderInfo.location, pptFolderUploaded.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
await contentServicesPage.goToDocumentList();
});

View File

@@ -16,25 +16,23 @@
*/
import { browser } from 'protractor';
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 CONSTANTS = require('../../../util/constants');
import { FolderModel } from '../../../models/ACS/folder.model';
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../../actions/users.actions';
describe('Viewer', () => {
const viewerPage = new ViewerPage();
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 site;
const acsUser = new AcsUserModel();
const acsUser = new UserModel();
const textFolderInfo = new FolderModel({
'name': browser.params.resources.Files.ADF_DOCUMENTS.TEXT_FOLDER.folder_name,
@@ -42,28 +40,27 @@ describe('Viewer', () => {
});
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);
await usersActions.createUser(acsUser);
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.MANAGER
});
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
});
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('Text Folder Uploaded', () => {
let uploadedTexts;
let textFolderUploaded;
@@ -72,7 +69,7 @@ describe('Viewer', () => {
uploadedTexts = await uploadActions.uploadFolder(textFolderInfo.location, textFolderUploaded.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
await contentServicesPage.goToDocumentList();
});

View File

@@ -16,28 +16,25 @@
*/
import { browser } from 'protractor';
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 CONSTANTS = require('../../../util/constants');
import { FolderModel } from '../../../models/ACS/folder.model';
import { AcsUserModel } from '../../../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { NavigationBarPage } from '../../../pages/adf/navigation-bar.page';
import { UsersActions } from '../../../actions/users.actions';
describe('Viewer', () => {
const viewerPage = new ViewerPage();
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const contentServicesPage = new ContentServicesPage();
const navigationBarPage = new NavigationBarPage();
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 site;
const acsUser = new AcsUserModel();
const acsUser = new UserModel();
const wordFolderInfo = new FolderModel({
'name': browser.params.resources.Files.ADF_DOCUMENTS.WORD_FOLDER.folder_name,
@@ -45,29 +42,28 @@ describe('Viewer', () => {
});
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);
await usersActions.createUser(acsUser);
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.MANAGER
});
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
});
afterAll(async () => {
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
await navigationBarPage.clickLogoutButton();
});
describe('Word Folder Uploaded', () => {
let uploadedWords;
let wordFolderUploaded;
@@ -76,7 +72,7 @@ describe('Viewer', () => {
uploadedWords = await uploadActions.uploadFolder(wordFolderInfo.location, wordFolderUploaded.entry.id);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
await contentServicesPage.goToDocumentList();
});

View File

@@ -16,27 +16,25 @@
*/
import { browser } from 'protractor';
import { LoginPage, UploadActions, StringUtil, ViewerPage } from '@alfresco/adf-testing';
import { LoginSSOPage, UploadActions, StringUtil, ViewerPage, ApiService, UserModel } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
import { ContentServicesPage } from '../../pages/adf/content-services.page';
import CONSTANTS = require('../../util/constants');
import { FileModel } from '../../models/ACS/file.model';
import { AcsUserModel } from '../../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
describe('Info Drawer', () => {
const viewerPage = new ViewerPage();
const navigationBarPage = new NavigationBarPage();
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 site;
const acsUser = new AcsUserModel();
const acsUser = new UserModel();
let pngFileUploaded;
const pngFileInfo = new FileModel({
@@ -45,32 +43,32 @@ describe('Info Drawer', () => {
});
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);
await usersActions.createUser(acsUser);
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.MANAGER
});
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
pngFileUploaded = await uploadActions.uploadFile(pngFileInfo.location, pngFileInfo.name, site.entry.guid);
});
afterAll(async () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
await uploadActions.deleteFileOrFolder(pngFileUploaded.entry.id);
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
});
beforeEach(async() => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
await navigationBarPage.goToSite(site);
await contentServicesPage.checkAcsContainer();

View File

@@ -16,18 +16,17 @@
*/
import { browser } from 'protractor';
import { LoginPage, UploadActions, ViewerPage } from '@alfresco/adf-testing';
import { ApiService, LoginSSOPage, UploadActions, ViewerPage, UserModel } from '@alfresco/adf-testing';
import { ContentServicesPage } from '../../pages/adf/content-services.page';
import { FileModel } from '../../models/ACS/file.model';
import { AcsUserModel } from '../../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
import { UsersActions } from '../../actions/users.actions';
describe('Content Services Viewer', () => {
const acsUser = new AcsUserModel();
const acsUser = new UserModel();
const viewerPage = new ViewerPage();
const contentServicesPage = new ContentServicesPage();
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
let zoom;
@@ -68,18 +67,17 @@ describe('Content Services Viewer', () => {
'name': browser.params.resources.Files.ADF_DOCUMENTS.PPT.file_name,
'firstPageText': browser.params.resources.Files.ADF_DOCUMENTS.PPT.first_page_text
});
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 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);
await usersActions.createUser(acsUser);
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
const pdfFileUploaded = await uploadActions.uploadFile(pdfFile.location, pdfFile.name, '-my-');
Object.assign(pdfFile, pdfFileUploaded.entry);
@@ -102,7 +100,7 @@ describe('Content Services Viewer', () => {
const unsupportedFileUploaded = await uploadActions.uploadFile(unsupportedFile.location, unsupportedFile.name, '-my-');
Object.assign(unsupportedFile, unsupportedFileUploaded.entry);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
await contentServicesPage.goToDocumentList();
});

View File

@@ -16,25 +16,24 @@
*/
import { browser } from 'protractor';
import { LoginPage, UploadActions, ViewerPage } from '@alfresco/adf-testing';
import { ApiService, LoginSSOPage, UploadActions, ViewerPage, UserModel } from '@alfresco/adf-testing';
import { ContentServicesPage } from '../../pages/adf/content-services.page';
import { FileModel } from '../../models/ACS/file.model';
import { AcsUserModel } from '../../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
import { UsersActions } from '../../actions/users.actions';
describe('Viewer', () => {
const navigationBarPage = new NavigationBarPage();
const viewerPage = new ViewerPage();
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 acsUser = new AcsUserModel();
const apiService = new ApiService();
const uploadActions = new UploadActions(apiService);
const usersActions = new UsersActions(apiService);
const acsUser = new UserModel();
let txtFileUploaded;
const txtFileInfo = new FileModel({
@@ -43,14 +42,14 @@ describe('Viewer', () => {
});
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);
await usersActions.createUser(acsUser);
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
txtFileUploaded = await uploadActions.uploadFile(txtFileInfo.location, txtFileInfo.name, '-my-');
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
});
afterAll(async () => {

View File

@@ -16,30 +16,29 @@
*/
import { browser } from 'protractor';
import { LoginPage, StringUtil, UploadActions, ViewerPage } from '@alfresco/adf-testing';
import { ApiService, LoginSSOPage, StringUtil, UploadActions, ViewerPage, UserModel } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
import { ContentServicesPage } from '../../pages/adf/content-services.page';
import { MonacoExtensionPage } from '../../pages/adf/demo-shell/monaco-extension.page';
import CONSTANTS = require('../../util/constants');
import { FileModel } from '../../models/ACS/file.model';
import { AcsUserModel } from '../../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
describe('Viewer', () => {
const viewerPage = new ViewerPage();
const navigationBarPage = new NavigationBarPage();
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);
let site;
const acsUser = new AcsUserModel();
const acsUser = new UserModel();
const monacoExtensionPage = new MonacoExtensionPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const uploadActions = new UploadActions(apiService);
let site;
let jsFileUploaded;
const jsFileInfo = new FileModel({
'name': browser.params.resources.Files.ADF_DOCUMENTS.JS.file_name,
@@ -47,35 +46,34 @@ describe('Viewer', () => {
});
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);
await usersActions.createUser(acsUser);
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.MANAGER
});
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
jsFileUploaded = await uploadActions.uploadFile(jsFileInfo.location, jsFileInfo.name, '-my-');
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
});
afterAll(async () => {
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
await apiService.getInstance().login(acsUser.email, acsUser.password);
await uploadActions.deleteFileOrFolder(jsFileUploaded.entry.id);
});
describe('Viewer extension', () => {
it('[C297698] Should be able to add an extension for code editor viewer', async () => {
await navigationBarPage.clickAboutButton();

View File

@@ -16,19 +16,18 @@
*/
import { browser } from 'protractor';
import { LoginPage, UploadActions, DataTableComponentPage, ViewerPage } from '@alfresco/adf-testing';
import { LoginSSOPage, UploadActions, DataTableComponentPage, ViewerPage, ApiService, UserModel } from '@alfresco/adf-testing';
import { ContentServicesPage } from '../../pages/adf/content-services.page';
import { NavigationBarPage } from '../../pages/adf/navigation-bar.page';
import { FileModel } from '../../models/ACS/file.model';
import { AcsUserModel } from '../../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { UsersActions } from '../../actions/users.actions';
describe('Viewer - properties', () => {
const acsUser = new AcsUserModel();
const acsUser = new UserModel();
const viewerPage = new ViewerPage();
const contentServicesPage = new ContentServicesPage();
const loginPage = new LoginPage();
const loginPage = new LoginSSOPage();
const navigationBarPage = new NavigationBarPage();
const dataTable = new DataTableComponentPage();
@@ -41,18 +40,16 @@ describe('Viewer - properties', () => {
'name': 'fileForOverlay.png',
'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 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);
await usersActions.createUser(acsUser);
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
let pngFileUploaded = await uploadActions.uploadFile(pngFile.location, pngFile.name, '-my-');
Object.assign(pngFile, pngFileUploaded.entry);
@@ -60,7 +57,7 @@ describe('Viewer - properties', () => {
pngFileUploaded = await uploadActions.uploadFile(fileForOverlay.location, fileForOverlay.name, '-my-');
Object.assign(fileForOverlay, pngFileUploaded.entry);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
await contentServicesPage.goToDocumentList();

View File

@@ -15,32 +15,31 @@
* limitations under the License.
*/
import { LoginPage, UploadActions, StringUtil, BrowserActions, ViewerPage } from '@alfresco/adf-testing';
import { LoginSSOPage, UploadActions, StringUtil, BrowserActions, ViewerPage, 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 CONSTANTS = require('../../util/constants');
import { FileModel } from '../../models/ACS/file.model';
import { AcsUserModel } from '../../models/ACS/acs-user.model';
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { browser } from 'protractor';
import { UsersActions } from '../../actions/users.actions';
describe('Viewer', () => {
const viewerPage = new ViewerPage();
const navigationBarPage = new NavigationBarPage();
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 shareDialog = new ShareDialogPage();
const apiService = new ApiService();
const usersActions = new UsersActions(apiService);
const uploadActions = new UploadActions(apiService);
let site;
const acsUser = new AcsUserModel();
const acsUser = new UserModel();
let pngFileUploaded;
const contentList = contentServicesPage.getDocumentList();
const shareDialog = new ShareDialogPage();
const pngFileInfo = new FileModel({
'name': browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name,
@@ -55,38 +54,38 @@ describe('Viewer', () => {
let pngFileShared, wordFileUploaded;
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);
await usersActions.createUser(acsUser);
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.MANAGER
});
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
pngFileUploaded = await uploadActions.uploadFile(pngFileInfo.location, pngFileInfo.name, site.entry.guid);
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().login(acsUser.email, acsUser.password);
wordFileUploaded = await uploadActions.uploadFile(wordFileInfo.location, wordFileInfo.name, '-my-');
pngFileShared = await this.alfrescoJsApi.core.sharedlinksApi.addSharedLink({ 'nodeId': pngFileUploaded.entry.id });
pngFileShared = await apiService.getInstance().core.sharedlinksApi.addSharedLink({ 'nodeId': pngFileUploaded.entry.id });
});
afterAll(async () => {
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id, { permanent: true });
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await apiService.getInstance().core.sitesApi.deleteSite(site.entry.id, { permanent: true });
await apiService.getInstance().login(acsUser.email, acsUser.password);
await uploadActions.deleteFileOrFolder(wordFileUploaded.entry.id);
});
beforeEach(async () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.login(acsUser.email, acsUser.password);
});
it('[C260105] Should be able to open an image file shared via API', async () => {