mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2026-09-09 18:03:21 +00:00
[ADF-4232] Fix filePreviewPage methods to reach expectations (#4668)
* [ADF-4232] Fix filePreviewPage methods to reach expectations * [ADF-4232] Implement new methods * Fix word spelling * [ADF-4232] Fix e2e test and rebase * Rebase branch * [ADF-4232] add test for reset zoom check - remove un-reached expects from filePreviewPage * [ADF-4232] better naming - review changes * [ADF-4232] no sleep(s), more timeout * [ADF-4232] some code clean up * [ADF-4232] some code clean up * [ADF-4232] refactoring - renaming * [ADF-4232] refactoring * [ADF-4232] refactoring move expects to test - code review changes * [ADF-4232] remove unused methods - these already exist on viewerPage.ts * [ADF-4232] remove duplicated code - use viewerPage instead of filePreviewPage * [ADF-4232] reset to original timeout in afterAll
This commit is contained in:
committed by
Eugenio Romano
parent
7611268bd9
commit
b19646d201
@@ -1,171 +0,0 @@
|
||||
/*!
|
||||
* @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 { browser, by, element, protractor } from 'protractor';
|
||||
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
||||
|
||||
export class FilePreviewPage {
|
||||
|
||||
pdfTitleFromSearch = element(by.css(`span[id='adf-viewer-display-name']`));
|
||||
textLayer = element.all(by.css(`div[class='textLayer']`)).first();
|
||||
closeButton = element(by.css('button[data-automation-id="adf-toolbar-back"]'));
|
||||
|
||||
waitForElements() {
|
||||
BrowserVisibility.waitUntilElementIsVisible(element(by.css(`i[id='viewer-close-button']`)));
|
||||
}
|
||||
|
||||
viewFile(fileName) {
|
||||
BrowserVisibility.waitUntilElementIsVisible(element(by.cssContainingText(`div[data-automation-id="${fileName}"]`, fileName)));
|
||||
browser.actions().doubleClick(element(by.cssContainingText(`div[data-automation-id="${fileName}"]`, fileName))).perform();
|
||||
this.waitForElements();
|
||||
}
|
||||
|
||||
getPDFTitleFromSearch() {
|
||||
const deferred = protractor.promise.defer();
|
||||
BrowserVisibility.waitUntilElementIsVisible(this.pdfTitleFromSearch);
|
||||
BrowserVisibility.waitUntilElementIsVisible(this.textLayer);
|
||||
this.pdfTitleFromSearch.getText().then((result) => {
|
||||
deferred.fulfill(result);
|
||||
});
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
closePreviewWithButton() {
|
||||
BrowserActions.clickExecuteScript('button[data-automation-id="adf-toolbar-back"]');
|
||||
}
|
||||
|
||||
clickZoomIn() {
|
||||
const zoomInButton = element(by.css(`div[id='viewer-zoom-in-button']`));
|
||||
BrowserActions.click(zoomInButton);
|
||||
}
|
||||
|
||||
clickZoomOut() {
|
||||
const zoomOutButton = element(by.css(`div[id='viewer-zoom-out-button']`));
|
||||
BrowserActions.click(zoomOutButton);
|
||||
}
|
||||
|
||||
clickActualSize() {
|
||||
const actualSizeButton = element(by.css(`div[id='viewer-scale-page-button']`));
|
||||
BrowserActions.click(actualSizeButton);
|
||||
}
|
||||
|
||||
checkCanvasWidth() {
|
||||
return element.all(by.css(`div[class='canvasWrapper'] > canvas`)).first().getAttribute(`width`).then((width) => {
|
||||
return width;
|
||||
});
|
||||
}
|
||||
|
||||
checkCanvasHeight() {
|
||||
return element.all(by.css(`div[class='canvasWrapper'] > canvas`)).first().getAttribute(`height`).then((height) => {
|
||||
return height;
|
||||
});
|
||||
}
|
||||
|
||||
zoomIn() {
|
||||
const canvasLayer = element.all(by.css(`div[class='canvasWrapper'] > canvas`)).first();
|
||||
const textLayer = element(by.css(`div[id*='pageContainer'] div[class='textLayer'] > div`));
|
||||
|
||||
BrowserVisibility.waitUntilElementIsVisible(canvasLayer);
|
||||
BrowserVisibility.waitUntilElementIsVisible(textLayer);
|
||||
|
||||
let actualWidth,
|
||||
zoomedInWidth,
|
||||
actualHeight,
|
||||
zoomedInHeight;
|
||||
|
||||
this.checkCanvasWidth().then((width) => {
|
||||
actualWidth = width;
|
||||
if (actualWidth && zoomedInWidth) {
|
||||
expect(zoomedInWidth).toBeGreaterThan(actualWidth);
|
||||
}
|
||||
});
|
||||
|
||||
this.checkCanvasHeight().then((height) => {
|
||||
actualHeight = height;
|
||||
if (actualHeight && zoomedInHeight) {
|
||||
expect(zoomedInHeight).toBeGreaterThan(actualHeight);
|
||||
}
|
||||
});
|
||||
|
||||
this.clickZoomIn();
|
||||
|
||||
this.checkCanvasWidth().then((width) => {
|
||||
zoomedInWidth = width;
|
||||
if (actualWidth && zoomedInWidth) {
|
||||
expect(zoomedInWidth).toBeGreaterThan(actualWidth);
|
||||
}
|
||||
});
|
||||
|
||||
this.checkCanvasHeight().then((height) => {
|
||||
zoomedInHeight = height;
|
||||
if (actualHeight && zoomedInHeight) {
|
||||
expect(zoomedInHeight).toBeGreaterThan(actualHeight);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
actualSize() {
|
||||
const canvasLayer = element.all(by.css(`div[class='canvasWrapper'] > canvas`)).first();
|
||||
const textLayer = element(by.css(`div[id*='pageContainer'] div[class='textLayer'] > div`));
|
||||
|
||||
BrowserVisibility.waitUntilElementIsVisible(canvasLayer);
|
||||
BrowserVisibility.waitUntilElementIsVisible(textLayer);
|
||||
|
||||
let actualWidth,
|
||||
actualHeight,
|
||||
zoomedWidth,
|
||||
zoomedHeight,
|
||||
newWidth,
|
||||
newHeight;
|
||||
|
||||
this.checkCanvasWidth().then((width) => {
|
||||
actualWidth = width;
|
||||
});
|
||||
|
||||
this.checkCanvasHeight().then((height) => {
|
||||
actualHeight = height;
|
||||
});
|
||||
|
||||
this.clickZoomIn();
|
||||
|
||||
this.checkCanvasWidth().then((width) => {
|
||||
zoomedWidth = width;
|
||||
});
|
||||
|
||||
this.checkCanvasHeight().then((height) => {
|
||||
zoomedHeight = height;
|
||||
});
|
||||
|
||||
this.clickActualSize();
|
||||
|
||||
this.checkCanvasWidth().then((width) => {
|
||||
newWidth = width;
|
||||
if (actualWidth && zoomedWidth && newWidth) {
|
||||
expect(newWidth).toBeLessThan(zoomedWidth);
|
||||
expect(newWidth).toEqual(actualWidth);
|
||||
}
|
||||
});
|
||||
|
||||
this.checkCanvasHeight().then((height) => {
|
||||
newHeight = height;
|
||||
if (actualHeight && zoomedHeight && newHeight) {
|
||||
expect(newHeight).toBeLessThan(zoomedHeight);
|
||||
expect(newHeight).toEqual(actualHeight);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -63,6 +63,7 @@ export class ViewerPage {
|
||||
toolbar = element(by.id('adf-viewer-toolbar'));
|
||||
lastButton = element.all(by.css('#adf-viewer-toolbar mat-toolbar > button[data-automation-id*="adf-toolbar-"]')).last();
|
||||
goBackSwitch = element(by.id('adf-switch-goback'));
|
||||
canvasLayer = element.all(by.css('div[class="canvasWrapper"] > canvas')).first();
|
||||
|
||||
openWithSwitch = element(by.id('adf-switch-openwith'));
|
||||
openWith = element(by.id('adf-viewer-openwith'));
|
||||
@@ -120,6 +121,19 @@ export class ViewerPage {
|
||||
return BrowserActions.getText(this.percentage);
|
||||
}
|
||||
|
||||
getCanvasWidth() {
|
||||
return this.canvasLayer.getAttribute(`width`);
|
||||
}
|
||||
|
||||
getCanvasHeight() {
|
||||
return this.canvasLayer.getAttribute(`height`);
|
||||
}
|
||||
|
||||
getDisplayedFileName() {
|
||||
BrowserVisibility.waitUntilElementIsVisible(this.fileName);
|
||||
return this.fileName.getText();
|
||||
}
|
||||
|
||||
exitFullScreen() {
|
||||
const jsCode = 'document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen&&document.webkitExitFullscreen();';
|
||||
browser.executeScript(jsCode);
|
||||
@@ -263,7 +277,7 @@ export class ViewerPage {
|
||||
}
|
||||
|
||||
async checkFileContent(pageNumber, text) {
|
||||
const allPages = element.all(by.css('div[class="canvasWrapper"] > canvas')).first();
|
||||
const allPages = this.canvasLayer;
|
||||
const pageLoaded = element.all(by.css('div[data-page-number="' + pageNumber + '"][data-loaded="true"]')).first();
|
||||
const textLayerLoaded = element.all(by.css('div[data-page-number="' + pageNumber + '"] div[class="textLayer"]')).first();
|
||||
const specificText = element.all(by.cssContainingText('div[data-page-number="' + pageNumber + '"] div[class="textLayer"]', text)).first();
|
||||
@@ -402,6 +416,10 @@ export class ViewerPage {
|
||||
BrowserActions.click(this.zoomOutButton);
|
||||
}
|
||||
|
||||
clickActualSize() {
|
||||
BrowserActions.click(this.scalePageButton);
|
||||
}
|
||||
|
||||
clickFullScreenButton() {
|
||||
BrowserActions.click(this.fullScreenButton);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user