mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-19 17:14:57 +00:00
724 lines
34 KiB
TypeScript
724 lines
34 KiB
TypeScript
/*!
|
|
* @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 { browser } from 'protractor';
|
|
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';
|
|
import AlfrescoApi = require('alfresco-js-api-node');
|
|
import { UploadActions } from '../../actions/ACS/upload.actions';
|
|
import { ErrorPage } from '../../pages/adf/errorPage';
|
|
import { FileModel } from '../../models/ACS/fileModel';
|
|
import moment from 'moment-es6';
|
|
|
|
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.createFolder(this.alfrescoJsApi, folderName, privateSite.entry.guid);
|
|
|
|
done();
|
|
});
|
|
|
|
afterAll(async (done) => {
|
|
await this.alfrescoJsApi.core.sitesApi.deleteSite(privateSite.entry.id);
|
|
done();
|
|
});
|
|
|
|
it('[C217334] Should display a message when accessing file 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.');
|
|
});
|
|
|
|
it('[C279924] Should display custom message when accessing a file without permissions', () => {
|
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
contentServicesPage.goToDocumentList();
|
|
contentServicesPage.enableCustomPermissionMessage();
|
|
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
|
expect(errorPage.getErrorCode()).toBe('403');
|
|
});
|
|
|
|
it('[C279925] Should display translated message when accessing a file without permissions if language is changed', () => {
|
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
navBar.openLanguageMenu();
|
|
navBar.chooseLanguage('Italiano');
|
|
browser.sleep(2000);
|
|
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,
|
|
'location': resources.Files.ADF_DOCUMENTS.PDF.file_location
|
|
});
|
|
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();
|
|
|
|
/* cspell:disable-next-line */
|
|
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.createFolder(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] Should only display the user\'s files and folders', () => {
|
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
contentServicesPage.goToDocumentList();
|
|
contentServicesPage.checkContentIsDisplayed(folderName);
|
|
contentServicesPage.checkContentIsDisplayed(pdfFileModel.name);
|
|
contentServicesPage.checkContentIsDisplayed(docxFileModel.name);
|
|
expect(contentServicesPage.getDocumentListRowNumber()).toBe(4);
|
|
});
|
|
|
|
it('[C279927] Should display default columns', () => {
|
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
contentServicesPage.goToDocumentList();
|
|
contentServicesPage.checkColumnNameHeader();
|
|
contentServicesPage.checkColumnSizeHeader();
|
|
contentServicesPage.checkColumnCreatedByHeader();
|
|
contentServicesPage.checkColumnCreatedHeader();
|
|
});
|
|
|
|
it('[C279928] Should be able to display date 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).toContain('ago');
|
|
done();
|
|
});
|
|
|
|
it('[C279929] Should be able to display the date 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] Should be able to sort by name (Ascending)', () => {
|
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
contentServicesPage.goToDocumentList();
|
|
contentServicesPage.sortAndCheckListIsOrderedByName('asc');
|
|
});
|
|
|
|
it('[C272770] Should be able to sort by name (Descending)', () => {
|
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
contentServicesPage.goToDocumentList();
|
|
contentServicesPage.sortAndCheckListIsOrderedByName('desc');
|
|
});
|
|
|
|
it('[C272771] Should be able to sort by author (Ascending)', () => {
|
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
contentServicesPage.goToDocumentList();
|
|
contentServicesPage.sortAndCheckListIsOrderedByAuthor('asc');
|
|
});
|
|
|
|
it('[C272772] Should be able to sort by author (Descending)', () => {
|
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
contentServicesPage.goToDocumentList();
|
|
contentServicesPage.sortAndCheckListIsOrderedByAuthor('desc');
|
|
});
|
|
|
|
it('[C272773] Should be able to sort by date (Ascending)', () => {
|
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
contentServicesPage.goToDocumentList();
|
|
contentServicesPage.sortAndCheckListIsOrderedByCreated('asc');
|
|
});
|
|
|
|
it('[C272774] Should be able to sort by date (Descending)', () => {
|
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
contentServicesPage.goToDocumentList();
|
|
contentServicesPage.sortAndCheckListIsOrderedByCreated('desc');
|
|
});
|
|
});
|
|
|
|
xit('[C260121] Should show the spinner on content 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] Should display empty folder state 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] Should be able to upload a file in new 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();
|
|
/* cspell:disable-next-line */
|
|
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.createFolder(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] Should be able to clean Recent Files history', 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('[C279970] Should display Islocked field 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.createFolder(this.alfrescoJsApi, folderNameA, '-my-');
|
|
uploadedFolderExtra = await uploadActions.createFolder(this.alfrescoJsApi, folderNameB, '-my-');
|
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
contentServicesPage.goToDocumentList();
|
|
contentServicesPage.checkContentIsDisplayed(folderNameA);
|
|
contentServicesPage.checkContentIsDisplayed(folderNameB);
|
|
contentServicesPage.checkLockIsDisplayedForElement(folderNameA);
|
|
contentServicesPage.checkLockIsDisplayedForElement(folderNameB);
|
|
done();
|
|
});
|
|
|
|
it('[C269086] Should display Islocked field 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.checkLockIsDisplayedForElement(testFileA.name);
|
|
contentServicesPage.checkLockIsDisplayedForElement(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.createFolder(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] Should sort files with Items per page set to default', async (done) => {
|
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
|
contentServicesPage.goToDocumentList();
|
|
contentServicesPage.checkListIsSortedByNameColumn('asc');
|
|
done();
|
|
});
|
|
|
|
});
|
|
|
|
describe('Thumbnails and tooltips', () => {
|
|
|
|
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.createFolder(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] Should display tooltip for file\'s name', () => {
|
|
expect(contentServicesPage.getContentList().getTooltip(pdfFile.name)).toEqual(pdfFile.name);
|
|
});
|
|
|
|
it('[C260109] Should display tooltip for folder\'s name', () => {
|
|
expect(contentServicesPage.getContentList().getTooltip(folderName)).toEqual(folderName);
|
|
});
|
|
|
|
it('[C260119] Should have a specific thumbnail for folders', async (done) => {
|
|
let folderIconUrl = await contentServicesPage.getRowIconImageUrl(folderName);
|
|
expect(folderIconUrl).toContain('/assets/images/ft_ic_folder.svg');
|
|
done();
|
|
});
|
|
|
|
it('[C280066] Should have a specific thumbnail PDF files', async (done) => {
|
|
let fileIconUrl = await contentServicesPage.getRowIconImageUrl(pdfFile.name);
|
|
expect(fileIconUrl).toContain('/assets/images/ft_ic_pdf.svg');
|
|
done();
|
|
});
|
|
|
|
it('[C280067] Should have a specific thumbnail DOCX files', async (done) => {
|
|
let fileIconUrl = await contentServicesPage.getRowIconImageUrl(docxFile.name);
|
|
expect(fileIconUrl).toContain('/assets/images/ft_ic_ms_word.svg');
|
|
done();
|
|
});
|
|
|
|
it('[C280068] Should have a specific thumbnail files', async (done) => {
|
|
let fileIconUrl = await contentServicesPage.getRowIconImageUrl(testFile.name);
|
|
expect(fileIconUrl).toContain('/assets/images/ft_ic_document.svg');
|
|
done();
|
|
});
|
|
|
|
it('[C274701] Should be able to enable thumbnails', async (done) => {
|
|
contentServicesPage.enableThumbnails();
|
|
contentServicesPage.checkAcsContainer();
|
|
let fileIconUrl = await contentServicesPage.getRowIconImageUrl(pdfFile.name);
|
|
expect(fileIconUrl).toContain(`/versions/1/nodes/${filePdfNode.entry.id}/renditions`);
|
|
done();
|
|
});
|
|
});
|
|
|
|
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.createFolder(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] Should be able to choose Gallery View', () => {
|
|
expect(contentServicesPage.getCardElementShowedInPage()).toBe(4);
|
|
});
|
|
|
|
it('[C280023] Gallery Card should 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('[C280069] Gallery Card should show attributes', () => {
|
|
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}`);
|
|
|
|
expect(contentServicesPage.getAttributeValueForElement(folderName, cardProperties.CREATED)).toContain('ago');
|
|
|
|
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}`);
|
|
|
|
expect(contentServicesPage.getAttributeValueForElement(pdfFile.name, cardProperties.CREATED)).toContain('ago');
|
|
|
|
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.DISPLAY_NAME)).toBe(docxFile.name);
|
|
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.SIZE)).toBe(`81.05 KB`);
|
|
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.CREATED_BY)).toBe(`${funnyUser.entry.firstName} ${funnyUser.entry.lastName}`);
|
|
|
|
expect(contentServicesPage.getAttributeValueForElement(docxFile.name, cardProperties.CREATED)).toContain('ago');
|
|
|
|
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}`);
|
|
|
|
expect(contentServicesPage.getAttributeValueForElement(testFile.name, cardProperties.CREATED)).toContain('ago');
|
|
});
|
|
|
|
it('[C280129] Should keep Gallery View when accessing a folder', () => {
|
|
contentServicesPage.navigateToCardFolder(folderName);
|
|
expect(contentServicesPage.getCardElementShowedInPage()).toBe(1);
|
|
expect(contentServicesPage.getDocumentCardIconForElement(pdfFile.name)).toContain('/assets/images/ft_ic_pdf.svg');
|
|
});
|
|
|
|
it('[C280130] Should be able to go back to List View', () => {
|
|
contentServicesPage.clickGridViewButton();
|
|
contentServicesPage.checkAcsContainer();
|
|
contentServicesPage.navigateToFolder(folderName);
|
|
contentServicesPage.checkRowIsDisplayed(pdfFile.name);
|
|
});
|
|
|
|
it('[C261993] Should be able to sort Gallery Cards by display name', () => {
|
|
contentServicesPage.selectGridSortingFromDropdown(cardProperties.DISPLAY_NAME);
|
|
contentServicesPage.checkListIsSortedByNameColumn('asc');
|
|
});
|
|
|
|
it('[C261994] Should be able to sort Gallery Cards by size', () => {
|
|
contentServicesPage.selectGridSortingFromDropdown(cardProperties.SIZE);
|
|
contentServicesPage.checkListIsSortedBySizeColumn('asc');
|
|
});
|
|
|
|
it('[C261995] Should be able to sort Gallery Cards by author', () => {
|
|
contentServicesPage.selectGridSortingFromDropdown(cardProperties.CREATED_BY);
|
|
contentServicesPage.checkListIsSortedByAuthorColumn('asc');
|
|
});
|
|
|
|
it('[C261996] Should be able to sort Gallery Cards by created date', () => {
|
|
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();
|
|
});
|
|
});
|
|
|
|
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.clickHyperlinkNavigationToggle()
|
|
.checkFileHyperlinkIsEnabled(file.entry.name)
|
|
.clickFileHyperlink(file.entry.name);
|
|
viewer.checkFileIsLoaded();
|
|
});
|
|
});
|
|
});
|