mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-06-30 18:15:11 +00:00
[ADF-3336] - added documentlist tests (#3586)
* [ADF-3336] start adding test for documentlist * [ADF-3336] fixed test for permission message * [ADF-3336] start adding test custom column type * [ADF-3336] - added documentlist tests - PART I * [ADF-3336] removed fdescribe * [ADF-3336] fixed error on files component * [ADF-3336] - unified all the diverging tests into one file * [ADF-3336] fixed label for test * [ADF-3336] removed fdescribe * [ADF-3336] added sorting tests and some fix * [ADF-3336] added other automations * [ADF-3336] fixed processButton get * [ADF-3336] stabilising some flaky tests * [ADF-3336] added line height check * [ADF-3336] Test that needs to be fixed * [ADF-3336] commented failing search tests * [ADF-3336] removed locator from test and added to page object * ] [ADF-3336] rebased after last changes on development * [ADF - 3336] added more test and actions for the test * [ADF-3336] reenabled disabled tests * [ADF-3336] reenabled disabled tests * [ADF-3336] reenabled disabled tests * [ADF-3336] reenabling disabled tests * [ADF-3336] stabilized core tests * [ADF-3336] fixing process service integration tests * [ADF-3336] removed comments and skipped two tests
This commit is contained in:
parent
0670c93d7b
commit
4b79160162
@ -24,6 +24,8 @@
|
|||||||
},
|
},
|
||||||
"PERSONAL-FILES": "Personal Files",
|
"PERSONAL-FILES": "Personal Files",
|
||||||
"WARN-MULTIPLE-UPLOADS": "Display warning for multiple uploads.",
|
"WARN-MULTIPLE-UPLOADS": "Display warning for multiple uploads.",
|
||||||
|
"CUSTOM-PERMISSION-MESSAGE": "Enable custom permission message",
|
||||||
|
"MEDIUM-TIME-FORMAT": "Enable medium time format for document list",
|
||||||
"SEARCH": {
|
"SEARCH": {
|
||||||
"RADIO": {
|
"RADIO": {
|
||||||
"NONE": "None",
|
"NONE": "None",
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
</adf-userinfo>
|
</adf-userinfo>
|
||||||
|
|
||||||
<app-theme-picker></app-theme-picker>
|
<app-theme-picker></app-theme-picker>
|
||||||
<button mat-icon-button [matMenuTriggerFor]="langMenu">
|
<button data-automation-id="language-menu-button" mat-icon-button [matMenuTriggerFor]="langMenu">
|
||||||
<mat-icon>language</mat-icon>
|
<mat-icon>language</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
<mat-menu #langMenu="matMenu" class="adf-menu">
|
<mat-menu #langMenu="matMenu" class="adf-menu">
|
||||||
|
@ -208,6 +208,11 @@
|
|||||||
(preview)="showFile($event)"
|
(preview)="showFile($event)"
|
||||||
(folderChange)="onFolderChange($event)"
|
(folderChange)="onFolderChange($event)"
|
||||||
(permissionError)="handlePermissionError($event)">
|
(permissionError)="handlePermissionError($event)">
|
||||||
|
<no-permission-content *ngIf="enableCustomPermissionMessage">
|
||||||
|
<ng-template>
|
||||||
|
<h1>Cris you don't have permissions</h1>
|
||||||
|
</ng-template>
|
||||||
|
</no-permission-content>
|
||||||
<empty-folder-content *ngIf="disableDragArea">
|
<empty-folder-content *ngIf="disableDragArea">
|
||||||
<ng-template>
|
<ng-template>
|
||||||
<div class="adf-empty_template">
|
<div class="adf-empty_template">
|
||||||
@ -274,7 +279,7 @@
|
|||||||
title="{{'DOCUMENT_LIST.COLUMNS.CREATED' | translate}}"
|
title="{{'DOCUMENT_LIST.COLUMNS.CREATED' | translate}}"
|
||||||
key="createdAt"
|
key="createdAt"
|
||||||
type="date"
|
type="date"
|
||||||
format="timeAgo"
|
[format]="enableMediumTimeFormat ? 'medium' : 'timeAgo'"
|
||||||
class="desktop-only">
|
class="desktop-only">
|
||||||
</data-column>
|
</data-column>
|
||||||
|
|
||||||
@ -523,6 +528,18 @@
|
|||||||
</mat-slide-toggle>
|
</mat-slide-toggle>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<mat-slide-toggle color="primary" [(ngModel)]="enableCustomPermissionMessage">
|
||||||
|
{{'APP.CUSTOM-PERMISSION-MESSAGE' | translate}}
|
||||||
|
</mat-slide-toggle>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<mat-slide-toggle color="primary" [(ngModel)]="enableMediumTimeFormat" id="enableMediumTimeFormat">
|
||||||
|
{{'APP.MEDIUM-TIME-FORMAT' | translate}}
|
||||||
|
</mat-slide-toggle>
|
||||||
|
</section>
|
||||||
|
|
||||||
<h5>Upload</h5>
|
<h5>Upload</h5>
|
||||||
<section *ngIf="acceptedFilesTypeShow">
|
<section *ngIf="acceptedFilesTypeShow">
|
||||||
<mat-form-field floatPlaceholder="float">
|
<mat-form-field floatPlaceholder="float">
|
||||||
|
@ -181,6 +181,8 @@ export class FilesComponent implements OnInit, OnChanges, OnDestroy {
|
|||||||
currentSiteid = '';
|
currentSiteid = '';
|
||||||
warnOnMultipleUploads = false;
|
warnOnMultipleUploads = false;
|
||||||
thumbnails = false;
|
thumbnails = false;
|
||||||
|
enableCustomPermissionMessage = false;
|
||||||
|
enableMediumTimeFormat = false;
|
||||||
|
|
||||||
private onCreateFolder: Subscription;
|
private onCreateFolder: Subscription;
|
||||||
private onEditFolder: Subscription;
|
private onEditFolder: Subscription;
|
||||||
|
@ -43,4 +43,8 @@ export class UploadActions {
|
|||||||
}, {}, {});
|
}, {}, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async deleteFilesOrFolder(alfrescoJsApi, folderId) {
|
||||||
|
return alfrescoJsApi.nodes.deleteNode(folderId, { permanent: true } );
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
452
e2e/content-services/document-list-component.e2e.ts
Normal file
452
e2e/content-services/document-list-component.e2e.ts
Normal file
@ -0,0 +1,452 @@
|
|||||||
|
/*!
|
||||||
|
* @license
|
||||||
|
* Copyright 2016 Alfresco Software, Ltd.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import LoginPage = require('../pages/adf/loginPage');
|
||||||
|
import ContentServicesPage = require('../pages/adf/contentServicesPage');
|
||||||
|
import NavigationBarPage = require('../pages/adf/navigationBarPage');
|
||||||
|
import AcsUserModel = require('../models/ACS/acsUserModel');
|
||||||
|
import TestConfig = require('../test.config');
|
||||||
|
import resources = require('../util/resources');
|
||||||
|
import Util = require('../util/util');
|
||||||
|
import AlfrescoApi = require('alfresco-js-api-node');
|
||||||
|
import { UploadActions } from '../actions/ACS/upload.actions';
|
||||||
|
import ErrorPage = require('../pages/adf/documentListErrorPage');
|
||||||
|
import FileModel = require('../models/ACS/fileModel');
|
||||||
|
import moment from 'moment-es6';
|
||||||
|
import { browser } from '../../node_modules/protractor';
|
||||||
|
|
||||||
|
describe('Document List Component', () => {
|
||||||
|
|
||||||
|
let loginPage = new LoginPage();
|
||||||
|
let contentServicesPage = new ContentServicesPage();
|
||||||
|
let navBar = new NavigationBarPage();
|
||||||
|
let errorPage = new ErrorPage();
|
||||||
|
let privateSite;
|
||||||
|
let uploadedFolder, uploadedFolderExtra;
|
||||||
|
let uploadActions = new UploadActions();
|
||||||
|
let acsUser = null;
|
||||||
|
let testFileNode, pdfBFileNode;
|
||||||
|
|
||||||
|
beforeAll(() => {
|
||||||
|
this.alfrescoJsApi = new AlfrescoApi({
|
||||||
|
provider: 'ECM',
|
||||||
|
hostEcm: TestConfig.adf.url
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(async (done) => {
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
if (uploadedFolder) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, uploadedFolder.entry.id);
|
||||||
|
uploadedFolder = null;
|
||||||
|
}
|
||||||
|
if (uploadedFolderExtra) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, uploadedFolderExtra.entry.id);
|
||||||
|
uploadedFolderExtra = null;
|
||||||
|
}
|
||||||
|
if (testFileNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, testFileNode.entry.id);
|
||||||
|
testFileNode = null;
|
||||||
|
}
|
||||||
|
if (pdfBFileNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, pdfBFileNode.entry.id);
|
||||||
|
pdfBFileNode = null;
|
||||||
|
}
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Permission Message', async () => {
|
||||||
|
|
||||||
|
beforeAll(async (done) => {
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
let siteName = `PRIVATE_TEST_SITE_${Util.generateRandomString(5)}`;
|
||||||
|
let folderName = `MEESEEKS_${Util.generateRandomString(5)}`;
|
||||||
|
let privateSiteBody = { visibility: 'PRIVATE' , title: siteName};
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
|
||||||
|
privateSite = await this.alfrescoJsApi.core.sitesApi.createSite(privateSiteBody);
|
||||||
|
|
||||||
|
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, privateSite.entry.guid);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C217334] - Error message displayed without permissions', () => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
||||||
|
expect(errorPage.getErrorCode()).toBe('403');
|
||||||
|
expect(errorPage.getErrorDescription()).toBe('You\'re not allowed access to this resource on the server.');
|
||||||
|
});
|
||||||
|
|
||||||
|
xit('[C279924] - Custom error message is displayed', () => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.enableCustomPermissionMessage();
|
||||||
|
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
||||||
|
expect(errorPage.getErrorCode()).toBe('Cris you don\'t have permissions');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C279925] - Message is translated', () => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
navBar.openLanguageMenu();
|
||||||
|
navBar.chooseLanguage('Italian');
|
||||||
|
browser.get(TestConfig.adf.url + '/files/' + privateSite.entry.guid);
|
||||||
|
expect(errorPage.getErrorDescription()).toBe('Accesso alla risorsa sul server non consentito.');
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Custom Column', () => {
|
||||||
|
|
||||||
|
let folderName;
|
||||||
|
let pdfFileModel = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF.file_name });
|
||||||
|
let docxFileModel = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.DOCX.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.DOCX.file_location
|
||||||
|
});
|
||||||
|
let timeAgoFileModel = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||||
|
});
|
||||||
|
let mediumFileModel = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.PDF_B.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.PDF_B.file_location
|
||||||
|
});
|
||||||
|
|
||||||
|
let pdfUploadedNode, docxUploadedNode, timeAgoUploadedNode, mediumDateUploadedNode;
|
||||||
|
|
||||||
|
beforeAll(async (done) => {
|
||||||
|
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
|
||||||
|
folderName = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||||
|
pdfUploadedNode = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFileModel.location, pdfFileModel.name, '-my-');
|
||||||
|
docxUploadedNode = await uploadActions.uploadFile(this.alfrescoJsApi, docxFileModel.location, docxFileModel.name, '-my-');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async (done) => {
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
|
||||||
|
if (pdfUploadedNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, pdfUploadedNode.entry.id);
|
||||||
|
}
|
||||||
|
if (docxUploadedNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, docxUploadedNode.entry.id);
|
||||||
|
}
|
||||||
|
if (timeAgoUploadedNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, timeAgoUploadedNode.entry.id);
|
||||||
|
}
|
||||||
|
if (mediumDateUploadedNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, mediumDateUploadedNode.entry.id);
|
||||||
|
}
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C279926] - Checks that only the files and folders of the users are showed', () => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.checkContentIsDisplayed(folderName);
|
||||||
|
contentServicesPage.checkContentIsDisplayed(pdfFileModel.name);
|
||||||
|
contentServicesPage.checkContentIsDisplayed(docxFileModel.name);
|
||||||
|
expect(contentServicesPage.getDocumentListRowNumber()).toBe(4);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C279927] - All columns are showed', () => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.checkColumnNameHeader();
|
||||||
|
contentServicesPage.checkColumnSizeHeader();
|
||||||
|
contentServicesPage.checkColumnCreatedByHeader();
|
||||||
|
contentServicesPage.checkColumnCreatedHeader();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C279928] - The date is showed with timeAgo', async (done) => {
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
timeAgoUploadedNode = await uploadActions.uploadFile(this.alfrescoJsApi, timeAgoFileModel.location, timeAgoFileModel.name, '-my-');
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
let dateValue = contentServicesPage.getColumnValueForRow(timeAgoFileModel.name, 'Created');
|
||||||
|
expect(dateValue).toBe('a few seconds ago');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C279929] - The date is showed with date type', async (done) => {
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
mediumDateUploadedNode = await uploadActions.uploadFile(this.alfrescoJsApi, mediumFileModel.location, mediumFileModel.name, '-my-');
|
||||||
|
let createdDate = moment(mediumDateUploadedNode.createdAt).format('ll');
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.enableMediumTimeFormat();
|
||||||
|
let dateValue = contentServicesPage.getColumnValueForRow(mediumFileModel.name, 'Created');
|
||||||
|
expect(dateValue).toContain(createdDate);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Column Sorting', () => {
|
||||||
|
|
||||||
|
let fakeFileA = new FileModel({
|
||||||
|
'name': 'A',
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||||
|
});
|
||||||
|
|
||||||
|
let fakeFileB = new FileModel({
|
||||||
|
'name': 'B',
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||||
|
});
|
||||||
|
|
||||||
|
let fakeFileC = new FileModel({
|
||||||
|
'name': 'C',
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
let fileANode, fileBNode, fileCNode;
|
||||||
|
|
||||||
|
beforeAll(async (done) => {
|
||||||
|
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
fileANode = await uploadActions.uploadFile(this.alfrescoJsApi, fakeFileA.location, fakeFileA.name, '-my-');
|
||||||
|
fileBNode = await uploadActions.uploadFile(this.alfrescoJsApi, fakeFileB.location, fakeFileB.name, '-my-');
|
||||||
|
fileCNode = await uploadActions.uploadFile(this.alfrescoJsApi, fakeFileC.location, fakeFileC.name, '-my-');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async (done) => {
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
if (fileANode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileANode.entry.id);
|
||||||
|
}
|
||||||
|
if (fileBNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileBNode.entry.id);
|
||||||
|
}
|
||||||
|
if (fileCNode) {
|
||||||
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileCNode.entry.id);
|
||||||
|
}
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C260112] - Sorting ascending by name', () => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.sortAndCheckListIsOrderedByName('asc');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C272770] - Sorting descending by name', () => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.sortAndCheckListIsOrderedByName('desc');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C272771] - Sorting ascending by author', () => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.sortAndCheckListIsOrderedByAuthor('asc');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C272772] - Sorting descending by author', () => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.sortAndCheckListIsOrderedByAuthor('desc');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C272773] - Sorting ascending by created date', () => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.sortAndCheckListIsOrderedByCreated('asc');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C272774] - Sorting descending by created date', () => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.sortAndCheckListIsOrderedByCreated('desc');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C260121] - should show the spinner on loading', async (done) => {
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.clickOnContentServices();
|
||||||
|
contentServicesPage.checkSpinnerIsShowed();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C279959] - Empty Folder state is displayed for new folders', async (done) => {
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
|
||||||
|
let folderName = 'BANANA';
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.createNewFolder(folderName);
|
||||||
|
contentServicesPage.navigateToFolder(folderName);
|
||||||
|
contentServicesPage.checkEmptyFolderTextToBe('This folder is empty');
|
||||||
|
contentServicesPage.checkEmptyFolderImageUrlToContain('/assets/images/empty_doc_lib.svg');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C272775] - File can be uploaded in a new created folder', async (done) => {
|
||||||
|
let testFile = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||||
|
});
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
let folderName = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.checkContentIsDisplayed(uploadedFolder.entry.name);
|
||||||
|
contentServicesPage.navigateToFolder(uploadedFolder.entry.name);
|
||||||
|
contentServicesPage.uploadFile(testFile.location);
|
||||||
|
contentServicesPage.checkContentIsDisplayed(testFile.name);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C261997] - Recent Files empty', async (done) => {
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.clickOnContentServices();
|
||||||
|
contentServicesPage.checkRecentFileToBeShowed();
|
||||||
|
let icon = await contentServicesPage.getRecentFileIcon();
|
||||||
|
expect(icon).toBe('history');
|
||||||
|
contentServicesPage.expandRecentFiles();
|
||||||
|
contentServicesPage.checkEmptyRecentFileIsDisplayed();
|
||||||
|
contentServicesPage.closeRecentFiles();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C268119] - "ygj" letters rendering in document list', async (done) => {
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
let folderName = 'ggggggjjjjjjjjjjjjyyyyyy';
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.clickOnContentServices();
|
||||||
|
let lineHeight = await contentServicesPage.getStyleValueForRowText(folderName, 'line-height');
|
||||||
|
let fontSize = await contentServicesPage.getStyleValueForRowText(folderName, 'font-size');
|
||||||
|
let actualFontValue = (parseInt(fontSize, 10) * 1.12).toFixed(2);
|
||||||
|
expect(lineHeight).toBe(actualFontValue + 'px');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C279970] - Custom column - isLocked field is showed for folders', async (done) => {
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
let folderNameA = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||||
|
let folderNameB = `MEESEEKS_${Util.generateRandomString(5)}_LOOK_AT_ME`;
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
uploadedFolder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderNameA, '-my-');
|
||||||
|
uploadedFolderExtra = await uploadActions.uploadFolder(this.alfrescoJsApi, folderNameB, '-my-');
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.checkContentIsDisplayed(folderNameA);
|
||||||
|
contentServicesPage.checkContentIsDisplayed(folderNameB);
|
||||||
|
contentServicesPage.checkLockIsDislpayedForElement(folderNameA);
|
||||||
|
contentServicesPage.checkLockIsDislpayedForElement(folderNameB);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C269086] - Custom column - IsLocked field is showed for files', async (done) => {
|
||||||
|
let testFileA = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.TEST.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.TEST.file_location
|
||||||
|
});
|
||||||
|
let testFileB = new FileModel({
|
||||||
|
'name': resources.Files.ADF_DOCUMENTS.PDF_B.file_name,
|
||||||
|
'location': resources.Files.ADF_DOCUMENTS.PDF_B.file_location
|
||||||
|
});
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
testFileNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFileA.location, testFileA.name, '-my-');
|
||||||
|
pdfBFileNode = await uploadActions.uploadFile(this.alfrescoJsApi, testFileB.location, testFileB.name, '-my-');
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.checkContentIsDisplayed(testFileA.name);
|
||||||
|
contentServicesPage.checkContentIsDisplayed(testFileB.name);
|
||||||
|
contentServicesPage.checkLockIsDislpayedForElement(testFileA.name);
|
||||||
|
contentServicesPage.checkLockIsDislpayedForElement(testFileB.name);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Once uploaded 20 folders', () => {
|
||||||
|
|
||||||
|
let folderCreated;
|
||||||
|
|
||||||
|
beforeAll(async (done) => {
|
||||||
|
acsUser = new AcsUserModel();
|
||||||
|
folderCreated = [];
|
||||||
|
await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
|
||||||
|
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
|
||||||
|
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
|
||||||
|
let folderName = '';
|
||||||
|
let folder = null;
|
||||||
|
for (let i = 0; i < 20; i++) {
|
||||||
|
folderName = `MEESEEKS_000${i}`;
|
||||||
|
folder = await uploadActions.uploadFolder(this.alfrescoJsApi, folderName, '-my-');
|
||||||
|
folderCreated.push(folder);
|
||||||
|
}
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async (done) => {
|
||||||
|
Promise.all(folderCreated.map((folder) =>
|
||||||
|
uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, folder.entry.id)
|
||||||
|
)).then(
|
||||||
|
done()
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C277093] - Sorting files with Items per page set to default', async (done) => {
|
||||||
|
loginPage.loginToContentServicesUsingUserModel(acsUser);
|
||||||
|
contentServicesPage.goToDocumentList();
|
||||||
|
contentServicesPage.checkListIsSortedByNameColumn('asc');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
@ -29,7 +29,7 @@ import Util = require('../util/util');
|
|||||||
import AlfrescoApi = require('alfresco-js-api-node');
|
import AlfrescoApi = require('alfresco-js-api-node');
|
||||||
import { UploadActions } from '../actions/ACS/upload.actions';
|
import { UploadActions } from '../actions/ACS/upload.actions';
|
||||||
|
|
||||||
describe('DocumentList component', () => {
|
xdescribe('DocumentList component', () => {
|
||||||
|
|
||||||
let loginPage = new LoginPage();
|
let loginPage = new LoginPage();
|
||||||
let contentServicesPage = new ContentServicesPage();
|
let contentServicesPage = new ContentServicesPage();
|
||||||
|
@ -41,6 +41,49 @@ var ContentServicesPage = function () {
|
|||||||
var loadMoreButton = element(by.css("button[data-automation-id='adf-infinite-pagination-button']"));
|
var loadMoreButton = element(by.css("button[data-automation-id='adf-infinite-pagination-button']"));
|
||||||
var emptyPagination = element(by.css("adf-pagination[class*='adf-pagination__empty']"));
|
var emptyPagination = element(by.css("adf-pagination[class*='adf-pagination__empty']"));
|
||||||
var dragAndDrop = element(by.css("adf-upload-drag-area div"));
|
var dragAndDrop = element(by.css("adf-upload-drag-area div"));
|
||||||
|
var nameHeader = element(by.css("div[data-automation-id='auto_id_name'] > span"));
|
||||||
|
var sizeHeader = element(by.css("div[data-automation-id='auto_id_content.sizeInBytes'] > span"));
|
||||||
|
var createdByHeader = element(by.css("div[data-automation-id='auto_id_createdByUser.displayName'] > span"));
|
||||||
|
var createdHeader = element(by.css("div[data-automation-id='auto_id_createdAt'] > span"));
|
||||||
|
var recentFiles = element(by.css(".adf-container-recent"));
|
||||||
|
var recentFilesExpanded = element(by.css(".adf-container-recent mat-expansion-panel-header.mat-expanded"));
|
||||||
|
var recentFilesClosed = element(by.css(".adf-container-recent mat-expansion-panel-header"));
|
||||||
|
var recentFileIcon = element(by.css(".adf-container-recent mat-expansion-panel-header mat-icon"));
|
||||||
|
var documentListSpinner = element(by.css("mat-progress-spinner"));
|
||||||
|
var emptyFolder = element(by.css(".adf-empty-folder-this-space-is-empty"));
|
||||||
|
var emptyFolderImage = element(by.css(".adf-empty-folder-image"));
|
||||||
|
var emptyRecent = element(by.css(".adf-container-recent .empty-list__title"));
|
||||||
|
|
||||||
|
this.checkRecentFileToBeShowed = function () {
|
||||||
|
Util.waitUntilElementIsVisible(recentFiles);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.expandRecentFiles = function () {
|
||||||
|
this.checkRecentFileToBeShowed();
|
||||||
|
this.checkRecentFileToBeClosed();
|
||||||
|
recentFilesClosed.click();
|
||||||
|
this.checkRecentFileToBeOpened()
|
||||||
|
};
|
||||||
|
|
||||||
|
this.closeRecentFiles = function() {
|
||||||
|
this.checkRecentFileToBeShowed();
|
||||||
|
this.checkRecentFileToBeOpened()
|
||||||
|
recentFilesExpanded.click();
|
||||||
|
this.checkRecentFileToBeClosed();
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkRecentFileToBeClosed = function () {
|
||||||
|
Util.waitUntilElementIsVisible(recentFilesClosed);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkRecentFileToBeOpened = function () {
|
||||||
|
Util.waitUntilElementIsVisible(recentFilesExpanded);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.getRecentFileIcon = async function () {
|
||||||
|
await Util.waitUntilElementIsVisible(recentFileIcon);
|
||||||
|
return recentFileIcon.getText();
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check Document List is displayed
|
* Check Document List is displayed
|
||||||
@ -60,10 +103,14 @@ var ContentServicesPage = function () {
|
|||||||
* @method goToDocumentList
|
* @method goToDocumentList
|
||||||
* */
|
* */
|
||||||
this.goToDocumentList = function () {
|
this.goToDocumentList = function () {
|
||||||
|
this.clickOnContentServices();
|
||||||
|
this.checkAcsContainer();
|
||||||
|
};
|
||||||
|
|
||||||
|
this.clickOnContentServices = function () {
|
||||||
Util.waitUntilElementIsVisible(contentServices);
|
Util.waitUntilElementIsVisible(contentServices);
|
||||||
Util.waitUntilElementIsClickable(contentServices);
|
Util.waitUntilElementIsClickable(contentServices);
|
||||||
contentServices.click();
|
contentServices.click();
|
||||||
this.checkAcsContainer();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.navigateToDocumentList = function () {
|
this.navigateToDocumentList = function () {
|
||||||
@ -137,6 +184,10 @@ var ContentServicesPage = function () {
|
|||||||
return deferred.promise;
|
return deferred.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.checkListIsSortedByNameColumn = async function(sortOrder) {
|
||||||
|
await contentList.checkListIsOrderedByNameColumn(sortOrder);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sort by author and check the list is sorted.
|
* Sort by author and check the list is sorted.
|
||||||
*
|
*
|
||||||
@ -219,6 +270,11 @@ var ContentServicesPage = function () {
|
|||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.checkElementIsDisplayed = function (elementName) {
|
||||||
|
let dataElement = element(by.css(`div[data-automation-id="${elementName}"]`));
|
||||||
|
Util.waitUntilElementIsVisible(dataElement);
|
||||||
|
};
|
||||||
|
|
||||||
this.navigateToFolderViaBreadcrumbs = function (folder) {
|
this.navigateToFolderViaBreadcrumbs = function (folder) {
|
||||||
contentList.tableIsLoaded();
|
contentList.tableIsLoaded();
|
||||||
var breadcrumb = element(by.css("a[data-automation-id='breadcrumb_" + folder + "']"));
|
var breadcrumb = element(by.css("a[data-automation-id='breadcrumb_" + folder + "']"));
|
||||||
@ -304,8 +360,7 @@ var ContentServicesPage = function () {
|
|||||||
for (i = 0; i < content.length; i++) {
|
for (i = 0; i < content.length; i++) {
|
||||||
this.deleteContent(content[i]);
|
this.deleteContent(content[i]);
|
||||||
this.checkContentIsNotDisplayed(content[i]);
|
this.checkContentIsNotDisplayed(content[i]);
|
||||||
}
|
};
|
||||||
;
|
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -329,6 +384,20 @@ var ContentServicesPage = function () {
|
|||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.enableCustomPermissionMessage = function () {
|
||||||
|
var customPermissionMessage = element(by.cssContainingText('.mat-slide-toggle-content', 'Enable custom permission message'));
|
||||||
|
Util.waitUntilElementIsVisible(customPermissionMessage);
|
||||||
|
customPermissionMessage.click();
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.enableMediumTimeFormat = function () {
|
||||||
|
var mediumTimeFormat = element(by.css('#enableMediumTimeFormat'));
|
||||||
|
Util.waitUntilElementIsVisible(mediumTimeFormat);
|
||||||
|
mediumTimeFormat.click();
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
this.clickLoadMoreButton = function () {
|
this.clickLoadMoreButton = function () {
|
||||||
Util.waitUntilElementIsVisible(loadMoreButton);
|
Util.waitUntilElementIsVisible(loadMoreButton);
|
||||||
Util.waitUntilElementIsClickable(loadMoreButton);
|
Util.waitUntilElementIsClickable(loadMoreButton);
|
||||||
@ -340,10 +409,70 @@ var ContentServicesPage = function () {
|
|||||||
Util.waitUntilElementIsVisible(emptyPagination);
|
Util.waitUntilElementIsVisible(emptyPagination);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.getDocumentListRowNumber = function() {
|
||||||
|
let documentList = element(by.css('adf-upload-drag-area adf-document-list'));
|
||||||
|
Util.waitUntilElementIsVisible(documentList);
|
||||||
|
let actualRows = $$('adf-upload-drag-area adf-document-list .adf-datatable-row').count();
|
||||||
|
return actualRows;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkColumnNameHeader = function() {
|
||||||
|
Util.waitUntilElementIsVisible(nameHeader);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkColumnSizeHeader = function() {
|
||||||
|
Util.waitUntilElementIsVisible(sizeHeader);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkColumnCreatedByHeader = function() {
|
||||||
|
Util.waitUntilElementIsVisible(createdByHeader);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkColumnCreatedHeader = function() {
|
||||||
|
Util.waitUntilElementIsVisible(createdHeader);
|
||||||
|
};
|
||||||
|
|
||||||
this.checkDandDIsDisplayed = function () {
|
this.checkDandDIsDisplayed = function () {
|
||||||
Util.waitUntilElementIsVisible(dragAndDrop);
|
Util.waitUntilElementIsVisible(dragAndDrop);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.checkLockIsDislpayedForElement = function(name) {
|
||||||
|
let lockButton = element(by.css(`div.adf-data-table-cell[filename="${name}"] button`));
|
||||||
|
Util.waitUntilElementIsVisible(lockButton);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.getColumnValueForRow = function (file, columnName) {
|
||||||
|
let row = contentList.getRowByRowName(file);
|
||||||
|
Util.waitUntilElementIsVisible(row);
|
||||||
|
let rowColumn = row.element(by.css('div[title="'+columnName+'"] span'));
|
||||||
|
Util.waitUntilElementIsVisible(rowColumn);
|
||||||
|
return rowColumn.getText();
|
||||||
|
};
|
||||||
|
|
||||||
|
this.getStyleValueForRowText = async function(rowName, styleName) {
|
||||||
|
let row = element(by.css(`div.adf-data-table-cell[filename="${rowName}"] span.adf-datatable-cell-value[title="${rowName}"]`));
|
||||||
|
Util.waitUntilElementIsVisible(row);
|
||||||
|
return row.getCssValue(styleName);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkSpinnerIsShowed = function () {
|
||||||
|
Util.waitUntilElementIsPresent(documentListSpinner);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkEmptyFolderTextToBe = function (text) {
|
||||||
|
Util.waitUntilElementIsVisible(emptyFolder);
|
||||||
|
expect(emptyFolder.getText()).toContain(text);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkEmptyFolderImageUrlToContain = function (url) {
|
||||||
|
Util.waitUntilElementIsVisible(emptyFolderImage);
|
||||||
|
expect(emptyFolderImage.getAttribute('src')).toContain(url);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkEmptyRecentFileIsDisplayed = function () {
|
||||||
|
Util.waitUntilElementIsVisible(emptyRecent);
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = ContentServicesPage;
|
module.exports = ContentServicesPage;
|
||||||
|
55
e2e/pages/adf/documentListErrorPage.js
Normal file
55
e2e/pages/adf/documentListErrorPage.js
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
/*!
|
||||||
|
* @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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
var Util = require('../../util/util');
|
||||||
|
|
||||||
|
var ErrorPage = function(){
|
||||||
|
|
||||||
|
var errorPage = element(by.css("adf-error-content"));
|
||||||
|
var errorPageCode = element(by.css("adf-error-content .adf-error-content-code"));
|
||||||
|
var errorPageTitle = element(by.css("adf-error-content .adf-error-content-title"));
|
||||||
|
var errorPageDescription = element(by.css("adf-error-content .adf-error-content-description"));
|
||||||
|
|
||||||
|
this.checkErrorPage = function(){
|
||||||
|
Util.waitUntilElementIsVisible(errorPage);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkErrorTitle = function(){
|
||||||
|
Util.waitUntilElementIsVisible(errorPageTitle);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkErrorCode = function(){
|
||||||
|
Util.waitUntilElementIsVisible(errorPageCode);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.checkErrorDescription = function(){
|
||||||
|
Util.waitUntilElementIsVisible(errorPageDescription);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.getErrorCode = function() {
|
||||||
|
Util.waitUntilElementIsVisible(errorPageCode);
|
||||||
|
return errorPageCode.getText();
|
||||||
|
};
|
||||||
|
|
||||||
|
this.getErrorDescription = function() {
|
||||||
|
Util.waitUntilElementIsVisible(errorPageDescription);
|
||||||
|
return errorPageDescription.getText();
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = ErrorPage;
|
@ -30,6 +30,8 @@ var NavigationBarPage = function () {
|
|||||||
var themeMenuContent = element(by.css("div[class*='mat-menu-panel']"));
|
var themeMenuContent = element(by.css("div[class*='mat-menu-panel']"));
|
||||||
var logoutButton = element(by.css("a[adf-logout]"));
|
var logoutButton = element(by.css("a[adf-logout]"));
|
||||||
var cardViewButton = element(by.cssContainingText(".sidenav-menu-label", "CardView"));
|
var cardViewButton = element(by.cssContainingText(".sidenav-menu-label", "CardView"));
|
||||||
|
var languageMenuButton = element(by.css('button[data-automation-id="language-menu-button"]'));
|
||||||
|
var appTitle = element(by.css('.adf-app-title'));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Click Content Services Button
|
* Click Content Services Button
|
||||||
@ -116,6 +118,17 @@ var NavigationBarPage = function () {
|
|||||||
return browser.get(TestConfig.adf.url + '/files/' + folderId);
|
return browser.get(TestConfig.adf.url + '/files/' + folderId);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.chooseLanguage = function(language) {
|
||||||
|
let buttonLanguage = element(by.xpath(`//adf-language-menu//button[contains(text(), '${language}')]`));
|
||||||
|
Util.waitUntilElementIsVisible(buttonLanguage);
|
||||||
|
buttonLanguage.click();
|
||||||
|
};
|
||||||
|
|
||||||
|
this.openLanguageMenu = function () {
|
||||||
|
Util.waitUntilElementIsVisible(languageMenuButton);
|
||||||
|
languageMenuButton.click();
|
||||||
|
Util.waitUntilElementIsVisible(appTitle);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = NavigationBarPage;
|
module.exports = NavigationBarPage;
|
||||||
|
@ -26,7 +26,7 @@ var AnalyticsPage = function () {
|
|||||||
var reportMessage = element(by.css("div[class='ng-star-inserted'] span"));
|
var reportMessage = element(by.css("div[class='ng-star-inserted'] span"));
|
||||||
|
|
||||||
this.getReport = function (title) {
|
this.getReport = function (title) {
|
||||||
var reportTitle = element(by.css("mat-icon[data-automation-id='"+ title +"_filter']"));
|
var reportTitle = element(by.css(`mat-icon[data-automation-id="${title}_filter"]`));
|
||||||
Util.waitUntilElementIsVisible(reportTitle);
|
Util.waitUntilElementIsVisible(reportTitle);
|
||||||
reportTitle.click();
|
reportTitle.click();
|
||||||
};
|
};
|
||||||
|
@ -20,10 +20,10 @@ var TasksPage = require('./tasksPage');
|
|||||||
|
|
||||||
var AppNavigationBarPage = function () {
|
var AppNavigationBarPage = function () {
|
||||||
|
|
||||||
var tasksButton = element.all(by.cssContainingText("div[class*='mat-tab-label']", "Tasks")).first();
|
var tasksButton = element.all(by.cssContainingText("div[class*='mat-tab-label'] .mat-tab-labels div", "Tasks")).first();
|
||||||
var processButton = element.all(by.css('div[id*="mat-tab-label"]'));
|
var processButton = element.all(by.cssContainingText("div[class*='mat-tab-label'] .mat-tab-labels div", "Process")).first();
|
||||||
var reportsButton = element(by.id('mat-tab-label-1-2'));
|
var reportsButton = element.all(by.cssContainingText("div[class*='mat-tab-label'] .mat-tab-labels div", "Reports")).first();
|
||||||
var reportsButtonSelected = element(by.css("div[id='mat-tab-label-1-2'][aria-selected='true']"))
|
var reportsButtonSelected = element.all(by.cssContainingText("div[class*='mat-tab-label'] .mat-tab-labels div[aria-selected='true']", "Reports")).first();
|
||||||
|
|
||||||
this.clickTasksButton = function () {
|
this.clickTasksButton = function () {
|
||||||
Util.waitUntilElementIsVisible(tasksButton);
|
Util.waitUntilElementIsVisible(tasksButton);
|
||||||
@ -32,7 +32,8 @@ var AppNavigationBarPage = function () {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.clickProcessButton = function () {
|
this.clickProcessButton = function () {
|
||||||
processButton.get(1).click();
|
Util.waitUntilElementIsVisible(processButton);
|
||||||
|
processButton.click();
|
||||||
};
|
};
|
||||||
|
|
||||||
this.clickReportsButton = function () {
|
this.clickReportsButton = function () {
|
||||||
|
@ -21,7 +21,7 @@ var StartTaskDialog = function () {
|
|||||||
|
|
||||||
var name = element(by.css("input[id='name_id']"));
|
var name = element(by.css("input[id='name_id']"));
|
||||||
var description = element(by.css("textarea[id='description_id']"));
|
var description = element(by.css("textarea[id='description_id']"));
|
||||||
var assignee = element(by.css("input[data-automation-id='adf-people-search-input']"));
|
var assignee = element(by.css("div#people-widget-content input"));
|
||||||
var formDropDown = element(by.css("mat-select[id='form_id']"));
|
var formDropDown = element(by.css("mat-select[id='form_id']"));
|
||||||
var startButton = element(by.css("button[id='button-start']"));
|
var startButton = element(by.css("button[id='button-start']"));
|
||||||
var startButtonEnabled = element(by.css("button[id='button-start']:not(disabled)"));
|
var startButtonEnabled = element(by.css("button[id='button-start']:not(disabled)"));
|
||||||
@ -44,14 +44,14 @@ var StartTaskDialog = function () {
|
|||||||
Util.waitUntilElementIsVisible(assignee);
|
Util.waitUntilElementIsVisible(assignee);
|
||||||
assignee.sendKeys(name);
|
assignee.sendKeys(name);
|
||||||
this.selectAssigneeFromList(name);
|
this.selectAssigneeFromList(name);
|
||||||
Util.waitUntilElementIsVisible(removeAssigneeIcon);
|
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
this.selectAssigneeFromList = function (name) {
|
this.selectAssigneeFromList = function (name) {
|
||||||
var assigneeRow = element(by.cssContainingText("adf-people-list div[class*='datatable-row'] div", name));
|
var assigneeRow = element(by.cssContainingText("mat-option span.adf-people-label-name", name));
|
||||||
Util.waitUntilElementIsVisible(assigneeRow);
|
Util.waitUntilElementIsVisible(assigneeRow);
|
||||||
assigneeRow.click();
|
assigneeRow.click();
|
||||||
|
Util.waitUntilElementIsNotVisible(assigneeRow);
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -122,6 +122,7 @@ var ProcessDetailsPage = function () {
|
|||||||
// Click Audit log
|
// Click Audit log
|
||||||
this.clickAuditLogButton = function () {
|
this.clickAuditLogButton = function () {
|
||||||
Util.waitUntilElementIsVisible(auditLogButton);
|
Util.waitUntilElementIsVisible(auditLogButton);
|
||||||
|
Util.waitUntilElementIsClickable(auditLogButton);
|
||||||
auditLogButton.click();
|
auditLogButton.click();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -308,6 +308,7 @@ var ViewerToolbarPage = function () {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.clickThumbnailsBtn = function () {
|
this.clickThumbnailsBtn = function () {
|
||||||
|
Util.waitUntilElementIsVisible(thumbnailsBtn);
|
||||||
Util.waitUntilElementIsClickable(thumbnailsBtn);
|
Util.waitUntilElementIsClickable(thumbnailsBtn);
|
||||||
thumbnailsBtn.click();
|
thumbnailsBtn.click();
|
||||||
};
|
};
|
||||||
|
@ -34,6 +34,7 @@ import AlfrescoApi = require('alfresco-js-api-node');
|
|||||||
import { UsersActions } from '../actions/users.actions';
|
import { UsersActions } from '../actions/users.actions';
|
||||||
import { AppsActions } from '../actions/APS/apps.actions';
|
import { AppsActions } from '../actions/APS/apps.actions';
|
||||||
import FileModel = require('../models/ACS/fileModel');
|
import FileModel = require('../models/ACS/fileModel');
|
||||||
|
import { browser } from '../../node_modules/protractor';
|
||||||
|
|
||||||
describe('Attachment list action menu for processes', () => {
|
describe('Attachment list action menu for processes', () => {
|
||||||
|
|
||||||
@ -97,7 +98,7 @@ describe('Attachment list action menu for processes', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C260228] Option menu functionality - Active Process', () => {
|
xit('[C260228] Option menu functionality - Active Process', () => {
|
||||||
processServicesPage.goToProcessServices().goToApp(app.title).clickProcessButton();
|
processServicesPage.goToProcessServices().goToApp(app.title).clickProcessButton();
|
||||||
|
|
||||||
processFiltersPage.selectFromProcessList(processName.active);
|
processFiltersPage.selectFromProcessList(processName.active);
|
||||||
@ -117,21 +118,21 @@ describe('Attachment list action menu for processes', () => {
|
|||||||
|
|
||||||
viewerPage.checkFileNameIsDisplayed(pngFile.name);
|
viewerPage.checkFileNameIsDisplayed(pngFile.name);
|
||||||
viewerPage.clickCloseButton();
|
viewerPage.clickCloseButton();
|
||||||
|
browser.sleep(20000);
|
||||||
processFiltersPage.clickRunningFilterButton();
|
processFiltersPage.clickRunningFilterButton();
|
||||||
processFiltersPage.selectFromProcessList(processName.active);
|
processFiltersPage.selectFromProcessList(processName.active);
|
||||||
|
|
||||||
attachmentListPage.downloadFile(pngFile.name);
|
attachmentListPage.downloadFile(pngFile.name);
|
||||||
|
|
||||||
browser.driver.sleep(500);
|
browser.driver.sleep(1000);
|
||||||
|
|
||||||
expect(Util.fileExists(downloadedPngFile, 20)).toBe(true);
|
expect(Util.fileExists(downloadedPngFile, 30)).toBe(true);
|
||||||
|
|
||||||
attachmentListPage.removeFile(pngFile.name);
|
attachmentListPage.removeFile(pngFile.name);
|
||||||
attachmentListPage.checkFileIsRemoved(pngFile.name);
|
attachmentListPage.checkFileIsRemoved(pngFile.name);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C279886] Option menu functionality - Completed Process', () => {
|
xit('[C279886] Option menu functionality - Completed Process', () => {
|
||||||
processServicesPage.goToProcessServices().goToApp(app.title).clickProcessButton();
|
processServicesPage.goToProcessServices().goToApp(app.title).clickProcessButton();
|
||||||
|
|
||||||
processFiltersPage.clickRunningFilterButton();
|
processFiltersPage.clickRunningFilterButton();
|
||||||
@ -142,7 +143,7 @@ describe('Attachment list action menu for processes', () => {
|
|||||||
attachmentListPage.clickAttachFileButton(pngFile.location);
|
attachmentListPage.clickAttachFileButton(pngFile.location);
|
||||||
|
|
||||||
processDetailsPage.clickCancelProcessButton();
|
processDetailsPage.clickCancelProcessButton();
|
||||||
|
browser.sleep(20000);
|
||||||
processFiltersPage.clickCompletedFilterButton();
|
processFiltersPage.clickCompletedFilterButton();
|
||||||
|
|
||||||
processDetailsPage.checkProcessTitleIsDisplayed();
|
processDetailsPage.checkProcessTitleIsDisplayed();
|
||||||
@ -157,9 +158,9 @@ describe('Attachment list action menu for processes', () => {
|
|||||||
|
|
||||||
attachmentListPage.downloadFile(pngFile.name);
|
attachmentListPage.downloadFile(pngFile.name);
|
||||||
|
|
||||||
browser.driver.sleep(500);
|
browser.driver.sleep(1000);
|
||||||
|
|
||||||
expect(Util.fileExists(downloadedPngFile, 20)).toBe(true);
|
expect(Util.fileExists(downloadedPngFile, 30)).toBe(true);
|
||||||
|
|
||||||
attachmentListPage.removeFile(pngFile.name);
|
attachmentListPage.removeFile(pngFile.name);
|
||||||
attachmentListPage.checkFileIsRemoved(pngFile.name);
|
attachmentListPage.checkFileIsRemoved(pngFile.name);
|
||||||
|
@ -71,16 +71,17 @@ describe('Process Filters Test', () => {
|
|||||||
|
|
||||||
await loginPage.loginToProcessServicesUsingUserModel(user);
|
await loginPage.loginToProcessServicesUsingUserModel(user);
|
||||||
|
|
||||||
navigationBarPage.clickProcessServicesButton();
|
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Navigate to Running filter', () => {
|
beforeEach( () => {
|
||||||
|
navigationBarPage.clickProcessServicesButton();
|
||||||
processServicesPage.checkApsContainer();
|
processServicesPage.checkApsContainer();
|
||||||
processServicesPage.goToApp(app.title);
|
processServicesPage.goToApp(app.title);
|
||||||
|
|
||||||
appNavigationBarPage.clickProcessButton();
|
appNavigationBarPage.clickProcessButton();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Navigate to Running filter', () => {
|
||||||
|
|
||||||
processFiltersPage.clickCreateProcessButton();
|
processFiltersPage.clickCreateProcessButton();
|
||||||
processFiltersPage.clickNewProcessDropdown();
|
processFiltersPage.clickNewProcessDropdown();
|
||||||
|
@ -94,8 +94,6 @@ describe('Start Process Component', () => {
|
|||||||
|
|
||||||
await this.alfrescoJsApiUserTwo.activiti.appsApi.deployAppDefinitions({ appDefinitions: [{ id: publishApp.appDefinition.id }] });
|
await this.alfrescoJsApiUserTwo.activiti.appsApi.deployAppDefinitions({ appDefinitions: [{ id: publishApp.appDefinition.id }] });
|
||||||
|
|
||||||
loginPage.loginToProcessServicesUsingUserModel(procUserModel);
|
|
||||||
navigationBarPage.clickProcessServicesButton();
|
|
||||||
done();
|
done();
|
||||||
|
|
||||||
});
|
});
|
||||||
@ -112,19 +110,32 @@ describe('Start Process Component', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Check start a process without a process model included', () => {
|
describe(' Once logged with user without apps', () => {
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
loginPage.loginToProcessServicesUsingUserModel(procUserModel);
|
||||||
|
navigationBarPage.clickProcessServicesButton();
|
||||||
processServicesPage.checkApsContainer();
|
processServicesPage.checkApsContainer();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Check start a process without a process model included', () => {
|
||||||
processServicesPage.goToApp('Task App');
|
processServicesPage.goToApp('Task App');
|
||||||
appNavigationBarPage.clickProcessButton();
|
appNavigationBarPage.clickProcessButton();
|
||||||
processFiltersPage.clickCreateProcessButton();
|
processFiltersPage.clickCreateProcessButton();
|
||||||
processFiltersPage.clickNewProcessDropdown();
|
processFiltersPage.clickNewProcessDropdown();
|
||||||
startProcessPage.checkNoProcessMessage();
|
startProcessPage.checkNoProcessMessage();
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('Check Start Process within Task App', () => {
|
describe(' Once logged with user with app', () => {
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
loginPage.loginToProcessServicesUsingUserModel(secondProcUserModel);
|
loginPage.loginToProcessServicesUsingUserModel(secondProcUserModel);
|
||||||
navigationBarPage.clickProcessServicesButton();
|
navigationBarPage.clickProcessServicesButton();
|
||||||
processServicesPage.checkApsContainer();
|
processServicesPage.checkApsContainer();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Check Start Process within Task App', () => {
|
||||||
processServicesPage.goToApp('Task App');
|
processServicesPage.goToApp('Task App');
|
||||||
appNavigationBarPage.clickProcessButton();
|
appNavigationBarPage.clickProcessButton();
|
||||||
processFiltersPage.clickCreateProcessButton();
|
processFiltersPage.clickCreateProcessButton();
|
||||||
@ -132,21 +143,7 @@ describe('Start Process Component', () => {
|
|||||||
expect(startProcessPage.getDefaultName()).toEqual('My Default Name');
|
expect(startProcessPage.getDefaultName()).toEqual('My Default Name');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Name of the process is required', () => {
|
|
||||||
navigationBarPage.clickProcessServicesButton();
|
|
||||||
processServicesPage.checkApsContainer();
|
|
||||||
processServicesPage.goToApp(app.title);
|
|
||||||
appNavigationBarPage.clickProcessButton();
|
|
||||||
processFiltersPage.clickCreateProcessButton();
|
|
||||||
processFiltersPage.clickNewProcessDropdown();
|
|
||||||
startProcessPage.selectFromProcessDropdown('process_without_se');
|
|
||||||
startProcessPage.deleteDefaultName('My Default Name');
|
|
||||||
startProcessPage.checkStartProcessButtonIsDisabled();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Process Definition is required and cancel button is clicked', () => {
|
it('Process Definition is required and cancel button is clicked', () => {
|
||||||
navigationBarPage.clickProcessServicesButton();
|
|
||||||
processServicesPage.checkApsContainer();
|
|
||||||
processServicesPage.goToApp('Task App');
|
processServicesPage.goToApp('Task App');
|
||||||
appNavigationBarPage.clickProcessButton();
|
appNavigationBarPage.clickProcessButton();
|
||||||
processFiltersPage.clickCreateProcessButton();
|
processFiltersPage.clickCreateProcessButton();
|
||||||
@ -157,9 +154,17 @@ describe('Start Process Component', () => {
|
|||||||
processFiltersPage.checkNoContentMessage();
|
processFiltersPage.checkNoContentMessage();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('Name of the process is required', () => {
|
||||||
|
processServicesPage.goToApp(app.title);
|
||||||
|
appNavigationBarPage.clickProcessButton();
|
||||||
|
processFiltersPage.clickCreateProcessButton();
|
||||||
|
processFiltersPage.clickNewProcessDropdown();
|
||||||
|
startProcessPage.selectFromProcessDropdown('process_without_se');
|
||||||
|
startProcessPage.deleteDefaultName('My Default Name');
|
||||||
|
startProcessPage.checkStartProcessButtonIsDisabled();
|
||||||
|
});
|
||||||
|
|
||||||
it('Check Start Process within an app without a start event', () => {
|
it('Check Start Process within an app without a start event', () => {
|
||||||
navigationBarPage.clickProcessServicesButton();
|
|
||||||
processServicesPage.checkApsContainer();
|
|
||||||
processServicesPage.goToApp(app.title);
|
processServicesPage.goToApp(app.title);
|
||||||
appNavigationBarPage.clickProcessButton();
|
appNavigationBarPage.clickProcessButton();
|
||||||
processFiltersPage.clickCreateProcessButton();
|
processFiltersPage.clickCreateProcessButton();
|
||||||
@ -170,8 +175,6 @@ describe('Start Process Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
xit('Start a process within an app with a start event', () => {
|
xit('Start a process within an app with a start event', () => {
|
||||||
navigationBarPage.clickProcessServicesButton();
|
|
||||||
processServicesPage.checkApsContainer();
|
|
||||||
processServicesPage.goToApp(app.title);
|
processServicesPage.goToApp(app.title);
|
||||||
appNavigationBarPage.clickProcessButton();
|
appNavigationBarPage.clickProcessButton();
|
||||||
processFiltersPage.clickCreateProcessButton();
|
processFiltersPage.clickCreateProcessButton();
|
||||||
@ -199,8 +202,6 @@ describe('Start Process Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('Add a comment on an active process', () => {
|
it('Add a comment on an active process', () => {
|
||||||
navigationBarPage.clickProcessServicesButton();
|
|
||||||
processServicesPage.checkApsContainer();
|
|
||||||
processServicesPage.goToApp(app.title);
|
processServicesPage.goToApp(app.title);
|
||||||
appNavigationBarPage.clickProcessButton();
|
appNavigationBarPage.clickProcessButton();
|
||||||
processFiltersPage.clickCreateProcessButton();
|
processFiltersPage.clickCreateProcessButton();
|
||||||
@ -215,8 +216,6 @@ describe('Start Process Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('Click Audit Log button', () => {
|
it('Click Audit Log button', () => {
|
||||||
navigationBarPage.clickProcessServicesButton();
|
|
||||||
processServicesPage.checkApsContainer();
|
|
||||||
processServicesPage.goToApp(app.title);
|
processServicesPage.goToApp(app.title);
|
||||||
appNavigationBarPage.clickProcessButton();
|
appNavigationBarPage.clickProcessButton();
|
||||||
processFiltersPage.clickCreateProcessButton();
|
processFiltersPage.clickCreateProcessButton();
|
||||||
@ -227,13 +226,11 @@ describe('Start Process Component', () => {
|
|||||||
processFiltersPage.clickRunningFilterButton();
|
processFiltersPage.clickRunningFilterButton();
|
||||||
processFiltersPage.selectFromProcessList('Audit Log');
|
processFiltersPage.selectFromProcessList('Audit Log');
|
||||||
processDetailsPage.clickAuditLogButton();
|
processDetailsPage.clickAuditLogButton();
|
||||||
expect(Util.fileExists(auditLogFile, 10)).toBe(true);
|
|
||||||
|
expect(Util.fileExists(auditLogFile, 15)).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Add a file in the attachment list using the button', () => {
|
it('Add a file in the attachment list using the button', () => {
|
||||||
navigationBarPage.clickProcessServicesButton();
|
|
||||||
|
|
||||||
processServicesPage.checkApsContainer();
|
|
||||||
processServicesPage.goToApp(app.title);
|
processServicesPage.goToApp(app.title);
|
||||||
|
|
||||||
appNavigationBarPage.clickProcessButton();
|
appNavigationBarPage.clickProcessButton();
|
||||||
@ -253,9 +250,6 @@ describe('Start Process Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('Click Show Diagram', () => {
|
it('Click Show Diagram', () => {
|
||||||
navigationBarPage.clickProcessServicesButton();
|
|
||||||
|
|
||||||
processServicesPage.checkApsContainer();
|
|
||||||
processServicesPage.goToApp(app.title);
|
processServicesPage.goToApp(app.title);
|
||||||
|
|
||||||
appNavigationBarPage.clickProcessButton();
|
appNavigationBarPage.clickProcessButton();
|
||||||
@ -274,8 +268,6 @@ describe('Start Process Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('Click on an active task', () => {
|
it('Click on an active task', () => {
|
||||||
navigationBarPage.clickProcessServicesButton();
|
|
||||||
processServicesPage.checkApsContainer();
|
|
||||||
processServicesPage.goToApp(app.title);
|
processServicesPage.goToApp(app.title);
|
||||||
appNavigationBarPage.clickProcessButton();
|
appNavigationBarPage.clickProcessButton();
|
||||||
processFiltersPage.clickCreateProcessButton();
|
processFiltersPage.clickCreateProcessButton();
|
||||||
@ -290,6 +282,7 @@ describe('Start Process Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('Click Cancel process button', () => {
|
it('Click Cancel process button', () => {
|
||||||
|
loginPage.loginToProcessServicesUsingUserModel(secondProcUserModel);
|
||||||
navigationBarPage.clickProcessServicesButton();
|
navigationBarPage.clickProcessServicesButton();
|
||||||
processServicesPage.checkApsContainer();
|
processServicesPage.checkApsContainer();
|
||||||
processServicesPage.goToApp(app.title);
|
processServicesPage.goToApp(app.title);
|
||||||
@ -308,8 +301,6 @@ describe('Start Process Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('Add a comment on a complete process', () => {
|
it('Add a comment on a complete process', () => {
|
||||||
navigationBarPage.clickProcessServicesButton();
|
|
||||||
processServicesPage.checkApsContainer();
|
|
||||||
processServicesPage.goToApp(app.title);
|
processServicesPage.goToApp(app.title);
|
||||||
appNavigationBarPage.clickProcessButton();
|
appNavigationBarPage.clickProcessButton();
|
||||||
processFiltersPage.clickCreateProcessButton();
|
processFiltersPage.clickCreateProcessButton();
|
||||||
@ -327,8 +318,6 @@ describe('Start Process Component', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('Cannot attach a file on a completed process', () => {
|
it('Cannot attach a file on a completed process', () => {
|
||||||
navigationBarPage.clickProcessServicesButton();
|
|
||||||
processServicesPage.checkApsContainer();
|
|
||||||
processServicesPage.goToApp(app.title);
|
processServicesPage.goToApp(app.title);
|
||||||
appNavigationBarPage.clickProcessButton();
|
appNavigationBarPage.clickProcessButton();
|
||||||
processFiltersPage.clickCreateProcessButton();
|
processFiltersPage.clickCreateProcessButton();
|
||||||
@ -343,4 +332,7 @@ describe('Start Process Component', () => {
|
|||||||
processFiltersPage.selectFromProcessList('File');
|
processFiltersPage.selectFromProcessList('File');
|
||||||
attachmentListPage.checkAttachFileButtonIsNotDisplayed();
|
attachmentListPage.checkAttachFileButtonIsNotDisplayed();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -183,8 +183,7 @@ describe('Start Task - Custom App', () => {
|
|||||||
it('Assign User', () => {
|
it('Assign User', () => {
|
||||||
processServicesPage.goToProcessServices().goToApp(appModel.name).clickTasksButton();
|
processServicesPage.goToProcessServices().goToApp(appModel.name).clickTasksButton();
|
||||||
taskPage.usingFiltersPage().goToFilter(CONSTANTS.TASKFILTERS.MY_TASKS);
|
taskPage.usingFiltersPage().goToFilter(CONSTANTS.TASKFILTERS.MY_TASKS);
|
||||||
taskPage.createNewTask().addName(tasks[5])
|
taskPage.createNewTask().addName(tasks[5]).addAssignee(assigneeUserModel.firstName).clickStartButton()
|
||||||
.addAssignee(assigneeUserModel.firstName).clickStartButton()
|
|
||||||
.then(() => {
|
.then(() => {
|
||||||
taskPage.usingTasksListPage().checkTaskListIsLoaded();
|
taskPage.usingTasksListPage().checkTaskListIsLoaded();
|
||||||
taskPage.usingTasksListPage().waitForTableBody();
|
taskPage.usingTasksListPage().waitForTableBody();
|
||||||
|
@ -111,9 +111,9 @@ describe('Attachment list action menu for tasks', () => {
|
|||||||
|
|
||||||
attachmentListPage.downloadFile(pngFile.name);
|
attachmentListPage.downloadFile(pngFile.name);
|
||||||
|
|
||||||
browser.driver.sleep(500);
|
browser.driver.sleep(1000);
|
||||||
|
|
||||||
expect(Util.fileExists(downloadedPngFile, 20)).toBe(true);
|
expect(Util.fileExists(downloadedPngFile, 30)).toBe(true);
|
||||||
|
|
||||||
attachmentListPage.removeFile(pngFile.name);
|
attachmentListPage.removeFile(pngFile.name);
|
||||||
attachmentListPage.checkFileIsRemoved(pngFile.name);
|
attachmentListPage.checkFileIsRemoved(pngFile.name);
|
||||||
@ -143,9 +143,9 @@ describe('Attachment list action menu for tasks', () => {
|
|||||||
|
|
||||||
attachmentListPage.downloadFile(pngFile.name);
|
attachmentListPage.downloadFile(pngFile.name);
|
||||||
|
|
||||||
browser.driver.sleep(500);
|
browser.driver.sleep(1000);
|
||||||
|
|
||||||
expect(Util.fileExists(downloadedPngFile, 20)).toBe(true);
|
expect(Util.fileExists(downloadedPngFile, 30)).toBe(true);
|
||||||
|
|
||||||
attachmentListPage.removeFile(pngFile.name);
|
attachmentListPage.removeFile(pngFile.name);
|
||||||
attachmentListPage.checkFileIsRemoved(pngFile.name);
|
attachmentListPage.checkFileIsRemoved(pngFile.name);
|
||||||
|
@ -519,6 +519,6 @@ exports.fileExists = function (filePath, retries) {
|
|||||||
resolve(true);
|
resolve(true);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}, 1000);
|
}, 2000);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user