diff --git a/e2e/core/viewer/viewer_properties.e2e.ts b/e2e/core/viewer/viewer_properties.e2e.ts index f303308e53..5d0d0cc3a1 100644 --- a/e2e/core/viewer/viewer_properties.e2e.ts +++ b/e2e/core/viewer/viewer_properties.e2e.ts @@ -163,18 +163,22 @@ describe('Viewer - properties', () => { it('[C260089] Should Show/Hide info-drawer if allowSidebar true/false', () => { viewerPage.clickInfoButton(); - viewerPage.checkLeftSideBarIsDisplayed(); viewerPage.checkInfoSideBarIsDisplayed(); - viewerPage.checkInfoButtonIsDisplayed(); - viewerPage.checkLeftSideBarButtonIsDisplayed(); viewerPage.disableAllowSidebar(); viewerPage.checkInfoButtonIsNotDisplayed(); - viewerPage.checkLeftSideBarButtonIsNotDisplayed(); - - viewerPage.checkLeftSideBarIsNotDisplayed(); viewerPage.checkInfoSideBarIsNotDisplayed(); }); + + it('[C286596] Should Show/Hide left info-drawer if allowLeftSidebar true/false', () => { + viewerPage.checkLeftSideBarIsDisplayed(); + viewerPage.checkLeftSideBarButtonIsDisplayed(); + + viewerPage.disableAllowLeftSidebar(); + + viewerPage.checkLeftSideBarButtonIsNotDisplayed(); + viewerPage.checkLeftSideBarIsNotDisplayed(); + }); }); diff --git a/e2e/pages/adf/process_services/dialog/appSettingsToggles.js b/e2e/pages/adf/process_services/dialog/appSettingsToggles.js deleted file mode 100644 index 5f1cfe46e3..0000000000 --- a/e2e/pages/adf/process_services/dialog/appSettingsToggles.js +++ /dev/null @@ -1,61 +0,0 @@ -/*! - * @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 FormControllersPage = require('../../material/formControllersPage'); - -var AppSettingsToggles = function () { - - var formControllersPage = new FormControllersPage(); - - var showDetailsHeaderToggle = element(by.id('adf-show-header')); - var showTaskFilterIconsToggle = element(by.id('adf-show-task-filter-icon')); - var showProcessFilterIconsToggle = element(by.id('adf-show-process-filter-icon')); - - this.enableShowHeader = function () { - formControllersPage.enableToggle(showDetailsHeaderToggle); - return this; - }; - - this.disableShowHeader = function () { - formControllersPage.disableToggle(showDetailsHeaderToggle); - return this; - }; - - this.enableTaskFiltersIcon = function () { - formControllersPage.enableToggle(showTaskFilterIconsToggle); - return this; - }; - - this.disableTaskFiltersIcon = function () { - formControllersPage.disableToggle(showTaskFilterIconsToggle); - return this; - }; - - this.enableProcessFiltersIcon = function () { - formControllersPage.enableToggle(showProcessFilterIconsToggle); - return this; - }; - - this.disableProcessFiltersIcon = function () { - formControllersPage.disableToggle(showProcessFilterIconsToggle); - return this; - }; - -}; -module.exports = AppSettingsToggles; - - diff --git a/e2e/pages/adf/process_services/dialog/appSettingsToggles.ts b/e2e/pages/adf/process_services/dialog/appSettingsToggles.ts new file mode 100644 index 0000000000..282572af87 --- /dev/null +++ b/e2e/pages/adf/process_services/dialog/appSettingsToggles.ts @@ -0,0 +1,58 @@ +/*! + * @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 { FormControllersPage } from '../../material/formControllersPage'; + +export class AppSettingsToggles { + + formControllersPage = new FormControllersPage(); + + showDetailsHeaderToggle = element(by.id('adf-show-header')); + showTaskFilterIconsToggle = element(by.id('adf-show-task-filter-icon')); + showProcessFilterIconsToggle = element(by.id('adf-show-process-filter-icon')); + + enableShowHeader() { + this.formControllersPage.enableToggle(this.showDetailsHeaderToggle); + return this; + } + + disableShowHeader() { + this.formControllersPage.disableToggle(this.showDetailsHeaderToggle); + return this; + } + + enableTaskFiltersIcon() { + this.formControllersPage.enableToggle(this.showTaskFilterIconsToggle); + return this; + } + + disableTaskFiltersIcon() { + this.formControllersPage.disableToggle(this.showTaskFilterIconsToggle); + return this; + } + + enableProcessFiltersIcon() { + this.formControllersPage.enableToggle(this.showProcessFilterIconsToggle); + return this; + } + + disableProcessFiltersIcon() { + this.formControllersPage.disableToggle(this.showProcessFilterIconsToggle); + return this; + } + +} diff --git a/e2e/pages/adf/process_services/taskDetailsPage.js b/e2e/pages/adf/process_services/taskDetailsPage.js deleted file mode 100644 index 9aa715fca5..0000000000 --- a/e2e/pages/adf/process_services/taskDetailsPage.js +++ /dev/null @@ -1,388 +0,0 @@ -/*! - * @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 AppSettingsToggles = require('./dialog/appSettingsToggles'); - -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 tadkDetailsInfoDrawer = element(by.tagName("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 taskDetailsTitle = element(by.css('h2[class="activiti-task-details__header"] span')); - 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.getTaskDetailsTitle = function () { - Util.waitUntilElementIsVisible(taskDetailsTitle); - return taskDetailsTitle.getText(); - }; - - 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.appSettingsToggles = function () { - return new AppSettingsToggles(); - }; - - this.taskInfoDrawerIsDisplayed = function () { - Util.waitUntilElementIsVisible(tadkDetailsInfoDrawer); - }; - - this.taskInfoDrawerIsNotDisplayed = function () { - Util.waitUntilElementIsNotOnPage(tadkDetailsInfoDrawer); - }; - - 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; diff --git a/e2e/pages/adf/process_services/taskDetailsPage.ts b/e2e/pages/adf/process_services/taskDetailsPage.ts new file mode 100644 index 0000000000..c59718bd11 --- /dev/null +++ b/e2e/pages/adf/process_services/taskDetailsPage.ts @@ -0,0 +1,386 @@ +/*! + * @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'); + +export class TaskDetailsPage { + + appSettingsToggles = new AppSettingsToggles(); + 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')); + 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"]')); + activityTab = element(by.cssContainingText('div[class*="mat-tab-label"]', 'Activity')); + detailsTab = element(by.cssContainingText('div[class*="mat-tab-label""]', 'Details')); + 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"]'); + tadkDetailsInfoDrawer = 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"]')); + 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"]')); + + 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); + } + + 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); + } + + 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(); + } + + 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() { + Util.waitUntilElementIsVisible(this.activityTab); + activityTab.getAttribute('aria-selected').then((check) => { + if (check === 'false') { + this.activityTab.click(); + expect(this.activityTab.getAttribute('aria-selected') === 'true'); + } + }); + return this; + } + + selectDetailsTab() { + Util.waitUntilElementIsVisible(this.detailsTab); + detailsTab.getAttribute('aria-selected').then((check) => { + if (check === 'false') { + this.detailsTab.click(); + expect(this.detailsTab.getAttribute('aria-selected') === 'true'); + } + }); + 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)); + let selectedRow = this.getRowsUser(user).element(by.css('ancestor::tr[class*="is-selected"]')); + 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(emailInvolvedUser); + Util.waitUntilElementIsVisible(email); + return email.getText(); + } + + getInvolvedUserEditAction(user) { + let edit = this.getRowsUser(user).element(editActionInvolvedUser); + Util.waitUntilElementIsVisible(edit); + return edit.getText(); + } + + clickAuditLogButton() { + Util.waitUntilElementIsVisible(this.auditLogButton); + this.auditLogButton.click(); + } + + appSettingsToggles() { + return this.appSettingsToggles; + } + + taskInfoDrawerIsDisplayed() { + Util.waitUntilElementIsVisible(this.tadkDetailsInfoDrawer); + } + + taskInfoDrawerIsNotDisplayed() { + Util.waitUntilElementIsNotOnPage(this.tadkDetailsInfoDrawer); + } + + 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(); + } + +} diff --git a/e2e/pages/adf/viewerPage.ts b/e2e/pages/adf/viewerPage.ts index bdf3b6ba62..835a127d95 100644 --- a/e2e/pages/adf/viewerPage.ts +++ b/e2e/pages/adf/viewerPage.ts @@ -89,6 +89,7 @@ export class ViewerPage { printButton = element(by.id('adf-viewer-print')); allowSidebarSwitch = element(by.id('adf-switch-allowsidebar')); + allowLeftSidebarSwitch = element(by.id('adf-switch-allowLeftSidebar')); shareSwitch = element(by.id('adf-switch-share')); shareButton = element(by.id('adf-viewer-share')); @@ -628,6 +629,14 @@ export class ViewerPage { this.formControllersPage.enableToggle(this.allowSidebarSwitch); } + disableAllowLeftSidebar() { + this.formControllersPage.disableToggle(this.allowLeftSidebarSwitch); + } + + enableAllowLeftSidebar() { + this.formControllersPage.enableToggle(this.allowLeftSidebarSwitch); + } + checkShareButtonDisplayed() { Util.waitUntilElementIsVisible(this.shareButton); return this; diff --git a/e2e/process-services/task_details_form.e2e.ts b/e2e/process-services/task_details_form.e2e.ts index bc2dbee2f3..a05711d1ca 100644 --- a/e2e/process-services/task_details_form.e2e.ts +++ b/e2e/process-services/task_details_form.e2e.ts @@ -21,7 +21,8 @@ import Util = require('../util/util'); import LoginPage = require('../pages/adf/loginPage'); import ProcessServicesPage = require('../pages/adf/process_services/processServicesPage'); import TasksListPage = require('../pages/adf/process_services/tasksListPage'); -import TaskDetailsPage = require('../pages/adf/process_services/taskDetailsPage'); +import { TaskDetailsPage } from '../pages/adf/process_services/taskDetailsPage'; + import FiltersPage = require('../pages/adf/process_services/filtersPage'); import TaskModel = require('../models/APS/StandaloneTask'); diff --git a/e2e/process-services/task_filters_component.e2e.ts b/e2e/process-services/task_filters_component.e2e.ts index 6f2bcbe129..49fc6ad2e2 100644 --- a/e2e/process-services/task_filters_component.e2e.ts +++ b/e2e/process-services/task_filters_component.e2e.ts @@ -24,9 +24,9 @@ import ProcessServicesPage = require('../pages/adf/process_services/processServi import TasksPage = require('../pages/adf/process_services/tasksPage'); import TasksListPage = require('../pages/adf/process_services/tasksListPage'); import TaskFiltersPage = require('../pages/adf/process_services/taskFiltersPage'); -import TaskDetailsPage = require('../pages/adf/process_services/taskDetailsPage'); +import { TaskDetailsPage } from '../pages/adf/process_services/taskDetailsPage'; import AppNavigationBarPage = require('../pages/adf/process_services/appNavigationBarPage'); -import AppSettingsToggles = require('../pages/adf/process_services/dialog/appSettingsToggles'); +import { AppSettingsToggles } from '../pages/adf/process_services/dialog/appSettingsToggles'; import AlfrescoApi = require('alfresco-js-api-node'); import { AppsActions } from '../actions/APS/apps.actions'; diff --git a/e2e/process-services/task_filters_sorting.e2e.ts b/e2e/process-services/task_filters_sorting.e2e.ts index 0b2f8f3451..852de1c7ce 100644 --- a/e2e/process-services/task_filters_sorting.e2e.ts +++ b/e2e/process-services/task_filters_sorting.e2e.ts @@ -23,7 +23,7 @@ import ProcessServicesPage = require('../pages/adf/process_services/processServi import TasksPage = require('../pages/adf/process_services/tasksPage'); import TasksListPage = require('../pages/adf/process_services/tasksListPage'); import TaskFiltersPage = require('../pages/adf/process_services/taskFiltersPage'); -import TaskDetailsPage = require('../pages/adf/process_services/taskDetailsPage'); +import { TaskDetailsPage } from '../pages/adf/process_services/taskDetailsPage'; import AlfrescoApi = require('alfresco-js-api-node'); import { AppsActions } from '../actions/APS/apps.actions';