diff --git a/e2e/pages/adf/process_services/tasksPage.js b/e2e/pages/adf/process_services/tasksPage.js index 6ac6968524..ef4df48c89 100644 --- a/e2e/pages/adf/process_services/tasksPage.js +++ b/e2e/pages/adf/process_services/tasksPage.js @@ -32,6 +32,7 @@ var TasksPage = function () { var checklistContainer = by.css("div[class*='checklist-menu']"); var taskTitle = "h2[class='activiti-task-details__header'] span"; var rows = by.css("div[class*='adf-datatable-body'] div[class*='adf-datatable-row'] div[class*='adf-data-table-cell']"); + var completeButtonNoForm = element(by.id("adf-no-form-complete-button")); this.createNewTask = function () { @@ -104,10 +105,15 @@ var TasksPage = function () { return this; }; - this.getAllDisplayedRows= function(){ + this.getAllDisplayedRows = function(){ return element.all(rows).count(); }; + this.completeTaskNoForm = function () { + Util.waitUntilElementIsClickable(completeButtonNoForm); + completeButtonNoForm.click(); + }; + }; module.exports = TasksPage; diff --git a/e2e/task_attachmentList_actionMenu.e2e.ts b/e2e/task_attachmentList_actionMenu.e2e.ts new file mode 100644 index 0000000000..1ce261f53a --- /dev/null +++ b/e2e/task_attachmentList_actionMenu.e2e.ts @@ -0,0 +1,177 @@ +/*! + * @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 ProcessServicesPage = require('./pages/adf/process_services/processServicesPage'); +import TasksPage = require('./pages/adf/process_services/tasksPage'); +import { AttachmentListPage } from './pages/adf/process_services/attachmentListPage'; +import ViewerPage = require('./pages/adf/viewerPage.js'); + +import CONSTANTS = require('./util/constants'); + +import TestConfig = require('./test.config'); +import resources = require('./util/resources'); +import Util = require('./util/util.js'); + +import path = require('path'); +import fs = require('fs'); + +import AlfrescoApi = require('alfresco-js-api-node'); +import {UsersActions} from './actions/users.actions'; +import {AppsActions} from './actions/APS/apps.actions'; +import FileModel = require('./models/ACS/fileModel'); + +describe('Attachment list action menu for tasks', () => { + + let loginPage = new LoginPage(); + let processServicesPage = new ProcessServicesPage(); + let taskPage = new TasksPage(); + let attachmentListPage = new AttachmentListPage(); + let viewerPage = new ViewerPage(); + let app = resources.Files.SIMPLE_APP_WITH_USER_FORM; + let jpgFile = new FileModel({ + location: resources.Files.ADF_DOCUMENTS.JPG.file_location, + name: resources.Files.ADF_DOCUMENTS.JPG.file_name + }); + let downloadedJpgFile = path.join(__dirname, 'downloads', jpgFile.name); + let tenantId, appId; + let taskName = { + active: 'Active Task', + completed: 'Completed Task', + taskApp: 'Task App Name', + emptyList: 'Empty List' + }; + + beforeAll(async(done) => { + let apps = new AppsActions(); + let users = new UsersActions(); + + this.alfrescoJsApi = new AlfrescoApi({ + provider: 'BPM', + hostBpm: TestConfig.adf.url + }); + + await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); + + let user = await users.createTenantAndUser(this.alfrescoJsApi); + + tenantId = user.tenantId; + + await this.alfrescoJsApi.login(user.email, user.password); + + let importedApp = await apps.importPublishDeployApp(this.alfrescoJsApi, app.file_location); + appId = importedApp.id; + + await loginPage.loginToProcessServicesUsingUserModel(user); + + done(); + }); + + afterAll(async(done) => { + await this.alfrescoJsApi.activiti.modelsApi.deleteModel(appId); + await this.alfrescoJsApi.login(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword); + await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(tenantId); + done(); + }); + + it('[C277311] Should be able to View /Download /Remove from Attachment List on an active task', () => { + processServicesPage.goToProcessServices().goToApp(app.title).clickTasksButton(); + + taskPage.usingFiltersPage().goToFilter(CONSTANTS.TASKFILTERS.MY_TASKS); + taskPage.createNewTask().addName(taskName.active).clickStartButton(); + + attachmentListPage.clickAttachFileButton(jpgFile.location); + attachmentListPage.viewFile(jpgFile.name); + + viewerPage.checkFileNameIsDisplayed(jpgFile.name); + viewerPage.clickCloseButton(); + + taskPage.usingFiltersPage().goToFilter(CONSTANTS.TASKFILTERS.MY_TASKS); + + attachmentListPage.doubleClickFile(jpgFile.name); + + viewerPage.checkFileNameIsDisplayed(jpgFile.name); + viewerPage.clickCloseButton(); + + taskPage.usingFiltersPage().goToFilter(CONSTANTS.TASKFILTERS.MY_TASKS); + + attachmentListPage.downloadFile(jpgFile.name); + + expect(Util.fileExists(downloadedJpgFile, 20)).toBe(true); + + attachmentListPage.removeFile(jpgFile.name); + attachmentListPage.checkFileIsRemoved(jpgFile.name); + }); + + it('[C260236] Should be able to View /Download /Remove from Attachment List on a completed task', () => { + processServicesPage.goToProcessServices().goToApp(app.title).clickTasksButton(); + + taskPage.usingFiltersPage().goToFilter(CONSTANTS.TASKFILTERS.MY_TASKS); + taskPage.createNewTask().addName(taskName.completed).clickStartButton() + .then(() => { + attachmentListPage.clickAttachFileButton(jpgFile.location); + attachmentListPage.checkFileIsAttached(jpgFile.name); + }); + + taskPage.completeTaskNoForm(); + taskPage.usingFiltersPage().goToFilter(CONSTANTS.TASKFILTERS.COMPL_TASKS); + taskPage.usingTasksListPage().selectTaskFromTasksList(taskName.completed); + + attachmentListPage.checkAttachFileButtonIsNotDisplayed(); + attachmentListPage.viewFile(jpgFile.name); + + viewerPage.checkFileNameIsDisplayed(jpgFile.name); + viewerPage.clickCloseButton(); + + taskPage.usingFiltersPage().goToFilter(CONSTANTS.TASKFILTERS.COMPL_TASKS); + taskPage.usingTasksListPage().selectTaskFromTasksList(taskName.completed); + + attachmentListPage.downloadFile(jpgFile.name); + + expect(Util.fileExists(downloadedJpgFile, 20)).toBe(true); + + attachmentListPage.removeFile(jpgFile.name); + attachmentListPage.checkFileIsRemoved(jpgFile.name); + }); + + it('[C260225] Should be able to upload a file in the Attachment list on Task App', () => { + processServicesPage.goToProcessServices().goToTaskApp().clickTasksButton(); + + taskPage.usingFiltersPage().goToFilter(CONSTANTS.TASKFILTERS.MY_TASKS); + taskPage.createNewTask().addName(taskName.taskApp).clickStartButton() + .then(() => { + attachmentListPage.clickAttachFileButton(jpgFile.location); + attachmentListPage.checkFileIsAttached(jpgFile.name); + }); + }); + + it('[C279884] Should be able to view the empty attachment list for tasks', () => { + processServicesPage.goToProcessServices().goToTaskApp().clickTasksButton(); + + taskPage.usingFiltersPage().goToFilter(CONSTANTS.TASKFILTERS.MY_TASKS); + taskPage.createNewTask().addName(taskName.emptyList).clickStartButton() + .then(() => { + attachmentListPage.checkEmptyAttachmentList(); + attachmentListPage.clickAttachFileButton(jpgFile.location); + attachmentListPage.checkFileIsAttached(jpgFile.name); + attachmentListPage.removeFile(jpgFile.name); + attachmentListPage.checkFileIsRemoved(jpgFile.name); + attachmentListPage.checkEmptyAttachmentList(); + }); + }); + +});