Automation test for hyperlink navigation (#4121)

This commit is contained in:
Marouan Bentaleb
2019-01-10 10:09:11 +00:00
committed by Eugenio Romano
parent 78411fc365
commit 8431f0b1f1
3 changed files with 61 additions and 31 deletions

View File

@@ -20,6 +20,7 @@ import { LoginPage } from '../../pages/adf/loginPage';
import { ContentServicesPage } from '../../pages/adf/contentServicesPage'; import { ContentServicesPage } from '../../pages/adf/contentServicesPage';
import { NavigationBarPage } from '../../pages/adf/navigationBarPage'; import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
import { AcsUserModel } from '../../models/ACS/acsUserModel'; import { AcsUserModel } from '../../models/ACS/acsUserModel';
import { ViewerPage } from '../../pages/adf/viewerPage';
import TestConfig = require('../../test.config'); import TestConfig = require('../../test.config');
import resources = require('../../util/resources'); import resources = require('../../util/resources');
import { Util } from '../../util/util'; import { Util } from '../../util/util';
@@ -705,4 +706,35 @@ describe('Document List Component', () => {
done(); 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();
});
});
}); });

View File

@@ -36,6 +36,7 @@ export class ContentServicesPage {
currentFolder = element(by.css('div[class*="adf-breadcrumb-item adf-active"] div')); currentFolder = element(by.css('div[class*="adf-breadcrumb-item adf-active"] div'));
createFolderButton = element(by.css('button[data-automation-id="create-new-folder"]')); createFolderButton = element(by.css('button[data-automation-id="create-new-folder"]'));
activeBreadcrumb = element(by.css('div[class*="active"]')); 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"]')); uploadFileButton = element(by.css('input[data-automation-id="upload-single-file"]'));
uploadMultipleFileButton = element(by.css('input[data-automation-id="upload-multiple-files"]')); uploadMultipleFileButton = element(by.css('input[data-automation-id="upload-multiple-files"]'));
uploadFolderButton = element(by.css('input[data-automation-id="uploadFolder"]')); 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"]')); searchInputElement = element(by.css('input[data-automation-id="content-node-selector-search-input"]'));
shareNodeButton = element(by.cssContainingText('mat-icon', ' share ')); 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() { getElementsDisplayedCreated() {
let deferred = protractor.promise.defer(); let deferred = protractor.promise.defer();
let fileCreatedLocator = this.contentList.getColumnLocator('Created'); let fileCreatedLocator = this.contentList.getColumnLocator('Created');
@@ -103,7 +124,9 @@ export class ContentServicesPage {
getElementsDisplayedAuthor(alfrescoJsApi) { getElementsDisplayedAuthor(alfrescoJsApi) {
let deferred = protractor.promise.defer(); 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 = []; let initialList = [];
nodes.forEach((item) => { nodes.forEach((item) => {
@@ -226,6 +249,7 @@ export class ContentServicesPage {
goToDocumentList() { goToDocumentList() {
this.clickOnContentServices(); this.clickOnContentServices();
this.checkAcsContainer(); this.checkAcsContainer();
return this;
} }
clickOnContentServices() { clickOnContentServices() {
@@ -253,6 +277,10 @@ export class ContentServicesPage {
return deferred.promise; return deferred.promise;
} }
getTooltip(content) {
return this.contentList.getRowByRowName(content).element(this.tooltip).getAttribute('title');
}
getBreadcrumbTooltip(nodeName: string) { getBreadcrumbTooltip(nodeName: string) {
return element(by.css(`nav[data-automation-id="breadcrumb"] div[title="${nodeName}"]`)).getAttribute('title'); return element(by.css(`nav[data-automation-id="breadcrumb"] div[title="${nodeName}"]`)).getAttribute('title');
} }

View File

@@ -122,10 +122,6 @@ export class ViewerPage {
this.passwordInput.sendKeys(password); this.passwordInput.sendKeys(password);
} }
checkDatatableHeaderIsDisplayed() {
Util.waitUntilElementIsVisible(this.datatableHeader);
}
checkFileIsLoaded() { checkFileIsLoaded() {
Util.waitUntilElementIsOnPage(this.pdfPageLoaded, 15000); Util.waitUntilElementIsOnPage(this.pdfPageLoaded, 15000);
} }
@@ -519,40 +515,14 @@ export class ViewerPage {
return this; return this;
} }
disableShare() {
this.formControllersPage.disableToggle(this.shareSwitch);
}
enableShare() {
this.formControllersPage.enableToggle(this.shareSwitch);
}
disableAllowSidebar() { disableAllowSidebar() {
this.formControllersPage.disableToggle(this.allowSidebarSwitch); this.formControllersPage.disableToggle(this.allowSidebarSwitch);
} }
enableAllowSidebar() {
this.formControllersPage.enableToggle(this.allowSidebarSwitch);
}
disableAllowLeftSidebar() { disableAllowLeftSidebar() {
this.formControllersPage.disableToggle(this.allowLeftSidebarSwitch); 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() { checkMoreActionsDisplayed() {
Util.waitUntilElementIsVisible(this.bugButton); Util.waitUntilElementIsVisible(this.bugButton);
Util.waitUntilElementIsVisible(this.timeButton); Util.waitUntilElementIsVisible(this.timeButton);