From e721c877f24f87514dd6b3efb5c97d79e81924d1 Mon Sep 17 00:00:00 2001 From: marouanbentaleb <38426175+marouanbentaleb@users.noreply.github.com> Date: Tue, 17 Jul 2018 20:30:07 +0100 Subject: [PATCH] [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 --- e2e/pages/adf/viewerPage.js | 238 ++++++++++------- .../adf/allFileTypes/a_file_supported.docx | Bin 0 -> 12095 bytes e2e/util/resources.js | 12 +- e2e/viewer_content_services_component.e2e.ts | 243 ++++++++++-------- git | 0 .../components/imgViewer.component.html | 4 +- .../components/pdfViewer.component.html | 3 +- .../viewer/components/viewer.component.html | 26 +- 8 files changed, 308 insertions(+), 218 deletions(-) create mode 100644 e2e/resources/adf/allFileTypes/a_file_supported.docx create mode 100644 git diff --git a/e2e/pages/adf/viewerPage.js b/e2e/pages/adf/viewerPage.js index 0f6a4206dd..31ccae04de 100644 --- a/e2e/pages/adf/viewerPage.js +++ b/e2e/pages/adf/viewerPage.js @@ -16,46 +16,30 @@ */ var Util = require('../../util/util'); -var CardViewPage = require('./cardViewPage'); var ViewerToolbarPage = function () { - var closeButton = element(by.css("button[data-automation-id='toolbar-back']")); - var fileThumbnail = element(by.css("img[class='adf-viewer__mimeicon']")); + var closeButton = element(by.css("button[data-automation-id='adf-toolbar-back']")); var fileName = element(by.id('adf-viewer-display-name')); - var downloadButton = element(by.css("button[data-automation-id='toolbar-download'] > span > mat-icon")); - var infoButton = element(by.css("button[data-automation-id='toolbar-sidebar']")); - var infoSideBar = element(by.css("div[class='adf-info-drawer-layout-header']")); + var downloadButton = element(by.css("button[data-automation-id='adf-toolbar-download'] > span > mat-icon")); + var infoButton = element(by.css("button[data-automation-id='adf-toolbar-sidebar']")); var previousPageButton = element(by.id('viewer-previous-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 zoomOutButton = element(by.id('viewer-zoom-out-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 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 unsupportedFileContainer = element(by.cssContainingText('.label','Document preview could not be loaded')); var allPages = element.all(by.css("div[class='canvasWrapper'] > canvas")).first(); - var pageCanvas = element.all(by.css("div[class='canvasWrapper']")).first(); - - 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; - }; + var percentage = element(by.css("div[data-automation-id='adf-page-scale'")); this.viewFile = function (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(); }; + 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 () { Util.waitUntilElementIsVisible(closeButton); }; @@ -76,11 +77,6 @@ var ViewerToolbarPage = function () { Util.waitUntilElementIsVisible(infoButton); }; - this.clickCloseButton = function () { - Util.waitUntilElementIsVisible(closeButton); - closeButton.click(); - }; - this.checkFileThumbnailIsDisplayed = function () { Util.waitUntilElementIsVisible(fileThumbnail); }; @@ -90,74 +86,30 @@ var ViewerToolbarPage = function () { 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 () { Util.waitUntilElementIsVisible(previousPageButton); }; - this.clickPreviousPageButton = function () { - Util.waitUntilElementIsVisible(previousPageButton); - previousPageButton.click(); - }; - this.checkNextPageButtonIsDisplayed = function () { Util.waitUntilElementIsVisible(nextPageButton); }; - this.clickNextPageButton = function () { - Util.waitUntilElementIsVisible(nextPageButton); - nextPageButton.click(); - }; - this.checkZoomInButtonIsDisplayed = function () { Util.waitUntilElementIsVisible(zoomInButton); }; - this.clickZoomInButton = function () { - Util.waitUntilElementIsVisible(zoomInButton); - zoomInButton.click(); + this.checkZoomInButtonIsNotDisplayed = function () { + Util.waitUntilElementIsNotVisible(zoomInButton); }; this.checkZoomOutButtonIsDisplayed = function () { Util.waitUntilElementIsVisible(zoomOutButton); }; - this.clickZoomOutButton = function () { - Util.waitUntilElementIsVisible(zoomOutButton); - zoomOutButton.click(); - }; - this.checkScalePageButtonIsDisplayed = function () { Util.waitUntilElementIsVisible(scalePageButton); }; - this.clickScalePageButton = function () { - Util.waitUntilElementIsVisible(scalePageButton); - scalePageButton.click(); - }; - this.checkPageSelectorInputIsDisplayed = function (number) { Util.waitUntilElementIsVisible(pageSelectorInput); 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 () { Util.waitUntilElementIsVisible(imgContainer); }; @@ -184,10 +129,6 @@ var ViewerToolbarPage = function () { Util.waitUntilElementIsVisible(mediaContainer); }; - this.checkUnsupportedFileContainerIsDisplayed = function () { - Util.waitUntilElementIsVisible(unsupportedFileContainer); - }; - this.checkFileContent = function (pageNumber, text) { 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(); @@ -197,6 +138,123 @@ var ViewerToolbarPage = function () { Util.waitUntilElementIsVisible(textLayerLoaded); 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; diff --git a/e2e/resources/adf/allFileTypes/a_file_supported.docx b/e2e/resources/adf/allFileTypes/a_file_supported.docx new file mode 100644 index 0000000000000000000000000000000000000000..4aa4a73e6e20beceb9b81df02cf6df9a1678901d GIT binary patch literal 12095 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 { let viewerPage = new ViewerPage(); let contentServicesPage = new ContentServicesPage(); let loginPage = new LoginPage(); - - let defaultHeight; - let defaultWidth; - let zoomedInHeight; - let zoomedInWidth; - let scaledHeight; - let scaledWidth; - let zoomedOutHeight; - let zoomedOutWidth; + let zoom; 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({ 'location': resources.Files.ADF_DOCUMENTS.JPG.file_location, '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 }); - 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) => { let uploadActions = new UploadActions(); @@ -90,6 +78,9 @@ describe('Content Services Viewer', () => { let pdfFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFile.location, pdfFile.name, '-my-'); 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-'); Object.assign(jpgFile, jpgFileUploaded.entry); @@ -109,116 +100,127 @@ describe('Content Services Viewer', () => { done(); }); - // afterAll((done) => { - // NodesAPI.deleteContent(acsUser, pdfFile.getId(), () => { - // 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(); - // }); - // }); + /*afterAll((done) => { + NodesAPI.deleteContent(acsUser, pdfFile.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(); + viewerPage.viewFile(pdfFile.name); + viewerPage.checkFileContent('1', pdfFile.firstPageText); viewerPage.checkCloseButtonIsDisplayed(); - viewerPage.checkFileThumbnailIsDisplayed(); viewerPage.checkFileNameIsDisplayed(pdfFile.name); + viewerPage.checkFileThumbnailIsDisplayed(); viewerPage.checkDownloadButtonIsDisplayed(); + viewerPage.checkFullScreenButtonIsDisplayed(); viewerPage.checkInfoButtonIsDisplayed(); viewerPage.checkPreviousPageButtonIsDisplayed(); viewerPage.checkNextPageButtonIsDisplayed(); viewerPage.checkPageSelectorInputIsDisplayed('1'); + viewerPage.checkPercentageIsDisplayed(); viewerPage.checkZoomInButtonIsDisplayed(); viewerPage.checkZoomOutButtonIsDisplayed(); 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.checkFileContent('2', pdfFile.secondPageText); viewerPage.checkPageSelectorInputIsDisplayed('2'); + viewerPage.clickPreviousPageButton(); viewerPage.checkFileContent('1', pdfFile.firstPageText); viewerPage.checkPageSelectorInputIsDisplayed('1'); - viewerPage.enterPage(pdfFile.lastPageNumber); - viewerPage.checkFileContent(pdfFile.lastPageNumber, pdfFile.lastPageText); - viewerPage.checkPageSelectorInputIsDisplayed(pdfFile.lastPageNumber); - viewerPage.canvasHeight().then(function (value) { - defaultHeight = parseInt(value, 10); - }); - viewerPage.canvasWidth().then(function (value) { - defaultWidth = parseInt(value, 10); - }); + viewerPage.clearPageNumber(); + viewerPage.checkPageSelectorInputIsDisplayed(''); + + zoom = viewerPage.getZoom(); viewerPage.clickZoomInButton(); - viewerPage.canvasHeight().then(function (value) { - zoomedInHeight = parseInt(value, 10); - expect(zoomedInHeight).toBeGreaterThan(defaultHeight); - }); - viewerPage.canvasWidth().then(function (value) { - 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); - }); - }); + viewerPage.checkZoomedIn(zoom); + + zoom = viewerPage.getZoom(); + viewerPage.clickZoomOutButton(); + viewerPage.checkZoomedOut(zoom); - it('3. Use viewer toolbar', () => { - viewerPage.clickDownloadButton(); - viewerPage.clickInfoButton(); - viewerPage.checkInfoSideBarIsDisplayed(); - viewerPage.clickInfoButton(); - viewerPage.checkInfoSideBarIsNotDisplayed(); - expect(Util.fileExists(downloadedPdfFile, 10)).toBe(true); 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.clickInfoButton(); - viewerPage.checkInfoSideBarIsDisplayed(); - viewerPage.clickInfoButton(); - viewerPage.checkInfoSideBarIsNotDisplayed(); + viewerPage.checkImgContainerIsDisplayed(); + + viewerPage.checkFullScreenButtonIsDisplayed(); + viewerPage.clickFullScreenButton(); + + viewerPage.exitFullScreen(); + viewerPage.checkDownloadButtonIsDisplayed(); viewerPage.clickDownloadButton(); - viewerPage.checkFileThumbnailIsDisplayed(); - viewerPage.checkFileNameIsDisplayed(jpgFile.name); - expect(Util.fileExists(downloadedJpgFile, 10)).toBe(true); + 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.checkFileContent('1', pptFile.firstPageText); viewerPage.checkCloseButtonIsDisplayed(); @@ -235,32 +237,53 @@ describe('Content Services Viewer', () => { viewerPage.clickCloseButton(); }); - it('6. Open viewer for an unsupported file', () => { - viewerPage.viewFile(pagesFile.name); - viewerPage.clickInfoButton(); - viewerPage.checkInfoSideBarIsDisplayed(); - viewerPage.clickInfoButton(); - viewerPage.checkInfoSideBarIsNotDisplayed(); + it('[C260053] Should display first page, toolbar and pagination when opening a .docx file', () => { + contentServicesPage.checkAcsContainer(); + + viewerPage.viewFile(docxFile.name); + + viewerPage.checkFileContent('1', docxFile.firstPageText); + viewerPage.checkCloseButtonIsDisplayed(); viewerPage.checkFileThumbnailIsDisplayed(); + viewerPage.checkFileNameIsDisplayed(docxFile.name); viewerPage.checkDownloadButtonIsDisplayed(); - viewerPage.clickDownloadButton(); - expect(Util.fileExists(downloadedPagesFile, 10)).toBe(true); - viewerPage.checkFileNameIsDisplayed(pagesFile.name); + viewerPage.checkInfoButtonIsDisplayed(); + viewerPage.checkPreviousPageButtonIsDisplayed(); + viewerPage.checkNextPageButtonIsDisplayed(); + viewerPage.checkPageSelectorInputIsDisplayed('1'); + viewerPage.checkZoomInButtonIsDisplayed(); + viewerPage.checkZoomOutButtonIsDisplayed(); + viewerPage.checkScalePageButtonIsDisplayed(); 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.checkMediaPlayerContainerIsDisplayed(); - viewerPage.clickDownloadButton(); - expect(Util.fileExists(downloadedMp4File, 10)).toBe(true); + viewerPage.checkCloseButtonIsDisplayed(); viewerPage.checkFileThumbnailIsDisplayed(); viewerPage.checkFileNameIsDisplayed(mp4File.name); - viewerPage.clickInfoButton(); - viewerPage.checkInfoSideBarIsDisplayed(); - viewerPage.clickInfoButton(); - viewerPage.checkInfoSideBarIsNotDisplayed(); viewerPage.checkDownloadButtonIsDisplayed(); + viewerPage.checkInfoButtonIsDisplayed(); + viewerPage.checkFullScreenButtonIsNotDisplayed(); + + viewerPage.checkZoomInButtonIsNotDisplayed(); + viewerPage.clickCloseButton(); }); }); diff --git a/git b/git new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lib/core/viewer/components/imgViewer.component.html b/lib/core/viewer/components/imgViewer.component.html index 8a819b1561..d67291f40a 100644 --- a/lib/core/viewer/components/imgViewer.component.html +++ b/lib/core/viewer/components/imgViewer.component.html @@ -1,4 +1,4 @@ -
+
@@ -22,7 +22,7 @@ zoom_out -
+
{{ currentScaleText }}
diff --git a/lib/core/viewer/components/pdfViewer.component.html b/lib/core/viewer/components/pdfViewer.component.html index f4a0692a15..eab161b6b0 100644 --- a/lib/core/viewer/components/pdfViewer.component.html +++ b/lib/core/viewer/components/pdfViewer.component.html @@ -66,13 +66,14 @@ {{ 'ADF_VIEWER.PAGE_LABEL.SHOWING' | translate }} {{ 'ADF_VIEWER.PAGE_LABEL.OF' | translate }} {{ totalPages }}
-
+
{{ currentScaleText }}
diff --git a/lib/core/viewer/components/viewer.component.html b/lib/core/viewer/components/viewer.component.html index 5dce925adf..e1e42e29a1 100644 --- a/lib/core/viewer/components/viewer.component.html +++ b/lib/core/viewer/components/viewer.component.html @@ -11,7 +11,7 @@ - + {{ displayName }} @@ -61,7 +61,7 @@ *ngIf="allowDownload" mat-icon-button title="{{ 'ADF_VIEWER.ACTIONS.DOWNLOAD' | translate }}" - data-automation-id="toolbar-download" + data-automation-id="adf-toolbar-download" (click)="downloadContent()"> file_download @@ -70,7 +70,7 @@ *ngIf="allowPrint" mat-icon-button title="{{ 'ADF_VIEWER.ACTIONS.PRINT' | translate }}" - data-automation-id="toolbar-print" + data-automation-id="adf-toolbar-print" (click)="printContent()"> print @@ -79,7 +79,7 @@ *ngIf="allowShare" mat-icon-button title="{{ 'ADF_VIEWER.ACTIONS.SHARE' | translate }}" - data-automation-id="toolbar-share" + data-automation-id="adf-toolbar-share" (click)="shareContent()"> share @@ -88,7 +88,7 @@ *ngIf="viewerType !== 'media' && allowFullScreen" mat-icon-button title="{{ 'ADF_VIEWER.ACTIONS.FULLSCREEN' | translate }}" - data-automation-id="toolbar-fullscreen" + data-automation-id="adf-toolbar-fullscreen" (click)="enterFullScreen()"> fullscreen @@ -98,7 +98,7 @@ mat-icon-button [matMenuTriggerFor]="mnuMoreActions" title="{{ 'ADF_VIEWER.ACTIONS.MORE_ACTIONS' | translate }}" - data-automation-id="toolbar-more-actions"> + data-automation-id="adf-toolbar-more-actions"> more_vert @@ -112,7 +112,7 @@