mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-26 17:24:56 +00:00
* Refactoring taskFiltersPage * Refactor task filters page * Fix lint errors * no message
431 lines
15 KiB
TypeScript
431 lines
15 KiB
TypeScript
/*!
|
|
* @license
|
|
* Copyright 2016 Alfresco Software, Ltd.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
import { AppSettingsToggles } from './dialog/appSettingsToggles';
|
|
import Util = require('../../../util/util');
|
|
import { element, by, protractor, browser } from 'protractor';
|
|
import { TabsPage } from '../material/tabsPage';
|
|
|
|
export class TaskDetailsPage {
|
|
|
|
appSettingsTogglesClass = new AppSettingsToggles();
|
|
formContent = element(by.css('adf-form'));
|
|
formNameField = element(by.css('span[data-automation-id*="formName"] span'));
|
|
assigneeField = element(by.css('span[data-automation-id*="assignee"] span'));
|
|
statusField = element(by.css('span[data-automation-id*="status"] span'));
|
|
categoryField = element(by.css('span[data-automation-id*="category"] span'));
|
|
parentNameField = element(by.css('span[data-automation-id*="parentName"] span'));
|
|
parentTaskIdField = element(by.css('span[data-automation-id*="parentTaskId"] span'));
|
|
durationField = element(by.css('span[data-automation-id*="duration"] span'));
|
|
endDateField = element(by.css('span[data-automation-id*="endDate"] span'));
|
|
createdField = element(by.css('span[data-automation-id="card-dateitem-created"] span'));
|
|
idField = element(by.css('span[data-automation-id*="id"] span'));
|
|
descriptionField = element(by.css('span[data-automation-id*="description"] span'));
|
|
dueDateField = element(by.css('span[data-automation-id*="dueDate"] span'));
|
|
activitiesTitle = element(by.css('div[class*="adf-info-drawer-layout-header-title"] div'));
|
|
commentField = element(by.id('comment-input'));
|
|
addCommentButton = element(by.css('[data-automation-id="comments-input-add"]'));
|
|
involvePeopleButton = element(by.css('div[class*="add-people"]'));
|
|
addPeopleField = element(by.css('input[data-automation-id="adf-people-search-input"]'));
|
|
addInvolvedUserButton = element(by.css('button[id="add-people"] span'));
|
|
emailInvolvedUser = by.xpath('following-sibling::div[@class="people-email ng-star-inserted"]');
|
|
editActionInvolvedUser = by.xpath('following-sibling::div[@class="people-edit-label ng-star-inserted"]');
|
|
involvedUserPic = by.xpath('ancestor::div/ancestor::div/preceding-sibling::div//div[@class="adf-people-search-people-pic ng-star-inserted"]');
|
|
taskDetailsInfoDrawer = element(by.tagName('adf-info-drawer'));
|
|
taskDetailsSection = element(by.css('div[data-automation-id="adf-tasks-details"]'));
|
|
taskDetailsEmptySection = element(by.css('div[data-automation-id="adf-tasks-details--empty"]'));
|
|
completeTask = element(by.css('button[id="adf-no-form-complete-button"]'));
|
|
completeFormTask = element(by.css('button[id="adf-form-complete"]'));
|
|
taskDetailsTitle = element(by.css('h2[class="activiti-task-details__header"] span'));
|
|
auditLogButton = element(by.css('button[adf-task-audit]'));
|
|
noPeopleInvolved = element(by.id('no-people-label'));
|
|
cancelInvolvePeopleButton = element(by.id('close-people-search'));
|
|
involvePeopleHeader = element(by.css('div[class="search-text-header"]'));
|
|
removeInvolvedPeople = element(by.css('button[data-automation-id="Remove"]'));
|
|
peopleTitle = element(by.id('people-title'));
|
|
editFormButton = element.all(by.css('mat-icon[data-automation-id="card-textitem-edit-icon-create"]')).last();
|
|
attachFormDropdown = element(by.css('div[class="adf-attach-form-row"]'));
|
|
cancelAttachForm = element(by.id('adf-no-form-cancel-button'));
|
|
attachFormButton = element(by.id('adf-no-form-attach-form-button'));
|
|
disabledAttachFormButton = element(by.css('button[id="adf-no-form-attach-form-button"][disabled]'));
|
|
removeAttachForm = element(by.id('adf-no-form-remove-button'));
|
|
attachFormName = element(by.css('span[class="adf-form-title ng-star-inserted"]'));
|
|
emptyTaskDetails = element(by.css('adf-task-details > div > div'));
|
|
|
|
getTaskDetailsTitle() {
|
|
Util.waitUntilElementIsVisible(this.taskDetailsTitle);
|
|
return this.taskDetailsTitle.getText();
|
|
}
|
|
|
|
checkSelectedForm(formName) {
|
|
Util.waitUntilElementIsVisible(this.attachFormName);
|
|
expect(formName).toEqual(this.attachFormName.getText());
|
|
}
|
|
|
|
checkAttachFormButtonIsDisabled() {
|
|
Util.waitUntilElementIsVisible(this.disabledAttachFormButton);
|
|
}
|
|
|
|
checkAttachFormButtonIsEnabled() {
|
|
Util.waitUntilElementIsClickable(this.attachFormButton);
|
|
}
|
|
|
|
checkEditFormButtonIsDisplayed() {
|
|
Util.waitUntilElementIsVisible(this.editFormButton);
|
|
}
|
|
|
|
clickEditFormButton() {
|
|
Util.waitUntilElementIsClickable(this.editFormButton);
|
|
return this.editFormButton.click();
|
|
}
|
|
|
|
checkAttachFormDropdownIsDisplayed() {
|
|
Util.waitUntilElementIsVisible(this.attachFormDropdown);
|
|
}
|
|
|
|
clickAttachFormDropdown() {
|
|
Util.waitUntilElementIsClickable(this.attachFormDropdown);
|
|
return this.attachFormDropdown.click();
|
|
}
|
|
|
|
selectAttachFormOption(option) {
|
|
let selectedOption = element(by.cssContainingText('mat-option[role="option"]', option));
|
|
Util.waitUntilElementIsClickable(selectedOption);
|
|
return selectedOption.click();
|
|
}
|
|
|
|
checkCancelAttachFormIsDisplayed() {
|
|
Util.waitUntilElementIsVisible(this.cancelAttachForm);
|
|
}
|
|
|
|
noFormIsDisplayed() {
|
|
Util.waitUntilElementIsNotOnPage(this.formContent);
|
|
return this;
|
|
}
|
|
|
|
clickCancelAttachForm() {
|
|
Util.waitUntilElementIsClickable(this.cancelAttachForm);
|
|
return this.cancelAttachForm.click();
|
|
}
|
|
|
|
checkRemoveAttachFormIsDisplayed() {
|
|
Util.waitUntilElementIsVisible(this.removeAttachForm);
|
|
}
|
|
|
|
clickRemoveAttachForm() {
|
|
Util.waitUntilElementIsClickable(this.removeAttachForm);
|
|
return this.removeAttachForm.click();
|
|
}
|
|
|
|
checkAttachFormButtonIsDisplayed() {
|
|
Util.waitUntilElementIsVisible(this.attachFormButton);
|
|
}
|
|
|
|
checkAttachFormButtonIsNotDisplayed() {
|
|
Util.waitUntilElementIsNotOnPage(this.attachFormButton);
|
|
}
|
|
|
|
clickAttachFormButton() {
|
|
Util.waitUntilElementIsClickable(this.attachFormButton);
|
|
return this.attachFormButton.click();
|
|
}
|
|
|
|
checkFormIsAttached(formName) {
|
|
Util.waitUntilElementIsVisible(this.formNameField);
|
|
this.formNameField.getText().then((attachedFormName) => {
|
|
expect(attachedFormName).toEqual(formName);
|
|
});
|
|
}
|
|
|
|
getFormName() {
|
|
Util.waitUntilElementIsVisible(this.formNameField);
|
|
return this.formNameField.getText();
|
|
}
|
|
|
|
getAssignee() {
|
|
Util.waitUntilElementIsVisible(this.assigneeField);
|
|
return this.assigneeField.getText();
|
|
}
|
|
|
|
getStatus() {
|
|
Util.waitUntilElementIsVisible(this.statusField);
|
|
return this.statusField.getText();
|
|
}
|
|
|
|
getCategory() {
|
|
Util.waitUntilElementIsVisible(this.categoryField);
|
|
return this.categoryField.getText();
|
|
}
|
|
|
|
getParentName() {
|
|
Util.waitUntilElementIsVisible(this.parentNameField);
|
|
return this.parentNameField.getText();
|
|
}
|
|
|
|
getParentTaskId() {
|
|
Util.waitUntilElementIsVisible(this.parentTaskIdField);
|
|
return this.parentTaskIdField.getText();
|
|
}
|
|
|
|
getDuration() {
|
|
Util.waitUntilElementIsVisible(this.durationField);
|
|
return this.durationField.getText();
|
|
}
|
|
|
|
getEndDate() {
|
|
Util.waitUntilElementIsVisible(this.endDateField);
|
|
return this.endDateField.getText();
|
|
}
|
|
|
|
getCreated() {
|
|
Util.waitUntilElementIsVisible(this.createdField);
|
|
return this.createdField.getText();
|
|
}
|
|
|
|
getId() {
|
|
Util.waitUntilElementIsVisible(this.idField);
|
|
return this.idField.getText();
|
|
}
|
|
|
|
getDescription() {
|
|
Util.waitUntilElementIsVisible(this.descriptionField);
|
|
return this.descriptionField.getText();
|
|
}
|
|
|
|
getDueDate() {
|
|
Util.waitUntilElementIsVisible(this.dueDateField);
|
|
return this.dueDateField.getText();
|
|
}
|
|
|
|
getTitle() {
|
|
Util.waitUntilElementIsVisible(this.activitiesTitle);
|
|
return this.activitiesTitle.getText();
|
|
}
|
|
|
|
selectActivityTab() {
|
|
let tabsPage = new TabsPage;
|
|
tabsPage.clickTabByTitle('Activity');
|
|
return this;
|
|
}
|
|
|
|
selectDetailsTab() {
|
|
let tabsPage = new TabsPage;
|
|
tabsPage.clickTabByTitle('Details');
|
|
return this;
|
|
}
|
|
|
|
addComment(comment) {
|
|
Util.waitUntilElementIsVisible(this.commentField);
|
|
this.commentField.sendKeys(comment);
|
|
this.addCommentButton.click();
|
|
return this;
|
|
}
|
|
|
|
clearComment(comment) {
|
|
Util.waitUntilElementIsVisible(this.commentField);
|
|
this.commentField.sendKeys(protractor.Key.ENTER);
|
|
return this;
|
|
}
|
|
|
|
checkCommentIsDisplayed(comment) {
|
|
let row = element(by.cssContainingText('div[id="comment-message"]', comment));
|
|
Util.waitUntilElementIsVisible(row);
|
|
return this;
|
|
}
|
|
|
|
clickInvolvePeopleButton() {
|
|
Util.waitUntilElementIsVisible(this.involvePeopleButton);
|
|
Util.waitUntilElementIsClickable(this.involvePeopleButton);
|
|
browser.actions().mouseMove(this.involvePeopleButton).perform();
|
|
this.involvePeopleButton.click();
|
|
return this;
|
|
}
|
|
|
|
typeUser(user) {
|
|
Util.waitUntilElementIsVisible(this.addPeopleField);
|
|
this.addPeopleField.sendKeys(user);
|
|
return this;
|
|
}
|
|
|
|
selectUserToInvolve(user) {
|
|
this.getRowsUser(user).click();
|
|
return this;
|
|
}
|
|
|
|
checkUserIsSelected(user) {
|
|
let row = element(by.cssContainingText('div[class*="search-list-container"] div[class*="people-full-name"]', user));
|
|
Util.waitUntilElementIsVisible(row);
|
|
return this;
|
|
}
|
|
|
|
clickAddInvolvedUserButton() {
|
|
Util.waitUntilElementIsVisible(this.addInvolvedUserButton);
|
|
Util.waitUntilElementIsClickable(this.addInvolvedUserButton);
|
|
this.addInvolvedUserButton.click();
|
|
return this;
|
|
}
|
|
|
|
getRowsUser(user) {
|
|
let row = element(by.cssContainingText('div[class*="people-full-name"]', user));
|
|
Util.waitUntilElementIsVisible(row);
|
|
return row;
|
|
}
|
|
|
|
removeInvolvedUser(user) {
|
|
let 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(this.removeInvolvedPeople);
|
|
return this.removeInvolvedPeople.click();
|
|
}
|
|
|
|
getInvolvedUserEmail(user) {
|
|
let email = this.getRowsUser(user).element(this.emailInvolvedUser);
|
|
Util.waitUntilElementIsVisible(email);
|
|
return email.getText();
|
|
}
|
|
|
|
getInvolvedUserEditAction(user) {
|
|
let edit = this.getRowsUser(user).element(this.editActionInvolvedUser);
|
|
Util.waitUntilElementIsVisible(edit);
|
|
return edit.getText();
|
|
}
|
|
|
|
clickAuditLogButton() {
|
|
Util.waitUntilElementIsVisible(this.auditLogButton);
|
|
this.auditLogButton.click();
|
|
}
|
|
|
|
appSettingsToggles() {
|
|
return this.appSettingsTogglesClass;
|
|
}
|
|
|
|
taskInfoDrawerIsDisplayed() {
|
|
Util.waitUntilElementIsVisible(this.taskDetailsInfoDrawer);
|
|
}
|
|
|
|
taskInfoDrawerIsNotDisplayed() {
|
|
Util.waitUntilElementIsNotOnPage(this.taskDetailsInfoDrawer);
|
|
}
|
|
|
|
checkNoPeopleIsInvolved() {
|
|
Util.waitUntilElementIsVisible(this.noPeopleInvolved);
|
|
return this;
|
|
}
|
|
|
|
clickCancelInvolvePeopleButton() {
|
|
Util.waitUntilElementIsVisible(this.cancelInvolvePeopleButton);
|
|
this.cancelInvolvePeopleButton.click();
|
|
return this;
|
|
}
|
|
|
|
getInvolvePeopleHeader() {
|
|
Util.waitUntilElementIsVisible(this.involvePeopleHeader);
|
|
return this.involvePeopleHeader.getText();
|
|
}
|
|
|
|
getInvolvePeoplePlaceholder() {
|
|
Util.waitUntilElementIsVisible(this.addPeopleField);
|
|
return this.addPeopleField.getAttribute('placeholder');
|
|
}
|
|
|
|
checkCancelButtonIsEnabled() {
|
|
Util.waitUntilElementIsVisible(this.cancelInvolvePeopleButton);
|
|
Util.waitUntilElementIsClickable(this.cancelInvolvePeopleButton);
|
|
return this;
|
|
}
|
|
|
|
checkAddPeopleButtonIsEnabled() {
|
|
Util.waitUntilElementIsVisible(this.addInvolvedUserButton);
|
|
Util.waitUntilElementIsClickable(this.addInvolvedUserButton);
|
|
return this;
|
|
}
|
|
|
|
noUserIsDisplayedInSearchInvolvePeople(user) {
|
|
Util.waitUntilElementIsNotOnPage(element(by.cssContainingText('div[class*="people-full-name"]', user)));
|
|
return this;
|
|
}
|
|
|
|
getInvolvedPeopleTitle() {
|
|
Util.waitUntilElementIsVisible(this.peopleTitle);
|
|
return this.peopleTitle.getText();
|
|
}
|
|
|
|
getInvolvedPeopleInitialImage(user) {
|
|
let pic = this.getRowsUser(user).element(this.involvedUserPic);
|
|
Util.waitUntilElementIsVisible(pic);
|
|
return pic.getText();
|
|
}
|
|
|
|
checkTaskDetails() {
|
|
Util.waitUntilElementIsVisible(this.taskDetailsSection);
|
|
return this.taskDetailsSection.getText();
|
|
}
|
|
|
|
checkTaskDetailsEmpty() {
|
|
Util.waitUntilElementIsVisible(this.taskDetailsEmptySection);
|
|
return this.taskDetailsEmptySection.getText();
|
|
}
|
|
|
|
checkTaskDetailsDisplayed() {
|
|
Util.waitUntilElementIsVisible(this.taskDetailsSection);
|
|
Util.waitUntilElementIsVisible(this.formNameField);
|
|
Util.waitUntilElementIsVisible(this.assigneeField);
|
|
Util.waitUntilElementIsVisible(this.statusField);
|
|
Util.waitUntilElementIsVisible(this.categoryField);
|
|
Util.waitUntilElementIsVisible(this.parentNameField);
|
|
Util.waitUntilElementIsVisible(this.createdField);
|
|
Util.waitUntilElementIsVisible(this.idField);
|
|
Util.waitUntilElementIsVisible(this.descriptionField);
|
|
Util.waitUntilElementIsVisible(this.dueDateField);
|
|
Util.waitUntilElementIsVisible(this.activitiesTitle);
|
|
|
|
return this.taskDetailsSection.getText();
|
|
}
|
|
|
|
clickCompleteTask() {
|
|
Util.waitUntilElementIsVisible(this.completeTask);
|
|
return this.completeTask.click();
|
|
}
|
|
|
|
checkCompleteFormButtonIsDisplayed() {
|
|
Util.waitUntilElementIsVisible(this.completeFormTask);
|
|
return this.completeFormTask;
|
|
}
|
|
|
|
checkCompleteTaskButtonIsEnabled() {
|
|
Util.waitUntilElementIsClickable(this.completeTask);
|
|
return this;
|
|
}
|
|
|
|
checkCompleteTaskButtonIsDisplayed() {
|
|
Util.waitUntilElementIsVisible(this.completeTask);
|
|
return this;
|
|
}
|
|
|
|
clickCompleteFormTask() {
|
|
Util.waitUntilElementIsClickable(this.completeFormTask);
|
|
return this.completeFormTask.click();
|
|
}
|
|
|
|
getEmptyTaskDetailsMessage() {
|
|
Util.waitUntilElementIsVisible(this.emptyTaskDetails);
|
|
return this.emptyTaskDetails.getText();
|
|
}
|
|
|
|
}
|