mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
[ADF-3259] [ADF-3363] e2e login and card metadata (#3612)
* remember me * add login component e2e test * add success route test * add change logo check * redirect url after logout e2e * move redirection test in a separate file * login component tslint * cardview e2e * fix login test * add test case number * move version test in a separate file * clean unused elements * metadata part 1 * tslint fix * fix metadata test * remove fit * fix formatting file viewerPage * multi propety test * metadata and login improvements * fix data automation fix * metadata permission e2e * fix tslint problems * improve selector * stabilize search component test * stabilize test step 1 * fix tag test add config timeout * tentative * delay after download * change meatdata test * stabilize metadata * use smaller file for not extension related test * stabilize test step 2 * exclude failing test * timeout fix * split in multiple task e2e * trick travis * trigger build * fix command issue * fix save screenshot * fix run subfolder * test timeout increase
This commit is contained in:
committed by
Eugenio Romano
parent
66f534b32c
commit
b2cb93468d
183
e2e/content-services/document_list_component.e2e.ts
Normal file
183
e2e/content-services/document_list_component.e2e.ts
Normal file
@@ -0,0 +1,183 @@
|
||||
/*!
|
||||
* @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 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';
|
||||
|
||||
describe('DocumentList component', () => {
|
||||
|
||||
let loginPage = new LoginPage();
|
||||
let contentServicesPage = new ContentServicesPage();
|
||||
|
||||
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);
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
|
||||
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();
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('1. File has tooltip', () => {
|
||||
expect(contentServicesPage.getTooltip(pdfFileModel.name)).toEqual(pdfFileModel.name);
|
||||
});
|
||||
|
||||
it('2. Folder has tooltip', () => {
|
||||
expect(contentServicesPage.getTooltip(folderOneModel.name)).toEqual(folderOneModel.name);
|
||||
expect(contentServicesPage.getBreadcrumbTooltip(rootFolderName)).toEqual(rootFolderName);
|
||||
});
|
||||
|
||||
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);
|
||||
});
|
||||
|
||||
it('5. Sort content descending by name.', () => {
|
||||
expect(contentServicesPage.sortAndCheckListIsOrderedByName(false)).toEqual(true);
|
||||
});
|
||||
|
||||
it('6. Sort content ascending by author.', () => {
|
||||
expect(contentServicesPage.sortAndCheckListIsOrderedByAuthor(true)).toEqual(true);
|
||||
});
|
||||
|
||||
it('7. Sort content descending by author.', () => {
|
||||
expect(contentServicesPage.sortAndCheckListIsOrderedByAuthor(false)).toEqual(true);
|
||||
});
|
||||
|
||||
it('8. Sort content ascending by created date.', () => {
|
||||
expect(contentServicesPage.sortAndCheckListIsOrderedByCreated(true)).toEqual(true);
|
||||
});
|
||||
|
||||
it('9. Sort content descending by created date.', () => {
|
||||
expect(contentServicesPage.sortAndCheckListIsOrderedByCreated(false)).toEqual(true);
|
||||
});
|
||||
|
||||
it('10. File can be uploaded in a new created folder.', () => {
|
||||
contentServicesPage.createNewFolder(folderTwoModel.name).checkContentIsDisplayed(folderTwoModel.name);
|
||||
contentServicesPage.doubleClickRow(folderTwoModel.name).checkEmptyFolderMessageIsDisplayed();
|
||||
});
|
||||
|
||||
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('12. Navigate to parent folder via breadcrumbs.', () => {
|
||||
contentServicesPage.navigateToFolderViaBreadcrumbs(uploadedFolder.entry.name);
|
||||
|
||||
expect(contentServicesPage.getActiveBreadcrumb()).toEqual(uploadedFolder.entry.name);
|
||||
|
||||
expect(contentServicesPage.getCurrentFolderID()).toContain(uploadedFolder.entry.id);
|
||||
|
||||
browser.refresh();
|
||||
|
||||
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());
|
||||
|
||||
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);
|
||||
});
|
||||
|
||||
it('14. Navigate to root folder via breadcrumbs.', () => {
|
||||
contentServicesPage.navigateToFolderViaBreadcrumbs(rootFolder);
|
||||
expect(contentServicesPage.getActiveBreadcrumb()).toEqual(rootFolderName);
|
||||
});
|
||||
});
|
365
e2e/content-services/document_list_pagination.e2e.ts
Normal file
365
e2e/content-services/document_list_pagination.e2e.ts
Normal file
@@ -0,0 +1,365 @@
|
||||
/*!
|
||||
* @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 PaginationPage = require('../pages/adf/paginationPage');
|
||||
import NavigationBarPage = require('../pages/adf/navigationBarPage');
|
||||
|
||||
import AcsUserModel = require('../models/ACS/acsUserModel');
|
||||
import FolderModel = require('../models/ACS/folderModel');
|
||||
|
||||
import TestConfig = require('../test.config');
|
||||
import Util = require('../util/util');
|
||||
|
||||
import AlfrescoApi = require('alfresco-js-api-node');
|
||||
import { UploadActions } from '../actions/ACS/upload.actions';
|
||||
|
||||
describe('Document List - Pagination', function () {
|
||||
let pagination = {
|
||||
base: 'newFile',
|
||||
secondSetBase: 'secondSet',
|
||||
extension: '.txt'
|
||||
};
|
||||
|
||||
let itemsPerPage = {
|
||||
five: '5',
|
||||
fiveValue: 5,
|
||||
ten: '10',
|
||||
tenValue: 10,
|
||||
fifteen: '15',
|
||||
fifteenValue: 15,
|
||||
twenty: '20',
|
||||
twentyValue: 20,
|
||||
default: '25'
|
||||
};
|
||||
|
||||
let loginPage = new LoginPage();
|
||||
let contentServicesPage = new ContentServicesPage();
|
||||
let paginationPage = new PaginationPage();
|
||||
let navigationBarPage = new NavigationBarPage();
|
||||
|
||||
let acsUser = new AcsUserModel();
|
||||
let newFolderModel = new FolderModel({ 'name': 'newFolder' });
|
||||
let fileNames = [], nrOfFiles = 20, currentPage = 1, secondSetOfFiles, secondSetNumber = 25;
|
||||
let folderTwoModel = new FolderModel({ 'name': 'folderTwo' });
|
||||
let folderThreeModel = new FolderModel({ 'name': 'folderThree' });
|
||||
|
||||
beforeAll(async (done) => {
|
||||
let uploadActions = new UploadActions();
|
||||
|
||||
fileNames = Util.generateSeqeunceFiles(10, nrOfFiles + 9, pagination.base, pagination.extension);
|
||||
secondSetOfFiles = Util.generateSeqeunceFiles(10, secondSetNumber + 9, pagination.secondSetBase, pagination.extension);
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
|
||||
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 folderThreeUploadedModel = await uploadActions.uploadFolder(this.alfrescoJsApi, folderThreeModel.name, '-my-');
|
||||
let newFolderUploadeModel = await uploadActions.uploadFolder(this.alfrescoJsApi, newFolderModel.name, '-my-');
|
||||
|
||||
await uploadActions.createEmptyFiles(this.alfrescoJsApi, fileNames, newFolderUploadeModel.entry.id);
|
||||
|
||||
await uploadActions.createEmptyFiles(this.alfrescoJsApi, fileNames, folderThreeUploadedModel.entry.id);
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C260062] Default pagination settings', function () {
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.navigateToFolder(newFolderModel.name);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.default);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + nrOfFiles + ' of ' + nrOfFiles);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(nrOfFiles);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, fileNames)).toEqual(true);
|
||||
});
|
||||
paginationPage.checkNextPageButtonIsDisabled();
|
||||
paginationPage.checkPreviousPageButtonIsDisabled();
|
||||
});
|
||||
|
||||
it('[C274713] 20 Items per page', function () {
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.navigateToFolder(newFolderModel.name);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.twenty);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.twenty);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + nrOfFiles + ' of ' + nrOfFiles);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(nrOfFiles);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, fileNames)).toEqual(true);
|
||||
});
|
||||
paginationPage.checkNextPageButtonIsDisabled();
|
||||
paginationPage.checkPreviousPageButtonIsDisabled();
|
||||
|
||||
navigationBarPage.clickLogoutButton();
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.twenty);
|
||||
navigationBarPage.clickLogoutButton();
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
});
|
||||
|
||||
it('[C260069] 5 Items per page', function () {
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.navigateToFolder(newFolderModel.name);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.five);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + itemsPerPage.fiveValue * currentPage + ' of ' + nrOfFiles);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, fileNames.slice(0, 5))).toEqual(true);
|
||||
});
|
||||
paginationPage.clickOnNextPage();
|
||||
currentPage++;
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 6-' + itemsPerPage.fiveValue * currentPage + ' of ' + nrOfFiles);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, fileNames.slice(5, 10))).toEqual(true);
|
||||
});
|
||||
paginationPage.clickOnNextPage();
|
||||
currentPage++;
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 11-' + itemsPerPage.fiveValue * currentPage + ' of ' + nrOfFiles);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, fileNames.slice(10, 15))).toEqual(true);
|
||||
});
|
||||
paginationPage.clickOnNextPage();
|
||||
currentPage++;
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 16-' + itemsPerPage.fiveValue * currentPage + ' of ' + nrOfFiles);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, fileNames.slice(15, 20))).toEqual(true);
|
||||
});
|
||||
|
||||
navigationBarPage.clickLogoutButton();
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
|
||||
navigationBarPage.clickLogoutButton();
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
});
|
||||
|
||||
it('[C260067] 10 Items per page', function () {
|
||||
currentPage = 1;
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.navigateToFolder(newFolderModel.name);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.ten);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.ten);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + itemsPerPage.tenValue * currentPage + ' of ' + nrOfFiles);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.tenValue);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, fileNames.slice(0, 10))).toEqual(true);
|
||||
});
|
||||
paginationPage.clickOnNextPage();
|
||||
currentPage++;
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.ten);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 11-' + itemsPerPage.tenValue * currentPage + ' of ' + nrOfFiles);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.tenValue);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, fileNames.slice(10, 20))).toEqual(true);
|
||||
});
|
||||
|
||||
navigationBarPage.clickLogoutButton();
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.ten);
|
||||
navigationBarPage.clickLogoutButton();
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
currentPage = 1;
|
||||
});
|
||||
|
||||
it('[C260065] 15 Items per page', function () {
|
||||
currentPage = 1;
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.navigateToFolder(newFolderModel.name);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(contentServicesPage.getActiveBreadcrumb()).toEqual(newFolderModel.name);
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.fifteen);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.fifteen);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + itemsPerPage.fifteenValue * currentPage + ' of ' + nrOfFiles);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fifteenValue);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, fileNames.slice(0, 15))).toEqual(true);
|
||||
});
|
||||
currentPage++;
|
||||
paginationPage.clickOnNextPage();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.fifteen);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 16-' + nrOfFiles + ' of ' + nrOfFiles);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(nrOfFiles - itemsPerPage.fifteenValue);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, fileNames.slice(15, 20))).toEqual(true);
|
||||
});
|
||||
|
||||
navigationBarPage.clickLogoutButton();
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.fifteen);
|
||||
});
|
||||
|
||||
xit('[C91320] Pagination when the content is sorted', function () {
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.navigateToFolder(newFolderModel.name);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(contentServicesPage.getActiveBreadcrumb()).toEqual(newFolderModel.name);
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.twenty);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(JSON.stringify(list) === JSON.stringify(fileNames)).toEqual(true);
|
||||
});
|
||||
contentServicesPage.sortByName(false);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
fileNames.reverse();
|
||||
expect(JSON.stringify(list) === JSON.stringify(fileNames)).toEqual(true);
|
||||
});
|
||||
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.five);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(JSON.stringify(list) === JSON.stringify(fileNames.slice(15, 20))).toEqual(true);
|
||||
});
|
||||
|
||||
paginationPage.clickOnNextPage();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(JSON.stringify(list) === JSON.stringify(fileNames.slice(10, 15))).toEqual(true);
|
||||
});
|
||||
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.ten);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(JSON.stringify(list) === JSON.stringify(fileNames.slice(10, 20))).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
it('[C260107] Pagination in an empty folder', function () {
|
||||
contentServicesPage.goToDocumentList();
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.five);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
|
||||
contentServicesPage.navigateToFolder(newFolderModel.name);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(contentServicesPage.getActiveBreadcrumb()).toEqual(newFolderModel.name);
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
|
||||
contentServicesPage.createNewFolder(folderTwoModel.name).checkContentIsDisplayed(folderTwoModel.name);
|
||||
contentServicesPage.navigateToFolder(folderTwoModel.name);
|
||||
contentServicesPage.checkPaginationIsNotDisplayed();
|
||||
});
|
||||
|
||||
xit('[C260071] Items per page when having 25 files', function () {
|
||||
currentPage = 1;
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.navigateToFolder(folderThreeModel.name);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(contentServicesPage.getActiveBreadcrumb()).toEqual(folderThreeModel.name);
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.fifteen);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.fifteen);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + itemsPerPage.fifteenValue * currentPage + ' of ' + secondSetNumber);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fifteenValue);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, secondSetOfFiles.slice(0, 15))).toEqual(true);
|
||||
});
|
||||
|
||||
currentPage++;
|
||||
paginationPage.clickOnNextPage();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.fifteen);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 16-' + secondSetNumber + ' of ' + secondSetNumber);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(secondSetNumber - itemsPerPage.fifteenValue);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, secondSetOfFiles.slice(15, 25))).toEqual(true);
|
||||
});
|
||||
|
||||
currentPage = 1;
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.twenty);
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.twenty);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + itemsPerPage.twentyValue * currentPage + ' of ' + secondSetNumber);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(itemsPerPage.twentyValue);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, secondSetOfFiles.slice(0, 20))).toEqual(true);
|
||||
});
|
||||
|
||||
currentPage++;
|
||||
paginationPage.clickOnNextPage();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
contentServicesPage.waitForTableBody();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.twenty);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 21-' + secondSetNumber + ' of ' + secondSetNumber);
|
||||
expect(contentServicesPage.numberOfResultsDisplayed()).toBe(secondSetNumber - itemsPerPage.twentyValue);
|
||||
contentServicesPage.getAllRowsNameColumn().then(function (list) {
|
||||
expect(Util.arrayContainsArray(list, secondSetOfFiles.slice(20, 25))).toEqual(true);
|
||||
});
|
||||
});
|
||||
});
|
241
e2e/content-services/search_component.e2e.ts
Normal file
241
e2e/content-services/search_component.e2e.ts
Normal file
@@ -0,0 +1,241 @@
|
||||
/*!
|
||||
* @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 SearchDialog = require('../pages/adf/dialog/searchDialog');
|
||||
import ContentServicesPage = require('../pages/adf/contentServicesPage');
|
||||
import filePreviewPage = require('../pages/adf/filePreviewPage');
|
||||
import SearchResultPage = require('../pages/adf/searchResultsPage');
|
||||
|
||||
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';
|
||||
|
||||
describe('Search component - Search Bar', () => {
|
||||
|
||||
let search = {
|
||||
inactive: {
|
||||
firstChar: 'x',
|
||||
secondChar: 'y',
|
||||
thirdChar: 'z',
|
||||
name: 'impossible-name-folder' + Util.generateRandomString(8)
|
||||
}
|
||||
};
|
||||
|
||||
let loginPage = new LoginPage();
|
||||
let contentServicesPage = new ContentServicesPage();
|
||||
let searchDialog = new SearchDialog();
|
||||
let searchResultPage = new SearchResultPage();
|
||||
|
||||
let acsUser = new AcsUserModel();
|
||||
|
||||
let filename = Util.generateRandomString(16);
|
||||
let firstFolderName = Util.generateRandomString(16);
|
||||
let secondFolderName = Util.generateRandomString(16);
|
||||
let thirdFolderName = Util.generateRandomString(16);
|
||||
|
||||
let firstFileModel = new FileModel({
|
||||
'name': filename, 'shortName': filename.substring(0, 8)
|
||||
});
|
||||
|
||||
let firstFolderModel = new FolderModel({
|
||||
'name': firstFolderName, 'shortName': firstFolderName.substring(0, 8)
|
||||
});
|
||||
let secondFolder = new FolderModel({
|
||||
'name': secondFolderName, 'shortName': secondFolderName.substring(0, 8)
|
||||
});
|
||||
let thirdFolder = new FolderModel({
|
||||
'name': thirdFolderName, 'shortName': thirdFolderName.substring(0, 8)
|
||||
});
|
||||
|
||||
beforeAll(async (done) => {
|
||||
let uploadActions = new UploadActions();
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
|
||||
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 firstFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, firstFileModel.location, firstFileModel.name, '-my-');
|
||||
Object.assign(firstFileModel, firstFileUploaded.entry);
|
||||
|
||||
await uploadActions.uploadFolder(this.alfrescoJsApi, firstFolderModel.name, '-my-');
|
||||
await uploadActions.uploadFolder(this.alfrescoJsApi, secondFolder.name, '-my-');
|
||||
await uploadActions.uploadFolder(this.alfrescoJsApi, thirdFolder.name, '-my-');
|
||||
|
||||
await browser.driver.sleep(5000); // wait search index previous file/folder uploaded
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
// afterAll((done) => {
|
||||
// NodesAPI.deleteContent(acsUser, firstFileModel.id, () => {
|
||||
// NodesAPI.deleteContent(acsUser, firstFolderModel.id, () => {
|
||||
// done();
|
||||
// });
|
||||
// });
|
||||
// });
|
||||
|
||||
it('1. Search bar is visible', () => {
|
||||
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible();
|
||||
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().checkSearchIconIsVisible();
|
||||
searchDialog.clickOnSearchIcon().checkSearchBarIsNotVisible().checkSearchIconIsVisible();
|
||||
});
|
||||
|
||||
it('2. Add input and close', () => {
|
||||
searchDialog.checkSearchIconIsVisible().clickOnSearchIcon().enterText(firstFolderModel.shortName);
|
||||
searchDialog.clickOnSearchIcon().checkSearchBarIsNotVisible().checkSearchIconIsVisible();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
});
|
||||
|
||||
it('3. Search for content that doesn\'t exist', () => {
|
||||
searchDialog.checkSearchBarIsNotVisible().clickOnSearchIcon().checkNoResultMessageIsNotDisplayed()
|
||||
.enterText(search.inactive.name).checkNoResultMessageIsDisplayed();
|
||||
searchDialog.clearText();
|
||||
searchDialog.checkSearchBarIsNotVisible();
|
||||
});
|
||||
|
||||
it('4. Existing folder and file are displayed in search suggestion when typing only the first 4 letters', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterText(firstFolderModel.shortName);
|
||||
|
||||
searchDialog.resultTableContainsRow(firstFolderModel.name);
|
||||
|
||||
expect(searchDialog.getSpecificRowsHighlightName(firstFolderModel.name)).toEqual(firstFolderModel.shortName);
|
||||
expect(searchDialog.getSpecificRowsAuthor(firstFolderModel.name)).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
|
||||
expect(searchDialog.getSpecificRowsCompleteName(firstFolderModel.name)).toEqual(firstFolderModel.name);
|
||||
|
||||
searchDialog.clearText();
|
||||
searchDialog.checkSearchBarIsNotVisible();
|
||||
|
||||
searchDialog.clickOnSearchIcon().enterText(firstFileModel.shortName);
|
||||
searchDialog.resultTableContainsRow(firstFileModel.name);
|
||||
|
||||
expect(searchDialog.getSpecificRowsHighlightName(firstFileModel.name)).toEqual(firstFileModel.shortName);
|
||||
expect(searchDialog.getSpecificRowsAuthor(firstFileModel.name)).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
|
||||
|
||||
expect(searchDialog.getSpecificRowsCompleteName(firstFileModel.name)).toEqual(firstFileModel.name);
|
||||
|
||||
searchDialog.clearText();
|
||||
searchDialog.checkSearchBarIsNotVisible();
|
||||
});
|
||||
|
||||
it('5. Existing folder and file are displayed in search suggestion', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterText(firstFolderModel.name);
|
||||
searchDialog.resultTableContainsRow(firstFolderModel.name);
|
||||
|
||||
expect(searchDialog.getSpecificRowsHighlightName(firstFolderModel.name)).toEqual(firstFolderModel.name);
|
||||
expect(searchDialog.getSpecificRowsAuthor(firstFolderModel.name)).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
|
||||
expect(searchDialog.getSpecificRowsCompleteName(firstFolderModel.name)).toEqual(firstFolderModel.name);
|
||||
|
||||
searchDialog.clearText();
|
||||
searchDialog.checkSearchBarIsNotVisible();
|
||||
|
||||
searchDialog.clickOnSearchIcon().enterText(firstFileModel.name);
|
||||
searchDialog.resultTableContainsRow(firstFileModel.name);
|
||||
|
||||
expect(searchDialog.getSpecificRowsHighlightName(firstFileModel.name)).toEqual(firstFileModel.name);
|
||||
expect(searchDialog.getSpecificRowsAuthor(firstFileModel.name)).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
|
||||
expect(searchDialog.getSpecificRowsCompleteName(firstFileModel.name)).toEqual(firstFileModel.name);
|
||||
|
||||
searchDialog.clearText();
|
||||
searchDialog.checkSearchBarIsNotVisible();
|
||||
});
|
||||
|
||||
it('6. Folder content is displayed when clicking on existing folder', () => {
|
||||
searchDialog.clickOnSearchIcon().enterText(firstFolderModel.shortName);
|
||||
searchDialog.resultTableContainsRow(firstFolderModel.name);
|
||||
searchDialog.clickOnSpecificRow(firstFolderModel.name);
|
||||
contentServicesPage.checkAcsContainer().waitForTableBody();
|
||||
|
||||
expect(contentServicesPage.currentFolderName()).toEqual(firstFolderModel.name);
|
||||
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
searchDialog.checkSearchIconIsVisible().clickOnSearchIcon().checkSearchBarIsVisible();
|
||||
searchDialog.enterText(firstFileModel.name).resultTableContainsRow(firstFileModel.name);
|
||||
searchDialog.clickOnSpecificRow(firstFileModel.name);
|
||||
expect(filePreviewPage.getPDFTitleFromSearch()).toEqual(firstFileModel.name);
|
||||
|
||||
filePreviewPage.closePreviewWithButton();
|
||||
});
|
||||
|
||||
it('7. Non-existent folder is not displayed in search page', () => {
|
||||
searchDialog.checkSearchIconIsVisible().clickOnSearchIcon();
|
||||
searchDialog.enterTextAndPressEnter(search.inactive.name);
|
||||
searchResultPage.checkNoResultMessageIsDisplayed();
|
||||
contentServicesPage.goToDocumentList();
|
||||
});
|
||||
|
||||
it('8. Existing folder is displayed in search page', () => {
|
||||
searchDialog.clickOnSearchIcon();
|
||||
searchDialog.enterTextAndPressEnter(firstFolderModel.name);
|
||||
searchResultPage.checkContentIsDisplayed(firstFolderModel.name);
|
||||
});
|
||||
|
||||
it('9. Existing file is displayed in search page', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
searchDialog.clickOnSearchIcon();
|
||||
searchDialog.enterTextAndPressEnter(firstFileModel.name);
|
||||
searchResultPage.checkContentIsDisplayed(firstFileModel.name);
|
||||
});
|
||||
|
||||
xit('10. A folder is selected from search bar using arrows', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
searchDialog
|
||||
.clickOnSearchIcon()
|
||||
.enterText(secondFolder.shortName)
|
||||
.pressDownArrowAndEnter();
|
||||
|
||||
contentServicesPage.checkAcsContainer();
|
||||
expect(contentServicesPage.currentFolderName()).toEqual(secondFolder.name);
|
||||
});
|
||||
|
||||
xit('11. The search bar gets closed when clicking on another browser tab', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
searchDialog
|
||||
.clickOnSearchIcon()
|
||||
.enterText(secondFolder.shortName);
|
||||
|
||||
searchDialog.resultTableContainsRow(secondFolder.name);
|
||||
|
||||
Util.openNewTabInBrowser();
|
||||
Util.switchToWindowHandler(0);
|
||||
|
||||
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible();
|
||||
});
|
||||
});
|
286
e2e/content-services/search_page_component.e2e.ts
Normal file
286
e2e/content-services/search_page_component.e2e.ts
Normal file
@@ -0,0 +1,286 @@
|
||||
/*!
|
||||
* @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 SearchDialog = require('../pages/adf/dialog/searchDialog');
|
||||
import ContentServicesPage = require('../pages/adf/contentServicesPage');
|
||||
import SearchResultPage = require('../pages/adf/searchResultsPage');
|
||||
import filePreviewPage = require('../pages/adf/filePreviewPage');
|
||||
|
||||
import AcsUserModel = require('../models/ACS/acsUserModel');
|
||||
import FolderModel = require('../models/ACS/folderModel');
|
||||
import FileModel = require('../models/ACS/fileModel');
|
||||
|
||||
import TestConfig = require('../test.config');
|
||||
import Util = require('../util/util');
|
||||
import resources = require('../util/resources');
|
||||
|
||||
import AlfrescoApi = require('alfresco-js-api-node');
|
||||
import { UploadActions } from '../actions/ACS/upload.actions';
|
||||
|
||||
describe('Search component - Search Page', () => {
|
||||
let search = {
|
||||
active: {
|
||||
base: Util.generateRandomString(3),
|
||||
firstFile: Util.generateRandomString(),
|
||||
secondFile: Util.generateRandomString(),
|
||||
extension: '.txt'
|
||||
},
|
||||
no_permission: {
|
||||
noPermFile: 'Meetings',
|
||||
noPermFolder: 'Meeting Notes'
|
||||
}
|
||||
};
|
||||
|
||||
let loginPage = new LoginPage();
|
||||
let contentServicesPage = new ContentServicesPage();
|
||||
let searchDialog = new SearchDialog();
|
||||
let searchResultPage = new SearchResultPage();
|
||||
|
||||
let acsUser = new AcsUserModel();
|
||||
let emptyFolderModel = new FolderModel({ 'name': Util.generateRandomString()});
|
||||
let firstFileModel = new FileModel({
|
||||
'name': search.active.firstFile,
|
||||
'location': resources.Files.ADF_DOCUMENTS.TXT.file_location
|
||||
});
|
||||
let newFolderModel = new FolderModel({ 'name': 'newFolder' });
|
||||
let fileNames = [], adminFileNames = [], nrOfFiles = 15, adminNrOfFiles = 5;
|
||||
|
||||
beforeAll(async (done) => {
|
||||
fileNames = Util.generateSeqeunceFiles(1, nrOfFiles, search.active.base, search.active.extension);
|
||||
adminFileNames = Util.generateSeqeunceFiles(nrOfFiles + 1, nrOfFiles + adminNrOfFiles, search.active.base, search.active.extension);
|
||||
|
||||
let uploadActions = new UploadActions();
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
|
||||
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.uploadFolder(this.alfrescoJsApi, emptyFolderModel.name, '-my-');
|
||||
let newFolderModelUploaded = await uploadActions.uploadFolder(this.alfrescoJsApi, newFolderModel.name, '-my-');
|
||||
|
||||
await uploadActions.createEmptyFiles(this.alfrescoJsApi, fileNames, newFolderModelUploaded.entry.id);
|
||||
|
||||
let firstFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, firstFileModel.location, firstFileModel.name, '-my-');
|
||||
Object.assign(firstFileModel, firstFileUploaded.entry);
|
||||
|
||||
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
|
||||
await uploadActions.createEmptyFiles(this.alfrescoJsApi, adminFileNames, newFolderModelUploaded.entry.id);
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('1. \'No results found searching for\' message is displayed on Search Page', () => {
|
||||
let notExistentFileName = Util.generateRandomString();
|
||||
contentServicesPage.goToDocumentList();
|
||||
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(notExistentFileName);
|
||||
searchResultPage.checkNoResultMessageIsDisplayed();
|
||||
});
|
||||
|
||||
it('2. File previewer is displayed', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
searchDialog
|
||||
.checkSearchBarIsNotVisible()
|
||||
.checkSearchIconIsVisible()
|
||||
.clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(firstFileModel.name);
|
||||
|
||||
searchResultPage.checkContentIsDisplayed(firstFileModel.name);
|
||||
searchResultPage.navigateToFolder(firstFileModel.name);
|
||||
|
||||
browser.driver.sleep(200);
|
||||
|
||||
filePreviewPage.closePreviewWithButton();
|
||||
});
|
||||
|
||||
it('3. Only the searched file is displayed', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
searchDialog
|
||||
.checkSearchBarIsNotVisible()
|
||||
.checkSearchIconIsVisible()
|
||||
.clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(search.active.firstFile);
|
||||
|
||||
searchResultPage.checkContentIsDisplayed(search.active.firstFile);
|
||||
expect(searchResultPage.numberOfResultsDisplayed()).toBe(1);
|
||||
});
|
||||
|
||||
it('4. Folder content is displayed', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
searchDialog.checkSearchBarIsNotVisible()
|
||||
.checkSearchIconIsVisible()
|
||||
.clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(emptyFolderModel.name);
|
||||
|
||||
searchResultPage.checkNoResultMessageIsNotDisplayed();
|
||||
searchResultPage.checkContentIsDisplayed(emptyFolderModel.name);
|
||||
searchResultPage.navigateToFolder(emptyFolderModel.name);
|
||||
contentServicesPage.currentFolderName().then((result) => {
|
||||
expect(result).toEqual(emptyFolderModel.name);
|
||||
});
|
||||
});
|
||||
|
||||
it('5. Delete a file from the Search Results Page', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
searchDialog
|
||||
.checkSearchBarIsNotVisible()
|
||||
.checkSearchIconIsVisible()
|
||||
.clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(search.active.firstFile);
|
||||
|
||||
searchResultPage.checkContentIsDisplayed(search.active.firstFile);
|
||||
|
||||
searchResultPage.deleteContent(search.active.firstFile);
|
||||
|
||||
searchResultPage.checkNoResultMessageIsDisplayed();
|
||||
searchResultPage.checkContentIsNotDisplayed(search.active.firstFile);
|
||||
|
||||
contentServicesPage.goToDocumentList();
|
||||
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(search.active.firstFile);
|
||||
searchResultPage.checkNoResultMessageIsDisplayed();
|
||||
});
|
||||
|
||||
it('6. Delete a folder from the Search Results Page', () => {
|
||||
searchDialog.checkSearchBarIsNotVisible()
|
||||
.checkSearchIconIsVisible()
|
||||
.clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(emptyFolderModel.name);
|
||||
|
||||
searchResultPage.checkContentIsDisplayed(emptyFolderModel.name);
|
||||
searchResultPage.checkNoResultMessageIsNotDisplayed();
|
||||
searchResultPage.checkContentIsDisplayed(emptyFolderModel.name);
|
||||
searchResultPage.deleteContent(emptyFolderModel.name);
|
||||
searchResultPage.checkNoResultMessageIsDisplayed();
|
||||
|
||||
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(emptyFolderModel.name);
|
||||
searchResultPage.checkNoResultMessageIsDisplayed();
|
||||
});
|
||||
|
||||
xit('8. Sort content ascending by name.', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
searchDialog
|
||||
.checkSearchBarIsNotVisible()
|
||||
.checkSearchIconIsVisible()
|
||||
.clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(search.active.base);
|
||||
|
||||
searchResultPage.checkContentIsDisplayed(search.active.secondFile);
|
||||
searchResultPage.sortAndCheckListIsOrderedByName(true).then((result) => {
|
||||
expect(result).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
xit('9. Sort content descending by name.', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
searchDialog.checkSearchBarIsNotVisible()
|
||||
.checkSearchIconIsVisible()
|
||||
.clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(search.active.base);
|
||||
|
||||
searchResultPage.checkContentIsDisplayed(search.active.secondFile);
|
||||
searchResultPage.sortAndCheckListIsOrderedByName(false).then((result) => {
|
||||
expect(result).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
xit('10. Sort content ascending by author.', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(search.active.base);
|
||||
searchResultPage.checkContentIsDisplayed(search.active.secondFile);
|
||||
searchResultPage.sortAndCheckListIsOrderedByAuthor(true).then((result) => {
|
||||
expect(result).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
xit('11. Sort content descending by author.', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(search.active.base);
|
||||
searchResultPage.checkContentIsDisplayed(search.active.secondFile);
|
||||
searchResultPage.sortAndCheckListIsOrderedByAuthor(false).then((result) => {
|
||||
expect(result).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
xit('12. Sort content ascending by created date.', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(search.active.base);
|
||||
searchResultPage.checkContentIsDisplayed(search.active.secondFile);
|
||||
searchResultPage.sortAndCheckListIsOrderedByCreated(true).then((result) => {
|
||||
expect(result).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
xit('13. Sort content descending by created date.', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(search.active.base);
|
||||
searchResultPage.checkContentIsDisplayed(search.active.secondFile);
|
||||
searchResultPage.sortAndCheckListIsOrderedByCreated(false).then((result) => {
|
||||
expect(result).toEqual(true);
|
||||
});
|
||||
});
|
||||
|
||||
xit('14. Try to delete a file without rights from the Search Results Page', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(search.no_permission.noPermFile);
|
||||
searchResultPage.checkContentIsDisplayed(search.no_permission.noPermFile);
|
||||
searchResultPage.deleteContent(search.no_permission.noPermFile);
|
||||
searchResultPage.checkContentIsDisplayed(search.no_permission.noPermFile);
|
||||
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(search.no_permission.noPermFile);
|
||||
searchResultPage.checkNoResultMessageIsNotDisplayed();
|
||||
searchResultPage.checkContentIsDisplayed(search.no_permission.noPermFile);
|
||||
});
|
||||
|
||||
it('15. Try to delete a folder without rights from the Search Results Page', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(search.no_permission.noPermFolder);
|
||||
searchResultPage.checkContentIsDisplayed(search.no_permission.noPermFolder);
|
||||
searchResultPage.deleteContent(search.no_permission.noPermFolder);
|
||||
searchResultPage.checkContentIsDisplayed(search.no_permission.noPermFolder);
|
||||
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
|
||||
.enterTextAndPressEnter(search.no_permission.noPermFolder);
|
||||
searchResultPage.checkNoResultMessageIsNotDisplayed();
|
||||
searchResultPage.checkContentIsDisplayed(search.no_permission.noPermFolder);
|
||||
});
|
||||
});
|
165
e2e/content-services/tag_component.e2e.ts
Normal file
165
e2e/content-services/tag_component.e2e.ts
Normal file
@@ -0,0 +1,165 @@
|
||||
/*!
|
||||
* @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 AcsUserModel = require('../models/ACS/acsUserModel');
|
||||
import FileModel = require('../models/ACS/fileModel');
|
||||
|
||||
import LoginPage = require('../pages/adf/loginPage');
|
||||
import TagPage = require('../pages/adf/tagPage');
|
||||
|
||||
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 Util = require('../util/util');
|
||||
|
||||
describe('Tag component', () => {
|
||||
|
||||
let loginPage = new LoginPage();
|
||||
let tagPage = new TagPage();
|
||||
|
||||
let acsUser = new AcsUserModel();
|
||||
let pdfFileModel = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF.file_name });
|
||||
let deleteFile = new FileModel({ 'name': Util.generateRandomString() });
|
||||
let sameTag = Util.generateRandomStringToLowerCase();
|
||||
let tagList = [Util.generateRandomStringToLowerCase(), Util.generateRandomStringToLowerCase()];
|
||||
let uppercaseTag = Util.generateRandomStringToUpperCase();
|
||||
let digitsTag = Util.generateRandomStringDigits();
|
||||
let nonLatinTag = Util.generateRandomStringNonLatin();
|
||||
|
||||
beforeAll(async (done) => {
|
||||
let uploadActions = new UploadActions();
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
|
||||
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 pdfUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFileModel.location, pdfFileModel.name, '-my-');
|
||||
|
||||
let uploadedDeleteFile = await uploadActions.uploadFile(this.alfrescoJsApi, deleteFile.location, deleteFile.name, '-my-');
|
||||
|
||||
Object.assign(pdfFileModel, pdfUploadedFile.entry);
|
||||
|
||||
Object.assign(deleteFile, uploadedDeleteFile.entry);
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C260374] Tag node ID', () => {
|
||||
tagPage.goToTagPage();
|
||||
expect(tagPage.getNodeId()).toEqual('');
|
||||
expect(tagPage.getNewTagPlaceholder()).toEqual('New Tag');
|
||||
expect(tagPage.addTagButtonIsEnabled()).toEqual(false);
|
||||
tagPage.checkTagListIsEmpty();
|
||||
tagPage.checkTagListByNodeIdIsEmpty();
|
||||
expect(tagPage.addNewTagInput('a').addTagButtonIsEnabled()).toEqual(false);
|
||||
expect(tagPage.getNewTagInput()).toEqual('a');
|
||||
});
|
||||
|
||||
it('[C268151] New tag for specific Node ID', () => {
|
||||
tagPage.goToTagPage();
|
||||
tagPage.insertNodeId(pdfFileModel.id);
|
||||
tagPage.addTag(tagList[0]);
|
||||
|
||||
tagPage.checkTagIsDisplayedInTagList(tagList[0]);
|
||||
tagPage.checkTagIsDisplayedInTagListByNodeId(tagList[0]);
|
||||
});
|
||||
|
||||
it('[C260377] Tag name already exists', () => {
|
||||
tagPage.goToTagPage();
|
||||
tagPage.insertNodeId(pdfFileModel.id);
|
||||
tagPage.addTag(sameTag);
|
||||
tagPage.checkTagIsDisplayedInTagList(sameTag);
|
||||
tagPage.addTag(sameTag);
|
||||
expect(tagPage.getErrorMessage()).toEqual('Tag already exists');
|
||||
});
|
||||
|
||||
it('[C260378] Multiple tags', () => {
|
||||
tagPage.goToTagPage();
|
||||
tagPage.insertNodeId(pdfFileModel.id);
|
||||
tagPage.checkTagListIsOrderedAscending();
|
||||
tagPage.checkTagListByNodeIdIsOrderedAscending();
|
||||
tagPage.checkTagListContentServicesIsOrderedAscending();
|
||||
});
|
||||
|
||||
it('[C91326] Tag text field', () => {
|
||||
tagPage.goToTagPage();
|
||||
|
||||
tagPage.insertNodeId(pdfFileModel.id);
|
||||
|
||||
tagPage.addTag(uppercaseTag);
|
||||
|
||||
tagPage.checkTagIsDisplayedInTagList(uppercaseTag.toLowerCase());
|
||||
tagPage.checkTagIsDisplayedInTagListByNodeId(uppercaseTag.toLowerCase());
|
||||
|
||||
tagPage.checkTagIsNotDisplayedInTagList(uppercaseTag);
|
||||
|
||||
tagPage.insertNodeId(pdfFileModel.id);
|
||||
tagPage.addTag(digitsTag);
|
||||
|
||||
tagPage.checkTagIsDisplayedInTagList(digitsTag);
|
||||
tagPage.checkTagIsDisplayedInTagListByNodeId(digitsTag);
|
||||
|
||||
tagPage.insertNodeId(pdfFileModel.id);
|
||||
tagPage.addTag(nonLatinTag);
|
||||
|
||||
tagPage.checkTagIsDisplayedInTagList(nonLatinTag);
|
||||
tagPage.checkTagIsDisplayedInTagListByNodeId(nonLatinTag);
|
||||
});
|
||||
|
||||
it('[C260375] Delete tag', () => {
|
||||
let deleteTag = Util.generateRandomStringToUpperCase();
|
||||
|
||||
tagPage.goToTagPage();
|
||||
|
||||
tagPage.insertNodeId(deleteFile.id);
|
||||
|
||||
tagPage.addTag(deleteTag);
|
||||
|
||||
tagPage.checkTagIsDisplayedInTagList(deleteTag.toLowerCase());
|
||||
tagPage.checkTagIsDisplayedInTagListByNodeId(deleteTag.toLowerCase());
|
||||
|
||||
tagPage.deleteTagFromTagListByNodeId(deleteTag.toLowerCase());
|
||||
|
||||
tagPage.checkTagIsNotDisplayedInTagList(deleteTag.toLowerCase());
|
||||
tagPage.checkTagIsNotDisplayedInTagListByNodeId(deleteTag.toLowerCase());
|
||||
|
||||
tagPage.insertNodeId(deleteFile.id);
|
||||
|
||||
tagPage.addTag(deleteTag);
|
||||
|
||||
tagPage.checkTagIsDisplayedInTagList(deleteTag.toLowerCase());
|
||||
tagPage.checkTagIsDisplayedInTagListByNodeId(deleteTag.toLowerCase());
|
||||
|
||||
tagPage.deleteTagFromTagList(deleteTag.toLowerCase());
|
||||
|
||||
tagPage.checkTagIsNotDisplayedInTagList(deleteTag.toLowerCase());
|
||||
tagPage.checkTagIsNotDisplayedInTagListByNodeId(deleteTag.toLowerCase());
|
||||
});
|
||||
});
|
147
e2e/content-services/trashcan_pagination.e2e.ts
Normal file
147
e2e/content-services/trashcan_pagination.e2e.ts
Normal file
@@ -0,0 +1,147 @@
|
||||
/*!
|
||||
* @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 TrashcanPage = require('../pages/adf/trashcanPage');
|
||||
import PaginationPage = require('../pages/adf/paginationPage');
|
||||
import NavigationBarPage = require('../pages/adf/navigationBarPage');
|
||||
|
||||
import AcsUserModel = require('../models/ACS/acsUserModel');
|
||||
import FolderModel = require('../models/ACS/folderModel');
|
||||
|
||||
import TestConfig = require('../test.config');
|
||||
import Util = require('../util/util');
|
||||
|
||||
import AlfrescoApi = require('alfresco-js-api-node');
|
||||
import { UploadActions } from '../actions/ACS/upload.actions';
|
||||
|
||||
describe('Trashcan - Pagination', () => {
|
||||
let pagination = {
|
||||
base: 'newFile',
|
||||
extension: '.txt'
|
||||
};
|
||||
|
||||
let itemsPerPage = {
|
||||
five: '5',
|
||||
fiveValue: 5,
|
||||
ten: '10',
|
||||
tenValue: 10,
|
||||
fifteen: '15',
|
||||
fifteenValue: 15,
|
||||
twenty: '20',
|
||||
twentyValue: 20,
|
||||
default: '25'
|
||||
};
|
||||
|
||||
let loginPage = new LoginPage();
|
||||
let trashcanPage = new TrashcanPage();
|
||||
let paginationPage = new PaginationPage();
|
||||
let navigationBarPage = new NavigationBarPage();
|
||||
|
||||
let acsUser = new AcsUserModel();
|
||||
let newFolderModel = new FolderModel({ 'name': 'newFolder' });
|
||||
let nrOfFiles = 20;
|
||||
|
||||
beforeAll(async (done) => {
|
||||
let uploadActions = new UploadActions();
|
||||
|
||||
let fileNames = Util.generateSeqeunceFiles(10, nrOfFiles + 9, pagination.base, pagination.extension);
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
|
||||
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 folderUploadedModel = await uploadActions.uploadFolder(this.alfrescoJsApi, newFolderModel.name, '-my-');
|
||||
|
||||
let emptyFiles = await uploadActions.createEmptyFiles(this.alfrescoJsApi, fileNames, folderUploadedModel.entry.id);
|
||||
await emptyFiles.list.entries.forEach(async (node) => {
|
||||
await this.alfrescoJsApi.node.deleteNode(node.entry.id).then(() => {
|
||||
}, () => {
|
||||
this.alfrescoJsApi.node.deleteNode(node.entry.id);
|
||||
});
|
||||
});
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C272811] 20 Items per page', () => {
|
||||
navigationBarPage.clickTrashcanButton();
|
||||
|
||||
trashcanPage.waitForTableBody();
|
||||
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.twenty);
|
||||
|
||||
trashcanPage.waitForTableBody();
|
||||
trashcanPage.waitForPagination();
|
||||
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.twenty);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + nrOfFiles + ' of ' + nrOfFiles);
|
||||
expect(trashcanPage.numberOfResultsDisplayed()).toBe(nrOfFiles);
|
||||
|
||||
paginationPage.checkNextPageButtonIsDisabled();
|
||||
paginationPage.checkPreviousPageButtonIsDisabled();
|
||||
});
|
||||
|
||||
it('[C276742] 15 Items per page', () => {
|
||||
navigationBarPage.clickTrashcanButton();
|
||||
trashcanPage.waitForTableBody();
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.fifteen);
|
||||
trashcanPage.waitForTableBody();
|
||||
trashcanPage.waitForPagination();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.fifteen);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + itemsPerPage.fifteenValue + ' of ' + nrOfFiles);
|
||||
expect(trashcanPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fifteenValue);
|
||||
paginationPage.checkNextPageButtonIsEnabled();
|
||||
paginationPage.checkPreviousPageButtonIsDisabled();
|
||||
});
|
||||
|
||||
it('[C276743] 10 Items per page', () => {
|
||||
navigationBarPage.clickTrashcanButton();
|
||||
trashcanPage.waitForTableBody();
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.ten);
|
||||
trashcanPage.waitForTableBody();
|
||||
trashcanPage.waitForPagination();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.ten);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + itemsPerPage.tenValue + ' of ' + nrOfFiles);
|
||||
expect(trashcanPage.numberOfResultsDisplayed()).toBe(itemsPerPage.tenValue);
|
||||
paginationPage.checkNextPageButtonIsEnabled();
|
||||
paginationPage.checkPreviousPageButtonIsDisabled();
|
||||
});
|
||||
|
||||
it('[C276744] 5 Items per page', () => {
|
||||
navigationBarPage.clickTrashcanButton();
|
||||
trashcanPage.waitForTableBody();
|
||||
paginationPage.selectItemsPerPage(itemsPerPage.five);
|
||||
trashcanPage.waitForTableBody();
|
||||
trashcanPage.waitForPagination();
|
||||
expect(paginationPage.getCurrentItemsPerPage()).toEqual(itemsPerPage.five);
|
||||
expect(paginationPage.getPaginationRange()).toEqual('Showing 1-' + itemsPerPage.fiveValue + ' of ' + nrOfFiles);
|
||||
expect(trashcanPage.numberOfResultsDisplayed()).toBe(itemsPerPage.fiveValue);
|
||||
paginationPage.checkNextPageButtonIsEnabled();
|
||||
paginationPage.checkPreviousPageButtonIsDisabled();
|
||||
});
|
||||
})
|
||||
;
|
101
e2e/content-services/upload/excluded_file.e2e.ts
Normal file
101
e2e/content-services/upload/excluded_file.e2e.ts
Normal file
@@ -0,0 +1,101 @@
|
||||
/*!
|
||||
* @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 UploadDialog = require('../../pages/adf/dialog/uploadDialog');
|
||||
import UploadToggles = require('../../pages/adf/dialog/uploadToggles');
|
||||
|
||||
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 AlfrescoApi = require('alfresco-js-api-node');
|
||||
import { DropActions } from '../../actions/drop.actions';
|
||||
|
||||
import path = require('path');
|
||||
|
||||
describe('Upload component - Excluded Files', () => {
|
||||
|
||||
let contentServicesPage = new ContentServicesPage();
|
||||
let uploadDialog = new UploadDialog();
|
||||
let uploadToggles = new UploadToggles();
|
||||
let loginPage = new LoginPage();
|
||||
let acsUser = new AcsUserModel();
|
||||
|
||||
let iniExcludedFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.INI.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.INI.file_location
|
||||
});
|
||||
|
||||
let folderWithExcludedFile = new FolderModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.FOLDER_EXCLUDED.folder_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.FOLDER_EXCLUDED.folder_location
|
||||
});
|
||||
|
||||
beforeAll(async (done) => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
|
||||
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);
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C279914] Should not allow upload default excluded files using D&D', () => {
|
||||
contentServicesPage.checkDandDIsDisplayed();
|
||||
|
||||
let dragAndDropArea = element(by.css('adf-upload-drag-area div'));
|
||||
|
||||
let dragAndDrop = new DropActions();
|
||||
|
||||
dragAndDrop.dropFile(dragAndDropArea, iniExcludedFile.location);
|
||||
|
||||
browser.driver.sleep(2000);
|
||||
|
||||
uploadDialog.dialogIsNotDisplayed();
|
||||
|
||||
contentServicesPage.checkContentIsNotDisplayed(iniExcludedFile.name);
|
||||
});
|
||||
|
||||
it('[C260122] Should not allow upload default excluded files using Upload button', () => {
|
||||
contentServicesPage
|
||||
.uploadFile(iniExcludedFile.location)
|
||||
.checkContentIsNotDisplayed(iniExcludedFile.name);
|
||||
});
|
||||
|
||||
it('[C260125] Should not upload excluded file when they are in a Folder', () => {
|
||||
uploadToggles.enableFolderUpload();
|
||||
|
||||
contentServicesPage.uploadFolder(folderWithExcludedFile.location).checkContentIsDisplayed(folderWithExcludedFile.name);
|
||||
|
||||
contentServicesPage.doubleClickRow(folderWithExcludedFile.name).checkContentIsNotDisplayed(iniExcludedFile.name).checkContentIsDisplayed('a_file.txt');
|
||||
});
|
||||
});
|
394
e2e/content-services/upload/uploader_component.e2e.ts
Normal file
394
e2e/content-services/upload/uploader_component.e2e.ts
Normal file
@@ -0,0 +1,394 @@
|
||||
/*!
|
||||
* @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 UploadDialog = require('../../pages/adf/dialog/uploadDialog');
|
||||
import UploadToggles = require('../../pages/adf/dialog/uploadToggles');
|
||||
|
||||
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 AlfrescoApi = require('alfresco-js-api-node');
|
||||
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||
import { DropActions } from '../../actions/drop.actions';
|
||||
|
||||
describe('Upload component', () => {
|
||||
|
||||
let contentServicesPage = new ContentServicesPage();
|
||||
let uploadDialog = new UploadDialog();
|
||||
let uploadToggles = new UploadToggles();
|
||||
let loginPage = new LoginPage();
|
||||
let acsUser = new AcsUserModel();
|
||||
|
||||
let firstPdfFileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PDF_B.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.PDF_B.file_location
|
||||
});
|
||||
let docxFileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.DOCX.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.DOCX.file_location
|
||||
});
|
||||
let pdfFileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.PDF.file_location
|
||||
});
|
||||
let pngFileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.PNG.file_location
|
||||
});
|
||||
let largeFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.LARGE_FILE.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.LARGE_FILE.file_location
|
||||
});
|
||||
let fileWithSpecificSize = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.TXT_400B.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.TXT_400B.file_location
|
||||
});
|
||||
let emptyFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.TXT_0B.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.TXT_0B.file_location
|
||||
});
|
||||
let folderOne = new FolderModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.FOLDER_ONE.folder_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.FOLDER_ONE.folder_location
|
||||
});
|
||||
let folderTwo = new FolderModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.FOLDER_TWO.folder_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.FOLDER_TWO.folder_location
|
||||
});
|
||||
let uploadedFileInFolder = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.FILE_INSIDE_FOLDER_ONE.file_name });
|
||||
let uploadedFileInFolderTwo = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.FILE_INSIDE_FOLDER_TWO.file_name });
|
||||
let filesLocation = [pdfFileModel.location, docxFileModel.location, pngFileModel.location, firstPdfFileModel.location];
|
||||
let filesName = [pdfFileModel.name, docxFileModel.name, pngFileModel.name, firstPdfFileModel.name];
|
||||
|
||||
beforeAll(async (done) => {
|
||||
let uploadActions = new UploadActions();
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
|
||||
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);
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
let pdfUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, firstPdfFileModel.location, firstPdfFileModel.name, '-my-');
|
||||
|
||||
Object.assign(firstPdfFileModel, pdfUploadedFile.entry);
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C272788] Upload Button is visible on the page', () => {
|
||||
expect(contentServicesPage.getSingleFileButtonTooltip()).toEqual('Custom tooltip');
|
||||
|
||||
contentServicesPage
|
||||
.checkUploadButton()
|
||||
.checkContentIsDisplayed(firstPdfFileModel.name);
|
||||
|
||||
contentServicesPage
|
||||
.deleteContent(firstPdfFileModel.name)
|
||||
.checkContentIsNotDisplayed(pdfFileModel.name);
|
||||
});
|
||||
|
||||
it('[C272789] Upload a pdf file', () => {
|
||||
contentServicesPage
|
||||
.uploadFile(pdfFileModel.location)
|
||||
.checkContentIsDisplayed(pdfFileModel.name);
|
||||
|
||||
uploadDialog.fileIsUploaded(pdfFileModel.name);
|
||||
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
|
||||
contentServicesPage
|
||||
.deleteContent(pdfFileModel.name)
|
||||
.checkContentIsNotDisplayed(pdfFileModel.name);
|
||||
});
|
||||
|
||||
it('[C272790] Upload a text file', () => {
|
||||
contentServicesPage
|
||||
.uploadFile(docxFileModel.location)
|
||||
.checkContentIsDisplayed(docxFileModel.name);
|
||||
|
||||
uploadDialog.fileIsUploaded(docxFileModel.name);
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
|
||||
contentServicesPage
|
||||
.deleteContent(docxFileModel.name)
|
||||
.checkContentIsNotDisplayed(docxFileModel.name);
|
||||
});
|
||||
|
||||
it('[C260141] Upload a png file', () => {
|
||||
contentServicesPage
|
||||
.uploadFile(pngFileModel.location)
|
||||
.checkContentIsDisplayed(pngFileModel.name);
|
||||
|
||||
uploadDialog.fileIsUploaded(pngFileModel.name);
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
|
||||
contentServicesPage
|
||||
.deleteContent(pngFileModel.name)
|
||||
.checkContentIsNotDisplayed(pngFileModel.name);
|
||||
});
|
||||
|
||||
it('[C260143] Minimize and maximize the upload dialog box', () => {
|
||||
contentServicesPage
|
||||
.uploadFile(docxFileModel.location)
|
||||
.checkContentIsDisplayed(docxFileModel.name);
|
||||
|
||||
uploadDialog.fileIsUploaded(docxFileModel.name).checkCloseButtonIsDisplayed();
|
||||
expect(uploadDialog.getTitleText()).toEqual('Uploaded 1 / 1');
|
||||
expect(uploadDialog.numberOfCurrentFilesUploaded()).toEqual('1');
|
||||
expect(uploadDialog.numberOfInitialFilesUploaded()).toEqual('1');
|
||||
uploadDialog.minimizeUploadDialog().dialogIsMinimized();
|
||||
expect(uploadDialog.getTitleText()).toEqual('Uploaded 1 / 1');
|
||||
expect(uploadDialog.numberOfCurrentFilesUploaded()).toEqual('1');
|
||||
expect(uploadDialog.numberOfInitialFilesUploaded()).toEqual('1');
|
||||
uploadDialog.maximizeUploadDialog().dialogIsDisplayed().fileIsUploaded(docxFileModel.name);
|
||||
expect(uploadDialog.getTitleText()).toEqual('Uploaded 1 / 1');
|
||||
expect(uploadDialog.numberOfCurrentFilesUploaded()).toEqual('1');
|
||||
expect(uploadDialog.numberOfInitialFilesUploaded()).toEqual('1');
|
||||
uploadDialog.checkCloseButtonIsDisplayed().clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.deleteContent(docxFileModel.name).checkContentIsNotDisplayed(docxFileModel.name);
|
||||
});
|
||||
|
||||
it('[C260168] Cancel the uploaded file through the upload dialog icon', () => {
|
||||
contentServicesPage.uploadFile(pdfFileModel.location)
|
||||
.checkContentIsDisplayed(pdfFileModel.name);
|
||||
uploadDialog.removeUploadedFile(pdfFileModel.name).fileIsCancelled(pdfFileModel.name);
|
||||
expect(uploadDialog.getTitleText()).toEqual('Upload canceled');
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.checkContentIsNotDisplayed(pdfFileModel.name);
|
||||
});
|
||||
|
||||
xit('[C272792] Cancel a big file through the upload dialog icon before the upload to be done', () => {
|
||||
contentServicesPage.uploadFile(largeFile.location);
|
||||
|
||||
uploadDialog.removeFileWhileUploading(largeFile.name).fileIsCancelled(largeFile.name);
|
||||
|
||||
expect(uploadDialog.getTitleText()).toEqual('Upload canceled');
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.checkContentIsNotDisplayed(largeFile.name);
|
||||
});
|
||||
|
||||
xit('[C260169] Cancel a big file through the cancel uploads button', () => {
|
||||
contentServicesPage.uploadFile(largeFile.location);
|
||||
uploadDialog.cancelUploads();
|
||||
expect(uploadDialog.getTitleText()).toEqual('Uploading 0 / 1');
|
||||
expect(uploadDialog.getConfirmationDialogTitleText()).toEqual('Cancel Upload');
|
||||
expect(uploadDialog.getConfirmationDialogDescriptionText()).toEqual('Stop uploading and remove files already uploaded.');
|
||||
uploadDialog.clickOnConfirmationDialogYesButton().fileIsCancelled(largeFile.name);
|
||||
expect(uploadDialog.getTitleText()).toEqual('Upload canceled');
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.checkContentIsNotDisplayed(largeFile.name);
|
||||
});
|
||||
|
||||
xit('[C272793] Cancel uploading multiple files', () => {
|
||||
uploadToggles.enableMultipleFileUpload();
|
||||
contentServicesPage.uploadMultipleFile([pngFileModel.location, largeFile.location]);
|
||||
uploadDialog.cancelUploads();
|
||||
expect(uploadDialog.getConfirmationDialogTitleText()).toEqual('Cancel Upload');
|
||||
expect(uploadDialog.getConfirmationDialogDescriptionText()).toEqual('Stop uploading and remove files already uploaded.');
|
||||
uploadDialog.clickOnConfirmationDialogYesButton().fileIsCancelled(pngFileModel.name).fileIsCancelled(largeFile.name);
|
||||
expect(uploadDialog.getTitleText()).toEqual('Upload canceled');
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.checkContentIsNotDisplayed(pngFileModel.name).checkContentIsNotDisplayed(largeFile.name);
|
||||
uploadToggles.disableMultipleFileUpload();
|
||||
});
|
||||
|
||||
it('[C272794] Tooltip of uploading multiple files button', () => {
|
||||
uploadToggles.enableMultipleFileUpload();
|
||||
expect(contentServicesPage.getMultipleFileButtonTooltip()).toEqual('Custom tooltip');
|
||||
uploadToggles.disableMultipleFileUpload();
|
||||
});
|
||||
|
||||
it('[C260171] Should upload only the extension filter allowed when Enable extension filter is enabled', () => {
|
||||
uploadToggles.enableExtensionFilter().addExtension('.docx');
|
||||
contentServicesPage.uploadFile(docxFileModel.location).checkContentIsDisplayed(docxFileModel.name);
|
||||
uploadDialog.removeUploadedFile(docxFileModel.name).fileIsCancelled(docxFileModel.name);
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.uploadFile(largeFile.location).checkContentIsNotDisplayed(largeFile.name);
|
||||
uploadDialog.dialogIsNotDisplayed();
|
||||
uploadToggles.disableExtensionFilter();
|
||||
});
|
||||
|
||||
it('[C274687] Should upload with drag and drop only the extension filter allowed when Enable extension filter is enabled', () => {
|
||||
uploadToggles.enableExtensionFilter().addExtension('.docx');
|
||||
|
||||
let dragAndDrop = new DropActions();
|
||||
let dragAndDropArea = element(by.css('adf-upload-drag-area div'));
|
||||
|
||||
dragAndDrop.dropFile(dragAndDropArea, docxFileModel.location);
|
||||
contentServicesPage.checkContentIsDisplayed(docxFileModel.name);
|
||||
|
||||
uploadDialog.removeUploadedFile(docxFileModel.name).fileIsCancelled(docxFileModel.name);
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
|
||||
dragAndDrop.dropFile(dragAndDropArea, largeFile.location);
|
||||
contentServicesPage.checkContentIsNotDisplayed(largeFile.name);
|
||||
uploadDialog.dialogIsNotDisplayed();
|
||||
uploadToggles.disableExtensionFilter();
|
||||
});
|
||||
|
||||
it('[C279920] Upload same file twice', () => {
|
||||
contentServicesPage.uploadFile(pdfFileModel.location).checkContentIsDisplayed(pdfFileModel.name);
|
||||
pdfFileModel.setVersion('1');
|
||||
contentServicesPage.uploadFile(pdfFileModel.location).checkContentIsDisplayed(pdfFileModel.getVersionName());
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.deleteContent(pdfFileModel.name).checkContentIsNotDisplayed(pdfFileModel.name);
|
||||
contentServicesPage.deleteContent(pdfFileModel.getVersionName()).checkContentIsNotDisplayed(pdfFileModel.getVersionName());
|
||||
pdfFileModel.setVersion('');
|
||||
});
|
||||
|
||||
it('[C260172] Enable versioning', () => {
|
||||
uploadToggles.enableVersioning();
|
||||
contentServicesPage.uploadFile(pdfFileModel.location).checkContentIsDisplayed(pdfFileModel.name);
|
||||
pdfFileModel.setVersion('1');
|
||||
contentServicesPage.uploadFile(pdfFileModel.location).checkContentIsDisplayed(pdfFileModel.name);
|
||||
uploadDialog.fileIsUploaded(pdfFileModel.name);
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.checkContentIsNotDisplayed(pdfFileModel.getVersionName());
|
||||
contentServicesPage.deleteContent(pdfFileModel.name).checkContentIsNotDisplayed(pdfFileModel.name);
|
||||
pdfFileModel.setVersion('');
|
||||
uploadToggles.disableVersioning();
|
||||
});
|
||||
|
||||
xit('[C260173] Enable folder upload', () => {
|
||||
uploadToggles.enableFolderUpload();
|
||||
contentServicesPage.uploadFolder(folderOne.location).checkContentIsDisplayed(folderOne.name);
|
||||
expect(contentServicesPage.getFolderButtonTooltip()).toEqual('Custom tooltip');
|
||||
uploadDialog.fileIsUploaded(uploadedFileInFolder.name);
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.doubleClickRow(folderOne.name).checkContentIsDisplayed(uploadedFileInFolder.name);
|
||||
contentServicesPage.goToDocumentList();
|
||||
uploadToggles.disableFolderUpload();
|
||||
});
|
||||
|
||||
xit('[C260176] The files uploaded before closing the upload dialog box are not displayed anymore in the upload box', () => {
|
||||
contentServicesPage.uploadFile(docxFileModel.location).checkContentIsDisplayed(docxFileModel.name);
|
||||
|
||||
uploadDialog.fileIsUploaded(docxFileModel.name);
|
||||
|
||||
contentServicesPage.uploadFile(pngFileModel.location).checkContentIsDisplayed(pngFileModel.name);
|
||||
|
||||
uploadDialog.fileIsUploaded(pngFileModel.name).fileIsUploaded(docxFileModel.name);
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
|
||||
contentServicesPage.uploadFile(pdfFileModel.location).checkContentIsDisplayed(pdfFileModel.name);
|
||||
|
||||
uploadDialog.fileIsUploaded(pdfFileModel.name).fileIsNotDisplayedInDialog(pngFileModel.name).fileIsNotDisplayedInDialog(docxFileModel.name);
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
|
||||
contentServicesPage.deleteContents([docxFileModel.name, pngFileModel.name, pdfFileModel.name])
|
||||
.checkContentsAreNotDisplayed([docxFileModel.name, pngFileModel.name, pdfFileModel.name]);
|
||||
});
|
||||
|
||||
xit('[C260170] Upload files on the same time', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
|
||||
uploadToggles.enableMultipleFileUpload();
|
||||
|
||||
contentServicesPage.uploadMultipleFile(filesLocation).checkContentsAreDisplayed(filesName);
|
||||
|
||||
uploadDialog.filesAreUploaded(filesName);
|
||||
|
||||
expect(uploadDialog.getTitleText()).toEqual('Uploaded 4 / 4');
|
||||
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
|
||||
contentServicesPage.deleteContents(filesName).checkContentsAreNotDisplayed(filesName);
|
||||
|
||||
uploadToggles.disableMultipleFileUpload();
|
||||
});
|
||||
|
||||
xit('[C279919] Enable max size and set it to 400', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
uploadToggles.enableMaxSize().addMaxSize('400');
|
||||
contentServicesPage.uploadFile(fileWithSpecificSize.location).checkContentIsDisplayed(fileWithSpecificSize.name);
|
||||
uploadDialog.fileIsUploaded(fileWithSpecificSize.name).clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.deleteContent(fileWithSpecificSize.name).checkContentIsNotDisplayed(fileWithSpecificSize.name);
|
||||
uploadToggles.addMaxSize('399');
|
||||
contentServicesPage.uploadFile(fileWithSpecificSize.location).checkContentIsNotDisplayed(fileWithSpecificSize.name);
|
||||
uploadDialog.fileIsNotDisplayedInDialog(fileWithSpecificSize.name);
|
||||
expect(contentServicesPage.getErrorMessage()).toEqual('File ' + fileWithSpecificSize.name + ' is larger than the allowed file size');
|
||||
contentServicesPage.uploadFile(emptyFile.location).checkContentIsDisplayed(emptyFile.name);
|
||||
uploadDialog.fileIsUploaded(emptyFile.name).clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.deleteContent(emptyFile.name).checkContentIsNotDisplayed(emptyFile.name);
|
||||
uploadToggles.disableMaxSize();
|
||||
});
|
||||
|
||||
xit('[C272796] Enable max size and set it to 0', () => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
contentServicesPage.checkAcsContainer();
|
||||
uploadToggles.enableMaxSize().addMaxSize('0');
|
||||
contentServicesPage.uploadFile(fileWithSpecificSize.location).checkContentIsNotDisplayed(fileWithSpecificSize.name);
|
||||
uploadDialog.fileIsNotDisplayedInDialog(fileWithSpecificSize.name);
|
||||
expect(contentServicesPage.getErrorMessage()).toEqual('File ' + fileWithSpecificSize.name + ' is larger than the allowed file size');
|
||||
contentServicesPage.uploadFile(emptyFile.location).checkContentIsDisplayed(emptyFile.name);
|
||||
uploadDialog.fileIsUploaded(emptyFile.name).clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.deleteContent(emptyFile.name).checkContentIsNotDisplayed(emptyFile.name);
|
||||
uploadToggles.disableMaxSize();
|
||||
});
|
||||
|
||||
xit('[C272797] Set max size to 1 and disable it', () => {
|
||||
uploadToggles.enableMaxSize().addMaxSize('1');
|
||||
uploadToggles.disableMaxSize();
|
||||
contentServicesPage.uploadFile(fileWithSpecificSize.location).checkContentIsDisplayed(fileWithSpecificSize.name);
|
||||
uploadDialog.fileIsUploaded(fileWithSpecificSize.name).clickOnCloseButton().dialogIsNotDisplayed();
|
||||
});
|
||||
|
||||
it('[C91318] Should Enable/Disable upload button when change the disable property', () => {
|
||||
uploadToggles.clickCheckboxDisableUpload();
|
||||
expect(contentServicesPage.uploadButtonIsEnabled()).toBeFalsy();
|
||||
|
||||
uploadToggles.clickCheckboxDisableUpload();
|
||||
expect(contentServicesPage.uploadButtonIsEnabled()).toBeTruthy();
|
||||
});
|
||||
|
||||
it('[C279882] Should be possible Upload a folder in a folder', () => {
|
||||
uploadToggles.enableFolderUpload();
|
||||
contentServicesPage.uploadFolder(folderOne.location).checkContentIsDisplayed(folderOne.name);
|
||||
uploadDialog.fileIsUploaded(uploadedFileInFolder.name);
|
||||
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.doubleClickRow(folderOne.name).checkContentIsDisplayed(uploadedFileInFolder.name);
|
||||
|
||||
uploadToggles.enableFolderUpload();
|
||||
contentServicesPage.uploadFolder(folderTwo.location).checkContentIsDisplayed(folderTwo.name);
|
||||
uploadDialog.fileIsUploaded(uploadedFileInFolderTwo.name);
|
||||
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
contentServicesPage.doubleClickRow(folderTwo.name).checkContentIsDisplayed(uploadedFileInFolderTwo.name);
|
||||
|
||||
uploadToggles.disableFolderUpload();
|
||||
});
|
||||
|
||||
});
|
246
e2e/content-services/upload/user_permission.e2e.ts
Normal file
246
e2e/content-services/upload/user_permission.e2e.ts
Normal file
@@ -0,0 +1,246 @@
|
||||
/*!
|
||||
* @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 UploadDialog = require('../../pages/adf/dialog/uploadDialog');
|
||||
import UploadToggles = require('../../pages/adf/dialog/uploadToggles');
|
||||
import NavigationBarPage = require('../../pages/adf/navigationBarPage');
|
||||
import NotificationPage = require('../../pages/adf/notificationPage');
|
||||
|
||||
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 AlfrescoApi = require('alfresco-js-api-node');
|
||||
import { DropActions } from '../../actions/drop.actions';
|
||||
|
||||
import path = require('path');
|
||||
|
||||
describe('Upload - User permission', () => {
|
||||
|
||||
let contentServicesPage = new ContentServicesPage();
|
||||
let uploadDialog = new UploadDialog();
|
||||
let uploadToggles = new UploadToggles();
|
||||
let loginPage = new LoginPage();
|
||||
let acsUser;
|
||||
let acsUserTwo;
|
||||
let navigationBarPage = new NavigationBarPage();
|
||||
let notificationPage = new NotificationPage();
|
||||
|
||||
let emptyFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.TXT_0B.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.TXT_0B.file_location
|
||||
});
|
||||
|
||||
let pngFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PNG.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.PNG.file_location
|
||||
});
|
||||
|
||||
let pdfFile = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PDF.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.PDF.file_location
|
||||
});
|
||||
|
||||
let folder = new FolderModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.FOLDER_ONE.folder_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.FOLDER_ONE.folder_location
|
||||
});
|
||||
|
||||
beforeAll(() => {
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
});
|
||||
|
||||
beforeEach(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);
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
describe('limited permissions', () => {
|
||||
|
||||
beforeEach(async (done) => {
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C212861] Should not be allowed to Drag and drop a file/folder in a restricted user folder with limited permissions', () => {
|
||||
contentServicesPage.checkDandDIsDisplayed();
|
||||
|
||||
let dragAndDrop = new DropActions();
|
||||
let dragAndDropArea = element(by.css('adf-upload-drag-area div'));
|
||||
|
||||
dragAndDrop.dropFile(dragAndDropArea, emptyFile.location);
|
||||
dragAndDrop.dropFolder(dragAndDropArea, folder.location);
|
||||
|
||||
contentServicesPage.checkContentIsDisplayed(emptyFile.name);
|
||||
contentServicesPage.checkContentIsDisplayed(folder.name);
|
||||
|
||||
contentServicesPage.navigateToFolderViaBreadcrumbs('User Homes');
|
||||
|
||||
dragAndDrop.dropFile(dragAndDropArea, emptyFile.location);
|
||||
dragAndDrop.dropFolder(dragAndDropArea, folder.location);
|
||||
|
||||
let fileInTheUploadedFolder = 'share_profile_pic.png';
|
||||
|
||||
uploadDialog.fileIsError(emptyFile.name);
|
||||
uploadDialog.fileIsError(fileInTheUploadedFolder);
|
||||
|
||||
contentServicesPage.checkContentIsNotDisplayed(emptyFile.name);
|
||||
contentServicesPage.checkContentIsNotDisplayed(folder.name);
|
||||
});
|
||||
|
||||
it('[C279915] Should not be allowed to upload a file in a restricted user folder with limited permissions', () => {
|
||||
navigationBarPage.clickLoginButton();
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
contentServicesPage.uploadFile(emptyFile.location).checkContentIsDisplayed(emptyFile.name);
|
||||
|
||||
uploadDialog.fileIsUploaded(emptyFile.name);
|
||||
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
|
||||
contentServicesPage.navigateToFolderViaBreadcrumbs('User Homes');
|
||||
|
||||
contentServicesPage.uploadFile(emptyFile.location);
|
||||
|
||||
notificationPage.checkNotifyContains('You don\'t have the create permission to upload the content');
|
||||
});
|
||||
|
||||
it('[C279916] Should not be allowed to upload a folder in a restricted user folder with limited permissions', () => {
|
||||
uploadToggles.enableFolderUpload();
|
||||
|
||||
contentServicesPage.uploadFolder(folder.location).checkContentIsDisplayed(folder.name);
|
||||
|
||||
let fileInTheUploadedFolder = 'share_profile_pic.png';
|
||||
|
||||
uploadDialog.fileIsUploaded(fileInTheUploadedFolder);
|
||||
|
||||
uploadDialog.clickOnCloseButton().dialogIsNotDisplayed();
|
||||
|
||||
contentServicesPage.navigateToFolderViaBreadcrumbs('User Homes');
|
||||
|
||||
uploadToggles.enableFolderUpload();
|
||||
|
||||
contentServicesPage.uploadFolder(folder.location);
|
||||
|
||||
notificationPage.checkNotifyContains('You don\'t have the create permission to upload the content');
|
||||
});
|
||||
});
|
||||
|
||||
describe('full permissions', () => {
|
||||
|
||||
beforeEach(async (done) => {
|
||||
loginPage.loginToContentServices(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C260130] Should be allowed to Drag and drop a file/folder in a restricted user folder with full permissions', () => {
|
||||
contentServicesPage.checkDandDIsDisplayed();
|
||||
|
||||
let dragAndDrop = new DropActions();
|
||||
|
||||
let dragAndDropArea = element(by.css('adf-upload-drag-area div'));
|
||||
|
||||
dragAndDrop.dropFile(dragAndDropArea, emptyFile.location);
|
||||
dragAndDrop.dropFolder(dragAndDropArea, folder.location);
|
||||
|
||||
let fileInTheUploadedFolder = 'share_profile_pic.png';
|
||||
|
||||
uploadDialog.fileIsUploaded(emptyFile.name);
|
||||
uploadDialog.fileIsUploaded(fileInTheUploadedFolder);
|
||||
});
|
||||
|
||||
it('[C279917] Should be allowed to upload a file in a restricted user folder with full permissions', () => {
|
||||
contentServicesPage.uploadFile(emptyFile.location);
|
||||
|
||||
uploadDialog.fileIsUploaded(emptyFile.name);
|
||||
});
|
||||
|
||||
it('[C279918] Should be allowed to upload a folder in a restricted user folder with full permissions', () => {
|
||||
uploadToggles.enableFolderUpload();
|
||||
|
||||
contentServicesPage.uploadFolder(folder.location);
|
||||
|
||||
let fileInTheUploadedFolder = 'share_profile_pic.png';
|
||||
|
||||
uploadDialog.fileIsUploaded(fileInTheUploadedFolder);
|
||||
});
|
||||
});
|
||||
|
||||
describe('multiple users', () => {
|
||||
|
||||
beforeEach(async (done) => {
|
||||
acsUserTwo = new AcsUserModel();
|
||||
|
||||
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUserTwo);
|
||||
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C260175] Should two different user upload files in the proper User Home', () => {
|
||||
contentServicesPage.uploadFile(emptyFile.location);
|
||||
|
||||
uploadDialog.fileIsUploaded(emptyFile.name);
|
||||
|
||||
contentServicesPage.checkContentIsDisplayed(emptyFile.name);
|
||||
|
||||
navigationBarPage.clickLoginButton();
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUserTwo);
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
contentServicesPage.checkContentIsNotDisplayed(emptyFile.name);
|
||||
|
||||
contentServicesPage.uploadFile(pngFile.location);
|
||||
|
||||
contentServicesPage.checkContentIsDisplayed(pngFile.name);
|
||||
|
||||
navigationBarPage.clickLoginButton();
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
contentServicesPage.goToDocumentList();
|
||||
|
||||
contentServicesPage.checkContentIsNotDisplayed(pngFile.name);
|
||||
|
||||
contentServicesPage.uploadFile(pdfFile.location);
|
||||
|
||||
contentServicesPage.checkContentIsDisplayed(pdfFile.name);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
82
e2e/content-services/version/version-smoke-tests.e2e.ts
Normal file
82
e2e/content-services/version/version-smoke-tests.e2e.ts
Normal file
@@ -0,0 +1,82 @@
|
||||
/*!
|
||||
* @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 ViewerPage = require('../../pages/adf/viewerPage');
|
||||
|
||||
import AcsUserModel = require('../../models/ACS/acsUserModel');
|
||||
import FileModel = require('../../models/ACS/fileModel');
|
||||
|
||||
import TestConfig = require('../../test.config');
|
||||
import resources = require('../../util/resources');
|
||||
import dateFormat = require('dateformat');
|
||||
|
||||
import AlfrescoApi = require('alfresco-js-api-node');
|
||||
import { UploadActions } from '../../actions/ACS/upload.actions';
|
||||
|
||||
describe('Version component', () => {
|
||||
|
||||
let loginPage = new LoginPage();
|
||||
let contentServicesPage = new ContentServicesPage();
|
||||
let viewerPage = new ViewerPage();
|
||||
let cardViewPage;
|
||||
|
||||
let acsUser = new AcsUserModel();
|
||||
|
||||
let pdfFileModel = new FileModel({
|
||||
'name': resources.Files.ADF_DOCUMENTS.PDF_ALL.file_name,
|
||||
'location': resources.Files.ADF_DOCUMENTS.PDF_ALL.file_location
|
||||
});
|
||||
|
||||
beforeAll(async (done) => {
|
||||
|
||||
let uploadActions = new UploadActions();
|
||||
|
||||
this.alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
|
||||
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 pdfUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFileModel.location, pdfFileModel.name, '-my-');
|
||||
|
||||
Object.assign(pdfFileModel, pdfUploadedFile.entry);
|
||||
|
||||
pdfFileModel.update(pdfUploadedFile.entry);
|
||||
|
||||
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('[C272768] Versions', () => {
|
||||
contentServicesPage.navigateToDocumentList();
|
||||
viewerPage.viewFile(pdfFileModel.name);
|
||||
viewerPage.clickInfoButton();
|
||||
viewerPage.checkInfoSideBarIsDisplayed();
|
||||
viewerPage.clickOnVersionsTab().checkUploadVersionsButtonIsDisplayed();
|
||||
expect(viewerPage.getActiveTab()).toEqual('VERSIONS');
|
||||
viewerPage.checkVersionIsDisplayed(pdfFileModel.name);
|
||||
});
|
||||
|
||||
});
|
77
e2e/content-services/z-finish.e2e.ts
Normal file
77
e2e/content-services/z-finish.e2e.ts
Normal file
@@ -0,0 +1,77 @@
|
||||
/*!
|
||||
* @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 AlfrescoApi = require('alfresco-js-api-node');
|
||||
import TestConfig = require('../test.config');
|
||||
|
||||
import fs = require('fs');
|
||||
import path = require('path');
|
||||
|
||||
let buildNumber = process.env.TRAVIS_BUILD_NUMBER;
|
||||
let saveScreenshot = process.env.SAVE_SCREENSHOT;
|
||||
|
||||
describe('Save screenshot at the end', () => {
|
||||
|
||||
beforeAll(async (done) => {
|
||||
|
||||
if (saveScreenshot === 'true') {
|
||||
if (!buildNumber) {
|
||||
buildNumber = Date.now();
|
||||
}
|
||||
|
||||
let alfrescoJsApi = new AlfrescoApi({
|
||||
provider: 'ECM',
|
||||
hostEcm: TestConfig.adf.url
|
||||
});
|
||||
|
||||
let files = fs.readdirSync(path.join(__dirname, '../../e2e-output/screenshots'));
|
||||
|
||||
if (files && files.length > 0) {
|
||||
alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||
|
||||
let folder = await alfrescoJsApi.nodes.addNode('-my-', {
|
||||
'name': 'contetn-services',
|
||||
'relativePath': 'Buiild-screenshot/Screenshot-e2e-' + buildNumber,
|
||||
'nodeType': 'cm:folder'
|
||||
}, {}, {});
|
||||
|
||||
for (const fileName of files) {
|
||||
|
||||
let pathFile = path.join(__dirname, '../../e2e-output/screenshots', fileName);
|
||||
let file = fs.createReadStream(pathFile);
|
||||
|
||||
await alfrescoJsApi.upload.uploadFile(
|
||||
file,
|
||||
'',
|
||||
folder.entry.id,
|
||||
null,
|
||||
{
|
||||
'name': file.name,
|
||||
'nodeType': 'cm:content'
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
done();
|
||||
});
|
||||
|
||||
it('screenshot need it', () => {
|
||||
expect(true).toEqual(true);
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user