diff --git a/e2e/content-services/document-list/document-list-component.e2e.ts b/e2e/content-services/document-list/document-list-component.e2e.ts index 9c7ab8c723..04498ffde4 100644 --- a/e2e/content-services/document-list/document-list-component.e2e.ts +++ b/e2e/content-services/document-list/document-list-component.e2e.ts @@ -20,6 +20,7 @@ import { LoginPage } from '../../pages/adf/loginPage'; import { ContentServicesPage } from '../../pages/adf/contentServicesPage'; import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; import { AcsUserModel } from '../../models/ACS/acsUserModel'; +import { ViewerPage } from '../../pages/adf/viewerPage'; import TestConfig = require('../../test.config'); import resources = require('../../util/resources'); import { Util } from '../../util/util'; @@ -705,4 +706,35 @@ describe('Document List Component', () => { done(); }); }); + + describe('Column Template', () => { + + const file0BytesModel = new FileModel({ + 'name': resources.Files.ADF_DOCUMENTS.TXT_0B.file_name, + 'location': resources.Files.ADF_DOCUMENTS.TXT_0B.file_location + }); + + let file; + let viewer = new ViewerPage(); + + beforeAll(async (done) => { + acsUser = new AcsUserModel(); + 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); + file = await uploadActions.uploadFile(this.alfrescoJsApi, file0BytesModel.location, file0BytesModel.name, '-my-'); + + loginPage.loginToContentServicesUsingUserModel(acsUser); + contentServicesPage.goToDocumentList() + .waitForTableBody(); + done(); + }); + + it('[C291843] Should be able to navigate using nodes hyperlink when activated', () => { + contentServicesPage.enableHyperlinkNavigation() + .checkFileHyperlinkIsEnabled(file.entry.name) + .clickFileHyperlink(file.entry.name); + viewer.checkFileIsLoaded(); + }); + }); }); diff --git a/e2e/pages/adf/contentServicesPage.ts b/e2e/pages/adf/contentServicesPage.ts index 912a5f03e9..4c80bdfb3b 100644 --- a/e2e/pages/adf/contentServicesPage.ts +++ b/e2e/pages/adf/contentServicesPage.ts @@ -36,6 +36,7 @@ export class ContentServicesPage { currentFolder = element(by.css('div[class*="adf-breadcrumb-item adf-active"] div')); createFolderButton = element(by.css('button[data-automation-id="create-new-folder"]')); activeBreadcrumb = element(by.css('div[class*="active"]')); + tooltip = by.css('div[class*="--text adf-full-width"] span'); uploadFileButton = element(by.css('input[data-automation-id="upload-single-file"]')); uploadMultipleFileButton = element(by.css('input[data-automation-id="upload-multiple-files"]')); uploadFolderButton = element(by.css('input[data-automation-id="uploadFolder"]')); @@ -61,6 +62,26 @@ export class ContentServicesPage { searchInputElement = element(by.css('input[data-automation-id="content-node-selector-search-input"]')); shareNodeButton = element(by.cssContainingText('mat-icon', ' share ')); + clickFileHyperlink(fileName) { + let hyperlink = element(by.cssContainingText('adf-name-column[class*="adf-datatable-link"] span', fileName)); + Util.waitUntilElementIsClickable(hyperlink); + hyperlink.click(); + return this; + } + + checkFileHyperlinkIsEnabled(fileName) { + let hyperlink = element(by.cssContainingText('adf-name-column[class*="adf-datatable-link"] span', fileName)); + Util.waitUntilElementIsVisible(hyperlink); + return this; + } + + enableHyperlinkNavigation() { + let hyperlinkToggle = element(by.cssContainingText('.mat-slide-toggle-content', 'Hyperlink navigation')); + Util.waitUntilElementIsVisible(hyperlinkToggle); + hyperlinkToggle.click(); + return this; + } + getElementsDisplayedCreated() { let deferred = protractor.promise.defer(); let fileCreatedLocator = this.contentList.getColumnLocator('Created'); @@ -103,7 +124,9 @@ export class ContentServicesPage { getElementsDisplayedAuthor(alfrescoJsApi) { let deferred = protractor.promise.defer(); - this.nodeActions.getNodesDisplayed(alfrescoJsApi).then((nodes) => { + let idList = this.getElementsDisplayedId(); + let numberOfElements = this.numberOfResultsDisplayed(); + this.nodeActions.getNodesDisplayed(alfrescoJsApi, idList, numberOfElements).then((nodes) => { let initialList = []; nodes.forEach((item) => { @@ -226,6 +249,7 @@ export class ContentServicesPage { goToDocumentList() { this.clickOnContentServices(); this.checkAcsContainer(); + return this; } clickOnContentServices() { @@ -253,6 +277,10 @@ export class ContentServicesPage { return deferred.promise; } + getTooltip(content) { + return this.contentList.getRowByRowName(content).element(this.tooltip).getAttribute('title'); + } + getBreadcrumbTooltip(nodeName: string) { return element(by.css(`nav[data-automation-id="breadcrumb"] div[title="${nodeName}"]`)).getAttribute('title'); } diff --git a/e2e/pages/adf/viewerPage.ts b/e2e/pages/adf/viewerPage.ts index 44f951c459..1b9a8ba69f 100644 --- a/e2e/pages/adf/viewerPage.ts +++ b/e2e/pages/adf/viewerPage.ts @@ -122,10 +122,6 @@ export class ViewerPage { this.passwordInput.sendKeys(password); } - checkDatatableHeaderIsDisplayed() { - Util.waitUntilElementIsVisible(this.datatableHeader); - } - checkFileIsLoaded() { Util.waitUntilElementIsOnPage(this.pdfPageLoaded, 15000); } @@ -519,40 +515,14 @@ export class ViewerPage { return this; } - disableShare() { - this.formControllersPage.disableToggle(this.shareSwitch); - } - - enableShare() { - this.formControllersPage.enableToggle(this.shareSwitch); - } - disableAllowSidebar() { this.formControllersPage.disableToggle(this.allowSidebarSwitch); } - enableAllowSidebar() { - this.formControllersPage.enableToggle(this.allowSidebarSwitch); - } - disableAllowLeftSidebar() { this.formControllersPage.disableToggle(this.allowLeftSidebarSwitch); } - enableAllowLeftSidebar() { - this.formControllersPage.enableToggle(this.allowLeftSidebarSwitch); - } - - checkShareButtonDisplayed() { - Util.waitUntilElementIsVisible(this.shareButton); - return this; - } - - checkShareButtonIsNotDisplayed() { - Util.waitUntilElementIsNotVisible(this.shareButton); - return this; - } - checkMoreActionsDisplayed() { Util.waitUntilElementIsVisible(this.bugButton); Util.waitUntilElementIsVisible(this.timeButton);