mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-12 17:04:57 +00:00
[ADF-3336] added more tests for Document list component (#3635)
* [ADF-3336] start adding test for documentlist * [ADF-3336] fixed test for permission message * [ADF-3336] start adding test custom column type * [ADF-3336] - added documentlist tests - PART I * [ADF-3336] removed fdescribe * [ADF-3336] fixed error on files component * [ADF-3336] - unified all the diverging tests into one file * [ADF-3336] fixed label for test * [ADF-3336] removed fdescribe * [ADF-3336] added sorting tests and some fix * [ADF-3336] added other automations * [ADF-3336] stabilising some flaky tests * [ADF-3336] added line height check * [ADF-3336] Test that needs to be fixed * [ADF-3336] commented failing search tests * [ADF-3336] removed locator from test and added to page object * ] [ADF-3336] rebased after last changes on development * [ADF - 3336] added more test and actions for the test * [ADF-3336] reenabled disabled tests * [ADF-3336] reenabled disabled tests * [ADF-3336] reenabled disabled tests * [ADF-3336] reenabling disabled tests * [ADF-3336] fixing process service integration tests * [ADF-3336] removed comments and skipped two tests * [ADF-3336] added thumbnails tests * [ADF-3336] added tooltip documentlist tests * [ADF-3336] added tooltip tests * [ADF-3336] added gallery view tests * [ADF-3336] removed comment * [ADF-3336] fixed selectors and check for document list test
This commit is contained in:
parent
ca62616936
commit
05da97d3b9
@ -68,6 +68,7 @@
|
||||
<div fxFlex="0 0 auto" class="adf-document-action-buttons" fxShow fxHide.lt-sm="true">
|
||||
<button
|
||||
mat-icon-button
|
||||
data-automation-id="document-list-grid-view"
|
||||
title="{{ 'DOCUMENT_LIST.TOOLBAR.CARDVIEW' | translate }}"
|
||||
(click)="toogleGalleryView()">
|
||||
<mat-icon *ngIf="displayMode === 'list'" matTooltip="{{ 'DOCUMENT_LIST.TOOLBAR.CARDVIEW' | translate }}">view_comfy</mat-icon>
|
||||
@ -493,7 +494,7 @@
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<mat-slide-toggle [color]="'primary'" (click)="toggleThumbnails()" >{{'DOCUMENT_LIST.THUMBNAILS' |
|
||||
<mat-slide-toggle [color]="'primary'" (click)="toggleThumbnails()" id="enableThumbnails">{{'DOCUMENT_LIST.THUMBNAILS' |
|
||||
translate}}
|
||||
</mat-slide-toggle>
|
||||
</section>
|
||||
|
@ -16,7 +16,8 @@ export class UploadActions {
|
||||
null,
|
||||
{
|
||||
'name': fileName,
|
||||
'nodeType': 'cm:content'
|
||||
'nodeType': 'cm:content',
|
||||
'renditions': 'doclib'
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -1,452 +0,0 @@
|
||||
/*!
|
||||
* @license
|
||||
* Copyright 2016 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 LoginPage = require('../pages/adf/loginPage');
|
||||
import ContentServicesPage = require('../pages/adf/contentServicesPage');
|
||||
import NavigationBarPage = require('../pages/adf/navigationBarPage');
|
||||
import AcsUserModel = require('../models/ACS/acsUserModel');
|
||||
import TestConfig = require('../test.config');
|
||||
import resources = require('../util/resources');
|
||||
import Util = require('../util/util');
|
||||
import AlfrescoApi = require('alfresco-js-api-node');
|
||||
import { UploadActions } from '../actions/ACS/upload.actions';
|
||||
import ErrorPage = require('../pages/adf/documentListErrorPage');
|
||||
import FileModel = require('../models/ACS/fileModel');
|
||||
import moment from 'moment-es6';
|
||||
import { browser } from '../../node_modules/protractor';
|
||||
|
||||
describe('Document List Component', () => {
|
||||
|
||||
let loginPage = new LoginPage();
|
||||
let contentServicesPage = new ContentServicesPage();
|
||||
let navBar = new NavigationBarPage();
|
||||
let errorPage = new ErrorPage();
|
||||
let privateSite;
|
||||
let uploadedFolder, uploadedFolderExtra;
|
||||
let uploadActions = new UploadActions();
|
||||
let acsUser = null;
|
||||
let testFileNode, pdfBFileNode;
|
||||
|
||||
beforeAll(() => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(async (done) => {
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
if (uploadedFolder) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, uploadedFolder.entry.id);
|
||||
uploadedFolder = null;
|
||||
}
|
||||
if (uploadedFolderExtra) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, uploadedFolderExtra.entry.id);
|
||||
uploadedFolderExtra = null;
|
||||
}
|
||||
if (testFileNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, testFileNode.entry.id);
|
||||
testFileNode = null;
|
||||
}
|
||||
if (pdfBFileNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, pdfBFileNode.entry.id);
|
||||
pdfBFileNode = null;
|
||||
}
|
||||
done();
|
||||
});
|
||||
|
||||
describe('Permission Message', async () => {
|
||||
|
||||
beforeAll(async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
let siteName = `PRIVATE_TEST_SITE_${Util.generateRandomString(5)}`;
|
||||
let folderName = `MEESEEKS_${Util.generateRandomString(5)}`;
|
||||
let privateSiteBody = { visibility: 'PRIVATE' , title: siteName};
|
||||
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
|
||||
privateSite = await this.alfrescoJsApi.core.sitesApi.createSite(privateSiteBody);
|
||||
|
||||
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, privateSite.entry.guid);
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C217334] - Error message displayed without permissions', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
||||
expect(errorPage.getErrorCode()).toBe('403');
|
||||
expect(errorPage.getErrorDescription()).toBe('You\'re not allowed access to this resource on the server.');
|
||||
});
|
||||
|
||||
xit('[C279924] - Custom error message is displayed', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.enableCustomPermissionMessage();
|
||||
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
||||
expect(errorPage.getErrorCode()).toBe('Cris you don\'t have permissions');
|
||||
});
|
||||
|
||||
it('[C279925] - Message is translated', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
navBar.openLanguageMenu();
|
||||
navBar.chooseLanguage('Italian');
|
||||
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
||||
expect(errorPage.getErrorDescription()).toBe('Accesso alla risorsa sul server non consentito.');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('Custom Column', () => {
|
||||
|
||||
let folderName;
|
||||
let pdfFileModel = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF.file_name });
|
||||
let docxFileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.DOCX.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.DOCX.file_location
|
||||
});
|
||||
let timeAgoFileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
let mediumFileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PDF_B.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.PDF_B.file_location
|
||||
});
|
||||
|
||||
let pdfUploadedNode, docxUploadedNode, timeAgoUploadedNode, mediumDateUploadedNode;
|
||||
|
||||
beforeAll(async (done) => {
|
||||
|
||||
acsUser = new AcsUserModel();
|
||||
|
||||
folderName = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
|
||||
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);
|
||||
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||
pdfUploadedNode = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFileModel.location, pdfFileModel.name, '-my-');
|
||||
docxUploadedNode = await uploadActions.uploadFile(this.alfrescoJsApi, docxFileModel.location, docxFileModel.name, '-my-');
|
||||
done();
|
||||
});
|
||||
|
||||
afterAll(async (done) => {
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
|
||||
if (pdfUploadedNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, pdfUploadedNode.entry.id);
|
||||
}
|
||||
if (docxUploadedNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, docxUploadedNode.entry.id);
|
||||
}
|
||||
if (timeAgoUploadedNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, timeAgoUploadedNode.entry.id);
|
||||
}
|
||||
if (mediumDateUploadedNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, mediumDateUploadedNode.entry.id);
|
||||
}
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C279926] - Checks that only the files and folders of the users are showed', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkContentIsDisplayed(folderName);
|
||||
contentServicesPage.checkContentIsDisplayed(pdfFileModel.name);
|
||||
contentServicesPage.checkContentIsDisplayed(docxFileModel.name);
|
||||
expect(contentServicesPage.getDocumentListRowNumber()).toBe(4);
|
||||
});
|
||||
|
||||
it('[C279927] - All columns are showed', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkColumnNameHeader();
|
||||
contentServicesPage.checkColumnSizeHeader();
|
||||
contentServicesPage.checkColumnCreatedByHeader();
|
||||
contentServicesPage.checkColumnCreatedHeader();
|
||||
});
|
||||
|
||||
it('[C279928] - The date is showed with timeAgo', async (done) => {
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
timeAgoUploadedNode = await uploadActions.uploadFile(this.alfrescoJsApi, timeAgoFileModel.location, timeAgoFileModel.name, '-my-');
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
let dateValue = contentServicesPage.getColumnValueForRow(timeAgoFileModel.name, 'Created');
|
||||
expect(dateValue).toBe('a few seconds ago');
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C279929] - The date is showed with date type', async (done) => {
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
mediumDateUploadedNode = await uploadActions.uploadFile(this.alfrescoJsApi, mediumFileModel.location, mediumFileModel.name, '-my-');
|
||||
let createdDate = moment(mediumDateUploadedNode.createdAt).format('ll');
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.enableMediumTimeFormat();
|
||||
let dateValue = contentServicesPage.getColumnValueForRow(mediumFileModel.name, 'Created');
|
||||
expect(dateValue).toContain(createdDate);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Column Sorting', () => {
|
||||
|
||||
let fakeFileA = new FileModel({
|
||||
'name': 'A',
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
|
||||
let fakeFileB = new FileModel({
|
||||
'name': 'B',
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
|
||||
let fakeFileC = new FileModel({
|
||||
'name': 'C',
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
|
||||
|
||||
let fileANode, fileBNode, fileCNode;
|
||||
|
||||
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);
|
||||
fileANode = await uploadActions.uploadFile(this.alfrescoJsApi, fakeFileA.location, fakeFileA.name, '-my-');
|
||||
fileBNode = await uploadActions.uploadFile(this.alfrescoJsApi, fakeFileB.location, fakeFileB.name, '-my-');
|
||||
fileCNode = await uploadActions.uploadFile(this.alfrescoJsApi, fakeFileC.location, fakeFileC.name, '-my-');
|
||||
done();
|
||||
});
|
||||
|
||||
afterAll(async (done) => {
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
if (fileANode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileANode.entry.id);
|
||||
}
|
||||
if (fileBNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileBNode.entry.id);
|
||||
}
|
||||
if (fileCNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileCNode.entry.id);
|
||||
}
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C260112] - Sorting ascending by name', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.sortAndCheckListIsOrderedByName('asc');
|
||||
});
|
||||
|
||||
it('[C272770] - Sorting descending by name', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.sortAndCheckListIsOrderedByName('desc');
|
||||
});
|
||||
|
||||
it('[C272771] - Sorting ascending by author', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.sortAndCheckListIsOrderedByAuthor('asc');
|
||||
});
|
||||
|
||||
it('[C272772] - Sorting descending by author', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.sortAndCheckListIsOrderedByAuthor('desc');
|
||||
});
|
||||
|
||||
it('[C272773] - Sorting ascending by created date', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.sortAndCheckListIsOrderedByCreated('asc');
|
||||
});
|
||||
|
||||
it('[C272774] - Sorting descending by created date', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.sortAndCheckListIsOrderedByCreated('desc');
|
||||
});
|
||||
});
|
||||
|
||||
it('[C260121] - should show the spinner on loading', async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.clickOnContentServices();
|
||||
contentServicesPage.checkSpinnerIsShowed();
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C279959] - Empty Folder state is displayed for new folders', async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
|
||||
let folderName = 'BANANA';
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.createNewFolder(folderName);
|
||||
contentServicesPage.navigateToFolder(folderName);
|
||||
contentServicesPage.checkEmptyFolderTextToBe('This folder is empty');
|
||||
contentServicesPage.checkEmptyFolderImageUrlToContain('/assets/images/empty_doc_lib.svg');
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C272775] - File can be uploaded in a new created folder', async (done) => {
|
||||
let testFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
acsUser = new AcsUserModel();
|
||||
let folderName = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
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);
|
||||
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkContentIsDisplayed(uploadedFolder.entry.name);
|
||||
contentServicesPage.navigateToFolder(uploadedFolder.entry.name);
|
||||
contentServicesPage.uploadFile(testFile.location);
|
||||
contentServicesPage.checkContentIsDisplayed(testFile.name);
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C261997] - Recent Files empty', async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.clickOnContentServices();
|
||||
contentServicesPage.checkRecentFileToBeShowed();
|
||||
let icon = await contentServicesPage.getRecentFileIcon();
|
||||
expect(icon).toBe('history');
|
||||
contentServicesPage.expandRecentFiles();
|
||||
contentServicesPage.checkEmptyRecentFileIsDisplayed();
|
||||
contentServicesPage.closeRecentFiles();
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C268119] - "ygj" letters rendering in document list', async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
let folderName = 'ggggggjjjjjjjjjjjjyyyyyy';
|
||||
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);
|
||||
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.clickOnContentServices();
|
||||
let lineHeight = await contentServicesPage.getStyleValueForRowText(folderName, 'line-height');
|
||||
let fontSize = await contentServicesPage.getStyleValueForRowText(folderName, 'font-size');
|
||||
let actualFontValue = (parseInt(fontSize, 10) * 1.12).toFixed(2);
|
||||
expect(lineHeight).toBe(actualFontValue + 'px');
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C279970] - Custom column - isLocked field is showed for folders', async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
let folderNameA = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
let folderNameB = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
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);
|
||||
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderNameA, '-my-');
|
||||
uploadedFolderExtra = await uploadActions.uploadFolder(this.alfrescoJsApi, folderNameB, '-my-');
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkContentIsDisplayed(folderNameA);
|
||||
contentServicesPage.checkContentIsDisplayed(folderNameB);
|
||||
contentServicesPage.checkLockIsDislpayedForElement(folderNameA);
|
||||
contentServicesPage.checkLockIsDislpayedForElement(folderNameB);
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C269086] - Custom column - IsLocked field is showed for files', async (done) => {
|
||||
let testFileA = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
let testFileB = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PDF_B.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.PDF_B.file_location
|
||||
});
|
||||
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);
|
||||
testFileNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFileA.location, testFileA.name, '-my-');
|
||||
pdfBFileNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFileB.location, testFileB.name, '-my-');
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkContentIsDisplayed(testFileA.name);
|
||||
contentServicesPage.checkContentIsDisplayed(testFileB.name);
|
||||
contentServicesPage.checkLockIsDislpayedForElement(testFileA.name);
|
||||
contentServicesPage.checkLockIsDislpayedForElement(testFileB.name);
|
||||
done();
|
||||
});
|
||||
|
||||
describe('Once uploaded 20 folders', () => {
|
||||
|
||||
let folderCreated;
|
||||
|
||||
beforeAll(async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
folderCreated = [];
|
||||
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);
|
||||
let folderName = '';
|
||||
let folder = null;
|
||||
for (let i = 0; i < 20; i++) {
|
||||
folderName = `MEESEEKS_000${i}`;
|
||||
folder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||
folderCreated.push(folder);
|
||||
}
|
||||
done();
|
||||
});
|
||||
|
||||
afterAll(async (done) => {
|
||||
Promise.all(folderCreated.map((folder) =>
|
||||
uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, folder.entry.id)
|
||||
)).then(
|
||||
done()
|
||||
);
|
||||
});
|
||||
|
||||
it('[C277093] - Sorting files with Items per page set to default', async (done) => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkListIsSortedByNameColumn('asc');
|
||||
done();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
@ -17,167 +17,681 @@
|
||||
|
||||
import LoginPage = require('../pages/adf/loginPage');
|
||||
import ContentServicesPage = require('../pages/adf/contentServicesPage');
|
||||
|
||||
import NavigationBarPage = require('../pages/adf/navigationBarPage');
|
||||
import AcsUserModel = require('../models/ACS/acsUserModel');
|
||||
import FileModel = require('../models/ACS/fileModel');
|
||||
import FolderModel = require('../models/ACS/folderModel');
|
||||
|
||||
import TestConfig = require('../test.config');
|
||||
import resources = require('../util/resources');
|
||||
import Util = require('../util/util');
|
||||
|
||||
import AlfrescoApi = require('alfresco-js-api-node');
|
||||
import { UploadActions } from '../actions/ACS/upload.actions';
|
||||
import ErrorPage = require('../pages/adf/documentListErrorPage');
|
||||
import FileModel = require('../models/ACS/fileModel');
|
||||
import moment from 'moment-es6';
|
||||
import { browser } from '../../node_modules/protractor';
|
||||
|
||||
xdescribe('DocumentList component', () => {
|
||||
describe('Document List Component', () => {
|
||||
|
||||
let loginPage = new LoginPage();
|
||||
let contentServicesPage = new ContentServicesPage();
|
||||
let navBar = new NavigationBarPage();
|
||||
let errorPage = new ErrorPage();
|
||||
let privateSite;
|
||||
let uploadedFolder, uploadedFolderExtra;
|
||||
let uploadActions = new UploadActions();
|
||||
let acsUser = null;
|
||||
let testFileNode, pdfBFileNode;
|
||||
|
||||
let acsUser = new AcsUserModel();
|
||||
let pdfFileModel = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF.file_name });
|
||||
let docxFileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.DOCX.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.DOCX.file_location
|
||||
});
|
||||
let testFileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
let folderOneModel = new FolderModel({ 'name': 'folderOne' + Util.generateRandomString() });
|
||||
let folderTwoModel = new FolderModel({ 'name': 'folderTwo' + Util.generateRandomString() });
|
||||
|
||||
let uploadedFolder;
|
||||
let rootFolder = 'APP.PERSONAL-FILES', rootFolderName = 'Personal Files';
|
||||
let fileNames = [], adminFileNames = [], nrOfFiles = 15, adminNrOfFiles = 5;
|
||||
|
||||
let files = {
|
||||
base: 'newFile',
|
||||
firstFile: 'newFile14.txt',
|
||||
extension: '.txt'
|
||||
};
|
||||
|
||||
let extensions = {
|
||||
pdf: 'pdf',
|
||||
docx: 'word',
|
||||
test: 'document'
|
||||
};
|
||||
|
||||
beforeAll(async (done) => {
|
||||
let uploadActions = new UploadActions();
|
||||
|
||||
fileNames = Util.generateSeqeunceFiles(1, nrOfFiles, files.base, files.extension);
|
||||
adminFileNames = Util.generateSeqeunceFiles(nrOfFiles + 1, nrOfFiles + adminNrOfFiles, files.base, files.extension);
|
||||
|
||||
beforeAll(() => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(async (done) => {
|
||||
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);
|
||||
|
||||
await uploadActions.uploadFile(this.alfrescoJsApi, pdfFileModel.location, pdfFileModel.name, '-my-');
|
||||
await uploadActions.uploadFile(this.alfrescoJsApi, docxFileModel.location, docxFileModel.name, '-my-');
|
||||
await uploadActions.uploadFile(this.alfrescoJsApi, testFileModel.location, testFileModel.name, '-my-');
|
||||
|
||||
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderOneModel.name, '-my-');
|
||||
|
||||
await uploadActions.createEmptyFiles(this.alfrescoJsApi, fileNames, uploadedFolder.entry.id);
|
||||
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
|
||||
await uploadActions.createEmptyFiles(this.alfrescoJsApi, adminFileNames, uploadedFolder.entry.id);
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
if (uploadedFolder) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, uploadedFolder.entry.id);
|
||||
uploadedFolder = null;
|
||||
}
|
||||
if (uploadedFolderExtra) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, uploadedFolderExtra.entry.id);
|
||||
uploadedFolderExtra = null;
|
||||
}
|
||||
if (testFileNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, testFileNode.entry.id);
|
||||
testFileNode = null;
|
||||
}
|
||||
if (pdfBFileNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, pdfBFileNode.entry.id);
|
||||
pdfBFileNode = null;
|
||||
}
|
||||
done();
|
||||
});
|
||||
|
||||
it('1. File has tooltip', () => {
|
||||
expect(contentServicesPage.getTooltip(pdfFileModel.name)).toEqual(pdfFileModel.name);
|
||||
describe('Permission Message', async () => {
|
||||
|
||||
beforeAll(async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
let siteName = `PRIVATE_TEST_SITE_${Util.generateRandomString(5)}`;
|
||||
let folderName = `MEESEEKS_${Util.generateRandomString(5)}`;
|
||||
let privateSiteBody = { visibility: 'PRIVATE' , title: siteName};
|
||||
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
|
||||
privateSite = await this.alfrescoJsApi.core.sitesApi.createSite(privateSiteBody);
|
||||
|
||||
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, privateSite.entry.guid);
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C217334] - Error message displayed without permissions', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
||||
expect(errorPage.getErrorCode()).toBe('403');
|
||||
expect(errorPage.getErrorDescription()).toBe('You\'re not allowed access to this resource on the server.');
|
||||
});
|
||||
|
||||
xit('[C279924] - Custom error message is displayed', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.enableCustomPermissionMessage();
|
||||
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
||||
expect(errorPage.getErrorCode()).toBe('Cris you don\'t have permissions');
|
||||
});
|
||||
|
||||
it('[C279925] - Message is translated', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
navBar.openLanguageMenu();
|
||||
navBar.chooseLanguage('Italian');
|
||||
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
||||
expect(errorPage.getErrorDescription()).toBe('Accesso alla risorsa sul server non consentito.');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
it('2. Folder has tooltip', () => {
|
||||
expect(contentServicesPage.getTooltip(folderOneModel.name)).toEqual(folderOneModel.name);
|
||||
expect(contentServicesPage.getBreadcrumbTooltip(rootFolderName)).toEqual(rootFolderName);
|
||||
describe('Custom Column', () => {
|
||||
|
||||
let folderName;
|
||||
let pdfFileModel = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF.file_name });
|
||||
let docxFileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.DOCX.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.DOCX.file_location
|
||||
});
|
||||
let timeAgoFileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
let mediumFileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PDF_B.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.PDF_B.file_location
|
||||
});
|
||||
|
||||
let pdfUploadedNode, docxUploadedNode, timeAgoUploadedNode, mediumDateUploadedNode;
|
||||
|
||||
beforeAll(async (done) => {
|
||||
|
||||
acsUser = new AcsUserModel();
|
||||
|
||||
folderName = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
|
||||
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);
|
||||
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||
pdfUploadedNode = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFileModel.location, pdfFileModel.name, '-my-');
|
||||
docxUploadedNode = await uploadActions.uploadFile(this.alfrescoJsApi, docxFileModel.location, docxFileModel.name, '-my-');
|
||||
done();
|
||||
});
|
||||
|
||||
afterAll(async (done) => {
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
|
||||
if (pdfUploadedNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, pdfUploadedNode.entry.id);
|
||||
}
|
||||
if (docxUploadedNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, docxUploadedNode.entry.id);
|
||||
}
|
||||
if (timeAgoUploadedNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, timeAgoUploadedNode.entry.id);
|
||||
}
|
||||
if (mediumDateUploadedNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, mediumDateUploadedNode.entry.id);
|
||||
}
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C279926] - Checks that only the files and folders of the users are showed', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkContentIsDisplayed(folderName);
|
||||
contentServicesPage.checkContentIsDisplayed(pdfFileModel.name);
|
||||
contentServicesPage.checkContentIsDisplayed(docxFileModel.name);
|
||||
expect(contentServicesPage.getDocumentListRowNumber()).toBe(4);
|
||||
});
|
||||
|
||||
it('[C279927] - All columns are showed', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkColumnNameHeader();
|
||||
contentServicesPage.checkColumnSizeHeader();
|
||||
contentServicesPage.checkColumnCreatedByHeader();
|
||||
contentServicesPage.checkColumnCreatedHeader();
|
||||
});
|
||||
|
||||
it('[C279928] - The date is showed with timeAgo', async (done) => {
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
timeAgoUploadedNode = await uploadActions.uploadFile(this.alfrescoJsApi, timeAgoFileModel.location, timeAgoFileModel.name, '-my-');
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
let dateValue = contentServicesPage.getColumnValueForRow(timeAgoFileModel.name, 'Created');
|
||||
expect(dateValue).toBe('a few seconds ago');
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C279929] - The date is showed with date type', async (done) => {
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
mediumDateUploadedNode = await uploadActions.uploadFile(this.alfrescoJsApi, mediumFileModel.location, mediumFileModel.name, '-my-');
|
||||
let createdDate = moment(mediumDateUploadedNode.createdAt).format('ll');
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.enableMediumTimeFormat();
|
||||
let dateValue = contentServicesPage.getColumnValueForRow(mediumFileModel.name, 'Created');
|
||||
expect(dateValue).toContain(createdDate);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('4. Sort content ascending by name.', () => {
|
||||
contentServicesPage.doubleClickRow(folderOneModel.name).checkContentIsDisplayed(files.firstFile);
|
||||
expect(contentServicesPage.getActiveBreadcrumb()).toEqual(uploadedFolder.entry.name);
|
||||
expect(contentServicesPage.getCurrentFolderID()).toContain(uploadedFolder.entry.id);
|
||||
expect(contentServicesPage.sortAndCheckListIsOrderedByName(true)).toEqual(true);
|
||||
describe('Column Sorting', () => {
|
||||
|
||||
let fakeFileA = new FileModel({
|
||||
'name': 'A',
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
|
||||
let fakeFileB = new FileModel({
|
||||
'name': 'B',
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
|
||||
let fakeFileC = new FileModel({
|
||||
'name': 'C',
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
|
||||
let fileANode, fileBNode, fileCNode;
|
||||
|
||||
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);
|
||||
fileANode = await uploadActions.uploadFile(this.alfrescoJsApi, fakeFileA.location, fakeFileA.name, '-my-');
|
||||
fileBNode = await uploadActions.uploadFile(this.alfrescoJsApi, fakeFileB.location, fakeFileB.name, '-my-');
|
||||
fileCNode = await uploadActions.uploadFile(this.alfrescoJsApi, fakeFileC.location, fakeFileC.name, '-my-');
|
||||
done();
|
||||
});
|
||||
|
||||
afterAll(async (done) => {
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
if (fileANode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileANode.entry.id);
|
||||
}
|
||||
if (fileBNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileBNode.entry.id);
|
||||
}
|
||||
if (fileCNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileCNode.entry.id);
|
||||
}
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C260112] - Sorting ascending by name', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.sortAndCheckListIsOrderedByName('asc');
|
||||
});
|
||||
|
||||
it('[C272770] - Sorting descending by name', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.sortAndCheckListIsOrderedByName('desc');
|
||||
});
|
||||
|
||||
it('[C272771] - Sorting ascending by author', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.sortAndCheckListIsOrderedByAuthor('asc');
|
||||
});
|
||||
|
||||
it('[C272772] - Sorting descending by author', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.sortAndCheckListIsOrderedByAuthor('desc');
|
||||
});
|
||||
|
||||
it('[C272773] - Sorting ascending by created date', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.sortAndCheckListIsOrderedByCreated('asc');
|
||||
});
|
||||
|
||||
it('[C272774] - Sorting descending by created date', () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.sortAndCheckListIsOrderedByCreated('desc');
|
||||
});
|
||||
});
|
||||
|
||||
it('5. Sort content descending by name.', () => {
|
||||
expect(contentServicesPage.sortAndCheckListIsOrderedByName(false)).toEqual(true);
|
||||
it('[C260121] - should show the spinner on loading', async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.clickOnContentServices();
|
||||
contentServicesPage.checkSpinnerIsShowed();
|
||||
done();
|
||||
});
|
||||
|
||||
it('6. Sort content ascending by author.', () => {
|
||||
expect(contentServicesPage.sortAndCheckListIsOrderedByAuthor(true)).toEqual(true);
|
||||
it('[C279959] - Empty Folder state is displayed for new folders', async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
|
||||
let folderName = 'BANANA';
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.createNewFolder(folderName);
|
||||
contentServicesPage.navigateToFolder(folderName);
|
||||
contentServicesPage.checkEmptyFolderTextToBe('This folder is empty');
|
||||
contentServicesPage.checkEmptyFolderImageUrlToContain('/assets/images/empty_doc_lib.svg');
|
||||
done();
|
||||
});
|
||||
|
||||
it('7. Sort content descending by author.', () => {
|
||||
expect(contentServicesPage.sortAndCheckListIsOrderedByAuthor(false)).toEqual(true);
|
||||
it('[C272775] - File can be uploaded in a new created folder', async (done) => {
|
||||
let testFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
acsUser = new AcsUserModel();
|
||||
let folderName = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
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);
|
||||
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkContentIsDisplayed(uploadedFolder.entry.name);
|
||||
contentServicesPage.navigateToFolder(uploadedFolder.entry.name);
|
||||
contentServicesPage.uploadFile(testFile.location);
|
||||
contentServicesPage.checkContentIsDisplayed(testFile.name);
|
||||
done();
|
||||
});
|
||||
|
||||
it('8. Sort content ascending by created date.', () => {
|
||||
expect(contentServicesPage.sortAndCheckListIsOrderedByCreated(true)).toEqual(true);
|
||||
it('[C261997] - Recent Files empty', async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.clickOnContentServices();
|
||||
contentServicesPage.checkRecentFileToBeShowed();
|
||||
let icon = await contentServicesPage.getRecentFileIcon();
|
||||
expect(icon).toBe('history');
|
||||
contentServicesPage.expandRecentFiles();
|
||||
contentServicesPage.checkEmptyRecentFileIsDisplayed();
|
||||
contentServicesPage.closeRecentFiles();
|
||||
done();
|
||||
});
|
||||
|
||||
it('9. Sort content descending by created date.', () => {
|
||||
expect(contentServicesPage.sortAndCheckListIsOrderedByCreated(false)).toEqual(true);
|
||||
it('[C268119] - "ygj" letters rendering in document list', async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
let folderName = 'ggggggjjjjjjjjjjjjyyyyyy';
|
||||
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);
|
||||
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.clickOnContentServices();
|
||||
let lineHeight = await contentServicesPage.getStyleValueForRowText(folderName, 'line-height');
|
||||
let fontSize = await contentServicesPage.getStyleValueForRowText(folderName, 'font-size');
|
||||
let actualFontValue = (parseInt(fontSize, 10) * 1.12).toFixed(2);
|
||||
expect(lineHeight).toBe(actualFontValue + 'px');
|
||||
done();
|
||||
});
|
||||
|
||||
it('10. File can be uploaded in a new created folder.', () => {
|
||||
contentServicesPage.createNewFolder(folderTwoModel.name).checkContentIsDisplayed(folderTwoModel.name);
|
||||
contentServicesPage.doubleClickRow(folderTwoModel.name).checkEmptyFolderMessageIsDisplayed();
|
||||
it('[C279970] - Custom column - isLocked field is showed for folders', async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
let folderNameA = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
let folderNameB = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
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);
|
||||
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderNameA, '-my-');
|
||||
uploadedFolderExtra = await uploadActions.uploadFolder(this.alfrescoJsApi, folderNameB, '-my-');
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkContentIsDisplayed(folderNameA);
|
||||
contentServicesPage.checkContentIsDisplayed(folderNameB);
|
||||
contentServicesPage.checkLockIsDislpayedForElement(folderNameA);
|
||||
contentServicesPage.checkLockIsDislpayedForElement(folderNameB);
|
||||
done();
|
||||
});
|
||||
|
||||
it('11. Navigate to child folder via breadcrumbs.', () => {
|
||||
contentServicesPage.navigateToFolderViaBreadcrumbs(acsUser.getId());
|
||||
|
||||
contentServicesPage
|
||||
.checkContentIsDisplayed(folderOneModel.name)
|
||||
.doubleClickRow(folderOneModel.name)
|
||||
.checkContentIsDisplayed(folderTwoModel.name)
|
||||
.doubleClickRow(folderTwoModel.name);
|
||||
|
||||
expect(contentServicesPage.getActiveBreadcrumb()).toEqual(folderTwoModel.name);
|
||||
it('[C269086] - Custom column - IsLocked field is showed for files', async (done) => {
|
||||
let testFileA = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
let testFileB = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PDF_B.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.PDF_B.file_location
|
||||
});
|
||||
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);
|
||||
testFileNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFileA.location, testFileA.name, '-my-');
|
||||
pdfBFileNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFileB.location, testFileB.name, '-my-');
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkContentIsDisplayed(testFileA.name);
|
||||
contentServicesPage.checkContentIsDisplayed(testFileB.name);
|
||||
contentServicesPage.checkLockIsDislpayedForElement(testFileA.name);
|
||||
contentServicesPage.checkLockIsDislpayedForElement(testFileB.name);
|
||||
done();
|
||||
});
|
||||
|
||||
it('12. Navigate to parent folder via breadcrumbs.', () => {
|
||||
contentServicesPage.navigateToFolderViaBreadcrumbs(uploadedFolder.entry.name);
|
||||
describe('Once uploaded 20 folders', () => {
|
||||
|
||||
expect(contentServicesPage.getActiveBreadcrumb()).toEqual(uploadedFolder.entry.name);
|
||||
let folderCreated;
|
||||
|
||||
expect(contentServicesPage.getCurrentFolderID()).toContain(uploadedFolder.entry.id);
|
||||
beforeAll(async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
folderCreated = [];
|
||||
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);
|
||||
let folderName = '';
|
||||
let folder = null;
|
||||
for (let i = 0; i < 20; i++) {
|
||||
folderName = `MEESEEKS_000${i}`;
|
||||
folder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||
folderCreated.push(folder);
|
||||
}
|
||||
done();
|
||||
});
|
||||
|
||||
browser.refresh();
|
||||
afterAll(async (done) => {
|
||||
Promise.all(folderCreated.map((folder) =>
|
||||
uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, folder.entry.id)
|
||||
)).then(
|
||||
done()
|
||||
);
|
||||
});
|
||||
|
||||
it('[C277093] - Sorting files with Items per page set to default', async (done) => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkListIsSortedByNameColumn('asc');
|
||||
done();
|
||||
});
|
||||
|
||||
expect(contentServicesPage.getActiveBreadcrumb()).toEqual(uploadedFolder.entry.name);
|
||||
expect(contentServicesPage.getCurrentFolderID()).toContain(uploadedFolder.entry.id);
|
||||
});
|
||||
|
||||
it('13. Each known extension has it s own icon.', () => {
|
||||
contentServicesPage.navigateToFolderViaBreadcrumbs(acsUser.getId());
|
||||
describe('Thumbnails and tooltips', () => {
|
||||
|
||||
contentServicesPage.checkContentIsDisplayed(pdfFileModel.name);
|
||||
contentServicesPage.checkContentIsDisplayed(docxFileModel.name);
|
||||
contentServicesPage.checkContentIsDisplayed(testFileModel.name);
|
||||
contentServicesPage.checkIconColumn(pdfFileModel.name, extensions.pdf);
|
||||
contentServicesPage.checkIconColumn(docxFileModel.name, extensions.docx);
|
||||
contentServicesPage.checkIconColumn(testFileModel.name, extensions.test);
|
||||
let pdfFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.PDF.file_location
|
||||
});
|
||||
|
||||
let testFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
|
||||
let docxFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.DOCX.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.DOCX.file_location
|
||||
});
|
||||
let folderName = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
let filePdfNode, fileTestNode, fileDocxNode, folderNode;
|
||||
|
||||
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);
|
||||
filePdfNode = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFile.location, pdfFile.name, '-my-');
|
||||
fileTestNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFile.location, testFile.name, '-my-');
|
||||
fileDocxNode = await uploadActions.uploadFile(this.alfrescoJsApi, docxFile.location, docxFile.name, '-my-');
|
||||
folderNode = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
afterAll(async (done) => {
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
if (filePdfNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, filePdfNode.entry.id);
|
||||
}
|
||||
if (fileTestNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileTestNode.entry.id);
|
||||
}
|
||||
if (fileDocxNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileDocxNode.entry.id);
|
||||
}
|
||||
if (folderNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, folderNode.entry.id);
|
||||
}
|
||||
done();
|
||||
});
|
||||
|
||||
beforeEach( () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
it('[C260108] - File tooltip', () => {
|
||||
expect(contentServicesPage.getTooltip(pdfFile.name)).toEqual(pdfFile.name);
|
||||
});
|
||||
|
||||
it('[C260109] - Folder tooltip', () => {
|
||||
expect(contentServicesPage.getTooltip(folderName)).toEqual(folderName);
|
||||
});
|
||||
|
||||
it('[C260119] - Thumbnail - Disabled - folder', async (done) => {
|
||||
let folderIconUrl = await contentServicesPage.getRowIconImageUrl(folderName);
|
||||
expect(folderIconUrl).toContain('/assets/images/ft_ic_folder.svg');
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C260119] - Thumbnail - Disabled - pdf file', async (done) => {
|
||||
let fileIconUrl = await contentServicesPage.getRowIconImageUrl(pdfFile.name);
|
||||
expect(fileIconUrl).toContain('/assets/images/ft_ic_pdf.svg');
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C260119] - Thumbnail - Disabled - docx file', async (done) => {
|
||||
let fileIconUrl = await contentServicesPage.getRowIconImageUrl(docxFile.name);
|
||||
expect(fileIconUrl).toContain('/assets/images/ft_ic_ms_word.svg');
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C260119] - Thumbnail - Disabled - test file', async (done) => {
|
||||
let fileIconUrl = await contentServicesPage.getRowIconImageUrl(testFile.name);
|
||||
expect(fileIconUrl).toContain('/assets/images/ft_ic_document.svg');
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C274701] - Thumbnails - Enabled', async (done) => {
|
||||
contentServicesPage.enableThumbnails();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
let fileIconUrl = await contentServicesPage.getRowIconImageUrl(pdfFile.name);
|
||||
expect(fileIconUrl).toContain(`/versions/1/nodes/${filePdfNode.entry.id}/renditions`);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('14. Navigate to root folder via breadcrumbs.', () => {
|
||||
contentServicesPage.navigateToFolderViaBreadcrumbs(rootFolder);
|
||||
expect(contentServicesPage.getActiveBreadcrumb()).toEqual(rootFolderName);
|
||||
describe('Gallery View', () => {
|
||||
|
||||
let cardProperties = {
|
||||
DISPLAY_NAME : 'Display name',
|
||||
SIZE: 'Size',
|
||||
LOCK: 'Lock',
|
||||
CREATED_BY: 'Created by',
|
||||
CREATED: 'Created'
|
||||
};
|
||||
|
||||
let funnyUser = {};
|
||||
|
||||
let pdfFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.PDF.file_location
|
||||
});
|
||||
|
||||
let testFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||
});
|
||||
|
||||
let docxFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.DOCX.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.DOCX.file_location
|
||||
});
|
||||
let folderName = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||
let filePdfNode, fileTestNode, fileDocxNode, folderNode, filePDFSubNode;
|
||||
|
||||
beforeAll(async (done) => {
|
||||
acsUser = new AcsUserModel();
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
funnyUser = await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||
filePdfNode = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFile.location, pdfFile.name, '-my-');
|
||||
fileTestNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFile.location, testFile.name, '-my-');
|
||||
fileDocxNode = await uploadActions.uploadFile(this.alfrescoJsApi, docxFile.location, docxFile.name, '-my-');
|
||||
folderNode = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||
filePDFSubNode = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFile.location, pdfFile.name, folderNode.entry.id);
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
beforeEach( () => {
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.clickGridViewButton();
|
||||
contentServicesPage.checkCardViewContainerIsDisplayed();
|
||||
});
|
||||
|
||||
it('[C280016] - Gallery view is showed', () => {
|
||||
expect(contentServicesPage.getCardElementShowedInPage()).toBe(4);
|
||||
});
|
||||
|
||||
it('[C280023] - Gallery Card show details', () => {
|
||||
expect(contentServicesPage.getDocumentCardIconForElement(folderName)).toContain('/assets/images/ft_ic_folder.svg');
|
||||
expect(contentServicesPage.getDocumentCardIconForElement(pdfFile.name)).toContain('/assets/images/ft_ic_pdf.svg');
|
||||
expect(contentServicesPage.getDocumentCardIconForElement(docxFile.name)).toContain('/assets/images/ft_ic_ms_word.svg');
|
||||
expect(contentServicesPage.getDocumentCardIconForElement(testFile.name)).toContain('/assets/images/ft_ic_document.svg');
|
||||
contentServicesPage.checkMenuIsShowedForElementIndex(0);
|
||||
contentServicesPage.checkMenuIsShowedForElementIndex(1);
|
||||
contentServicesPage.checkMenuIsShowedForElementIndex(2);
|
||||
contentServicesPage.checkMenuIsShowedForElementIndex(3);
|
||||
});
|
||||
|
||||
it('[C280023] - Gallery Card show details - attributes', () => {
|
||||
let timeMessage = '';
|
||||
contentServicesPage.checkDocumentCardPropertyIsShowed(folderName, cardProperties.DISPLAY_NAME);
|
||||
contentServicesPage.checkDocumentCardPropertyIsShowed(folderName, cardProperties.SIZE);
|
||||
contentServicesPage.checkDocumentCardPropertyIsShowed(folderName, cardProperties.CREATED_BY);
|
||||
contentServicesPage.checkDocumentCardPropertyIsShowed(folderName, cardProperties.CREATED);
|
||||
|
||||
expect(contentServicesPage.getAttributeValueForElement(folderName, cardProperties.DISPLAY_NAME)).toBe(folderName);
|
||||
expect(contentServicesPage.getAttributeValueForElement(folderName, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
||||
timeMessage = moment(folderNode.entry.createdAt).fromNow();
|
||||
expect(contentServicesPage.getAttributeValueForElement(folderName, cardProperties.CREATED)).toBe(timeMessage);
|
||||
|
||||
expect(contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.DISPLAY_NAME)).toBe(pdfFile.name);
|
||||
expect(contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.SIZE)).toBe(`702.76 KB`);
|
||||
expect(contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
||||
timeMessage = moment(filePdfNode.entry.createdAt).fromNow();
|
||||
expect(contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.CREATED)).toBe(timeMessage);
|
||||
|
||||
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.DISPLAY_NAME)).toBe(docxFile.name);
|
||||
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.SIZE)).toBe(`770.35 KB`);
|
||||
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
||||
timeMessage = moment(fileDocxNode.entry.createdAt).fromNow();
|
||||
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.CREATED)).toBe(timeMessage);
|
||||
|
||||
expect(contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.DISPLAY_NAME)).toBe(testFile.name);
|
||||
expect(contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.SIZE)).toBe(`14 Bytes`);
|
||||
expect(contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
||||
timeMessage = moment(fileTestNode.entry.createdAt).fromNow();
|
||||
expect(contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.CREATED)).toBe(timeMessage);
|
||||
});
|
||||
|
||||
it('[C280023] - Gallery Card show details - subfolder gallery displayed', () => {
|
||||
contentServicesPage.navigateToCardFolder(folderName);
|
||||
expect(contentServicesPage.getCardElementShowedInPage()).toBe(1);
|
||||
expect(contentServicesPage.getDocumentCardIconForElement(pdfFile.name)).toContain('/assets/images/ft_ic_pdf.svg');
|
||||
});
|
||||
|
||||
it('[C280023] - Gallery Card show details - back to list view', () => {
|
||||
contentServicesPage.clickGridViewButton();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.navigateToFolder(folderName);
|
||||
contentServicesPage.checkRowIsDisplayed(pdfFile.name);
|
||||
});
|
||||
|
||||
it('[C261993] - Sort by Display name', () => {
|
||||
contentServicesPage.selectGridSortingFromDropdown(cardProperties.DISPLAY_NAME);
|
||||
contentServicesPage.checkListIsSortedByNameColumn('asc');
|
||||
});
|
||||
|
||||
it('[C261994] - Sort by Size', () => {
|
||||
contentServicesPage.selectGridSortingFromDropdown(cardProperties.SIZE);
|
||||
contentServicesPage.checkListIsSortedBySizeColumn('asc');
|
||||
});
|
||||
|
||||
it('[C261995] - Sort by Author', () => {
|
||||
contentServicesPage.selectGridSortingFromDropdown(cardProperties.CREATED_BY);
|
||||
contentServicesPage.checkListIsSortedByAuthorColumn('asc');
|
||||
});
|
||||
|
||||
it('[C261994] - Sort by Created', () => {
|
||||
contentServicesPage.selectGridSortingFromDropdown(cardProperties.CREATED);
|
||||
contentServicesPage.checkListIsSortedByCreatedColumn('asc');
|
||||
});
|
||||
|
||||
afterAll(async (done) => {
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
if (filePdfNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, filePdfNode.entry.id);
|
||||
}
|
||||
if (fileTestNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileTestNode.entry.id);
|
||||
}
|
||||
if (fileDocxNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileDocxNode.entry.id);
|
||||
}
|
||||
if (filePDFSubNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, filePDFSubNode.entry.id);
|
||||
}
|
||||
if (folderNode) {
|
||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, folderNode.entry.id);
|
||||
}
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -53,6 +53,8 @@ var ContentServicesPage = function () {
|
||||
var emptyFolder = element(by.css(".adf-empty-folder-this-space-is-empty"));
|
||||
var emptyFolderImage = element(by.css(".adf-empty-folder-image"));
|
||||
var emptyRecent = element(by.css(".adf-container-recent .empty-list__title"));
|
||||
var gridViewButton = element(by.css("button[data-automation-id='document-list-grid-view']"));
|
||||
var cardViewContainer = element(by.css("div.document-list-container div.adf-data-table-card"));
|
||||
|
||||
this.checkRecentFileToBeShowed = function () {
|
||||
Util.waitUntilElementIsVisible(recentFiles);
|
||||
@ -188,6 +190,18 @@ var ContentServicesPage = function () {
|
||||
await contentList.checkListIsOrderedByNameColumn(sortOrder);
|
||||
};
|
||||
|
||||
this.checkListIsSortedByCreatedColumn = async function(sortOrder) {
|
||||
await contentList.checkListIsOrderedByCreatedColumn(sortOrder);
|
||||
};
|
||||
|
||||
this.checkListIsSortedByAuthorColumn = async function(sortOrder) {
|
||||
await contentList.checkListIsOrderedByAuthorColumn(sortOrder);
|
||||
};
|
||||
|
||||
this.checkListIsSortedBySizeColumn = async function(sortOrder) {
|
||||
await contentList.checkListIsOrderedBySizeColumn(sortOrder);
|
||||
};
|
||||
|
||||
/**
|
||||
* Sort by author and check the list is sorted.
|
||||
*
|
||||
@ -398,6 +412,13 @@ var ContentServicesPage = function () {
|
||||
return this;
|
||||
};
|
||||
|
||||
this.enableThumbnails = function () {
|
||||
var thumbnailSlide = element(by.css('#enableThumbnails'));
|
||||
Util.waitUntilElementIsVisible(thumbnailSlide);
|
||||
thumbnailSlide.click();
|
||||
return this;
|
||||
};
|
||||
|
||||
this.clickLoadMoreButton = function () {
|
||||
Util.waitUntilElementIsVisible(loadMoreButton);
|
||||
Util.waitUntilElementIsClickable(loadMoreButton);
|
||||
@ -473,6 +494,83 @@ var ContentServicesPage = function () {
|
||||
Util.waitUntilElementIsVisible(emptyRecent);
|
||||
};
|
||||
|
||||
this.checkIconForRowIsDisplayed = function(fileName) {
|
||||
let iconRow = element(by.css(`.document-list-container div.adf-data-table-cell[filename="${fileName}"] img`));
|
||||
Util.waitUntilElementIsVisible(iconRow);
|
||||
return iconRow;
|
||||
}
|
||||
|
||||
this.getRowIconImageUrl = async function(fileName) {
|
||||
let iconRow = this.checkIconForRowIsDisplayed(fileName);
|
||||
return iconRow.getAttribute('src');
|
||||
}
|
||||
|
||||
this.checkGridViewButtonIsVisible = function () {
|
||||
Util.waitUntilElementIsVisible(gridViewButton);
|
||||
}
|
||||
|
||||
this.clickGridViewButton = function() {
|
||||
this.checkGridViewButtonIsVisible();
|
||||
gridViewButton.click();
|
||||
}
|
||||
|
||||
this.checkCardViewContainerIsDisplayed = function () {
|
||||
Util.waitUntilElementIsVisible(cardViewContainer);
|
||||
}
|
||||
|
||||
this.getCardElementShowedInPage = function() {
|
||||
this.checkCardViewContainerIsDisplayed();
|
||||
let actualCards = $$('div.document-list-container div.adf-data-table-card div.cell-value img').count();
|
||||
return actualCards;
|
||||
}
|
||||
|
||||
this.getDocumentCardIconForElement = function(elementName){
|
||||
let elementIcon = element(by.css(`.document-list-container div.adf-data-table-cell[filename="${elementName}"] img`));
|
||||
return elementIcon.getAttribute('src');
|
||||
}
|
||||
|
||||
this.checkDocumentCardPropertyIsShowed = function(elementName, propertyName) {
|
||||
let elementProperty = element(by.css(`.document-list-container div.adf-data-table-cell[filename="${elementName}"][title="${propertyName}"]`));
|
||||
Util.waitUntilElementIsVisible(elementProperty);
|
||||
}
|
||||
|
||||
this.getAttributeValueForElement = function(elementName, propertyName) {
|
||||
let elementSize = element(by.css(`.document-list-container div.adf-data-table-cell[filename="${elementName}"][title="${propertyName}"] span`));
|
||||
return elementSize.getText();
|
||||
}
|
||||
|
||||
this.checkMenuIsShowedForElementIndex = function(elementIndex) {
|
||||
let elementMenu = element(by.css(`button[data-automation-id="action_menu_${elementIndex}"]`));
|
||||
Util.waitUntilElementIsVisible(elementMenu);
|
||||
}
|
||||
|
||||
this.navigateToCardFolder = function(folderName) {
|
||||
let folderCard = element(by.css(`.document-list-container div.image-table-cell.adf-data-table-cell[filename="${folderName}"]`));
|
||||
folderCard.click();
|
||||
let folderSelected = element(by.css(`.adf-datatable-row.is-selected div[filename="${folderName}"].adf-data-table-cell--image`));
|
||||
Util.waitUntilElementIsVisible(folderSelected);
|
||||
browser.actions().sendKeys(protractor.Key.ENTER).perform();
|
||||
}
|
||||
|
||||
this.getGridViewSortingDropdown = function() {
|
||||
let sortingDropdown = element(by.css('mat-select[data-automation-id="grid-view-sorting"]'));
|
||||
Util.waitUntilElementIsVisible(sortingDropdown);
|
||||
return sortingDropdown;
|
||||
}
|
||||
|
||||
this.selectGridSortingFromDropdown = function(sortingChosen){
|
||||
let dropdownSorting = this.getGridViewSortingDropdown();
|
||||
dropdownSorting.click();
|
||||
let optionToClick = element(by.css(`mat-option[data-automation-id="grid-view-sorting-${sortingChosen}"]`));
|
||||
Util.waitUntilElementIsPresent(optionToClick);
|
||||
optionToClick.click();
|
||||
}
|
||||
|
||||
this.checkRowIsDisplayed = function(rowName){
|
||||
let row = contentList.getRowByRowName(rowName);
|
||||
Util.waitUntilElementIsVisible(row);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
module.exports = ContentServicesPage;
|
||||
|
@ -29,6 +29,7 @@ var ContentList = function () {
|
||||
var nameColumn = by.css("div[id*='document-list-container'] div[class*='adf-datatable-row'] div[class*='--text full-width'] span");
|
||||
var nameColumnHeader = by.css("div[data-automation-id='auto_id_name']");
|
||||
var createdByColumn = by.css("div[class*='--text'][title='Created by'] span");
|
||||
var sizeColumn = by.css("div[id*='document-list-container'] div[class*='adf-datatable-row'] .adf-filesize-cell");
|
||||
var createdByColumnHeader = by.css("div[data-automation-id*='auto_id_createdByUser']");
|
||||
var createdColumn = by.css("div[class*='--date'] span");
|
||||
var createdColumnHeader = by.css("div[data-automation-id*='auto_id_createdAt']");
|
||||
@ -184,6 +185,12 @@ var ContentList = function () {
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
this.checkListIsOrderedBySizeColumn = function (sortOrder) {
|
||||
var deferred = protractor.promise.defer();
|
||||
deferred.fulfill(this.checkListIsSorted(sortOrder, sizeColumn));
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
/**
|
||||
* Check the list is sorted by created column.
|
||||
*
|
||||
|
@ -33,9 +33,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<mat-form-field *ngIf="display === 'gallery'">
|
||||
<mat-select [value]="getSortingKey()">
|
||||
<mat-select [value]="getSortingKey()" [attr.data-automation-id]="'grid-view-sorting'">
|
||||
<mat-option *ngFor="let col of getSortableColumns()"
|
||||
[value]="col.key"
|
||||
[attr.data-automation-id]="'grid-view-sorting-'+col.title"
|
||||
(click)="onColumnHeaderClick(col)"
|
||||
(keyup.enter)="onColumnHeaderClick(col)">
|
||||
{{ col.title | translate}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user