[ADF-1858] Automation tests for Viewer Component - Content Services (#3587)

* Automation tests for Viewer Component - Content Services

* Automation tests for Viewer component - Content Services

* Deleting alfresco-ng2-components.iml
This commit is contained in:
marouanbentaleb
2018-07-17 20:30:07 +01:00
committed by Eugenio Romano
parent 9901295e25
commit e721c877f2
8 changed files with 308 additions and 218 deletions

View File

@@ -16,46 +16,30 @@
*/ */
var Util = require('../../util/util'); var Util = require('../../util/util');
var CardViewPage = require('./cardViewPage');
var ViewerToolbarPage = function () { var ViewerToolbarPage = function () {
var closeButton = element(by.css("button[data-automation-id='toolbar-back']")); var closeButton = element(by.css("button[data-automation-id='adf-toolbar-back']"));
var fileThumbnail = element(by.css("img[class='adf-viewer__mimeicon']"));
var fileName = element(by.id('adf-viewer-display-name')); var fileName = element(by.id('adf-viewer-display-name'));
var downloadButton = element(by.css("button[data-automation-id='toolbar-download'] > span > mat-icon")); var downloadButton = element(by.css("button[data-automation-id='adf-toolbar-download'] > span > mat-icon"));
var infoButton = element(by.css("button[data-automation-id='toolbar-sidebar']")); var infoButton = element(by.css("button[data-automation-id='adf-toolbar-sidebar']"));
var infoSideBar = element(by.css("div[class='adf-info-drawer-layout-header']"));
var previousPageButton = element(by.id('viewer-previous-page-button')); var previousPageButton = element(by.id('viewer-previous-page-button'));
var nextPageButton = element(by.id('viewer-next-page-button')); var nextPageButton = element(by.id('viewer-next-page-button'));
var pageSelectorInput = element(by.css("div[class='adf-pdf-viewer__toolbar-page-selector'] input"));
var zoomInButton = element(by.id('viewer-zoom-in-button')); var zoomInButton = element(by.id('viewer-zoom-in-button'));
var zoomOutButton = element(by.id('viewer-zoom-out-button')); var zoomOutButton = element(by.id('viewer-zoom-out-button'));
var scalePageButton = element(by.id('viewer-scale-page-button')); var scalePageButton = element(by.id('viewer-scale-page-button'));
var imgContainer = element(by.id('viewer-image'));
var pdfContainer = element(by.id('viewer-pdf-container')); var pdfContainer = element(by.id('viewer-pdf-container'));
var fullScreenButton = element(by.css("button[data-automation-id='adf-toolbar-fullscreen']"));
var rotateLeft = element(by.css("button[id='viewer-rotate-left-button']"));
var rotateRight = element(by.css("button[id='viewer-rotate-right-button']"));
var scaleImg = element(by.css("button[id='viewer-reset-button']"));
var customBtn = element(by.css("data-automation-id='adf-toolbar-custom-btn'"));
var fileThumbnail = element(by.css("img[data-automation-id='adf-file-thumbnail']"));
var pageSelectorInput = element(by.css("input[data-automation-id='adf-page-selector']"));
var imgContainer = element(by.css("div[data-automation-id='adf-image-container']"));
var mediaContainer = element(by.css("adf-media-player[class='adf-media-player ng-star-inserted']")); var mediaContainer = element(by.css("adf-media-player[class='adf-media-player ng-star-inserted']"));
var unsupportedFileContainer = element(by.cssContainingText('.label','Document preview could not be loaded'));
var allPages = element.all(by.css("div[class='canvasWrapper'] > canvas")).first(); var allPages = element.all(by.css("div[class='canvasWrapper'] > canvas")).first();
var pageCanvas = element.all(by.css("div[class='canvasWrapper']")).first(); var percentage = element(by.css("div[data-automation-id='adf-page-scale'"));
this.canvasHeight = function () {
var deferred = protractor.promise.defer();
pageCanvas.getAttribute("style").then(function (value) {
var canvasHeight = value.split("height: ")[1].split("px")[0];
deferred.fulfill(canvasHeight);
});
return deferred.promise;
};
this.canvasWidth = function () {
var deferred = protractor.promise.defer();
pageCanvas.getAttribute("style").then(function (value) {
var canvasWidth = value.split("width: ")[1].split("px")[0];
deferred.fulfill(canvasWidth);
});
return deferred.promise;
};
this.viewFile = function (fileName) { this.viewFile = function (fileName) {
var fileView = element(by.xpath("//div[@class='document-list-container']//span[@title='" + fileName +"']")); var fileView = element(by.xpath("//div[@class='document-list-container']//span[@title='" + fileName +"']"));
@@ -64,6 +48,23 @@ var ViewerToolbarPage = function () {
browser.actions().sendKeys(protractor.Key.ENTER).perform(); browser.actions().sendKeys(protractor.Key.ENTER).perform();
}; };
this.clearPageNumber = function ()
{
Util.waitUntilElementIsVisible(pageSelectorInput);
pageSelectorInput.clear();
pageSelectorInput.sendKeys(protractor.Key.ENTER);
};
this.getZoom = function ()
{
return percentage.getText();
};
this.exitFullScreen = function () {
var jsCode = "document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen&&document.webkitExitFullscreen();";
browser.executeScript(jsCode);
};
this.checkCloseButtonIsDisplayed = function () { this.checkCloseButtonIsDisplayed = function () {
Util.waitUntilElementIsVisible(closeButton); Util.waitUntilElementIsVisible(closeButton);
}; };
@@ -76,11 +77,6 @@ var ViewerToolbarPage = function () {
Util.waitUntilElementIsVisible(infoButton); Util.waitUntilElementIsVisible(infoButton);
}; };
this.clickCloseButton = function () {
Util.waitUntilElementIsVisible(closeButton);
closeButton.click();
};
this.checkFileThumbnailIsDisplayed = function () { this.checkFileThumbnailIsDisplayed = function () {
Util.waitUntilElementIsVisible(fileThumbnail); Util.waitUntilElementIsVisible(fileThumbnail);
}; };
@@ -90,74 +86,30 @@ var ViewerToolbarPage = function () {
expect(fileName.getText()).toEqual(file); expect(fileName.getText()).toEqual(file);
}; };
this.clickDownloadButton = function () {
Util.waitUntilElementIsVisible(downloadButton);
downloadButton.click();
};
this.clickInfoButton = function () {
Util.waitUntilElementIsVisible(infoButton);
infoButton.click();
return new CardViewPage();
};
this.checkInfoSideBarIsNotDisplayed = function () {
Util.waitUntilElementIsNotVisible(infoSideBar);
};
this.checkInfoSideBarIsDisplayed = function () {
Util.waitUntilElementIsVisible(infoSideBar);
};
this.checkInfoSideBarIsNotDisplayed = function () {
Util.waitUntilElementIsNotOnPage(infoSideBar);
};
this.checkPreviousPageButtonIsDisplayed =function () { this.checkPreviousPageButtonIsDisplayed =function () {
Util.waitUntilElementIsVisible(previousPageButton); Util.waitUntilElementIsVisible(previousPageButton);
}; };
this.clickPreviousPageButton = function () {
Util.waitUntilElementIsVisible(previousPageButton);
previousPageButton.click();
};
this.checkNextPageButtonIsDisplayed = function () { this.checkNextPageButtonIsDisplayed = function () {
Util.waitUntilElementIsVisible(nextPageButton); Util.waitUntilElementIsVisible(nextPageButton);
}; };
this.clickNextPageButton = function () {
Util.waitUntilElementIsVisible(nextPageButton);
nextPageButton.click();
};
this.checkZoomInButtonIsDisplayed = function () { this.checkZoomInButtonIsDisplayed = function () {
Util.waitUntilElementIsVisible(zoomInButton); Util.waitUntilElementIsVisible(zoomInButton);
}; };
this.clickZoomInButton = function () { this.checkZoomInButtonIsNotDisplayed = function () {
Util.waitUntilElementIsVisible(zoomInButton); Util.waitUntilElementIsNotVisible(zoomInButton);
zoomInButton.click();
}; };
this.checkZoomOutButtonIsDisplayed = function () { this.checkZoomOutButtonIsDisplayed = function () {
Util.waitUntilElementIsVisible(zoomOutButton); Util.waitUntilElementIsVisible(zoomOutButton);
}; };
this.clickZoomOutButton = function () {
Util.waitUntilElementIsVisible(zoomOutButton);
zoomOutButton.click();
};
this.checkScalePageButtonIsDisplayed = function () { this.checkScalePageButtonIsDisplayed = function () {
Util.waitUntilElementIsVisible(scalePageButton); Util.waitUntilElementIsVisible(scalePageButton);
}; };
this.clickScalePageButton = function () {
Util.waitUntilElementIsVisible(scalePageButton);
scalePageButton.click();
};
this.checkPageSelectorInputIsDisplayed = function (number) { this.checkPageSelectorInputIsDisplayed = function (number) {
Util.waitUntilElementIsVisible(pageSelectorInput); Util.waitUntilElementIsVisible(pageSelectorInput);
pageSelectorInput.getAttribute('value').then(function (pageNumber) { pageSelectorInput.getAttribute('value').then(function (pageNumber) {
@@ -165,13 +117,6 @@ var ViewerToolbarPage = function () {
}) })
}; };
this.enterPage = function (number) {
Util.waitUntilElementIsVisible(pageSelectorInput);
pageSelectorInput.clear();
pageSelectorInput.sendKeys(number);
pageSelectorInput.sendKeys(protractor.Key.ENTER);
};
this.checkImgContainerIsDisplayed = function () { this.checkImgContainerIsDisplayed = function () {
Util.waitUntilElementIsVisible(imgContainer); Util.waitUntilElementIsVisible(imgContainer);
}; };
@@ -184,10 +129,6 @@ var ViewerToolbarPage = function () {
Util.waitUntilElementIsVisible(mediaContainer); Util.waitUntilElementIsVisible(mediaContainer);
}; };
this.checkUnsupportedFileContainerIsDisplayed = function () {
Util.waitUntilElementIsVisible(unsupportedFileContainer);
};
this.checkFileContent = function (pageNumber, text) { this.checkFileContent = function (pageNumber, text) {
var pageLoaded = element.all(by.css("div[data-page-number='" + pageNumber + "'][data-loaded='true']")).first(); var pageLoaded = element.all(by.css("div[data-page-number='" + pageNumber + "'][data-loaded='true']")).first();
var textLayerLoaded = element.all(by.css("div[data-page-number='" + pageNumber + "'] div[class='textLayer'] > div")).first(); var textLayerLoaded = element.all(by.css("div[data-page-number='" + pageNumber + "'] div[class='textLayer'] > div")).first();
@@ -197,6 +138,123 @@ var ViewerToolbarPage = function () {
Util.waitUntilElementIsVisible(textLayerLoaded); Util.waitUntilElementIsVisible(textLayerLoaded);
Util.waitUntilElementIsVisible(specificText); Util.waitUntilElementIsVisible(specificText);
}; };
this.checkFullScreenButtonIsDisplayed = function () {
Util.waitUntilElementIsVisible(fullScreenButton);
};
this.checkFullScreenButtonIsNotDisplayed = function () {
Util.waitUntilElementIsNotVisible(fullScreenButton);
};
this.checkPercentageIsDisplayed = function () {
Util.waitUntilElementIsVisible(percentage);
};
this.checkZoomedIn = function (zoom)
{
expect(percentage.getText()).toBeGreaterThan(zoom);
};
this.checkZoomedOut = function (zoom)
{
expect(percentage.getText()).toBeLessThan(zoom);
};
this.checkRotateLeftButtonIsDisplayed = function () {
Util.waitUntilElementIsVisible(rotateLeft);
};
this.checkRotateRightButtonIsDisplayed = function () {
Util.waitUntilElementIsVisible(rotateRight);
};
this.checkScaled = function (zoom)
{
expect(percentage.getText()).toEqual(zoom);
};
this.checkScaleImgButtonIsDisplayed = function () {
Util.waitUntilElementIsVisible(scaleImg);
};
this.checkRotation = function (text)
{
rotation = imgContainer.getAttribute('style');
expect(rotation).toEqual(text);
};
this.checkCustomBtnDisplayed = function ()
{
Util.waitUntilElementIsVisible(customBtn);
};
this.clickScaleImgButton = function ()
{
Util.waitUntilElementIsClickable(scaleImg);
scaleImg.click();
};
this.clickScalePdfButton = function ()
{
Util.waitUntilElementIsClickable(scalePageButton);
scalePageButton.click();
};
this.clickDownloadButton = function () {
Util.waitUntilElementIsVisible(downloadButton);
downloadButton.click();
};
this.clickCloseButton = function () {
Util.waitUntilElementIsVisible(closeButton);
closeButton.click();
};
this.clickPreviousPageButton = function () {
Util.waitUntilElementIsVisible(previousPageButton);
previousPageButton.click();
};
this.clickNextPageButton = function () {
Util.waitUntilElementIsVisible(nextPageButton);
nextPageButton.click();
};
this.clickZoomInButton = function () {
Util.waitUntilElementIsVisible(zoomInButton);
zoomInButton.click();
};
this.clickZoomOutButton = function () {
Util.waitUntilElementIsVisible(zoomOutButton);
zoomOutButton.click();
};
this.clickScalePageButton = function () {
Util.waitUntilElementIsVisible(scalePageButton);
scalePageButton.click();
};
this.clickFullScreenButton = function ()
{
Util.waitUntilElementIsClickable(fullScreenButton);
fullScreenButton.click();
};
this.clickRotateLeftButton = function ()
{
Util.waitUntilElementIsClickable(rotateLeft);
rotateLeft.click();
};
this.clickRotateRightButton = function ()
{
Util.waitUntilElementIsClickable(rotateRight);
rotateRight.click();
};
}; };
module.exports = ViewerToolbarPage; module.exports = ViewerToolbarPage;

Binary file not shown.

View File

@@ -129,6 +129,14 @@ exports.Files = {
file_location: "/resources/adf/allFileTypes/a_excel_file.xlsx", file_location: "/resources/adf/allFileTypes/a_excel_file.xlsx",
file_name: "a_excel_file.xlsx" file_name: "a_excel_file.xlsx"
}, },
DOCX_SUPPORTED: {
file_location: "/resources/adf/allFileTypes/a_file_supported.docx",
file_name: "a_file_supported.docx",
first_page_text: "A Journey into Test Frameworks",
second_page_text: "After looking into Spocks GitHub",
last_page_text: "and provide feedback. The main advantages being the readability of the te",
last_page_number: "8"
},
DOCX: { DOCX: {
file_location: "/resources/adf/allFileTypes/a_file_unsupported.docx", file_location: "/resources/adf/allFileTypes/a_file_unsupported.docx",
file_name: "a_file_unsupported.docx" file_name: "a_file_unsupported.docx"
@@ -197,7 +205,7 @@ exports.Files = {
INI:{ INI:{
file_location: "/resources/adf/allFileTypes/desktop.ini", file_location: "/resources/adf/allFileTypes/desktop.ini",
file_name: "desktop.ini" file_name: "desktop.ini"
}, }
}, },
PROFILE_IMAGES: { PROFILE_IMAGES: {
@@ -208,7 +216,7 @@ exports.Files = {
BPM: { BPM: {
file_location: "/resources/adf/activiti_profile_pic.png", file_location: "/resources/adf/activiti_profile_pic.png",
file_name: "activiti_profile_pic.png" file_name: "activiti_profile_pic.png"
}, }
} }
}; };

View File

@@ -15,7 +15,6 @@
* limitations under the License. * limitations under the License.
*/ */
import Util = require('./util/util');
import TestConfig = require('./test.config'); import TestConfig = require('./test.config');
import LoginPage = require('./pages/adf/loginPage'); import LoginPage = require('./pages/adf/loginPage');
@@ -24,7 +23,6 @@ import ViewerPage = require('./pages/adf/viewerPage');
import resources = require('./util/resources'); import resources = require('./util/resources');
import path = require('path');
import FileModel = require('./models/ACS/fileModel'); import FileModel = require('./models/ACS/fileModel');
import AcsUserModel = require('./models/ACS/acsUserModel'); import AcsUserModel = require('./models/ACS/acsUserModel');
@@ -37,17 +35,14 @@ describe('Content Services Viewer', () => {
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 zoom;
let defaultHeight;
let defaultWidth;
let zoomedInHeight;
let zoomedInWidth;
let scaledHeight;
let scaledWidth;
let zoomedOutHeight;
let zoomedOutWidth;
let pdfFile = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF.file_name }); let pdfFile = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF.file_name });
let docxFile = new FileModel({
'location': resources.Files.ADF_DOCUMENTS.DOCX_SUPPORTED.file_location,
'name': resources.Files.ADF_DOCUMENTS.DOCX_SUPPORTED.file_name,
'firstPageText': resources.Files.ADF_DOCUMENTS.DOCX_SUPPORTED.first_page_text
});
let jpgFile = new FileModel({ let jpgFile = new FileModel({
'location': resources.Files.ADF_DOCUMENTS.JPG.file_location, 'location': resources.Files.ADF_DOCUMENTS.JPG.file_location,
'name': resources.Files.ADF_DOCUMENTS.JPG.file_name 'name': resources.Files.ADF_DOCUMENTS.JPG.file_name
@@ -66,13 +61,6 @@ describe('Content Services Viewer', () => {
'firstPageText': resources.Files.ADF_DOCUMENTS.PPT.first_page_text 'firstPageText': resources.Files.ADF_DOCUMENTS.PPT.first_page_text
}); });
let downloadDir = path.join(__dirname, '/downloads');
let downloadedPdfFile = path.join(downloadDir, pdfFile.name);
let downloadedJpgFile = path.join(downloadDir, jpgFile.name);
let downloadedMp4File = path.join(downloadDir, mp4File.name);
let downloadedPagesFile = path.join(downloadDir, pagesFile.name);
beforeAll(async (done) => { beforeAll(async (done) => {
let uploadActions = new UploadActions(); let uploadActions = new UploadActions();
@@ -90,6 +78,9 @@ describe('Content Services Viewer', () => {
let pdfFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFile.location, pdfFile.name, '-my-'); let pdfFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFile.location, pdfFile.name, '-my-');
Object.assign(pdfFile, pdfFileUploaded.entry); Object.assign(pdfFile, pdfFileUploaded.entry);
let docxFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, docxFile.location, docxFile.name, '-my-');
Object.assign(docxFile, docxFileUploaded.entry);
let jpgFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, jpgFile.location, jpgFile.name, '-my-'); let jpgFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, jpgFile.location, jpgFile.name, '-my-');
Object.assign(jpgFile, jpgFileUploaded.entry); Object.assign(jpgFile, jpgFileUploaded.entry);
@@ -109,116 +100,127 @@ describe('Content Services Viewer', () => {
done(); done();
}); });
// afterAll((done) => { /*afterAll((done) => {
// NodesAPI.deleteContent(acsUser, pdfFile.getId(), () => { NodesAPI.deleteContent(acsUser, pdfFile.getId(), () => {
// done(); done();
// }); });
//
// NodesAPI.deleteContent(acsUser, jpgFile.getId(), () => {
// done();
// });
//
// NodesAPI.deleteContent(acsUser, mp4File.getId(), () => {
// done();
// });
//
// NodesAPI.deleteContent(acsUser, pagesFile.getId(), () => {
// done();
// });
//
// NodesAPI.deleteContent(acsUser, pptFile.getId(), () => {
// done();
// });
// });
it('1. Open viewer for a .pdf file', () => { NodesAPI.deleteContent(acsUser, jpgFile.getId(), () => {
done();
});
NodesAPI.deleteContent(acsUser, mp4File.getId(), () => {
done();
});
NodesAPI.deleteContent(acsUser, pagesFile.getId(), () => {
done();
});
NodesAPI.deleteContent(acsUser, pptFile.getId(), () => {
done();
});
});*/
it('[C260038] Should display first page, toolbar and pagination when opening a .pdf file', () => {
contentServicesPage.checkAcsContainer(); contentServicesPage.checkAcsContainer();
viewerPage.viewFile(pdfFile.name); viewerPage.viewFile(pdfFile.name);
viewerPage.checkFileContent('1', pdfFile.firstPageText); viewerPage.checkFileContent('1', pdfFile.firstPageText);
viewerPage.checkCloseButtonIsDisplayed(); viewerPage.checkCloseButtonIsDisplayed();
viewerPage.checkFileThumbnailIsDisplayed();
viewerPage.checkFileNameIsDisplayed(pdfFile.name); viewerPage.checkFileNameIsDisplayed(pdfFile.name);
viewerPage.checkFileThumbnailIsDisplayed();
viewerPage.checkDownloadButtonIsDisplayed(); viewerPage.checkDownloadButtonIsDisplayed();
viewerPage.checkFullScreenButtonIsDisplayed();
viewerPage.checkInfoButtonIsDisplayed(); viewerPage.checkInfoButtonIsDisplayed();
viewerPage.checkPreviousPageButtonIsDisplayed(); viewerPage.checkPreviousPageButtonIsDisplayed();
viewerPage.checkNextPageButtonIsDisplayed(); viewerPage.checkNextPageButtonIsDisplayed();
viewerPage.checkPageSelectorInputIsDisplayed('1'); viewerPage.checkPageSelectorInputIsDisplayed('1');
viewerPage.checkPercentageIsDisplayed();
viewerPage.checkZoomInButtonIsDisplayed(); viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkZoomOutButtonIsDisplayed(); viewerPage.checkZoomOutButtonIsDisplayed();
viewerPage.checkScalePageButtonIsDisplayed(); viewerPage.checkScalePageButtonIsDisplayed();
}); });
it('2. Use viewer pagination', () => { it('[C260040] Should be able to change pages and zoom when .pdf file is open', () => {
viewerPage.clickNextPageButton(); viewerPage.clickNextPageButton();
viewerPage.checkFileContent('2', pdfFile.secondPageText); viewerPage.checkFileContent('2', pdfFile.secondPageText);
viewerPage.checkPageSelectorInputIsDisplayed('2'); viewerPage.checkPageSelectorInputIsDisplayed('2');
viewerPage.clickPreviousPageButton(); viewerPage.clickPreviousPageButton();
viewerPage.checkFileContent('1', pdfFile.firstPageText); viewerPage.checkFileContent('1', pdfFile.firstPageText);
viewerPage.checkPageSelectorInputIsDisplayed('1'); viewerPage.checkPageSelectorInputIsDisplayed('1');
viewerPage.enterPage(pdfFile.lastPageNumber);
viewerPage.checkFileContent(pdfFile.lastPageNumber, pdfFile.lastPageText);
viewerPage.checkPageSelectorInputIsDisplayed(pdfFile.lastPageNumber);
viewerPage.canvasHeight().then(function (value) { viewerPage.clearPageNumber();
defaultHeight = parseInt(value, 10); viewerPage.checkPageSelectorInputIsDisplayed('');
});
viewerPage.canvasWidth().then(function (value) { zoom = viewerPage.getZoom();
defaultWidth = parseInt(value, 10);
});
viewerPage.clickZoomInButton(); viewerPage.clickZoomInButton();
viewerPage.canvasHeight().then(function (value) { viewerPage.checkZoomedIn(zoom);
zoomedInHeight = parseInt(value, 10);
expect(zoomedInHeight).toBeGreaterThan(defaultHeight); zoom = viewerPage.getZoom();
}); viewerPage.clickZoomOutButton();
viewerPage.canvasWidth().then(function (value) { viewerPage.checkZoomedOut(zoom);
zoomedInWidth = parseInt(value, 10);
expect(zoomedInWidth).toBeGreaterThan(defaultWidth);
});
viewerPage.clickScalePageButton();
viewerPage.canvasHeight().then(function (value) {
scaledHeight = parseInt(value, 10);
expect(scaledHeight).toEqual(defaultHeight);
});
viewerPage.canvasWidth().then(function (value) {
scaledWidth = parseInt(value, 10);
expect(scaledWidth).toEqual(defaultWidth);
});
viewerPage.clickZoomOutButton();
viewerPage.canvasHeight().then(function (value) {
zoomedOutHeight = parseInt(value, 10);
expect(zoomedOutHeight).toBeLessThan(defaultHeight);
});
viewerPage.canvasWidth().then(function (value) {
zoomedOutWidth = parseInt(value, 10);
expect(zoomedOutWidth).toBeLessThan(defaultWidth);
});
});
it('3. Use viewer toolbar', () => {
viewerPage.clickDownloadButton();
viewerPage.clickInfoButton();
viewerPage.checkInfoSideBarIsDisplayed();
viewerPage.clickInfoButton();
viewerPage.checkInfoSideBarIsNotDisplayed();
expect(Util.fileExists(downloadedPdfFile, 10)).toBe(true);
viewerPage.clickCloseButton(); viewerPage.clickCloseButton();
}); });
it('4. Open viewer for a .jpg file', () => { it('[C260042] Should be able to download, open full-screen and Info container from the Viewer', () => {
viewerPage.viewFile(jpgFile.name); viewerPage.viewFile(jpgFile.name);
viewerPage.clickInfoButton(); viewerPage.checkImgContainerIsDisplayed();
viewerPage.checkInfoSideBarIsDisplayed();
viewerPage.clickInfoButton(); viewerPage.checkFullScreenButtonIsDisplayed();
viewerPage.checkInfoSideBarIsNotDisplayed(); viewerPage.clickFullScreenButton();
viewerPage.exitFullScreen();
viewerPage.checkDownloadButtonIsDisplayed(); viewerPage.checkDownloadButtonIsDisplayed();
viewerPage.clickDownloadButton(); viewerPage.clickDownloadButton();
viewerPage.checkFileThumbnailIsDisplayed();
viewerPage.checkFileNameIsDisplayed(jpgFile.name);
expect(Util.fileExists(downloadedJpgFile, 10)).toBe(true);
viewerPage.clickCloseButton(); viewerPage.clickCloseButton();
}); });
it('5. Open viewer for a .ppt file converted to .pdf', () => { it('[C260052] Should display image, toolbar and pagination when opening a .jpg file', () => {
viewerPage.viewFile(jpgFile.name);
viewerPage.checkImgContainerIsDisplayed();
viewerPage.checkCloseButtonIsDisplayed();
viewerPage.checkFileNameIsDisplayed(jpgFile.name);
viewerPage.checkFileThumbnailIsDisplayed();
viewerPage.checkDownloadButtonIsDisplayed();
viewerPage.checkFullScreenButtonIsDisplayed();
viewerPage.checkInfoButtonIsDisplayed();
viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkZoomOutButtonIsDisplayed();
viewerPage.checkPercentageIsDisplayed();
viewerPage.checkRotateLeftButtonIsDisplayed();
viewerPage.checkRotateRightButtonIsDisplayed();
viewerPage.checkScaleImgButtonIsDisplayed();
});
it('[C260483] Should be able to zoom and rotate image when .jpg file is open', () => {
zoom = viewerPage.getZoom();
viewerPage.clickZoomInButton();
viewerPage.checkZoomedIn(zoom);
zoom = viewerPage.getZoom();
viewerPage.clickZoomOutButton();
viewerPage.checkZoomedOut(zoom);
viewerPage.clickRotateLeftButton();
viewerPage.checkRotation('transform: scale(1, 1) rotate(-90deg) translate(0px, 0px);');
viewerPage.clickScaleImgButton();
viewerPage.checkRotation('transform: scale(1, 1) rotate(0deg) translate(0px, 0px);');
viewerPage.clickRotateRightButton();
viewerPage.checkRotation('transform: scale(1, 1) rotate(90deg) translate(0px, 0px);');
viewerPage.clickCloseButton();
});
it('[C279922] Open viewer for a .ppt file', () => {
viewerPage.viewFile(pptFile.name); viewerPage.viewFile(pptFile.name);
viewerPage.checkFileContent('1', pptFile.firstPageText); viewerPage.checkFileContent('1', pptFile.firstPageText);
viewerPage.checkCloseButtonIsDisplayed(); viewerPage.checkCloseButtonIsDisplayed();
@@ -235,32 +237,53 @@ describe('Content Services Viewer', () => {
viewerPage.clickCloseButton(); viewerPage.clickCloseButton();
}); });
it('6. Open viewer for an unsupported file', () => { it('[C260053] Should display first page, toolbar and pagination when opening a .docx file', () => {
viewerPage.viewFile(pagesFile.name); contentServicesPage.checkAcsContainer();
viewerPage.clickInfoButton();
viewerPage.checkInfoSideBarIsDisplayed(); viewerPage.viewFile(docxFile.name);
viewerPage.clickInfoButton();
viewerPage.checkInfoSideBarIsNotDisplayed(); viewerPage.checkFileContent('1', docxFile.firstPageText);
viewerPage.checkCloseButtonIsDisplayed();
viewerPage.checkFileThumbnailIsDisplayed(); viewerPage.checkFileThumbnailIsDisplayed();
viewerPage.checkFileNameIsDisplayed(docxFile.name);
viewerPage.checkDownloadButtonIsDisplayed(); viewerPage.checkDownloadButtonIsDisplayed();
viewerPage.clickDownloadButton(); viewerPage.checkInfoButtonIsDisplayed();
expect(Util.fileExists(downloadedPagesFile, 10)).toBe(true); viewerPage.checkPreviousPageButtonIsDisplayed();
viewerPage.checkFileNameIsDisplayed(pagesFile.name); viewerPage.checkNextPageButtonIsDisplayed();
viewerPage.checkPageSelectorInputIsDisplayed('1');
viewerPage.checkZoomInButtonIsDisplayed();
viewerPage.checkZoomOutButtonIsDisplayed();
viewerPage.checkScalePageButtonIsDisplayed();
viewerPage.clickCloseButton(); viewerPage.clickCloseButton();
}); });
it('7. Open viewer for a .mp4 file', () => { it('[C260054] Should display "Preview couldn\'t be loaded" and viewer toolbar when opening an unsupported file', () => {
viewerPage.viewFile(pagesFile.name);
viewerPage.checkCloseButtonIsDisplayed();
viewerPage.checkFileNameIsDisplayed(pagesFile.name);
viewerPage.checkFileThumbnailIsDisplayed();
viewerPage.checkDownloadButtonIsDisplayed();
viewerPage.checkInfoButtonIsDisplayed();
viewerPage.checkZoomInButtonIsNotDisplayed();
viewerPage.clickCloseButton();
});
it('[C260056] Should display video and viewer toolbar when opening a media file', () => {
viewerPage.viewFile(mp4File.name); viewerPage.viewFile(mp4File.name);
viewerPage.checkMediaPlayerContainerIsDisplayed(); viewerPage.checkMediaPlayerContainerIsDisplayed();
viewerPage.clickDownloadButton(); viewerPage.checkCloseButtonIsDisplayed();
expect(Util.fileExists(downloadedMp4File, 10)).toBe(true);
viewerPage.checkFileThumbnailIsDisplayed(); viewerPage.checkFileThumbnailIsDisplayed();
viewerPage.checkFileNameIsDisplayed(mp4File.name); viewerPage.checkFileNameIsDisplayed(mp4File.name);
viewerPage.clickInfoButton();
viewerPage.checkInfoSideBarIsDisplayed();
viewerPage.clickInfoButton();
viewerPage.checkInfoSideBarIsNotDisplayed();
viewerPage.checkDownloadButtonIsDisplayed(); viewerPage.checkDownloadButtonIsDisplayed();
viewerPage.checkInfoButtonIsDisplayed();
viewerPage.checkFullScreenButtonIsNotDisplayed();
viewerPage.checkZoomInButtonIsNotDisplayed();
viewerPage.clickCloseButton(); viewerPage.clickCloseButton();
}); });
}); });

0
git Normal file
View File

View File

@@ -1,4 +1,4 @@
<div class="image-container" [ngStyle]="{ transform: transform }"> <div class="image-container" [ngStyle]="{ transform: transform }" data-automation-id="adf-image-container">
<img id="viewer-image" [src]="urlFile" [alt]="nameFile" [ngStyle]="{ 'cursor' : isDragged ? 'move': 'default' } " /> <img id="viewer-image" [src]="urlFile" [alt]="nameFile" [ngStyle]="{ 'cursor' : isDragged ? 'move': 'default' } " />
</div> </div>
@@ -22,7 +22,7 @@
<mat-icon>zoom_out</mat-icon> <mat-icon>zoom_out</mat-icon>
</button> </button>
<div class="adf-viewer__toolbar-page-scale"> <div class="adf-viewer__toolbar-page-scale" data-automation-id="adf-page-scale">
{{ currentScaleText }} {{ currentScaleText }}
</div> </div>

View File

@@ -66,13 +66,14 @@
<span>{{ 'ADF_VIEWER.PAGE_LABEL.SHOWING' | translate }}</span> <span>{{ 'ADF_VIEWER.PAGE_LABEL.SHOWING' | translate }}</span>
<input #page <input #page
type="text" type="text"
data-automation-id="adf-page-selector"
pattern="-?[0-9]*(\.[0-9]+)?" pattern="-?[0-9]*(\.[0-9]+)?"
value="{{ displayPage }}" value="{{ displayPage }}"
(keyup.enter)="inputPage(page.value)"> (keyup.enter)="inputPage(page.value)">
<span>{{ 'ADF_VIEWER.PAGE_LABEL.OF' | translate }} {{ totalPages }}</span> <span>{{ 'ADF_VIEWER.PAGE_LABEL.OF' | translate }} {{ totalPages }}</span>
</div> </div>
<div class="adf-viewer__toolbar-page-scale"> <div class="adf-viewer__toolbar-page-scale" data-automation-id="adf-page-scale">
{{ currentScaleText }} {{ currentScaleText }}
</div> </div>

View File

@@ -11,7 +11,7 @@
<adf-toolbar-title> <adf-toolbar-title>
<button *ngIf="allowGoBack" <button *ngIf="allowGoBack"
class="adf-viewer-close-button" class="adf-viewer-close-button"
data-automation-id="toolbar-back" data-automation-id="adf-toolbar-back"
mat-icon-button mat-icon-button
title="{{ 'ADF_VIEWER.ACTIONS.CLOSE' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.CLOSE' | translate }}"
(click)="onBackButtonClick()"> (click)="onBackButtonClick()">
@@ -22,17 +22,17 @@
<div fxFlex="1 1 auto" class="adf-viewer__file-title"> <div fxFlex="1 1 auto" class="adf-viewer__file-title">
<button <button
*ngIf="allowNavigate && canNavigateBefore" *ngIf="allowNavigate && canNavigateBefore"
data-automation-id="toolbar-pref-file" data-automation-id="adf-toolbar-pref-file"
mat-icon-button mat-icon-button
title="{{ 'ADF_VIEWER.ACTIONS.PREV_FILE' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.PREV_FILE' | translate }}"
(click)="onNavigateBeforeClick()"> (click)="onNavigateBeforeClick()">
<mat-icon>navigate_before</mat-icon> <mat-icon>navigate_before</mat-icon>
</button> </button>
<img class="adf-viewer__mimeicon" [src]="mimeType | adfMimeTypeIcon"> <img class="adf-viewer__mimeicon" [src]="mimeType | adfMimeTypeIcon " data-automation-id="adf-file-thumbnail">
<span class="adf-viewer__display-name" id="adf-viewer-display-name">{{ displayName }}</span> <span class="adf-viewer__display-name" id="adf-viewer-display-name">{{ displayName }}</span>
<button <button
*ngIf="allowNavigate && canNavigateNext" *ngIf="allowNavigate && canNavigateNext"
data-automation-id="toolbar-next-file" data-automation-id="adf-toolbar-next-file"
mat-icon-button mat-icon-button
title="{{ 'ADF_VIEWER.ACTIONS.NEXT_FILE' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.NEXT_FILE' | translate }}"
(click)="onNavigateNextClick()"> (click)="onNavigateNextClick()">
@@ -42,11 +42,11 @@
<ng-content select="adf-viewer-toolbar-actions"></ng-content> <ng-content select="adf-viewer-toolbar-actions"></ng-content>
<ng-container *ngIf="mnuOpenWith"> <ng-container *ngIf="mnuOpenWith" data-automation-id='adf-toolbar-custom-btn'>
<button <button
mat-button mat-button
[matMenuTriggerFor]="mnuOpenWith" [matMenuTriggerFor]="mnuOpenWith"
data-automation-id="toolbar-open-with"> data-automation-id="adf-toolbar-open-with">
<span>{{ 'ADF_VIEWER.ACTIONS.OPEN_WITH' | translate }}</span> <span>{{ 'ADF_VIEWER.ACTIONS.OPEN_WITH' | translate }}</span>
<mat-icon>arrow_drop_down</mat-icon> <mat-icon>arrow_drop_down</mat-icon>
</button> </button>
@@ -61,7 +61,7 @@
*ngIf="allowDownload" *ngIf="allowDownload"
mat-icon-button mat-icon-button
title="{{ 'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate }}"
data-automation-id="toolbar-download" data-automation-id="adf-toolbar-download"
(click)="downloadContent()"> (click)="downloadContent()">
<mat-icon>file_download</mat-icon> <mat-icon>file_download</mat-icon>
</button> </button>
@@ -70,7 +70,7 @@
*ngIf="allowPrint" *ngIf="allowPrint"
mat-icon-button mat-icon-button
title="{{ 'ADF_VIEWER.ACTIONS.PRINT' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.PRINT' | translate }}"
data-automation-id="toolbar-print" data-automation-id="adf-toolbar-print"
(click)="printContent()"> (click)="printContent()">
<mat-icon>print</mat-icon> <mat-icon>print</mat-icon>
</button> </button>
@@ -79,7 +79,7 @@
*ngIf="allowShare" *ngIf="allowShare"
mat-icon-button mat-icon-button
title="{{ 'ADF_VIEWER.ACTIONS.SHARE' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.SHARE' | translate }}"
data-automation-id="toolbar-share" data-automation-id="adf-toolbar-share"
(click)="shareContent()"> (click)="shareContent()">
<mat-icon>share</mat-icon> <mat-icon>share</mat-icon>
</button> </button>
@@ -88,7 +88,7 @@
*ngIf="viewerType !== 'media' && allowFullScreen" *ngIf="viewerType !== 'media' && allowFullScreen"
mat-icon-button mat-icon-button
title="{{ 'ADF_VIEWER.ACTIONS.FULLSCREEN' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.FULLSCREEN' | translate }}"
data-automation-id="toolbar-fullscreen" data-automation-id="adf-toolbar-fullscreen"
(click)="enterFullScreen()"> (click)="enterFullScreen()">
<mat-icon>fullscreen</mat-icon> <mat-icon>fullscreen</mat-icon>
</button> </button>
@@ -98,7 +98,7 @@
mat-icon-button mat-icon-button
[matMenuTriggerFor]="mnuMoreActions" [matMenuTriggerFor]="mnuMoreActions"
title="{{ 'ADF_VIEWER.ACTIONS.MORE_ACTIONS' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.MORE_ACTIONS' | translate }}"
data-automation-id="toolbar-more-actions"> data-automation-id="adf-toolbar-more-actions">
<mat-icon>more_vert</mat-icon> <mat-icon>more_vert</mat-icon>
</button> </button>
<mat-menu #mnuMoreActions="matMenu" [overlapTrigger]="false"> <mat-menu #mnuMoreActions="matMenu" [overlapTrigger]="false">
@@ -112,7 +112,7 @@
<button <button
mat-icon-button mat-icon-button
title="{{ 'ADF_VIEWER.ACTIONS.INFO' | translate }}" title="{{ 'ADF_VIEWER.ACTIONS.INFO' | translate }}"
data-automation-id="toolbar-sidebar" data-automation-id="adf-toolbar-sidebar"
[color]="showSidebar ? 'accent' : 'default'" [color]="showSidebar ? 'accent' : 'default'"
(click)="toggleSidebar($event)"> (click)="toggleSidebar($event)">
<mat-icon>info_outline</mat-icon> <mat-icon>info_outline</mat-icon>
@@ -161,7 +161,7 @@
</ng-container> </ng-container>
<ng-container *ngSwitchCase="'media'"> <ng-container *ngSwitchCase="'media'">
<adf-media-player [urlFile]="urlFileContent" [mimeType]="mimeType" [blobFile]="blobFile" [nameFile]="displayName"></adf-media-player> <adf-media-player id="adf-mdedia-player" [urlFile]="urlFileContent" [mimeType]="mimeType" [blobFile]="blobFile" [nameFile]="displayName"></adf-media-player>
</ng-container> </ng-container>
<ng-container *ngSwitchCase="'text'"> <ng-container *ngSwitchCase="'text'">