mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-26 17:24:56 +00:00
* Adding automated tests for Task Details - Changing/Removing Form * Updating tests and adding missing one
383 lines
14 KiB
JavaScript
383 lines
14 KiB
JavaScript
/*!
|
|
* @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 TaskDetailsToggles = require('./dialog/taskDetailsToggles');
|
|
|
|
var TaskDetailsPage = function () {
|
|
|
|
var formNameField = element(by.css("span[data-automation-id*='formName'] span"));
|
|
var assigneeField = element(by.css("span[data-automation-id*='assignee'] span"));
|
|
var statusField = element(by.css("span[data-automation-id*='status'] span"));
|
|
var categoryField = element(by.css("span[data-automation-id*='category'] span"));
|
|
var parentNameField = element(by.css("span[data-automation-id*='parentName'] span"));
|
|
var createdField = element(by.css("span[data-automation-id='card-dateitem-created'] span"));
|
|
var idField = element(by.css("span[data-automation-id*='id'] span"));
|
|
var descriptionField = element(by.css("span[data-automation-id*='description'] span"));
|
|
var dueDateField = element(by.css("span[data-automation-id*='dueDate'] span"));
|
|
var activitiesTitle = element(by.css("div[class*='adf-info-drawer-layout-header-title'] div"));
|
|
var commentField = element(by.id("comment-input"));
|
|
var addCommentButton = element(by.css("[data-automation-id='comments-input-add']"));
|
|
var activityTab = element(by.cssContainingText("div[class*='mat-tab-label ']", "Activity"));
|
|
var detailsTab = element(by.cssContainingText("div[class*='mat-tab-label ']", "Details"));
|
|
var involvePeopleButton = element(by.css("div[class*='add-people']"));
|
|
var addPeopleField = element(by.css("input[data-automation-id='adf-people-search-input']"));
|
|
var addInvolvedUserButton = element(by.css("button[id='add-people'] span"));
|
|
var emailInvolvedUser = by.xpath("following-sibling::div[@class='people-email ng-star-inserted']");
|
|
var editActionInvolvedUser = by.xpath("following-sibling::div[@class='people-edit-label ng-star-inserted']");
|
|
var involvedUserPic = by.xpath("ancestor::div/ancestor::div/preceding-sibling::div//div[@class='adf-people-search-people-pic ng-star-inserted']");
|
|
var infoDrawer = element(by.css("adf-info-drawer"));
|
|
var taskDetailsSection = element(by.css("div[data-automation-id='adf-tasks-details']"));
|
|
var taskDetailsEmptySection = element(by.css("div[data-automation-id='adf-tasks-details--empty']"));
|
|
var completeTask = element(by.css("button[id='adf-no-form-complete-button']"));
|
|
var auditLogButton = element(by.css("button[adf-task-audit]"));
|
|
var noPeopleInvolved = element(by.id('no-people-label'));
|
|
var cancelInvolvePeopleButton = element(by.id('close-people-search'));
|
|
var involvePeopleHeader = element(by.css("div[class='search-text-header']"));
|
|
var removeInvolvedPeople = element(by.css("button[data-automation-id='Remove']"));
|
|
var peopleTitle = element(by.id("people-title"));
|
|
var editFormButton = element.all(by.css("mat-icon[data-automation-id='card-textitem-edit-icon-create']")).last();
|
|
var attachFormDropdown = element(by.css("div[class='adf-attach-form-row']"));
|
|
var cancelAttachForm = element(by.id("adf-no-form-cancel-button"));
|
|
var attachFormButton = element(by.id("adf-no-form-attach-form-button"));
|
|
var disabledAttachFormButton = element(by.css("button[id='adf-no-form-attach-form-button'][disabled]"));
|
|
var removeAttachForm = element(by.id("adf-no-form-remove-button"));
|
|
var attachFormName = element(by.css("span[class='adf-form-title ng-star-inserted']"));
|
|
|
|
this.checkSelectedForm = function (formName) {
|
|
Util.waitUntilElementIsVisible(attachFormName);
|
|
expect(formName).toEqual(attachFormName.getText());
|
|
};
|
|
|
|
this.checkAttachFormButtonIsDisabled = function () {
|
|
Util.waitUntilElementIsVisible(disabledAttachFormButton);
|
|
};
|
|
|
|
this.checkAttachFormButtonIsEnabled = function () {
|
|
Util.waitUntilElementIsClickable(attachFormButton);
|
|
};
|
|
|
|
this.checkEditFormButtonIsDisplayed = function () {
|
|
Util.waitUntilElementIsVisible(editFormButton);
|
|
};
|
|
|
|
this.clickEditFormButton = function () {
|
|
Util.waitUntilElementIsClickable(editFormButton);
|
|
return editFormButton.click();
|
|
};
|
|
|
|
this.checkAttachFormDropdownIsDisplayed = function () {
|
|
Util.waitUntilElementIsVisible(attachFormDropdown);
|
|
};
|
|
|
|
this.clickAttachFormDropdown = function () {
|
|
Util.waitUntilElementIsClickable(attachFormDropdown);
|
|
return attachFormDropdown.click();
|
|
};
|
|
|
|
this.selectAttachFormOption = function (option) {
|
|
let selectedOption = element(by.cssContainingText("mat-option[role='option']", option));
|
|
Util.waitUntilElementIsClickable(selectedOption);
|
|
return selectedOption.click();
|
|
};
|
|
|
|
this.checkCancelAttachFormIsDisplayed = function () {
|
|
Util.waitUntilElementIsVisible(cancelAttachForm);
|
|
};
|
|
|
|
this.clickCancelAttachForm = function () {
|
|
Util.waitUntilElementIsClickable(cancelAttachForm);
|
|
return cancelAttachForm.click();
|
|
};
|
|
|
|
this.checkRemoveAttachFormIsDisplayed = function () {
|
|
Util.waitUntilElementIsVisible(removeAttachForm);
|
|
};
|
|
|
|
this.clickRemoveAttachForm = function () {
|
|
Util.waitUntilElementIsClickable(removeAttachForm);
|
|
return removeAttachForm.click();
|
|
};
|
|
|
|
this.checkAttachFormButtonIsDisplayed = function () {
|
|
Util.waitUntilElementIsVisible(attachFormButton);
|
|
};
|
|
|
|
this.clickAttachFormButton = function () {
|
|
Util.waitUntilElementIsClickable(attachFormButton);
|
|
return attachFormButton.click();
|
|
};
|
|
|
|
this.checkFormIsAttached = function (formName) {
|
|
Util.waitUntilElementIsVisible(formNameField);
|
|
formNameField.getText().then(function (attachedFormName){
|
|
expect(attachedFormName).toEqual(formName);
|
|
})
|
|
};
|
|
|
|
this.getFormName = function () {
|
|
Util.waitUntilElementIsVisible(formNameField);
|
|
return formNameField.getText();
|
|
};
|
|
|
|
this.getAssignee = function () {
|
|
Util.waitUntilElementIsVisible(assigneeField);
|
|
return assigneeField.getText();
|
|
};
|
|
|
|
this.getStatus = function () {
|
|
Util.waitUntilElementIsVisible(statusField);
|
|
return statusField.getText();
|
|
};
|
|
|
|
this.getCategory = function () {
|
|
Util.waitUntilElementIsVisible(categoryField);
|
|
return categoryField.getText();
|
|
};
|
|
|
|
this.getParentName = function () {
|
|
Util.waitUntilElementIsVisible(parentNameField);
|
|
return parentNameField.getText();
|
|
};
|
|
|
|
this.getCreated = function () {
|
|
Util.waitUntilElementIsVisible(createdField);
|
|
return createdField.getText();
|
|
};
|
|
|
|
this.getId = function () {
|
|
Util.waitUntilElementIsVisible(idField);
|
|
return idField.getText();
|
|
};
|
|
|
|
this.getDescription = function () {
|
|
Util.waitUntilElementIsVisible(descriptionField);
|
|
return descriptionField.getText();
|
|
};
|
|
|
|
this.getDueDate = function () {
|
|
Util.waitUntilElementIsVisible(dueDateField);
|
|
return dueDateField.getText();
|
|
};
|
|
|
|
this.getTitle = function () {
|
|
Util.waitUntilElementIsVisible(activitiesTitle);
|
|
return activitiesTitle.getText();
|
|
};
|
|
|
|
this.selectActivityTab = function () {
|
|
Util.waitUntilElementIsVisible(activityTab);
|
|
activityTab.getAttribute('aria-selected').then(function (check) {
|
|
if (check === 'false') {
|
|
activityTab.click();
|
|
expect(activityTab.getAttribute('aria-selected')==="true");
|
|
}
|
|
});
|
|
return this;
|
|
};
|
|
|
|
this.selectDetailsTab = function () {
|
|
Util.waitUntilElementIsVisible(detailsTab);
|
|
detailsTab.getAttribute('aria-selected').then(function (check) {
|
|
if (check === 'false') {
|
|
detailsTab.click();
|
|
expect(detailsTab.getAttribute('aria-selected')==="true");
|
|
}
|
|
});
|
|
return this;
|
|
};
|
|
|
|
this.addComment = function (comment) {
|
|
Util.waitUntilElementIsVisible(commentField);
|
|
commentField.sendKeys(comment);
|
|
addCommentButton.click();
|
|
return this;
|
|
};
|
|
|
|
this.clearComment = function (comment) {
|
|
Util.waitUntilElementIsVisible(commentField);
|
|
commentField.sendKeys(protractor.Key.ENTER);
|
|
return this;
|
|
};
|
|
|
|
this.checkCommentIsDisplayed = function (comment) {
|
|
var row = element(by.cssContainingText("div[id='comment-message']", comment));
|
|
Util.waitUntilElementIsVisible(row);
|
|
return this;
|
|
};
|
|
|
|
this.clickInvolvePeopleButton = function () {
|
|
Util.waitUntilElementIsVisible(involvePeopleButton);
|
|
Util.waitUntilElementIsClickable(involvePeopleButton);
|
|
browser.actions().mouseMove(involvePeopleButton).perform();
|
|
involvePeopleButton.click();
|
|
return this;
|
|
};
|
|
|
|
this.typeUser = function (user) {
|
|
Util.waitUntilElementIsVisible(addPeopleField);
|
|
addPeopleField.sendKeys(user);
|
|
return this;
|
|
};
|
|
|
|
this.selectUserToInvolve = function(user) {
|
|
this.getRowsUser(user).click();
|
|
return this;
|
|
};
|
|
|
|
this.checkUserIsSelected = function(user) {
|
|
var row = element(by.cssContainingText("div[class*='search-list-container'] div[class*='people-full-name']", user));
|
|
var selectedRow = this.getRowsUser(user).element(by.css("ancestor::tr[class*='is-selected']"));
|
|
Util.waitUntilElementIsVisible(row);
|
|
return this;
|
|
};
|
|
|
|
this.clickAddInvolvedUserButton = function () {
|
|
Util.waitUntilElementIsVisible(addInvolvedUserButton);
|
|
Util.waitUntilElementIsClickable(addInvolvedUserButton);
|
|
addInvolvedUserButton.click();
|
|
return this;
|
|
}
|
|
|
|
this.getRowsUser = function (user) {
|
|
var row = element(by.cssContainingText("div[class*='people-full-name']", user));
|
|
Util.waitUntilElementIsVisible(row);
|
|
return row;
|
|
};
|
|
|
|
this.removeInvolvedUser = function (user) {
|
|
var row = this.getRowsUser(user).element(by.xpath("ancestor::div[contains(@class, 'adf-datatable-row')]"));
|
|
Util.waitUntilElementIsVisible(row);
|
|
row.element(by.css("button[data-automation-id='action_menu_0']")).click();
|
|
Util.waitUntilElementIsVisible(removeInvolvedPeople);
|
|
return removeInvolvedPeople.click();
|
|
};
|
|
|
|
this.getInvolvedUserEmail = function (user) {
|
|
var email = this.getRowsUser(user).element(emailInvolvedUser);
|
|
Util.waitUntilElementIsVisible(email);
|
|
return email.getText();
|
|
};
|
|
|
|
this.getInvolvedUserEditAction = function (user) {
|
|
var edit = this.getRowsUser(user).element(editActionInvolvedUser);
|
|
Util.waitUntilElementIsVisible(edit);
|
|
return edit.getText();
|
|
};
|
|
|
|
this.clickAuditLogButton = function () {
|
|
Util.waitUntilElementIsVisible(auditLogButton);
|
|
auditLogButton.click();
|
|
};
|
|
|
|
this.usingTaskDetailsToggles = function () {
|
|
return new TaskDetailsToggles();
|
|
};
|
|
|
|
this.taskInfoDrawerIsDisplayed = function () {
|
|
Util.waitUntilElementIsVisible(infoDrawer);
|
|
};
|
|
|
|
this.taskInfoDrawerIsNotDisplayed = function () {
|
|
Util.waitUntilElementIsNotOnPage(infoDrawer);
|
|
};
|
|
|
|
this.checkNoPeopleIsInvolved = function () {
|
|
Util.waitUntilElementIsVisible(noPeopleInvolved);
|
|
return this;
|
|
};
|
|
|
|
this.clickCancelInvolvePeopleButton = function () {
|
|
Util.waitUntilElementIsVisible(cancelInvolvePeopleButton);
|
|
cancelInvolvePeopleButton.click();
|
|
return this;
|
|
};
|
|
|
|
this.getInvolvePeopleHeader = function () {
|
|
Util.waitUntilElementIsVisible(involvePeopleHeader);
|
|
return involvePeopleHeader.getText();
|
|
};
|
|
|
|
this.getInvolvePeoplePlaceholder = function () {
|
|
Util.waitUntilElementIsVisible(addPeopleField);
|
|
return addPeopleField.getAttribute('placeholder');
|
|
};
|
|
|
|
this.checkCancelButtonIsEnabled = function () {
|
|
Util.waitUntilElementIsVisible(cancelInvolvePeopleButton);
|
|
Util.waitUntilElementIsClickable(cancelInvolvePeopleButton);
|
|
return this;
|
|
};
|
|
|
|
this.checkAddPeopleButtonIsEnabled = function () {
|
|
Util.waitUntilElementIsVisible(addInvolvedUserButton);
|
|
Util.waitUntilElementIsClickable(addInvolvedUserButton);
|
|
return this;
|
|
};
|
|
|
|
this.noUserIsDisplayedInSearchInvolvePeople = function (user) {
|
|
Util.waitUntilElementIsNotOnPage(element(by.cssContainingText("div[class*='people-full-name']", user)));
|
|
return this;
|
|
};
|
|
|
|
this.getInvolvedPeopleTitle = function () {
|
|
Util.waitUntilElementIsVisible(peopleTitle);
|
|
return peopleTitle.getText();
|
|
};
|
|
|
|
this.getInvolvedPeopleInitialImage = function (user) {
|
|
var pic = this.getRowsUser(user).element(involvedUserPic);
|
|
Util.waitUntilElementIsVisible(pic);
|
|
return pic.getText();
|
|
}
|
|
|
|
this.checkTaskDetails = function () {
|
|
Util.waitUntilElementIsVisible(taskDetailsSection);
|
|
return taskDetailsSection.getText();
|
|
};
|
|
|
|
this.checkTaskDetailsEmpty = function () {
|
|
Util.waitUntilElementIsVisible(taskDetailsEmptySection);
|
|
return taskDetailsEmptySection.getText();
|
|
};
|
|
|
|
this.checkTaskDetailsDisplayed = function () {
|
|
Util.waitUntilElementIsVisible(taskDetailsSection);
|
|
Util.waitUntilElementIsVisible(formNameField);
|
|
Util.waitUntilElementIsVisible(assigneeField);
|
|
Util.waitUntilElementIsVisible(statusField);
|
|
Util.waitUntilElementIsVisible(categoryField);
|
|
Util.waitUntilElementIsVisible(parentNameField);
|
|
Util.waitUntilElementIsVisible(createdField);
|
|
Util.waitUntilElementIsVisible(idField);
|
|
Util.waitUntilElementIsVisible(descriptionField);
|
|
Util.waitUntilElementIsVisible(dueDateField);
|
|
Util.waitUntilElementIsVisible(dueDateField);
|
|
Util.waitUntilElementIsVisible(activitiesTitle);
|
|
|
|
return taskDetailsSection.getText();
|
|
};
|
|
|
|
this.clickCompleteTask = function () {
|
|
Util.waitUntilElementIsVisible(completeTask);
|
|
return completeTask.click();
|
|
};
|
|
|
|
};
|
|
|
|
module.exports = TaskDetailsPage;
|