mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[ADF-3333] Test for Viewer - Part 3 (#3927)
* [ADF-3333] Test for Viewer - Part 3 * Fixing failing test * remove async not necessary * fix lint
This commit is contained in:
committed by
Eugenio Romano
parent
94905d1065
commit
cc7b9230ee
@@ -283,7 +283,7 @@
|
|||||||
[sidebarLeftTemplate]="sidebarLeftTemplate"
|
[sidebarLeftTemplate]="sidebarLeftTemplate"
|
||||||
[sidebarTemplate]="sidebarRightTemplate">
|
[sidebarTemplate]="sidebarRightTemplate">
|
||||||
|
|
||||||
<adf-viewer-toolbar *ngIf="customToolbar">
|
<adf-viewer-toolbar *ngIf="customToolbar" data-automation-id="adf-viewer-custom-toolbar">
|
||||||
<h1>My custom toolbar</h1>
|
<h1>My custom toolbar</h1>
|
||||||
</adf-viewer-toolbar>
|
</adf-viewer-toolbar>
|
||||||
|
|
||||||
|
@@ -446,9 +446,9 @@ describe('Document List Component', () => {
|
|||||||
afterAll(async (done) => {
|
afterAll(async (done) => {
|
||||||
Promise.all(folderCreated.map((folder) =>
|
Promise.all(folderCreated.map((folder) =>
|
||||||
uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, folder.entry.id)
|
uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, folder.entry.id)
|
||||||
)).then(
|
)).then(() => {
|
||||||
done()
|
done();
|
||||||
);
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C277093] Should sort files with Items per page set to default', async (done) => {
|
it('[C277093] Should sort files with Items per page set to default', async (done) => {
|
||||||
@@ -567,7 +567,7 @@ describe('Document List Component', () => {
|
|||||||
CREATED: 'Created'
|
CREATED: 'Created'
|
||||||
};
|
};
|
||||||
|
|
||||||
let funnyUser = {};
|
let funnyUser;
|
||||||
|
|
||||||
let pdfFile = new FileModel({
|
let pdfFile = new FileModel({
|
||||||
'name': resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
'name': resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
||||||
|
@@ -70,69 +70,83 @@ describe('Login component', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('[C276746] Should display the right information in user-info when a different users logs in', () => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(userA);
|
||||||
|
navigationBarPage.clickUserProfile();
|
||||||
|
expect(userInfoDialog.getContentHeaderTitle()).toEqual(userA.firstName + ' ' + userA.lastName);
|
||||||
|
expect(userInfoDialog.getContentEmail()).toEqual(userA.email);
|
||||||
|
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(userB);
|
||||||
|
navigationBarPage.clickUserProfile();
|
||||||
|
expect(userInfoDialog.getContentHeaderTitle()).toEqual(userB.firstName + ' ' + userB.lastName);
|
||||||
|
expect(userInfoDialog.getContentEmail()).toEqual(userB.email);
|
||||||
|
});
|
||||||
|
|
||||||
it('[C260036] Should require username', () => {
|
it('[C260036] Should require username', () => {
|
||||||
loginPage.goToLoginPage();
|
loginPage.goToLoginPage();
|
||||||
loginPage.checkUsernameInactive();
|
loginPage.checkUsernameInactive();
|
||||||
loginPage.checkSignInButtonIsDisabled();
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
loginPage.enterUsername('A');
|
loginPage.enterUsername('A');
|
||||||
loginPage.checkUsernameTooltip(errorMessages.username);
|
expect(loginPage.getUsernameTooltip()).toEqual(errorMessages.username);
|
||||||
loginPage.clearUsername();
|
loginPage.clearUsername();
|
||||||
loginPage.checkUsernameTooltip(errorMessages.required);
|
expect(loginPage.getUsernameTooltip()).toEqual(errorMessages.required);
|
||||||
loginPage.checkUsernameHighlighted();
|
loginPage.checkUsernameHighlighted();
|
||||||
loginPage.checkSignInButtonIsDisabled();
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260043] Should require password', () => {
|
it('[C260043] Should require password', () => {
|
||||||
loginPage.goToLoginPage();
|
loginPage.goToLoginPage();
|
||||||
loginPage.checkPasswordInactive();
|
loginPage.checkPasswordInactive();
|
||||||
loginPage.checkSignInButtonIsDisabled();
|
loginPage.checkUsernameInactive();
|
||||||
loginPage.enterPassword('A');
|
loginPage.enterPassword('A');
|
||||||
loginPage.checkPasswordTooltipIsNotVisible();
|
loginPage.checkPasswordTooltipIsNotVisible();
|
||||||
loginPage.clearPassword();
|
loginPage.clearPassword();
|
||||||
loginPage.checkPasswordTooltip(errorMessages.password);
|
expect(loginPage.getPasswordTooltip()).toEqual(errorMessages.password);
|
||||||
loginPage.checkPasswordHighlighted();
|
loginPage.checkPasswordHighlighted();
|
||||||
loginPage.checkSignInButtonIsDisabled();
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260044] Username should be at least 2 characters long', () => {
|
it('[C260044] Username should be at least 2 characters long', () => {
|
||||||
loginPage.goToLoginPage();
|
loginPage.goToLoginPage();
|
||||||
loginPage.checkSignInButtonIsDisabled();
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
loginPage.enterUsername('A');
|
loginPage.enterUsername('A');
|
||||||
loginPage.checkUsernameTooltip(errorMessages.username);
|
expect(loginPage.getUsernameTooltip()).toEqual(errorMessages.username);
|
||||||
loginPage.enterUsername('AB');
|
loginPage.enterUsername('AB');
|
||||||
loginPage.checkUsernameTooltipIsNotVisible();
|
loginPage.checkUsernameTooltipIsNotVisible();
|
||||||
loginPage.checkSignInButtonIsDisabled();
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
loginPage.clearUsername();
|
loginPage.clearUsername();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260045] Should enable login button after entering a valid username and a password', () => {
|
it('[C260045] Should enable login button after entering a valid username and a password', () => {
|
||||||
loginPage.goToLoginPage();
|
loginPage.goToLoginPage();
|
||||||
loginPage.enterUsername(adminUserModel.id);
|
loginPage.enterUsername(adminUserModel.id);
|
||||||
loginPage.checkSignInButtonIsDisabled();
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
loginPage.enterPassword('a');
|
loginPage.enterPassword('a');
|
||||||
loginPage.checkSignInButtonIsEnabled();
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(true);
|
||||||
loginPage.clearUsername(adminUserModel.id);
|
loginPage.clearUsername();
|
||||||
loginPage.clearPassword();
|
loginPage.clearPassword();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260046] Should NOT be possible to login with an invalid username/password', () => {
|
it('[C260046] Should NOT be possible to login with an invalid username/password', () => {
|
||||||
loginPage.goToLoginPage();
|
loginPage.goToLoginPage();
|
||||||
loginPage.checkSignInButtonIsDisabled();
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
loginPage.enterUsername('test');
|
loginPage.enterUsername('test');
|
||||||
loginPage.enterPassword('test');
|
loginPage.enterPassword('test');
|
||||||
loginPage.checkSignInButtonIsEnabled();
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(true);
|
||||||
loginPage.clickSignInButton();
|
loginPage.clickSignInButton();
|
||||||
loginPage.checkLoginError(errorMessages.invalid_credentials);
|
expect(loginPage.getLoginError()).toEqual(errorMessages.invalid_credentials);
|
||||||
loginPage.clearUsername();
|
loginPage.clearUsername();
|
||||||
loginPage.clearPassword();
|
loginPage.clearPassword();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260047] Password should be crypted', () => {
|
it('[C260047] Password should be crypted', () => {
|
||||||
loginPage.goToLoginPage();
|
loginPage.goToLoginPage();
|
||||||
loginPage.checkSignInButtonIsDisabled();
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
loginPage.enterPassword('test');
|
loginPage.enterPassword('test');
|
||||||
loginPage.showPassword();
|
loginPage.showPassword();
|
||||||
loginPage.checkPasswordIsShown('test');
|
loginPage.getShownPassword().then(async (tooltip) => {
|
||||||
|
await expect(tooltip).toEqual('test');
|
||||||
|
});
|
||||||
loginPage.hidePassword();
|
loginPage.hidePassword();
|
||||||
loginPage.checkPasswordIsHidden();
|
loginPage.checkPasswordIsHidden();
|
||||||
loginPage.clearPassword();
|
loginPage.clearPassword();
|
||||||
@@ -152,7 +166,7 @@ describe('Login component', () => {
|
|||||||
|
|
||||||
it('[C260049] Should be possible to login to Process Services with Content Services disabled', () => {
|
it('[C260049] Should be possible to login to Process Services with Content Services disabled', () => {
|
||||||
loginPage.goToLoginPage();
|
loginPage.goToLoginPage();
|
||||||
loginPage.checkSignInButtonIsDisabled();
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
settingsPage.setProviderBpm();
|
settingsPage.setProviderBpm();
|
||||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||||
navigationBarPage.navigateToProcessServicesPage();
|
navigationBarPage.navigateToProcessServicesPage();
|
||||||
@@ -163,7 +177,7 @@ describe('Login component', () => {
|
|||||||
|
|
||||||
it('[C260050] Should be possible to login to Content Services with Process Services disabled', () => {
|
it('[C260050] Should be possible to login to Content Services with Process Services disabled', () => {
|
||||||
loginPage.goToLoginPage();
|
loginPage.goToLoginPage();
|
||||||
loginPage.checkSignInButtonIsDisabled();
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
settingsPage.setProviderEcm();
|
settingsPage.setProviderEcm();
|
||||||
loginPage.login(TestConfig.adf.adminUser, TestConfig.adf.adminPassword);
|
loginPage.login(TestConfig.adf.adminUser, TestConfig.adf.adminPassword);
|
||||||
navigationBarPage.clickContentServicesButton();
|
navigationBarPage.clickContentServicesButton();
|
||||||
@@ -174,7 +188,7 @@ describe('Login component', () => {
|
|||||||
|
|
||||||
it('[C260051] Should be able to login to both Content Services and Process Services', () => {
|
it('[C260051] Should be able to login to both Content Services and Process Services', () => {
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
loginPage.checkSignInButtonIsDisabled();
|
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||||
navigationBarPage.navigateToProcessServicesPage();
|
navigationBarPage.navigateToProcessServicesPage();
|
||||||
@@ -188,8 +202,8 @@ describe('Login component', () => {
|
|||||||
it('[C277754] Should the user be redirect to the login page when the Content Service session expire', () => {
|
it('[C277754] Should the user be redirect to the login page when the Content Service session expire', () => {
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||||
browser.executeScript('window.localStorage.removeItem("ticket-ECM");').then(() => {
|
browser.executeScript('window.localStorage.removeItem("ticket-ECM");').then(async () => {
|
||||||
browser.get(TestConfig.adf.url + '/files');
|
await browser.get(TestConfig.adf.url + '/files');
|
||||||
loginPage.waitForElements();
|
loginPage.waitForElements();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -206,8 +220,8 @@ describe('Login component', () => {
|
|||||||
it('[C279931] Should the user be redirect to the login page when the Process Service session expire', () => {
|
it('[C279931] Should the user be redirect to the login page when the Process Service session expire', () => {
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||||
browser.executeScript('window.localStorage.removeItem("ticket-BPM");').then(() => {
|
browser.executeScript('window.localStorage.removeItem("ticket-BPM");').then(async () => {
|
||||||
browser.get(TestConfig.adf.url + '/activiti');
|
await browser.get(TestConfig.adf.url + '/activiti');
|
||||||
loginPage.waitForElements();
|
loginPage.waitForElements();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -230,18 +244,6 @@ describe('Login component', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C276746] Should display the right information in user-info when a different users logs in', () => {
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(userA);
|
|
||||||
navigationBarPage.clickUserProfile();
|
|
||||||
expect(userInfoDialog.getContentHeaderTitle()).toEqual(userA.firstName + ' ' + userA.lastName);
|
|
||||||
expect(userInfoDialog.getContentEmail()).toEqual(userA.email);
|
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(userB);
|
|
||||||
navigationBarPage.clickUserProfile();
|
|
||||||
expect(userInfoDialog.getContentHeaderTitle()).toEqual(userB.firstName + ' ' + userB.lastName);
|
|
||||||
expect(userInfoDialog.getContentEmail()).toEqual(userB.email);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C279933] Should be possible change the login component logo when logoImageUrl is changed', () => {
|
it('[C279933] Should be possible change the login component logo when logoImageUrl is changed', () => {
|
||||||
settingsPage.setProviderEcmBpm();
|
settingsPage.setProviderEcmBpm();
|
||||||
loginPage.enableLogoSwitch();
|
loginPage.enableLogoSwitch();
|
||||||
|
@@ -21,6 +21,8 @@ import { LoginPage } from '../../pages/adf/loginPage';
|
|||||||
import { ViewerPage } from '../../pages/adf/viewerPage';
|
import { ViewerPage } from '../../pages/adf/viewerPage';
|
||||||
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||||
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
|
import ContentListPage = require('../../pages/adf/dialog/contentList');
|
||||||
|
import { ShareDialog } from '../../pages/adf/dialog/shareDialog';
|
||||||
|
|
||||||
import resources = require('../../util/resources');
|
import resources = require('../../util/resources');
|
||||||
import Util = require('../../util/util');
|
import Util = require('../../util/util');
|
||||||
@@ -32,6 +34,7 @@ import AcsUserModel = require('../../models/ACS/acsUserModel');
|
|||||||
|
|
||||||
import AlfrescoApi = require('alfresco-js-api-node');
|
import AlfrescoApi = require('alfresco-js-api-node');
|
||||||
import { UploadActions } from '../../actions/ACS/upload.actions';
|
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||||
|
import { browser } from 'protractor';
|
||||||
|
|
||||||
describe('Viewer', () => {
|
describe('Viewer', () => {
|
||||||
|
|
||||||
@@ -43,6 +46,8 @@ describe('Viewer', () => {
|
|||||||
let site;
|
let site;
|
||||||
let acsUser = new AcsUserModel();
|
let acsUser = new AcsUserModel();
|
||||||
let pngFileUploaded;
|
let pngFileUploaded;
|
||||||
|
const contentList = new ContentListPage();
|
||||||
|
const shareDialog = new ShareDialog();
|
||||||
|
|
||||||
let pngFileInfo = new FileModel({
|
let pngFileInfo = new FileModel({
|
||||||
'name': resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
'name': resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||||
@@ -111,6 +116,19 @@ describe('Viewer', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('[C272813] Should be redirected to site when opening and closing a file in a site', () => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
|
navigationBarPage.goToSite(site);
|
||||||
|
contentServicesPage.checkAcsContainer();
|
||||||
|
|
||||||
|
viewerPage.viewFile(pngFileUploaded.entry.name);
|
||||||
|
|
||||||
|
viewerPage.checkImgViewerIsDisplayed();
|
||||||
|
|
||||||
|
viewerPage.clickCloseButton();
|
||||||
|
});
|
||||||
|
|
||||||
describe('Archive Folder Uploaded', () => {
|
describe('Archive Folder Uploaded', () => {
|
||||||
let uploadedArchives;
|
let uploadedArchives;
|
||||||
let archiveFolderUploaded;
|
let archiveFolderUploaded;
|
||||||
@@ -355,14 +373,64 @@ describe('Viewer', () => {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C272813] Should be redirected to site when opening and closing a file in a site', () => {
|
describe('Display files via API', () => {
|
||||||
navigationBarPage.goToSite(site);
|
|
||||||
viewerPage.checkDatatableHeaderIsDisplayed();
|
|
||||||
|
|
||||||
viewerPage.viewFile(pngFileUploaded.entry.name);
|
let wordFileInfo = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.DOCX_SUPPORTED.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.DOCX_SUPPORTED.file_location
|
||||||
|
});
|
||||||
|
|
||||||
viewerPage.checkImgViewerIsDisplayed();
|
let pngFileShared, wordFileUploaded;
|
||||||
|
|
||||||
viewerPage.clickCloseButton();
|
beforeAll(async (done) => {
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
|
||||||
|
wordFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, wordFileInfo.location, wordFileInfo.name, '-my-');
|
||||||
|
|
||||||
|
pngFileShared = await this.alfrescoJsApi.core.sharedlinksApi.addSharedLink({'nodeId': pngFileUploaded.entry.id});
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async (done) => {
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, wordFileUploaded.entry.id);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C260105] Should be able to open an image file shared via API', () => {
|
||||||
|
browser.get(TestConfig.adf.url + '/preview/s/' + pngFileShared.entry.id);
|
||||||
|
viewerPage.checkImgContainerIsDisplayed();
|
||||||
|
browser.get(TestConfig.adf.url);
|
||||||
|
navigationBarPage.clickLogoutButton();
|
||||||
|
browser.get(TestConfig.adf.url + '/preview/s/' + pngFileShared.entry.id);
|
||||||
|
viewerPage.checkImgContainerIsDisplayed();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C260106] Should be able to open a Word file shared via API', () => {
|
||||||
|
contentServicesPage.navigateToDocumentList();
|
||||||
|
|
||||||
|
contentList.clickRowToSelect(wordFileInfo.name);
|
||||||
|
contentServicesPage.clickShareButton();
|
||||||
|
shareDialog.checkDialogIsDisplayed();
|
||||||
|
shareDialog.clickShareLinkButton();
|
||||||
|
browser.controlFlow().execute(async () => {
|
||||||
|
let sharedLink = await shareDialog.getShareLink();
|
||||||
|
|
||||||
|
await browser.get(sharedLink);
|
||||||
|
viewerPage.checkFileIsLoaded();
|
||||||
|
viewerPage.checkFileNameIsDisplayed(wordFileInfo.name);
|
||||||
|
|
||||||
|
await browser.get(TestConfig.adf.url);
|
||||||
|
navigationBarPage.clickLogoutButton();
|
||||||
|
await browser.get(sharedLink);
|
||||||
|
viewerPage.checkFileIsLoaded();
|
||||||
|
viewerPage.checkFileNameIsDisplayed(wordFileInfo.name);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
98
e2e/core/viewer/viewer_custom_toolbar_info-drawer.e2e.ts
Normal file
98
e2e/core/viewer/viewer_custom_toolbar_info-drawer.e2e.ts
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 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 TestConfig = require('../../test.config');
|
||||||
|
|
||||||
|
import { LoginPage } from '../../pages/adf/loginPage';
|
||||||
|
import { ViewerPage } from '../../pages/adf/viewerPage';
|
||||||
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
|
|
||||||
|
import resources = require('../../util/resources');
|
||||||
|
|
||||||
|
import FileModel = require('../../models/ACS/fileModel');
|
||||||
|
import AcsUserModel = require('../../models/ACS/acsUserModel');
|
||||||
|
|
||||||
|
import AlfrescoApi = require('alfresco-js-api-node');
|
||||||
|
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||||
|
|
||||||
|
describe('Viewer', () => {
|
||||||
|
|
||||||
|
let viewerPage = new ViewerPage();
|
||||||
|
let loginPage = new LoginPage();
|
||||||
|
let contentServicesPage = new ContentServicesPage();
|
||||||
|
let uploadActions = new UploadActions();
|
||||||
|
let acsUser = new AcsUserModel();
|
||||||
|
let txtFileUploaded;
|
||||||
|
|
||||||
|
let txtFileInfo = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.TXT.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TXT.file_location
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeAll(async (done) => {
|
||||||
|
|
||||||
|
this.alfrescoJsApi = new AlfrescoApi({
|
||||||
|
provider: 'ECM',
|
||||||
|
hostEcm: TestConfig.adf.url
|
||||||
|
});
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
|
||||||
|
txtFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, txtFileInfo.location, txtFileInfo.name, '-my-');
|
||||||
|
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async (done) => {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, txtFileUploaded.entry.id);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.doubleClickRow(txtFileUploaded.entry.name);
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
viewerPage.clickCloseButton();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C260096] Should the Viewer able to accept a customToolbar', () => {
|
||||||
|
viewerPage.clickLeftSidebarButton();
|
||||||
|
viewerPage.checkLeftSideBarIsDisplayed();
|
||||||
|
viewerPage.checkToolbarIsDisplayed();
|
||||||
|
viewerPage.enableCustomToolbar();
|
||||||
|
viewerPage.checkCustomToolbarIsDisplayed();
|
||||||
|
viewerPage.disableCustomToolbar();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C260097] Should the viewer able to show a custom info-drawer when the sidebarTemplate is set', () => {
|
||||||
|
viewerPage.clickInfoButton();
|
||||||
|
viewerPage.checkInfoSideBarIsDisplayed();
|
||||||
|
viewerPage.clickOnTab('Comments');
|
||||||
|
viewerPage.checkTabIsActive('Comments');
|
||||||
|
viewerPage.clickOnTab('Properties');
|
||||||
|
viewerPage.checkTabIsActive('Properties');
|
||||||
|
viewerPage.clickOnTab('Versions');
|
||||||
|
viewerPage.checkTabIsActive('Versions');
|
||||||
|
});
|
||||||
|
});
|
@@ -15,13 +15,13 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { browser } from 'protractor';
|
|
||||||
|
|
||||||
import TestConfig = require('../../test.config');
|
import TestConfig = require('../../test.config');
|
||||||
|
|
||||||
import { LoginPage } from '../../pages/adf/loginPage';
|
import { LoginPage } from '../../pages/adf/loginPage';
|
||||||
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||||
import { ViewerPage } from '../../pages/adf/viewerPage';
|
import { ViewerPage } from '../../pages/adf/viewerPage';
|
||||||
|
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||||
|
import DataTablePage = require('../../pages/adf/dataTablePage');
|
||||||
|
|
||||||
import resources = require('../../util/resources');
|
import resources = require('../../util/resources');
|
||||||
|
|
||||||
@@ -37,12 +37,19 @@ describe('Viewer - properties', () => {
|
|||||||
let viewerPage = new ViewerPage();
|
let viewerPage = new ViewerPage();
|
||||||
let contentServicesPage = new ContentServicesPage();
|
let contentServicesPage = new ContentServicesPage();
|
||||||
let loginPage = new LoginPage();
|
let loginPage = new LoginPage();
|
||||||
|
let navigationBarPage = new NavigationBarPage();
|
||||||
|
let dataTable = new DataTablePage();
|
||||||
|
|
||||||
let pngFile = new FileModel({
|
let pngFile = new FileModel({
|
||||||
'name': resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
'name': resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||||
'location': resources.Files.ADF_DOCUMENTS.PNG.file_location
|
'location': resources.Files.ADF_DOCUMENTS.PNG.file_location
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let fileForOverlay = new FileModel({
|
||||||
|
'name': 'fileForOverlay.png',
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.PNG.file_location
|
||||||
|
});
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
let uploadActions = new UploadActions();
|
let uploadActions = new UploadActions();
|
||||||
|
|
||||||
@@ -60,6 +67,9 @@ describe('Viewer - properties', () => {
|
|||||||
let pngFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, pngFile.location, pngFile.name, '-my-');
|
let pngFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, pngFile.location, pngFile.name, '-my-');
|
||||||
Object.assign(pngFile, pngFileUploaded.entry);
|
Object.assign(pngFile, pngFileUploaded.entry);
|
||||||
|
|
||||||
|
pngFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, fileForOverlay.location, fileForOverlay.name, '-my-');
|
||||||
|
Object.assign(fileForOverlay, pngFileUploaded.entry);
|
||||||
|
|
||||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
|
||||||
contentServicesPage.goToDocumentList();
|
contentServicesPage.goToDocumentList();
|
||||||
@@ -181,4 +191,24 @@ describe('Viewer - properties', () => {
|
|||||||
viewerPage.checkLeftSideBarButtonIsNotDisplayed();
|
viewerPage.checkLeftSideBarButtonIsNotDisplayed();
|
||||||
viewerPage.checkLeftSideBarIsNotDisplayed();
|
viewerPage.checkLeftSideBarIsNotDisplayed();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('[C260100] Should be possible to disable Overlay viewer', () => {
|
||||||
|
viewerPage.clickCloseButton();
|
||||||
|
navigationBarPage.clickOverlayViewerButton();
|
||||||
|
|
||||||
|
dataTable.doubleClickRow(fileForOverlay.name);
|
||||||
|
viewerPage.checkOverlayViewerIsDisplayed();
|
||||||
|
viewerPage.clickCloseButton();
|
||||||
|
dataTable.doubleClickRow(pngFile.name);
|
||||||
|
viewerPage.checkOverlayViewerIsDisplayed();
|
||||||
|
viewerPage.clickCloseButton();
|
||||||
|
|
||||||
|
viewerPage.disableOverlay();
|
||||||
|
dataTable.doubleClickRow(fileForOverlay.name);
|
||||||
|
viewerPage.checkImgContainerIsDisplayed();
|
||||||
|
viewerPage.checkInlineViewerIsDisplayed();
|
||||||
|
dataTable.doubleClickRow(pngFile.name);
|
||||||
|
viewerPage.checkImgContainerIsDisplayed();
|
||||||
|
viewerPage.checkInlineViewerIsDisplayed();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@@ -15,6 +15,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import { element, by, browser } from 'protractor';
|
||||||
|
|
||||||
var TestConfig = require('../../test.config');
|
var TestConfig = require('../../test.config');
|
||||||
var Util = require('../../util/util');
|
var Util = require('../../util/util');
|
||||||
|
|
||||||
@@ -133,7 +135,7 @@ var DataTablePage = function (rootElement = element(by.css("adf-datatable"))) {
|
|||||||
* @param {String} row number
|
* @param {String} row number
|
||||||
*/
|
*/
|
||||||
this.selectRowWithKeyboard = function (rowNumber) {
|
this.selectRowWithKeyboard = function (rowNumber) {
|
||||||
var row = this.getRowByRowNumber(rowNumber);
|
let row = this.getRowByRowNumber(rowNumber);
|
||||||
browser.actions().sendKeys(protractor.Key.COMMAND).click(row).perform();
|
browser.actions().sendKeys(protractor.Key.COMMAND).click(row).perform();
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -143,7 +145,7 @@ var DataTablePage = function (rootElement = element(by.css("adf-datatable"))) {
|
|||||||
* @param {String} selection mode
|
* @param {String} selection mode
|
||||||
*/
|
*/
|
||||||
this.selectSelectionMode = function (selectionMode) {
|
this.selectSelectionMode = function (selectionMode) {
|
||||||
var selectMode = element(by.cssContainingText("span[class='mat-option-text']", selectionMode));
|
let selectMode = element(by.cssContainingText("span[class='mat-option-text']", selectionMode));
|
||||||
selectionButton.click();
|
selectionButton.click();
|
||||||
Util.waitUntilElementIsVisible(selectionDropDown);
|
Util.waitUntilElementIsVisible(selectionDropDown);
|
||||||
selectMode.click();
|
selectMode.click();
|
||||||
@@ -155,7 +157,7 @@ var DataTablePage = function (rootElement = element(by.css("adf-datatable"))) {
|
|||||||
* @param {String} row number
|
* @param {String} row number
|
||||||
*/
|
*/
|
||||||
this.checkRowIsSelected = function (rowNumber) {
|
this.checkRowIsSelected = function (rowNumber) {
|
||||||
var isRowSelected = this.getRowByRowNumber(rowNumber).element(by.xpath("ancestor::div[contains(@class, 'is-selected')]"));
|
let isRowSelected = this.getRowByRowNumber(rowNumber).element(by.xpath("ancestor::div[contains(@class, 'is-selected')]"));
|
||||||
Util.waitUntilElementIsVisible(isRowSelected);
|
Util.waitUntilElementIsVisible(isRowSelected);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -165,7 +167,7 @@ var DataTablePage = function (rootElement = element(by.css("adf-datatable"))) {
|
|||||||
* @param {String} row number
|
* @param {String} row number
|
||||||
*/
|
*/
|
||||||
this.checkRowIsNotSelected = function (rowNumber) {
|
this.checkRowIsNotSelected = function (rowNumber) {
|
||||||
var isRowSelected = this.getRowByRowNumber(rowNumber).element(by.xpath("ancestor::div[contains(@class, 'adf-datatable-row custom-row-style ng-star-inserted is-selected')]"));
|
let isRowSelected = this.getRowByRowNumber(rowNumber).element(by.xpath("ancestor::div[contains(@class, 'adf-datatable-row custom-row-style ng-star-inserted is-selected')]"));
|
||||||
Util.waitUntilElementIsNotOnPage(isRowSelected);
|
Util.waitUntilElementIsNotOnPage(isRowSelected);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -231,7 +233,7 @@ var DataTablePage = function (rootElement = element(by.css("adf-datatable"))) {
|
|||||||
* @param {String} id
|
* @param {String} id
|
||||||
*/
|
*/
|
||||||
this.replaceRows = function (id) {
|
this.replaceRows = function (id) {
|
||||||
var rowID = this.getRowByRowNumber(id);
|
let rowID = this.getRowByRowNumber(id);
|
||||||
Util.waitUntilElementIsVisible(rowID);
|
Util.waitUntilElementIsVisible(rowID);
|
||||||
replaceRows.click();
|
replaceRows.click();
|
||||||
Util.waitUntilElementIsNotOnPage(rowID);
|
Util.waitUntilElementIsNotOnPage(rowID);
|
||||||
@@ -248,13 +250,23 @@ var DataTablePage = function (rootElement = element(by.css("adf-datatable"))) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.getRowsName = function (content) {
|
this.getRowsName = function (content) {
|
||||||
var row = element(by.css("div[data-automation-id*='" + content + "']"));
|
let row = element(by.css("div[data-automation-id*='" + content + "']"));
|
||||||
Util.waitUntilElementIsPresent(row);
|
Util.waitUntilElementIsPresent(row);
|
||||||
return row;
|
return row;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.doubleClickRow = function (rowName) {
|
||||||
|
let row = this.getRowByRowName(rowName);
|
||||||
|
Util.waitUntilElementIsVisible(row);
|
||||||
|
Util.waitUntilElementIsClickable(row);
|
||||||
|
row.click();
|
||||||
|
Util.waitUntilElementIsVisible(row.all(by.css("div[class*='--image'] mat-icon[svgicon*='selected']")).first());
|
||||||
|
browser.actions().sendKeys(protractor.Key.ENTER).perform();
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
this.getRowByRowName = function (content) {
|
this.getRowByRowName = function (content) {
|
||||||
var rowByRowName = by.xpath("ancestor::div[contains(@class, 'adf-datatable-row')]");
|
let rowByRowName = by.xpath("ancestor::div[contains(@class, 'adf-datatable-row')]");
|
||||||
Util.waitUntilElementIsPresent(this.getRowsName(content).element(rowByRowName));
|
Util.waitUntilElementIsPresent(this.getRowsName(content).element(rowByRowName));
|
||||||
return this.getRowsName(content).element(rowByRowName);
|
return this.getRowsName(content).element(rowByRowName);
|
||||||
};
|
};
|
||||||
@@ -264,7 +276,7 @@ var DataTablePage = function (rootElement = element(by.css("adf-datatable"))) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.insertFilter = function (filterText) {
|
this.insertFilter = function (filterText) {
|
||||||
var inputFilter = element(by.xpath("//*[@id=\"adf-datatable-filter-input\"]"));
|
let inputFilter = element(by.xpath("//*[@id=\"adf-datatable-filter-input\"]"));
|
||||||
inputFilter.clear();
|
inputFilter.clear();
|
||||||
return inputFilter.sendKeys(filterText);
|
return inputFilter.sendKeys(filterText);
|
||||||
};
|
};
|
||||||
|
@@ -119,7 +119,6 @@ export class ShareDialog {
|
|||||||
setDefaultDay() {
|
setDefaultDay() {
|
||||||
const selector = '.mat-datetimepicker-calendar-body-active .mat-datetimepicker-calendar-body-cell-content';
|
const selector = '.mat-datetimepicker-calendar-body-active .mat-datetimepicker-calendar-body-cell-content';
|
||||||
Util.waitUntilElementIsVisible(this.dayPicker);
|
Util.waitUntilElementIsVisible(this.dayPicker);
|
||||||
const tomorrow = moment().add(1, 'day').date();
|
|
||||||
let tomorrow = new Date(new Date().getTime() + 24 * 60 * 60 * 1000).getDate().toString();
|
let tomorrow = new Date(new Date().getTime() + 24 * 60 * 60 * 1000).getDate().toString();
|
||||||
this.dayPicker.element(by.cssContainingText(selector, tomorrow)).click();
|
this.dayPicker.element(by.cssContainingText(selector, tomorrow)).click();
|
||||||
}
|
}
|
||||||
|
@@ -73,7 +73,12 @@ export class LoginPage {
|
|||||||
clearUsername() {
|
clearUsername() {
|
||||||
Util.waitUntilElementIsVisible(this.txtUsername);
|
Util.waitUntilElementIsVisible(this.txtUsername);
|
||||||
this.txtUsername.click();
|
this.txtUsername.click();
|
||||||
return this.txtUsername.clear();
|
this.txtUsername.getAttribute('value').then((value) => {
|
||||||
|
for (let i = value.length; i >= 0; i--) {
|
||||||
|
this.txtUsername.sendKeys(protractor.Key.BACK_SPACE);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
clearPassword() {
|
clearPassword() {
|
||||||
@@ -85,26 +90,24 @@ export class LoginPage {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
checkUsernameTooltip() {
|
getUsernameTooltip() {
|
||||||
Util.waitUntilElementIsVisible(this.usernameTooltip);
|
Util.waitUntilElementIsVisible(this.usernameTooltip);
|
||||||
|
return this.usernameTooltip.getText();
|
||||||
}
|
}
|
||||||
|
|
||||||
checkPasswordTooltip() {
|
getPasswordTooltip() {
|
||||||
Util.waitUntilElementIsVisible(this.passwordTooltip);
|
Util.waitUntilElementIsVisible(this.passwordTooltip);
|
||||||
|
return this.passwordTooltip.getText();
|
||||||
}
|
}
|
||||||
|
|
||||||
checkLoginError(message) {
|
getLoginError() {
|
||||||
Util.waitUntilElementIsVisible(this.loginTooltip);
|
Util.waitUntilElementIsVisible(this.loginTooltip);
|
||||||
browser.controlFlow().execute(async () => {
|
return this.loginTooltip.getText();
|
||||||
await expect(this.loginTooltip.getText()).toEqual(message);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkLoginImgURL(url) {
|
checkLoginImgURL(url) {
|
||||||
Util.waitUntilElementIsVisible(this.logoImg);
|
Util.waitUntilElementIsVisible(this.logoImg);
|
||||||
browser.controlFlow().execute(async () => {
|
return this.logoImg.getAttribute('src');
|
||||||
await expect(this.logoImg.getAttribute('src')).toEqual(url);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkUsernameInactive() {
|
checkUsernameInactive() {
|
||||||
@@ -133,11 +136,9 @@ export class LoginPage {
|
|||||||
Util.waitUntilElementIsNotVisible(this.passwordTooltip);
|
Util.waitUntilElementIsNotVisible(this.passwordTooltip);
|
||||||
}
|
}
|
||||||
|
|
||||||
checkSignInButtonIsEnabled() {
|
getSignInButtonIsEnabled() {
|
||||||
Util.waitUntilElementIsVisible(this.signInButton);
|
Util.waitUntilElementIsVisible(this.signInButton);
|
||||||
browser.controlFlow().execute(async () => {
|
return this.signInButton.isEnabled();
|
||||||
await expect(this.signInButton.isEnabled()).toBe(true);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
loginToProcessServicesUsingUserModel(userModel) {
|
loginToProcessServicesUsingUserModel(userModel) {
|
||||||
@@ -166,13 +167,6 @@ export class LoginPage {
|
|||||||
this.waitForElements();
|
this.waitForElements();
|
||||||
}
|
}
|
||||||
|
|
||||||
checkSignInButtonIsDisabled() {
|
|
||||||
Util.waitUntilElementIsVisible(this.signInButton);
|
|
||||||
browser.controlFlow().execute(async () => {
|
|
||||||
await expect(this.signInButton.isEnabled()).toBe(false);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
clickSignInButton() {
|
clickSignInButton() {
|
||||||
Util.waitUntilElementIsVisible(this.signInButton);
|
Util.waitUntilElementIsVisible(this.signInButton);
|
||||||
this.signInButton.click();
|
this.signInButton.click();
|
||||||
@@ -188,10 +182,8 @@ export class LoginPage {
|
|||||||
this.hidePasswordElement.click();
|
this.hidePasswordElement.click();
|
||||||
}
|
}
|
||||||
|
|
||||||
checkPasswordIsShown(password) {
|
getShownPassword() {
|
||||||
this.txtPassword.getAttribute('value').then(async (text) => {
|
return this.txtPassword.getAttribute('value');
|
||||||
await expect(text).toEqual(password);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkPasswordIsHidden() {
|
checkPasswordIsHidden() {
|
||||||
|
@@ -30,6 +30,7 @@ export class NavigationBarPage {
|
|||||||
processServicesCloudButton = element(by.css('a[data-automation-id="Process Cloud"]'));
|
processServicesCloudButton = element(by.css('a[data-automation-id="Process Cloud"]'));
|
||||||
loginButton = element(by.css('a[data-automation-id="Login"]'));
|
loginButton = element(by.css('a[data-automation-id="Login"]'));
|
||||||
trashcanButton = element(by.css('a[data-automation-id="Trashcan"]'));
|
trashcanButton = element(by.css('a[data-automation-id="Trashcan"]'));
|
||||||
|
overlayViewerButton = element(by.css('a[data-automation-id="Overlay Viewer"]'));
|
||||||
userProfileButton = element(by.css('button[data-automation-id="adf-user-profile"]'));
|
userProfileButton = element(by.css('button[data-automation-id="adf-user-profile"]'));
|
||||||
themeButton = element(by.css('button[data-automation-id="theme menu"]'));
|
themeButton = element(by.css('button[data-automation-id="theme menu"]'));
|
||||||
themeMenuContent = element(by.css('div[class*="mat-menu-panel"]'));
|
themeMenuContent = element(by.css('div[class*="mat-menu-panel"]'));
|
||||||
@@ -79,6 +80,12 @@ export class NavigationBarPage {
|
|||||||
this.trashcanButton.click();
|
this.trashcanButton.click();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clickOverlayViewerButton() {
|
||||||
|
Util.waitUntilElementIsVisible(this.overlayViewerButton);
|
||||||
|
this.overlayViewerButton.click();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
clickUserProfile() {
|
clickUserProfile() {
|
||||||
Util.waitUntilElementIsVisible(this.userProfileButton);
|
Util.waitUntilElementIsVisible(this.userProfileButton);
|
||||||
this.userProfileButton.click();
|
this.userProfileButton.click();
|
||||||
|
@@ -56,12 +56,10 @@ export class ViewerPage {
|
|||||||
passwordError = element(by.css('mat-error[data-automation-id="adf-password-dialog-error"]'));
|
passwordError = element(by.css('mat-error[data-automation-id="adf-password-dialog-error"]'));
|
||||||
infoSideBar = element(by.id('adf-right-sidebar'));
|
infoSideBar = element(by.id('adf-right-sidebar'));
|
||||||
leftSideBar = element(by.id('adf-left-sidebar'));
|
leftSideBar = element(by.id('adf-left-sidebar'));
|
||||||
pageCanvas = element.all(by.css('div[class="canvasWrapper"]')).first();
|
|
||||||
viewer = element(by.css('adf-viewer'));
|
viewer = element(by.css('adf-viewer'));
|
||||||
pdfViewer = element(by.css('adf-pdf-viewer'));
|
pdfViewer = element(by.css('adf-pdf-viewer'));
|
||||||
imgViewer = element(by.css('adf-img-viewer'));
|
imgViewer = element(by.css('adf-img-viewer'));
|
||||||
activeTab = element(by.css('div[class*="mat-tab-label-active"]'));
|
activeTab = element(by.css('div[class*="mat-tab-label-active"]'));
|
||||||
uploadNewVersionButton = element(by.css('input[data-automation-id="upload-single-file"]'));
|
|
||||||
toolbarSwitch = element(by.id('adf-switch-toolbar'));
|
toolbarSwitch = element(by.id('adf-switch-toolbar'));
|
||||||
toolbar = element(by.id('adf-viewer-toolbar'));
|
toolbar = element(by.id('adf-viewer-toolbar'));
|
||||||
datatableHeader = element(by.css('div.adf-datatable-header'));
|
datatableHeader = element(by.css('div.adf-datatable-header'));
|
||||||
@@ -71,6 +69,8 @@ export class ViewerPage {
|
|||||||
openWith = element(by.id('adf-viewer-openwith'));
|
openWith = element(by.id('adf-viewer-openwith'));
|
||||||
|
|
||||||
customNameSwitch = element(by.id('adf-switch-custoname'));
|
customNameSwitch = element(by.id('adf-switch-custoname'));
|
||||||
|
customToolbarToggle = element(by.id('adf-toggle-custom-toolbar'));
|
||||||
|
customToolbar = element(by.css('adf-viewer-toolbar[data-automation-id="adf-viewer-custom-toolbar"]'));
|
||||||
|
|
||||||
showRightSidebarSwitch = element(by.id('adf-switch-showrightsidebar'));
|
showRightSidebarSwitch = element(by.id('adf-switch-showrightsidebar'));
|
||||||
showLeftSidebarSwitch = element(by.id('adf-switch-showleftsidebar'));
|
showLeftSidebarSwitch = element(by.id('adf-switch-showleftsidebar'));
|
||||||
@@ -94,24 +94,6 @@ export class ViewerPage {
|
|||||||
timeButton = element(by.id('adf-viewer-time'));
|
timeButton = element(by.id('adf-viewer-time'));
|
||||||
bugButton = element(by.id('adf-viewer-bug'));
|
bugButton = element(by.id('adf-viewer-bug'));
|
||||||
|
|
||||||
canvasHeight() {
|
|
||||||
let deferred = protractor.promise.defer();
|
|
||||||
this.pageCanvas.getAttribute('style').then(function (value) {
|
|
||||||
let canvasHeight = value.split('height: ')[1].split('px')[0];
|
|
||||||
deferred.fulfill(canvasHeight);
|
|
||||||
});
|
|
||||||
return deferred.promise;
|
|
||||||
}
|
|
||||||
|
|
||||||
canvasWidth() {
|
|
||||||
let deferred = protractor.promise.defer();
|
|
||||||
this.pageCanvas.getAttribute('style').then(function (value) {
|
|
||||||
let canvasWidth = value.split('width: ')[1].split('px')[0];
|
|
||||||
deferred.fulfill(canvasWidth);
|
|
||||||
});
|
|
||||||
return deferred.promise;
|
|
||||||
}
|
|
||||||
|
|
||||||
viewFile(fileName) {
|
viewFile(fileName) {
|
||||||
let fileView = element.all(by.xpath('//div[@id="document-list-container"]//div[@filename="' + fileName + '"]')).first();
|
let fileView = element.all(by.xpath('//div[@id="document-list-container"]//div[@filename="' + fileName + '"]')).first();
|
||||||
Util.waitUntilElementIsVisible(fileView);
|
Util.waitUntilElementIsVisible(fileView);
|
||||||
@@ -176,7 +158,9 @@ export class ViewerPage {
|
|||||||
checkCurrentThumbnailIsSelected() {
|
checkCurrentThumbnailIsSelected() {
|
||||||
let selectedThumbnail = element(by.css('adf-pdf-thumb[class="pdf-thumbnails__thumb ng-star-inserted pdf-thumbnails__thumb--selected"] > img'));
|
let selectedThumbnail = element(by.css('adf-pdf-thumb[class="pdf-thumbnails__thumb ng-star-inserted pdf-thumbnails__thumb--selected"] > img'));
|
||||||
this.pageSelectorInput.getAttribute('value').then(function (pageNumber) {
|
this.pageSelectorInput.getAttribute('value').then(function (pageNumber) {
|
||||||
expect('Page ' + pageNumber).toEqual(selectedThumbnail.getAttribute('title'));
|
browser.controlFlow().execute(async () => {
|
||||||
|
expect('Page ' + pageNumber).toEqual(await selectedThumbnail.getAttribute('title'));
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -238,10 +222,6 @@ export class ViewerPage {
|
|||||||
Util.waitUntilElementIsVisible(this.zoomInButton);
|
Util.waitUntilElementIsVisible(this.zoomInButton);
|
||||||
}
|
}
|
||||||
|
|
||||||
checkZoomInButtonIsDisplayed(timeout) {
|
|
||||||
Util.waitUntilElementIsVisible(this.zoomInButton, timeout);
|
|
||||||
}
|
|
||||||
|
|
||||||
checkZoomInButtonIsNotDisplayed() {
|
checkZoomInButtonIsNotDisplayed() {
|
||||||
Util.waitUntilElementIsNotVisible(this.zoomInButton);
|
Util.waitUntilElementIsNotVisible(this.zoomInButton);
|
||||||
}
|
}
|
||||||
@@ -339,6 +319,17 @@ export class ViewerPage {
|
|||||||
return this.infoButton.click();
|
return this.infoButton.click();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clickOnTab(tabName) {
|
||||||
|
this.tabsPage.clickTabByTitle(tabName);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
checkTabIsActive(tabName) {
|
||||||
|
let tab = element(by.cssContainingText('.adf-info-drawer-layout-content div.mat-tab-labels div.mat-tab-label-active .mat-tab-label-content', tabName));
|
||||||
|
Util.waitUntilElementIsVisible(tab);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
clickLeftSidebarButton() {
|
clickLeftSidebarButton() {
|
||||||
Util.waitUntilElementIsVisible(this.leftSideBarButton);
|
Util.waitUntilElementIsVisible(this.leftSideBarButton);
|
||||||
return this.leftSideBarButton.click();
|
return this.leftSideBarButton.click();
|
||||||
@@ -433,22 +424,6 @@ export class ViewerPage {
|
|||||||
return this.activeTab.getText();
|
return this.activeTab.getText();
|
||||||
}
|
}
|
||||||
|
|
||||||
clickOnVersionsTab() {
|
|
||||||
clickRightChevronToGetToTab('Versions');
|
|
||||||
tabsPage.clickTabByTitle('Versions');
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
checkUploadVersionsButtonIsDisplayed() {
|
|
||||||
Util.waitUntilElementIsVisible(this.uploadNewVersionButton);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
checkVersionIsDisplayed(version) {
|
|
||||||
Util.waitUntilElementIsVisible(element(by.cssContainingText('h4[class*="adf-version-list-item-name"]', version)));
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
clickOnCommentsTab() {
|
clickOnCommentsTab() {
|
||||||
this.tabsPage.clickTabByTitle('Comments');
|
this.tabsPage.clickTabByTitle('Comments');
|
||||||
return this;
|
return this;
|
||||||
@@ -600,6 +575,21 @@ export class ViewerPage {
|
|||||||
this.formControllersPage.enableToggle(this.moreActionsSwitch);
|
this.formControllersPage.enableToggle(this.moreActionsSwitch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
disableCustomToolbar() {
|
||||||
|
this.formControllersPage.disableToggle(this.customToolbarToggle);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
enableCustomToolbar() {
|
||||||
|
this.formControllersPage.enableToggle(this.customToolbarToggle);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
checkCustomToolbarIsDisplayed() {
|
||||||
|
Util.waitUntilElementIsVisible(this.customToolbar);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
disableCustomName() {
|
disableCustomName() {
|
||||||
this.formControllersPage.disableToggle(this.customNameSwitch);
|
this.formControllersPage.disableToggle(this.customNameSwitch);
|
||||||
}
|
}
|
||||||
@@ -626,4 +616,19 @@ export class ViewerPage {
|
|||||||
textField.sendKeys(text);
|
textField.sendKeys(text);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
disableOverlay() {
|
||||||
|
this.formControllersPage.disableToggle(element(by.id('adf-viewer-overlay')));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
checkOverlayViewerIsDisplayed() {
|
||||||
|
Util.waitUntilElementIsVisible(this.viewer.element(by.css('div[class*="adf-viewer-overlay-container"]')));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
checkInlineViewerIsDisplayed() {
|
||||||
|
Util.waitUntilElementIsVisible(this.viewer.element(by.css('div[class*="adf-viewer-inline-container"]')));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user