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
@@ -70,69 +70,83 @@ describe('Login component', () => {
|
||||
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', () => {
|
||||
loginPage.goToLoginPage();
|
||||
loginPage.checkUsernameInactive();
|
||||
loginPage.checkSignInButtonIsDisabled();
|
||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
loginPage.enterUsername('A');
|
||||
loginPage.checkUsernameTooltip(errorMessages.username);
|
||||
expect(loginPage.getUsernameTooltip()).toEqual(errorMessages.username);
|
||||
loginPage.clearUsername();
|
||||
loginPage.checkUsernameTooltip(errorMessages.required);
|
||||
expect(loginPage.getUsernameTooltip()).toEqual(errorMessages.required);
|
||||
loginPage.checkUsernameHighlighted();
|
||||
loginPage.checkSignInButtonIsDisabled();
|
||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
});
|
||||
|
||||
it('[C260043] Should require password', () => {
|
||||
loginPage.goToLoginPage();
|
||||
loginPage.checkPasswordInactive();
|
||||
loginPage.checkSignInButtonIsDisabled();
|
||||
loginPage.checkUsernameInactive();
|
||||
loginPage.enterPassword('A');
|
||||
loginPage.checkPasswordTooltipIsNotVisible();
|
||||
loginPage.clearPassword();
|
||||
loginPage.checkPasswordTooltip(errorMessages.password);
|
||||
expect(loginPage.getPasswordTooltip()).toEqual(errorMessages.password);
|
||||
loginPage.checkPasswordHighlighted();
|
||||
loginPage.checkSignInButtonIsDisabled();
|
||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
});
|
||||
|
||||
it('[C260044] Username should be at least 2 characters long', () => {
|
||||
loginPage.goToLoginPage();
|
||||
loginPage.checkSignInButtonIsDisabled();
|
||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
loginPage.enterUsername('A');
|
||||
loginPage.checkUsernameTooltip(errorMessages.username);
|
||||
expect(loginPage.getUsernameTooltip()).toEqual(errorMessages.username);
|
||||
loginPage.enterUsername('AB');
|
||||
loginPage.checkUsernameTooltipIsNotVisible();
|
||||
loginPage.checkSignInButtonIsDisabled();
|
||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
loginPage.clearUsername();
|
||||
});
|
||||
|
||||
it('[C260045] Should enable login button after entering a valid username and a password', () => {
|
||||
loginPage.goToLoginPage();
|
||||
loginPage.enterUsername(adminUserModel.id);
|
||||
loginPage.checkSignInButtonIsDisabled();
|
||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
loginPage.enterPassword('a');
|
||||
loginPage.checkSignInButtonIsEnabled();
|
||||
loginPage.clearUsername(adminUserModel.id);
|
||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(true);
|
||||
loginPage.clearUsername();
|
||||
loginPage.clearPassword();
|
||||
});
|
||||
|
||||
it('[C260046] Should NOT be possible to login with an invalid username/password', () => {
|
||||
loginPage.goToLoginPage();
|
||||
loginPage.checkSignInButtonIsDisabled();
|
||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
loginPage.enterUsername('test');
|
||||
loginPage.enterPassword('test');
|
||||
loginPage.checkSignInButtonIsEnabled();
|
||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(true);
|
||||
loginPage.clickSignInButton();
|
||||
loginPage.checkLoginError(errorMessages.invalid_credentials);
|
||||
expect(loginPage.getLoginError()).toEqual(errorMessages.invalid_credentials);
|
||||
loginPage.clearUsername();
|
||||
loginPage.clearPassword();
|
||||
});
|
||||
|
||||
it('[C260047] Password should be crypted', () => {
|
||||
loginPage.goToLoginPage();
|
||||
loginPage.checkSignInButtonIsDisabled();
|
||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
loginPage.enterPassword('test');
|
||||
loginPage.showPassword();
|
||||
loginPage.checkPasswordIsShown('test');
|
||||
loginPage.getShownPassword().then(async (tooltip) => {
|
||||
await expect(tooltip).toEqual('test');
|
||||
});
|
||||
loginPage.hidePassword();
|
||||
loginPage.checkPasswordIsHidden();
|
||||
loginPage.clearPassword();
|
||||
@@ -152,7 +166,7 @@ describe('Login component', () => {
|
||||
|
||||
it('[C260049] Should be possible to login to Process Services with Content Services disabled', () => {
|
||||
loginPage.goToLoginPage();
|
||||
loginPage.checkSignInButtonIsDisabled();
|
||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
settingsPage.setProviderBpm();
|
||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
navigationBarPage.navigateToProcessServicesPage();
|
||||
@@ -163,7 +177,7 @@ describe('Login component', () => {
|
||||
|
||||
it('[C260050] Should be possible to login to Content Services with Process Services disabled', () => {
|
||||
loginPage.goToLoginPage();
|
||||
loginPage.checkSignInButtonIsDisabled();
|
||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
settingsPage.setProviderEcm();
|
||||
loginPage.login(TestConfig.adf.adminUser, TestConfig.adf.adminPassword);
|
||||
navigationBarPage.clickContentServicesButton();
|
||||
@@ -174,7 +188,7 @@ describe('Login component', () => {
|
||||
|
||||
it('[C260051] Should be able to login to both Content Services and Process Services', () => {
|
||||
settingsPage.setProviderEcmBpm();
|
||||
loginPage.checkSignInButtonIsDisabled();
|
||||
expect(loginPage.getSignInButtonIsEnabled()).toBe(false);
|
||||
settingsPage.setProviderEcmBpm();
|
||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
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', () => {
|
||||
settingsPage.setProviderEcmBpm();
|
||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
browser.executeScript('window.localStorage.removeItem("ticket-ECM");').then(() => {
|
||||
browser.get(TestConfig.adf.url + '/files');
|
||||
browser.executeScript('window.localStorage.removeItem("ticket-ECM");').then(async () => {
|
||||
await browser.get(TestConfig.adf.url + '/files');
|
||||
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', () => {
|
||||
settingsPage.setProviderEcmBpm();
|
||||
loginPage.login(adminUserModel.id, adminUserModel.password);
|
||||
browser.executeScript('window.localStorage.removeItem("ticket-BPM");').then(() => {
|
||||
browser.get(TestConfig.adf.url + '/activiti');
|
||||
browser.executeScript('window.localStorage.removeItem("ticket-BPM");').then(async () => {
|
||||
await browser.get(TestConfig.adf.url + '/activiti');
|
||||
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', () => {
|
||||
settingsPage.setProviderEcmBpm();
|
||||
loginPage.enableLogoSwitch();
|
||||
|
@@ -21,6 +21,8 @@ import { LoginPage } from '../../pages/adf/loginPage';
|
||||
import { ViewerPage } from '../../pages/adf/viewerPage';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||
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 Util = require('../../util/util');
|
||||
@@ -32,6 +34,7 @@ import AcsUserModel = require('../../models/ACS/acsUserModel');
|
||||
|
||||
import AlfrescoApi = require('alfresco-js-api-node');
|
||||
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||
import { browser } from 'protractor';
|
||||
|
||||
describe('Viewer', () => {
|
||||
|
||||
@@ -43,6 +46,8 @@ describe('Viewer', () => {
|
||||
let site;
|
||||
let acsUser = new AcsUserModel();
|
||||
let pngFileUploaded;
|
||||
const contentList = new ContentListPage();
|
||||
const shareDialog = new ShareDialog();
|
||||
|
||||
let pngFileInfo = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
@@ -111,6 +116,19 @@ describe('Viewer', () => {
|
||||
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', () => {
|
||||
let uploadedArchives;
|
||||
let archiveFolderUploaded;
|
||||
@@ -355,14 +373,64 @@ describe('Viewer', () => {
|
||||
|
||||
});
|
||||
|
||||
it('[C272813] Should be redirected to site when opening and closing a file in a site', () => {
|
||||
navigationBarPage.goToSite(site);
|
||||
viewerPage.checkDatatableHeaderIsDisplayed();
|
||||
describe('Display files via API', () => {
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
import { browser } from 'protractor';
|
||||
|
||||
import TestConfig = require('../../test.config');
|
||||
|
||||
import { LoginPage } from '../../pages/adf/loginPage';
|
||||
import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
|
||||
import { ViewerPage } from '../../pages/adf/viewerPage';
|
||||
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
|
||||
import DataTablePage = require('../../pages/adf/dataTablePage');
|
||||
|
||||
import resources = require('../../util/resources');
|
||||
|
||||
@@ -37,12 +37,19 @@ describe('Viewer - properties', () => {
|
||||
let viewerPage = new ViewerPage();
|
||||
let contentServicesPage = new ContentServicesPage();
|
||||
let loginPage = new LoginPage();
|
||||
let navigationBarPage = new NavigationBarPage();
|
||||
let dataTable = new DataTablePage();
|
||||
|
||||
let pngFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
'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) => {
|
||||
let uploadActions = new UploadActions();
|
||||
|
||||
@@ -60,6 +67,9 @@ describe('Viewer - properties', () => {
|
||||
let pngFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, pngFile.location, pngFile.name, '-my-');
|
||||
Object.assign(pngFile, pngFileUploaded.entry);
|
||||
|
||||
pngFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, fileForOverlay.location, fileForOverlay.name, '-my-');
|
||||
Object.assign(fileForOverlay, pngFileUploaded.entry);
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
|
||||
contentServicesPage.goToDocumentList();
|
||||
@@ -181,4 +191,24 @@ describe('Viewer - properties', () => {
|
||||
viewerPage.checkLeftSideBarButtonIsNotDisplayed();
|
||||
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();
|
||||
});
|
||||
});
|
||||
|
Reference in New Issue
Block a user