mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-12 17:04:57 +00:00
* increase timeout and modify login async * run e2e if testing is changed * improve cdk fix * fix travis update projects * disable ghostMode lite server * lint fix * fix timeout * multiple try * Update content-services-e2e.sh * Update search-e2e.sh * Update process-services-e2e.sh * Update core-e2e.sh * Update protractor.conf.ts * fix unit * remove async * increqase notification time * 3 parallel * dix path issue in save * small refactor protractor ts * fix save * create license check first script adf cli * modify regex check * refactor notification history component * decrease notification * fix notification message problem * fix test * update packages wit high risk * revert cahnge login sso e2e * fix dep * fix documentation duplication and issue * fix after review * fix after review * try 6 parallel test * back to 3 parallel test no real time improve with 6
373 lines
13 KiB
TypeScript
373 lines
13 KiB
TypeScript
/*!
|
|
* @license
|
|
* Copyright 2019 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 { element, by, browser } from 'protractor';
|
|
import { TabsPage } from '@alfresco/adf-testing';
|
|
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
|
|
|
|
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.all(by.css('span[data-automation-id*="endDate"] span')).first();
|
|
createdField = element(by.css('span[data-automation-id="card-dateitem-created"] span'));
|
|
idField = element.all(by.css('span[data-automation-id*="id"] span')).first();
|
|
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="adf-people-email"]');
|
|
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="adf-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="adf-search-text-header"]'));
|
|
removeInvolvedPeople = element(by.css('button[data-automation-id="Remove"]'));
|
|
peopleTitle = element(by.id('people-title'));
|
|
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() {
|
|
return BrowserActions.getText(this.taskDetailsTitle);
|
|
}
|
|
|
|
checkSelectedForm(formName) {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.attachFormName);
|
|
expect(formName).toEqual(this.attachFormName.getText());
|
|
}
|
|
|
|
checkAttachFormButtonIsDisabled() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.disabledAttachFormButton);
|
|
}
|
|
|
|
checkAttachFormButtonIsEnabled() {
|
|
BrowserVisibility.waitUntilElementIsClickable(this.attachFormButton);
|
|
}
|
|
|
|
checkAttachFormDropdownIsDisplayed() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.attachFormDropdown);
|
|
}
|
|
|
|
clickAttachFormDropdown() {
|
|
return BrowserActions.click(this.attachFormDropdown);
|
|
}
|
|
|
|
selectAttachFormOption(option) {
|
|
const selectedOption = element(by.cssContainingText('mat-option[role="option"]', option));
|
|
return BrowserActions.click(selectedOption);
|
|
}
|
|
|
|
checkCancelAttachFormIsDisplayed() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.cancelAttachForm);
|
|
}
|
|
|
|
noFormIsDisplayed() {
|
|
BrowserVisibility.waitUntilElementIsNotOnPage(this.formContent);
|
|
return this;
|
|
}
|
|
|
|
clickCancelAttachForm() {
|
|
return BrowserActions.click(this.cancelAttachForm);
|
|
}
|
|
|
|
checkRemoveAttachFormIsDisplayed() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.removeAttachForm);
|
|
}
|
|
|
|
clickRemoveAttachForm() {
|
|
return BrowserActions.click(this.removeAttachForm);
|
|
}
|
|
|
|
checkAttachFormButtonIsDisplayed() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.attachFormButton);
|
|
}
|
|
|
|
checkAttachFormButtonIsNotDisplayed() {
|
|
BrowserVisibility.waitUntilElementIsNotOnPage(this.attachFormButton);
|
|
}
|
|
|
|
clickAttachFormButton() {
|
|
return BrowserActions.click(this.attachFormButton);
|
|
}
|
|
|
|
checkFormIsAttached(formName) {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.formNameField);
|
|
this.formNameField.getText().then((attachedFormName) => {
|
|
expect(attachedFormName).toEqual(formName);
|
|
});
|
|
}
|
|
|
|
getFormName() {
|
|
return BrowserActions.getText(this.formNameField);
|
|
}
|
|
|
|
clickForm() {
|
|
BrowserActions.closeMenuAndDialogs();
|
|
BrowserActions.click(this.formNameField);
|
|
}
|
|
|
|
getAssignee() {
|
|
return BrowserActions.getText(this.assigneeField);
|
|
}
|
|
|
|
getStatus() {
|
|
return BrowserActions.getText(this.statusField);
|
|
}
|
|
|
|
getCategory() {
|
|
return BrowserActions.getText(this.categoryField);
|
|
}
|
|
|
|
getParentName() {
|
|
return BrowserActions.getText(this.parentNameField);
|
|
}
|
|
|
|
getParentTaskId() {
|
|
return BrowserActions.getText(this.parentTaskIdField);
|
|
}
|
|
|
|
getDuration() {
|
|
return BrowserActions.getText(this.durationField);
|
|
}
|
|
|
|
getEndDate() {
|
|
return BrowserActions.getText(this.endDateField);
|
|
}
|
|
|
|
getCreated() {
|
|
return BrowserActions.getText(this.createdField);
|
|
}
|
|
|
|
getId() {
|
|
return BrowserActions.getText(this.idField);
|
|
}
|
|
|
|
getDescription() {
|
|
return BrowserActions.getText(this.descriptionField);
|
|
}
|
|
|
|
getDueDate() {
|
|
return BrowserActions.getText(this.dueDateField);
|
|
}
|
|
|
|
getTitle() {
|
|
return BrowserActions.getText(this.activitiesTitle);
|
|
}
|
|
|
|
selectActivityTab() {
|
|
const tabsPage = new TabsPage;
|
|
tabsPage.clickTabByTitle('Activity');
|
|
return this;
|
|
}
|
|
|
|
selectDetailsTab() {
|
|
const tabsPage = new TabsPage;
|
|
tabsPage.clickTabByTitle('Details');
|
|
return this;
|
|
}
|
|
|
|
addComment(comment) {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.commentField);
|
|
this.commentField.sendKeys(comment);
|
|
BrowserActions.click(this.addCommentButton);
|
|
return this;
|
|
}
|
|
|
|
checkCommentIsDisplayed(comment) {
|
|
const row = element(by.cssContainingText('div[id="comment-message"]', comment));
|
|
BrowserVisibility.waitUntilElementIsVisible(row);
|
|
return this;
|
|
}
|
|
|
|
clickInvolvePeopleButton() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.involvePeopleButton);
|
|
BrowserVisibility.waitUntilElementIsClickable(this.involvePeopleButton);
|
|
browser.actions().mouseMove(this.involvePeopleButton).perform();
|
|
BrowserActions.click(this.involvePeopleButton);
|
|
return this;
|
|
}
|
|
|
|
typeUser(user) {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.addPeopleField);
|
|
this.addPeopleField.sendKeys(user);
|
|
return this;
|
|
}
|
|
|
|
selectUserToInvolve(user) {
|
|
this.getRowsUser(user).click();
|
|
return this;
|
|
}
|
|
|
|
checkUserIsSelected(user) {
|
|
const row = element(by.cssContainingText('div[class*="search-list-container"] div[class*="people-full-name"]', user));
|
|
BrowserVisibility.waitUntilElementIsVisible(row);
|
|
return this;
|
|
}
|
|
|
|
clickAddInvolvedUserButton() {
|
|
BrowserActions.click(this.addInvolvedUserButton);
|
|
return this;
|
|
}
|
|
|
|
getRowsUser(user) {
|
|
const row = element(by.cssContainingText('div[class*="people-full-name"]', user));
|
|
BrowserVisibility.waitUntilElementIsVisible(row);
|
|
return row;
|
|
}
|
|
|
|
removeInvolvedUser(user) {
|
|
const row = this.getRowsUser(user).element(by.xpath('ancestor::div[contains(@class, "adf-datatable-row")]'));
|
|
BrowserVisibility.waitUntilElementIsVisible(row);
|
|
row.element(by.css('button[data-automation-id="action_menu_0"]')).click();
|
|
BrowserVisibility.waitUntilElementIsVisible(this.removeInvolvedPeople);
|
|
return BrowserActions.click(this.removeInvolvedPeople);
|
|
|
|
}
|
|
|
|
getInvolvedUserEmail(user) {
|
|
const email = this.getRowsUser(user).element(this.emailInvolvedUser);
|
|
return BrowserActions.getText(email);
|
|
}
|
|
|
|
clickAuditLogButton() {
|
|
BrowserActions.click(this.auditLogButton);
|
|
}
|
|
|
|
appSettingsToggles() {
|
|
return this.appSettingsTogglesClass;
|
|
}
|
|
|
|
taskInfoDrawerIsDisplayed() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.taskDetailsInfoDrawer);
|
|
}
|
|
|
|
taskInfoDrawerIsNotDisplayed() {
|
|
BrowserVisibility.waitUntilElementIsNotOnPage(this.taskDetailsInfoDrawer);
|
|
}
|
|
|
|
checkNoPeopleIsInvolved() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.noPeopleInvolved);
|
|
return this;
|
|
}
|
|
|
|
clickCancelInvolvePeopleButton() {
|
|
BrowserActions.click(this.cancelInvolvePeopleButton);
|
|
return this;
|
|
}
|
|
|
|
getInvolvePeopleHeader() {
|
|
return BrowserActions.getText(this.involvePeopleHeader);
|
|
}
|
|
|
|
getInvolvePeoplePlaceholder() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.addPeopleField);
|
|
return this.addPeopleField.getAttribute('placeholder');
|
|
}
|
|
|
|
checkCancelButtonIsEnabled() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.cancelInvolvePeopleButton);
|
|
BrowserVisibility.waitUntilElementIsClickable(this.cancelInvolvePeopleButton);
|
|
return this;
|
|
}
|
|
|
|
checkAddPeopleButtonIsEnabled() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.addInvolvedUserButton);
|
|
BrowserVisibility.waitUntilElementIsClickable(this.addInvolvedUserButton);
|
|
return this;
|
|
}
|
|
|
|
noUserIsDisplayedInSearchInvolvePeople(user) {
|
|
BrowserVisibility.waitUntilElementIsNotOnPage(element(by.cssContainingText('div[class*="people-full-name"]', user)));
|
|
return this;
|
|
}
|
|
|
|
getInvolvedPeopleTitle() {
|
|
return BrowserActions.getText(this.peopleTitle);
|
|
}
|
|
|
|
checkTaskDetailsEmpty() {
|
|
return BrowserActions.getText(this.taskDetailsEmptySection);
|
|
}
|
|
|
|
checkTaskDetailsDisplayed() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.taskDetailsSection);
|
|
BrowserVisibility.waitUntilElementIsVisible(this.formNameField);
|
|
BrowserVisibility.waitUntilElementIsVisible(this.assigneeField);
|
|
BrowserVisibility.waitUntilElementIsVisible(this.statusField);
|
|
BrowserVisibility.waitUntilElementIsVisible(this.categoryField);
|
|
BrowserVisibility.waitUntilElementIsVisible(this.parentNameField);
|
|
BrowserVisibility.waitUntilElementIsVisible(this.createdField);
|
|
BrowserVisibility.waitUntilElementIsVisible(this.idField);
|
|
BrowserVisibility.waitUntilElementIsVisible(this.descriptionField);
|
|
BrowserVisibility.waitUntilElementIsVisible(this.dueDateField);
|
|
BrowserVisibility.waitUntilElementIsVisible(this.activitiesTitle);
|
|
|
|
return BrowserActions.getText(this.taskDetailsSection);
|
|
}
|
|
|
|
clickCompleteTask() {
|
|
return BrowserActions.click(this.completeTask);
|
|
}
|
|
|
|
checkCompleteFormButtonIsDisplayed() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.completeFormTask);
|
|
return this.completeFormTask;
|
|
}
|
|
|
|
checkCompleteTaskButtonIsEnabled() {
|
|
BrowserVisibility.waitUntilElementIsClickable(this.completeTask);
|
|
return this;
|
|
}
|
|
|
|
checkCompleteTaskButtonIsDisplayed() {
|
|
BrowserVisibility.waitUntilElementIsVisible(this.completeTask);
|
|
return this;
|
|
}
|
|
|
|
clickCompleteFormTask() {
|
|
return BrowserActions.click(this.completeFormTask);
|
|
}
|
|
|
|
getEmptyTaskDetailsMessage() {
|
|
return BrowserActions.getText(this.emptyTaskDetails);
|
|
}
|
|
|
|
}
|