[no-issue] Parallel run e2e and e2e common action refactoring (#4702)

This commit is contained in:
Eugenio Romano
2019-05-13 04:44:35 +02:00
committed by GitHub
parent a48bfc3714
commit 898e3b5a80
288 changed files with 8703 additions and 5129 deletions
+27 -68
View File
@@ -16,7 +16,8 @@
*/
import { by, element } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
import { ElementFinder } from 'protractor/built/element';
export class CardViewComponentPage {
@@ -33,134 +34,111 @@ export class CardViewComponentPage {
select = element(by.css('mat-select[data-automation-class="select-box"]'));
checkbox = element(by.css(`mat-checkbox[data-automation-id='card-boolean-boolean']`));
resetButton = element(by.css(`#adf-reset-card-log`));
selectedValue = element(by.css('.mat-select-value-text span'));
listContent = element(by.css('.mat-select-panel'));
editableSwitch = element(by.id('adf-toggle-editable'));
clickOnAddButton() {
BrowserVisibility.waitUntilElementIsVisible(this.addButton);
this.addButton.click();
BrowserActions.click(this.addButton);
return this;
}
clickOnResetButton() {
BrowserVisibility.waitUntilElementIsVisible(this.resetButton);
this.resetButton.click();
BrowserActions.click(this.resetButton);
return this;
}
clickOnTextField() {
const toggleText = element(by.css(`div[data-automation-id='card-textitem-edit-toggle-name']`));
BrowserVisibility.waitUntilElementIsVisible(toggleText);
toggleText.click();
BrowserActions.click(toggleText);
BrowserVisibility.waitUntilElementIsVisible(this.textField);
return this;
}
clickOnTextClearIcon() {
const clearIcon = element(by.css(`mat-icon[data-automation-id="card-textitem-reset-name"]`));
BrowserVisibility.waitUntilElementIsVisible(clearIcon);
return clearIcon.click();
BrowserActions.click(clearIcon);
}
clickOnTextSaveIcon() {
const saveIcon = element(by.css(`mat-icon[data-automation-id="card-textitem-update-name"]`));
BrowserVisibility.waitUntilElementIsVisible(saveIcon);
return saveIcon.click();
BrowserActions.click(saveIcon);
}
getTextFieldText() {
const textField = element(by.css(`span[data-automation-id="card-textitem-value-name"]`));
BrowserVisibility.waitUntilElementIsVisible(textField);
return textField.getText();
return BrowserActions.getText(textField);
}
enterTextField(text) {
BrowserVisibility.waitUntilElementIsVisible(this.textField);
this.textField.sendKeys('');
this.textField.clear();
this.textField.sendKeys(text);
BrowserActions.clearSendKeys(this.textField, text);
return this;
}
clickOnIntField() {
const toggleText = element(by.css('div[data-automation-id="card-textitem-edit-toggle-int"]'));
BrowserVisibility.waitUntilElementIsVisible(toggleText);
toggleText.click();
BrowserActions.click(toggleText);
BrowserVisibility.waitUntilElementIsVisible(this.intField);
return this;
}
clickOnIntClearIcon() {
const clearIcon = element(by.css('mat-icon[data-automation-id="card-textitem-reset-int"]'));
BrowserVisibility.waitUntilElementIsVisible(clearIcon);
return clearIcon.click();
BrowserActions.click(clearIcon);
}
clickOnIntSaveIcon() {
const saveIcon = element(by.css('mat-icon[data-automation-id="card-textitem-update-int"]'));
BrowserVisibility.waitUntilElementIsVisible(saveIcon);
return saveIcon.click();
BrowserActions.click(saveIcon);
}
enterIntField(text) {
BrowserVisibility.waitUntilElementIsVisible(this.intField);
this.intField.sendKeys('');
this.intField.clear();
this.intField.sendKeys(text);
BrowserActions.clearSendKeys(this.intField, text);
return this;
}
getIntFieldText() {
const textField = element(by.css('span[data-automation-id="card-textitem-value-int"]'));
BrowserVisibility.waitUntilElementIsVisible(textField);
return textField.getText();
return BrowserActions.getText(textField);
}
getErrorInt() {
const errorElement = element(by.css('mat-error[data-automation-id="card-textitem-error-int"]'));
BrowserVisibility.waitUntilElementIsVisible(errorElement);
return errorElement.getText();
return BrowserActions.getText(errorElement);
}
clickOnFloatField() {
const toggleText = element(by.css('div[data-automation-id="card-textitem-edit-toggle-float"]'));
BrowserVisibility.waitUntilElementIsVisible(toggleText);
toggleText.click();
BrowserActions.click(toggleText);
BrowserVisibility.waitUntilElementIsVisible(this.floatField);
return this;
}
clickOnFloatClearIcon() {
const clearIcon = element(by.css(`mat-icon[data-automation-id="card-textitem-reset-float"]`));
BrowserVisibility.waitUntilElementIsVisible(clearIcon);
return clearIcon.click();
BrowserActions.click(clearIcon);
}
clickOnFloatSaveIcon() {
const saveIcon = element(by.css(`mat-icon[data-automation-id="card-textitem-update-float"]`));
BrowserVisibility.waitUntilElementIsVisible(saveIcon);
return saveIcon.click();
BrowserActions.click(saveIcon);
}
enterFloatField(text) {
BrowserVisibility.waitUntilElementIsVisible(this.floatField);
this.floatField.sendKeys('');
this.floatField.clear();
this.floatField.sendKeys(text);
BrowserActions.clearSendKeys(this.floatField, text);
return this;
}
getFloatFieldText() {
const textField = element(by.css('span[data-automation-id="card-textitem-value-float"]'));
BrowserVisibility.waitUntilElementIsVisible(textField);
return textField.getText();
return BrowserActions.getText(textField);
}
getErrorFloat() {
const errorElement = element(by.css('mat-error[data-automation-id="card-textitem-error-float"]'));
BrowserVisibility.waitUntilElementIsVisible(errorElement);
return errorElement.getText();
return BrowserActions.getText(errorElement);
}
setName(name) {
@@ -181,48 +159,29 @@ export class CardViewComponentPage {
}
getOutputText(index) {
return this.consoleLog.all(by.css('p')).get(index).getText();
return BrowserActions.getText(this.consoleLog.all(by.css('p')).get(index));
}
deletePairsValues() {
BrowserVisibility.waitUntilElementIsVisible(this.deleteButton);
this.deleteButton.click();
BrowserActions.click(this.deleteButton);
return this;
}
checkNameAndValueVisibility(index) {
BrowserVisibility.waitUntilElementIsNotOnPage(this.getKeyValueRow(index));
return this;
}
getKeyValueRow(index) {
return element.all(by.css(this.keyValueRow)).get(index);
}
getMatSelectValue(index) {
return element.all(by.className(this.selectValue)).get(index);
}
clickSelectBox() {
this.select.click();
BrowserActions.click(this.select);
BrowserVisibility.waitUntilElementIsVisible(this.listContent);
}
checkboxClick() {
this.checkbox.click();
BrowserActions.click(this.checkbox);
}
selectValueFromComboBox(index) {
const value = this.getMatSelectValue(index).click();
BrowserVisibility.waitUntilElementIsVisible(value);
const value: ElementFinder = element.all(by.className(this.selectValue)).get(index);
BrowserActions.click(value);
return this;
}
getSelectionValue() {
return this.selectedValue.getText();
}
disableEdit() {
BrowserVisibility.waitUntilElementIsVisible(this.editableSwitch);
+8 -11
View File
@@ -18,7 +18,7 @@
import { element, by } from 'protractor';
import { TabsPage } from '@alfresco/adf-testing';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class CommentsPage {
@@ -32,28 +32,25 @@ export class CommentsPage {
addCommentButton = element(by.css("[data-automation-id='comments-input-add']"));
getTotalNumberOfComments() {
BrowserVisibility.waitUntilElementIsVisible(this.numberOfComments);
return this.numberOfComments.getText();
return BrowserActions.getText(this.numberOfComments);
}
checkUserIconIsDisplayed(position) {
BrowserVisibility.waitUntilElementIsVisible(this.commentUserIcon);
BrowserVisibility.waitUntilElementIsVisible(this.commentUserIcon.first());
return this.commentUserIcon.get(position);
}
getUserName(position) {
BrowserVisibility.waitUntilElementIsVisible(this.commentUserName);
return this.commentUserName.get(position).getText();
return BrowserActions.getText(this.commentUserName.get(position));
}
getMessage(position) {
BrowserVisibility.waitUntilElementIsVisible(this.commentMessage);
return this.commentMessage.get(position).getText();
return BrowserActions.getText(this.commentMessage.get(position));
}
getTime(position) {
BrowserVisibility.waitUntilElementIsVisible(this.commentTime);
return this.commentTime.get(position).getText();
return BrowserActions.getText(this.commentTime.get(position));
}
checkCommentInputIsNotDisplayed() {
@@ -63,7 +60,7 @@ export class CommentsPage {
addComment(comment) {
BrowserVisibility.waitUntilElementIsVisible(this.commentInput);
this.commentInput.sendKeys(comment);
return this.addCommentButton.click();
BrowserActions.click(this.addCommentButton);
}
checkCommentsTabIsSelected() {
+4 -65
View File
@@ -15,8 +15,8 @@
* limitations under the License.
*/
import { element, by, browser } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { element, by } from 'protractor';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class ConfigEditorPage {
@@ -27,74 +27,13 @@ export class ConfigEditorPage {
return this;
}
enterBigConfigurationText(text) {
const textField = element(by.css('#adf-code-configuration-editor div.overflow-guard > textarea'));
BrowserVisibility.waitUntilElementIsVisible(textField);
browser.executeScript('this.monaco.editor.getModels()[0].setValue(`' + text + '`)');
return this;
}
clickSaveButton() {
const saveButton = element(by.id('adf-configuration-save'));
BrowserVisibility.waitUntilElementIsVisible(saveButton);
BrowserVisibility.waitUntilElementIsClickable(saveButton);
return saveButton.click();
BrowserActions.click(saveButton);
}
clickClearButton() {
const clearButton = element(by.id('adf-configuration-clear'));
BrowserVisibility.waitUntilElementIsVisible(clearButton);
BrowserVisibility.waitUntilElementIsClickable(clearButton);
return clearButton.click();
}
clickFileConfiguration() {
const button = element(by.id('adf-file-conf'));
BrowserVisibility.waitUntilElementIsVisible(button);
BrowserVisibility.waitUntilElementIsClickable(button);
return button.click();
}
clickSearchConfiguration() {
const button = element(by.id('adf-search-conf'));
BrowserVisibility.waitUntilElementIsVisible(button);
BrowserVisibility.waitUntilElementIsClickable(button);
return button.click();
}
clickProcessListCloudConfiguration() {
const button = element(by.id('adf-process-list-cloud-conf'));
BrowserVisibility.waitUntilElementIsVisible(button);
BrowserVisibility.waitUntilElementIsClickable(button);
return button.click();
}
clickEditProcessCloudConfiguration() {
const button = element(by.id('adf-edit-process-filter-conf'));
BrowserVisibility.waitUntilElementIsVisible(button);
BrowserVisibility.waitUntilElementIsClickable(button);
return button.click();
}
clickEditTaskConfiguration() {
const button = element(by.id('adf-edit-task-filter-conf'));
BrowserVisibility.waitUntilElementIsVisible(button);
BrowserVisibility.waitUntilElementIsClickable(button);
return button.click();
}
clickTaskListCloudConfiguration() {
const button = element(by.id('adf-task-list-cloud-conf'));
BrowserVisibility.waitUntilElementIsVisible(button);
BrowserVisibility.waitUntilElementIsClickable(button);
return button.click();
}
clickInfinitePaginationConfiguration() {
const button = element(by.id('adf-infinite-pagination-conf'));
BrowserVisibility.waitUntilElementIsVisible(button);
BrowserVisibility.waitUntilElementIsClickable(button);
return button.click();
BrowserActions.click(clearButton);
}
}
@@ -16,7 +16,7 @@
*/
import { element, by } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class BreadCrumbDropdownPage {
@@ -27,13 +27,12 @@ export class BreadCrumbDropdownPage {
choosePath(pathName) {
const path = this.breadCrumbDropdown.element(by.cssContainingText(`mat-option[data-automation-class='dropdown-breadcrumb-path-option'] span[class='mat-option-text']`,
pathName));
BrowserVisibility.waitUntilElementIsVisible(path);
return path.click();
BrowserActions.click(path);
}
clickParentFolder() {
BrowserVisibility.waitUntilElementIsVisible(this.parentFolder);
return this.parentFolder.click();
BrowserActions.click(this.parentFolder);
}
checkBreadCrumbDropdownIsDisplayed() {
@@ -16,7 +16,7 @@
*/
import { element, by } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserActions } from '@alfresco/adf-testing';
export class BreadCrumbPage {
@@ -24,9 +24,7 @@ export class BreadCrumbPage {
chooseBreadCrumb(breadCrumbItem) {
const path = this.breadCrumb.element(by.css(`a[data-automation-id='breadcrumb_${breadCrumbItem}']`));
BrowserVisibility.waitUntilElementIsVisible(path);
return path.click();
BrowserActions.click(path);
}
}
@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { by, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class NumberRangeFilterPage {
@@ -32,6 +32,7 @@ export class NumberRangeFilterPage {
constructor(filter) {
this.filter = filter;
}
clearFromField() {
BrowserVisibility.waitUntilElementIsClickable(this.filter.element(this.fromInput));
this.filter.element(this.fromInput).getAttribute('value').then((value) => {
@@ -41,9 +42,11 @@ export class NumberRangeFilterPage {
});
return this;
}
getFromNumber() {
return this.filter.element(this.fromInput).getAttribute('value');
}
putFromNumber(value) {
this.checkFromFieldIsDisplayed();
this.filter.element(this.fromInput).clear();
@@ -51,26 +54,33 @@ export class NumberRangeFilterPage {
this.filter.element(this.fromInput).sendKeys(protractor.Key.ENTER);
return this;
}
getFromErrorRequired() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromErrorRequired));
return this.filter.element(this.fromErrorRequired).getText();
return BrowserActions.getText(this.filter.element(this.fromErrorRequired));
}
checkFromErrorRequiredIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromErrorRequired));
return this;
}
getFromErrorInvalid() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromErrorInvalid));
return this.filter.element(this.fromErrorInvalid).getText();
return BrowserActions.getText(this.filter.element(this.fromErrorInvalid));
}
checkFromErrorInvalidIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromErrorInvalid));
return this;
}
checkFromFieldIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.fromInput));
return this;
}
clearToField() {
BrowserVisibility.waitUntilElementIsClickable(this.filter.element(this.toInput));
this.filter.element(this.toInput).getAttribute('value').then((value) => {
@@ -80,9 +90,11 @@ export class NumberRangeFilterPage {
});
return this;
}
getToNumber() {
return this.filter.element(this.toInput).getAttribute('value');
}
putToNumber(value) {
this.checkToFieldIsDisplayed();
this.filter.element(this.toInput).clear();
@@ -90,47 +102,58 @@ export class NumberRangeFilterPage {
this.filter.element(this.toInput).sendKeys(protractor.Key.ENTER);
return this;
}
getToErrorRequired() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toErrorRequired));
return this.filter.element(this.toErrorRequired).getText();
return BrowserActions.getText(this.filter.element(this.toErrorRequired));
}
checkToErrorRequiredIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toErrorRequired));
return this;
}
getToErrorInvalid() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toErrorInvalid));
return this.filter.element(this.toErrorInvalid).getText();
return BrowserActions.getText(this.filter.element(this.toErrorInvalid));
}
checkToErrorInvalidIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toErrorInvalid));
return this;
}
checkToFieldIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.toInput));
return this;
}
clickApplyButton() {
BrowserVisibility.waitUntilElementIsClickable(this.filter.element(this.applyButton));
this.filter.element(this.applyButton).click();
return this;
}
checkApplyButtonIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.applyButton));
return this;
}
checkApplyButtonIsEnabled() {
return this.filter.element(this.applyButton).isEnabled();
}
clickClearButton() {
BrowserVisibility.waitUntilElementIsClickable(this.filter.element(this.clearButton));
this.filter.element(this.clearButton).click();
return this;
}
checkClearButtonIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.clearButton));
return this;
}
checkNoErrorMessageIsDisplayed() {
BrowserVisibility.waitUntilElementIsNotVisible(this.filter.element(this.fromErrorInvalid));
BrowserVisibility.waitUntilElementIsNotVisible(this.filter.element(this.fromErrorRequired));
@@ -16,7 +16,7 @@
*/
import { element, by, ElementFinder } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class SearchCheckListPage {
@@ -33,9 +33,7 @@ export class SearchCheckListPage {
clickCheckListOption(option) {
BrowserVisibility.waitUntilElementIsVisible(this.filter);
const result = this.filter.all(by.css(`mat-checkbox[data-automation-id*='${option}'] .mat-checkbox-inner-container`)).first();
BrowserVisibility.waitUntilElementIsVisible(result);
BrowserVisibility.waitUntilElementIsClickable(result);
result.click();
BrowserActions.click(result);
}
checkChipIsDisplayed(option) {
@@ -50,8 +48,7 @@ export class SearchCheckListPage {
removeFilterOption(option) {
const cancelChipButton = element(by.cssContainingText('mat-chip', option)).element(by.css('mat-icon'));
BrowserVisibility.waitUntilElementIsClickable(cancelChipButton);
cancelChipButton.click();
BrowserActions.click(cancelChipButton);
return this;
}
@@ -161,7 +158,8 @@ export class SearchCheckListPage {
BrowserVisibility.waitUntilElementIsVisible(this.filter);
const result = this.filter.element(this.clearAllButton);
BrowserVisibility.waitUntilElementIsVisible(result);
return result.click();
return BrowserActions.click(result);
}
getCheckListOptionsNumberOnPage() {
@@ -16,7 +16,7 @@
*/
import { element, by, browser } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class SearchRadioPage {
@@ -64,13 +64,11 @@ export class SearchRadioPage {
}
clickShowMoreButton() {
BrowserVisibility.waitUntilElementIsVisible(this.showMoreButton);
return this.showMoreButton.click();
return BrowserActions.click(this.showMoreButton);
}
clickShowLessButton() {
BrowserVisibility.waitUntilElementIsVisible(this.showLessButton);
return this.showLessButton.click();
return BrowserActions.click(this.showLessButton);
}
}
@@ -16,7 +16,7 @@
*/
import { browser, by, element, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class SearchSortingPickerPage {
@@ -25,12 +25,9 @@ export class SearchSortingPickerPage {
optionsDropdown = element(by.css('div[class*="mat-select-panel"]'));
sortBy(sortOrder, sortType) {
BrowserVisibility.waitUntilElementIsClickable(this.sortingSelector);
this.sortingSelector.click();
BrowserActions.click(this.sortingSelector);
const selectedSortingOption = element(by.cssContainingText('span[class="mat-option-text"]', sortType));
BrowserVisibility.waitUntilElementIsClickable(selectedSortingOption);
selectedSortingOption.click();
BrowserActions.click(selectedSortingOption);
this.sortByOrder(sortOrder);
}
@@ -52,14 +49,12 @@ export class SearchSortingPickerPage {
clickSortingOption(option) {
const selectedSortingOption = element(by.cssContainingText('span[class="mat-option-text"]', option));
BrowserVisibility.waitUntilElementIsClickable(selectedSortingOption);
selectedSortingOption.click();
BrowserActions.click(selectedSortingOption);
return this;
}
clickSortingSelector() {
BrowserVisibility.waitUntilElementIsClickable(this.sortingSelector);
this.sortingSelector.click();
BrowserActions.click(this.sortingSelector);
return this;
}
@@ -22,7 +22,7 @@ import { SearchRadioPage } from './components/search-radio';
import { DateRangeFilterPage } from './components/dateRangeFilterPage';
import { NumberRangeFilterPage } from './components/numberRangeFilterPage';
import { SearchSliderPage } from './components/search-slider.page';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class SearchCategoriesPage {
@@ -64,7 +64,7 @@ export class SearchCategoriesPage {
clickFilterHeader(filter: ElementFinder) {
const fileSizeFilterHeader = filter.element(by.css('mat-expansion-panel-header'));
BrowserVisibility.waitUntilElementIsClickable(fileSizeFilterHeader);
fileSizeFilterHeader.click();
BrowserActions.click(fileSizeFilterHeader);
return this;
}
@@ -16,7 +16,7 @@
*/
import { element, by, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class TreeViewPage {
@@ -36,8 +36,7 @@ export class TreeViewPage {
clickNode(nodeName) {
const node = element(by.css('mat-tree-node[id="' + nodeName + '-tree-child-node"] button'));
BrowserVisibility.waitUntilElementIsClickable(node);
return node.click();
return BrowserActions.click(node);
}
checkNodeIsDisplayedAsClosed(nodeName) {
@@ -74,8 +73,7 @@ export class TreeViewPage {
}
addNodeId(nodeId) {
BrowserVisibility.waitUntilElementIsVisible(this.nodeIdInput);
this.nodeIdInput.click();
BrowserActions.click(this.nodeIdInput);
this.nodeIdInput.clear();
this.nodeIdInput.sendKeys(nodeId + ' ');
this.nodeIdInput.sendKeys(protractor.Key.BACK_SPACE);
+38 -49
View File
@@ -24,7 +24,8 @@ import { by, element, protractor, $$, browser } from 'protractor';
import path = require('path');
import { DateUtil } from '../../util/dateUtil';
import { BrowserVisibility, DocumentListPage } from '@alfresco/adf-testing';
import { BrowserVisibility, DocumentListPage, BrowserActions } from '@alfresco/adf-testing';
import { NavigationBarPage } from './navigationBarPage';
export class ContentServicesPage {
@@ -85,8 +86,7 @@ export class ContentServicesPage {
multiSelectToggle = element(by.cssContainingText('span.mat-slide-toggle-content', ' Multiselect (with checkboxes) '));
pressContextMenuActionNamed(actionName) {
const actionButton = this.checkContextActionIsVisible(actionName);
actionButton.click();
BrowserActions.clickExecuteScript(`button[data-automation-id="context-${actionName}"]`);
}
checkContextActionIsVisible(actionName) {
@@ -101,7 +101,7 @@ export class ContentServicesPage {
}
closeActionContext() {
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
BrowserActions.closeMenuAndDialogs();
return this;
}
@@ -123,29 +123,29 @@ export class ContentServicesPage {
deleteContent(content) {
this.contentList.clickOnActionMenu(content);
this.waitForContentOptions();
this.deleteContentElement.click();
BrowserActions.click(this.deleteContentElement);
}
metadataContent(content) {
this.contentList.clickOnActionMenu(content);
this.waitForContentOptions();
this.metadataAction.click();
BrowserActions.click(this.metadataAction);
}
versionManagerContent(content) {
this.contentList.clickOnActionMenu(content);
this.waitForContentOptions();
this.versionManagerAction.click();
BrowserActions.click(this.versionManagerAction);
}
copyContent(content) {
this.contentList.clickOnActionMenu(content);
this.copyContentElement.click();
BrowserActions.click(this.copyContentElement);
}
lockContent(content) {
this.contentList.clickOnActionMenu(content);
this.lockContentElement.click();
BrowserActions.click(this.lockContentElement);
}
waitForContentOptions() {
@@ -158,8 +158,7 @@ export class ContentServicesPage {
clickFileHyperlink(fileName) {
const hyperlink = this.contentList.dataTablePage().getFileHyperlink(fileName);
BrowserVisibility.waitUntilElementIsClickable(hyperlink);
hyperlink.click();
BrowserActions.click(hyperlink);
return this;
}
@@ -171,8 +170,7 @@ export class ContentServicesPage {
clickHyperlinkNavigationToggle() {
const hyperlinkToggle = element(by.cssContainingText('.mat-slide-toggle-content', 'Hyperlink navigation'));
BrowserVisibility.waitUntilElementIsVisible(hyperlinkToggle);
hyperlinkToggle.click();
BrowserActions.click(hyperlinkToggle);
return this;
}
@@ -273,14 +271,14 @@ export class ContentServicesPage {
expandRecentFiles() {
this.checkRecentFileToBeShowed();
this.checkRecentFileToBeClosed();
this.recentFilesClosed.click();
BrowserActions.click(this.recentFilesClosed);
this.checkRecentFileToBeOpened();
}
closeRecentFiles() {
this.checkRecentFileToBeShowed();
this.checkRecentFileToBeOpened();
this.recentFilesExpanded.click();
BrowserActions.click(this.recentFilesExpanded);
this.checkRecentFileToBeClosed();
}
@@ -293,29 +291,25 @@ export class ContentServicesPage {
}
async getRecentFileIcon() {
await BrowserVisibility.waitUntilElementIsVisible(this.recentFileIcon);
return this.recentFileIcon.getText();
return BrowserActions.getText(this.recentFileIcon);
}
checkAcsContainer() {
BrowserVisibility.waitUntilElementIsVisible(this.uploadBorder);
return this;
return BrowserVisibility.waitUntilElementIsVisible(this.uploadBorder);
}
waitForTableBody() {
this.contentList.waitForTableBody();
async waitForTableBody() {
await this.contentList.waitForTableBody();
}
goToDocumentList() {
this.clickOnContentServices();
this.checkAcsContainer();
const navigationBarPage = new NavigationBarPage();
navigationBarPage.clickContentServicesButton();
return this;
}
clickOnContentServices() {
BrowserVisibility.waitUntilElementIsVisible(this.contentServices);
BrowserVisibility.waitUntilElementIsClickable(this.contentServices);
this.contentServices.click();
BrowserActions.click(this.contentServices);
}
numberOfResultsDisplayed() {
@@ -396,14 +390,12 @@ export class ContentServicesPage {
}
clickOnCreateNewFolder() {
BrowserVisibility.waitUntilElementIsVisible(this.createFolderButton);
this.createFolderButton.click();
BrowserActions.click(this.createFolderButton);
return this;
}
openCreateLibraryDialog() {
BrowserVisibility.waitUntilElementIsVisible(this.createLibraryButton);
this.createLibraryButton.click();
BrowserActions.click(this.createLibraryButton);
this.createLibraryDialog.waitForDialogToOpen();
return this.createLibraryDialog;
}
@@ -500,29 +492,25 @@ export class ContentServicesPage {
enableInfiniteScrolling() {
const infiniteScrollButton = element(by.cssContainingText('.mat-slide-toggle-content', 'Enable Infinite Scrolling'));
BrowserVisibility.waitUntilElementIsVisible(infiniteScrollButton);
infiniteScrollButton.click();
BrowserActions.click(infiniteScrollButton);
return this;
}
enableCustomPermissionMessage() {
const customPermissionMessage = element(by.cssContainingText('.mat-slide-toggle-content', 'Enable custom permission message'));
BrowserVisibility.waitUntilElementIsVisible(customPermissionMessage);
customPermissionMessage.click();
BrowserActions.click(customPermissionMessage);
return this;
}
enableMediumTimeFormat() {
const mediumTimeFormat = element(by.css('#enableMediumTimeFormat'));
BrowserVisibility.waitUntilElementIsVisible(mediumTimeFormat);
mediumTimeFormat.click();
BrowserActions.click(mediumTimeFormat);
return this;
}
enableThumbnails() {
const thumbnailSlide = element(by.id('adf-thumbnails-upload-switch'));
BrowserVisibility.waitUntilElementIsVisible(thumbnailSlide);
thumbnailSlide.click();
BrowserActions.click(thumbnailSlide);
return this;
}
@@ -616,7 +604,7 @@ export class ContentServicesPage {
clickGridViewButton() {
this.checkGridViewButtonIsVisible();
this.gridViewButton.click();
BrowserActions.click(this.gridViewButton);
}
checkCardViewContainerIsDisplayed() {
@@ -641,7 +629,7 @@ export class ContentServicesPage {
getAttributeValueForElement(elementName, propertyName) {
const elementSize = element(by.css(`.adf-document-list-container div.adf-datatable-cell[data-automation-id="${elementName}"][title="${propertyName}"] span`));
return elementSize.getText();
return BrowserActions.getText(elementSize);
}
checkMenuIsShowedForElementIndex(elementIndex) {
@@ -650,6 +638,7 @@ export class ContentServicesPage {
}
navigateToCardFolder(folderName) {
BrowserActions.closeMenuAndDialogs();
const folderCard = element(by.css(`.adf-document-list-container div.adf-image-table-cell.adf-datatable-cell[data-automation-id="${folderName}"]`));
folderCard.click();
const folderSelected = element(by.css(`.adf-datatable-row.adf-is-selected div[data-automation-id="${folderName}"].adf-datatable-cell--image`));
@@ -664,11 +653,11 @@ export class ContentServicesPage {
}
selectGridSortingFromDropdown(sortingChosen) {
BrowserActions.closeMenuAndDialogs();
const dropdownSorting = this.getGridViewSortingDropdown();
dropdownSorting.click();
BrowserActions.click(dropdownSorting);
const optionToClick = element(by.css(`mat-option[data-automation-id="grid-view-sorting-${sortingChosen}"]`));
BrowserVisibility.waitUntilElementIsPresent(optionToClick);
optionToClick.click();
BrowserActions.click(optionToClick);
}
checkRowIsDisplayed(rowName) {
@@ -677,8 +666,8 @@ export class ContentServicesPage {
}
clickShareButton() {
BrowserVisibility.waitUntilElementIsClickable(this.shareNodeButton);
this.shareNodeButton.click();
BrowserActions.closeMenuAndDialogs();
BrowserActions.click(this.shareNodeButton);
}
checkSelectedSiteIsDisplayed(siteName) {
@@ -686,13 +675,13 @@ export class ContentServicesPage {
}
clickDownloadButton() {
BrowserVisibility.waitUntilElementIsClickable(this.downloadButton);
this.downloadButton.click();
BrowserActions.closeMenuAndDialogs();
BrowserActions.click(this.downloadButton);
}
clickMultiSelectToggle() {
BrowserVisibility.waitUntilElementIsClickable(this.multiSelectToggle);
this.multiSelectToggle.click();
BrowserActions.closeMenuAndDialogs();
BrowserActions.click(this.multiSelectToggle);
}
getRowByName(rowName) {
+10 -18
View File
@@ -17,7 +17,7 @@
import { element, by, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class HeaderPage {
@@ -50,14 +50,14 @@ export class HeaderPage {
}
clickShowMenuButton() {
const checkBox = element.all(by.css('mat-checkbox'));
const checkBox = element(by.css('mat-checkbox'));
BrowserVisibility.waitUntilElementIsVisible(checkBox);
return checkBox.get(0).click();
}
changeHeaderColor(color) {
const headerColor = element(by.css('option[value="' + color + '"]'));
return headerColor.click();
BrowserActions.click(headerColor);
}
checkAppTitle(name) {
@@ -66,8 +66,7 @@ export class HeaderPage {
}
addTitle(title) {
BrowserVisibility.waitUntilElementIsVisible(this.titleInput);
this.titleInput.click();
BrowserActions.click(this.titleInput);
this.titleInput.sendKeys(title);
this.titleInput.sendKeys(protractor.Key.ENTER);
}
@@ -78,8 +77,7 @@ export class HeaderPage {
}
addIcon(url) {
BrowserVisibility.waitUntilElementIsVisible(this.iconInput);
this.iconInput.click();
BrowserActions.click(this.iconInput);
this.iconInput.sendKeys(url);
this.iconInput.sendKeys(protractor.Key.ENTER);
}
@@ -97,35 +95,29 @@ export class HeaderPage {
}
addHexCodeColor(hexCode) {
BrowserVisibility.waitUntilElementIsVisible(this.hexColorInput);
this.hexColorInput.click();
BrowserActions.click(this.hexColorInput);
this.hexColorInput.sendKeys(hexCode);
return this.hexColorInput.sendKeys(protractor.Key.ENTER);
}
addLogoHyperlink(hyperlink) {
BrowserVisibility.waitUntilElementIsVisible(this.logoHyperlinkInput);
BrowserVisibility.waitUntilElementIsClickable(this.logoHyperlinkInput);
this.logoHyperlinkInput.click();
BrowserActions.click(this.logoHyperlinkInput);
this.logoHyperlinkInput.sendKeys(hyperlink);
return this.logoHyperlinkInput.sendKeys(protractor.Key.ENTER);
}
addLogoTooltip(tooltip) {
BrowserVisibility.waitUntilElementIsVisible(this.logoTooltipInput);
this.logoTooltipInput.click();
BrowserActions.click(this.logoTooltipInput);
this.logoTooltipInput.sendKeys(tooltip);
return this.logoTooltipInput.sendKeys(protractor.Key.ENTER);
}
sideBarPositionStart() {
BrowserVisibility.waitUntilElementIsVisible(this.positionStart);
return this.positionStart.click();
BrowserActions.click(this.positionStart);
}
sideBarPositionEnd() {
BrowserVisibility.waitUntilElementIsVisible(this.positionEnd);
return this.positionEnd.click();
BrowserActions.click(this.positionEnd);
}
checkSidebarPositionStart() {
+2 -8
View File
@@ -18,7 +18,7 @@
import { element, by } from 'protractor';
import { ElementFinder } from 'protractor/built/element';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class InfinitePaginationPage {
@@ -31,16 +31,10 @@ export class InfinitePaginationPage {
}
clickLoadMoreButton() {
BrowserVisibility.waitUntilElementIsVisible(this.loadMoreButton);
BrowserVisibility.waitUntilElementIsClickable(this.loadMoreButton);
this.loadMoreButton.click();
BrowserActions.click(this.loadMoreButton);
return this;
}
checkLoadMoreButtonIsDisplayed() {
return BrowserVisibility.waitUntilElementIsVisible(this.loadMoreButton);
}
checkLoadMoreButtonIsNotDisplayed() {
return BrowserVisibility.waitUntilElementIsNotOnPage(this.loadMoreButton);
}
@@ -17,7 +17,7 @@
import { BrowserVisibility } from '@alfresco/adf-testing';
import { element, by } from 'protractor';
import { DataTableComponentPage } from '@alfresco/adf-testing';
import { DataTableComponentPage, BrowserActions } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../navigationBarPage';
const source = {
@@ -57,13 +57,14 @@ export class CustomSources {
this.navigationBarPage.navigateToCustomSources();
this.waitForToolbarToBeVisible();
}
clickOnSourceType() {
return this.sourceTypeDropdown.click();
BrowserActions.click(this.sourceTypeDropdown);
}
selectMySitesSourceType() {
this.clickOnSourceType();
this.getSourceType(source.mySites).click();
BrowserActions.click(this.getSourceType(source.mySites));
}
checkRowIsDisplayed(rowName) {
@@ -72,8 +73,7 @@ export class CustomSources {
getStatusCell(rowName) {
const cell = this.dataTable.getCellByRowContentAndColumn('Name', rowName, column.status);
BrowserVisibility.waitUntilElementIsVisible(cell);
return cell.getText();
return BrowserActions.getText(cell);
}
}
+14 -24
View File
@@ -17,7 +17,7 @@
import { browser, by, element, protractor } from 'protractor';
import { DataTableComponentPage } from '@alfresco/adf-testing';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class DataTablePage {
@@ -63,31 +63,27 @@ export class DataTablePage {
}
addRow() {
BrowserVisibility.waitUntilElementIsVisible(this.addRowElement);
this.addRowElement.click();
BrowserActions.click(this.addRowElement);
}
replaceRows(id) {
const rowID = this.dataTable.getCellElementByValue(this.columns.id, id);
BrowserVisibility.waitUntilElementIsVisible(rowID);
this.replaceRowsElement.click();
BrowserActions.click(this.replaceRowsElement);
BrowserVisibility.waitUntilElementIsNotVisible(rowID);
}
replaceColumns() {
BrowserVisibility.waitUntilElementIsVisible(this.replaceColumnsElement);
this.replaceColumnsElement.click();
BrowserActions.click(this.replaceColumnsElement);
BrowserVisibility.waitUntilElementIsNotOnPage(this.createdOnColumn);
}
clickMultiSelect() {
BrowserVisibility.waitUntilElementIsVisible(this.multiSelect);
this.multiSelect.click();
BrowserActions.click(this.multiSelect);
}
clickReset() {
BrowserVisibility.waitUntilElementIsVisible(this.reset);
this.reset.click();
BrowserActions.click(this.reset);
}
checkRowIsNotSelected(rowNumber) {
@@ -101,8 +97,7 @@ export class DataTablePage {
}
checkAllRows() {
BrowserVisibility.waitUntilElementIsVisible(this.selectAll);
this.selectAll.click();
BrowserActions.click(this.selectAll);
}
checkRowIsChecked(rowNumber) {
@@ -118,17 +113,14 @@ export class DataTablePage {
}
clickCheckbox(rowNumber) {
BrowserActions.closeMenuAndDialogs();
const checkbox = this.dataTable.getCellElementByValue(this.columns.id, rowNumber)
.element(by.xpath(`ancestor::div[contains(@class, 'adf-datatable-row')]//mat-checkbox/label`));
BrowserVisibility.waitUntilElementIsVisible(checkbox);
checkbox.click();
BrowserActions.click(checkbox);
}
selectRow(rowNumber) {
const locator = this.dataTable.getCellElementByValue(this.columns.id, rowNumber);
BrowserVisibility.waitUntilElementIsVisible(locator);
BrowserVisibility.waitUntilElementIsClickable(locator);
locator.click();
async selectRow(rowNumber) {
BrowserActions.clickExecuteScript(`div[title="${this.columns.id}"] div[data-automation-id="text_${rowNumber}"] span`);
return this;
}
@@ -139,9 +131,8 @@ export class DataTablePage {
selectSelectionMode(selectionMode) {
const selectMode = element(by.cssContainingText(`span[class='mat-option-text']`, selectionMode));
this.selectionButton.click();
BrowserVisibility.waitUntilElementIsVisible(this.selectionDropDown);
selectMode.click();
BrowserActions.clickExecuteScript('div[class="mat-select-arrow"]');
BrowserActions.click(selectMode);
}
getRowCheckbox(rowNumber) {
@@ -194,8 +185,7 @@ export class DataTablePage {
pasteClipboard() {
this.pasteClipboardInput.clear();
BrowserVisibility.waitUntilElementIsVisible(this.pasteClipboardInput);
this.pasteClipboardInput.click();
BrowserActions.click(this.pasteClipboardInput);
this.pasteClipboardInput.sendKeys(protractor.Key.chord(protractor.Key.SHIFT, protractor.Key.INSERT));
return this;
}
+1 -1
View File
@@ -23,6 +23,6 @@ export class LogoutPage {
logoutSection = element(by.css('div[data-automation-id="adf-logout-section"]'));
checkLogoutSectionIsDisplayed() {
return BrowserVisibility.waitUntilElementIsVisible(this.logoutSection);
BrowserVisibility.waitUntilElementIsVisible(this.logoutSection);
}
}
@@ -16,11 +16,10 @@
*/
import { by, element, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class PeopleGroupCloudComponentPage {
peopleCloudSingleSelection = element(by.css('mat-radio-button[data-automation-id="adf-people-single-mode"]'));
peopleCloudSingleSelectionChecked = element(by.css('mat-radio-button[data-automation-id="adf-people-single-mode"][class*="mat-radio-checked"]'));
peopleCloudMultipleSelection = element(by.css('mat-radio-button[data-automation-id="adf-people-multiple-mode"]'));
peopleCloudFilterRole = element(by.css('mat-radio-button[data-automation-id="adf-people-filter-role"]'));
@@ -32,7 +31,6 @@ export class PeopleGroupCloudComponentPage {
peoplePreselect = element(by.css('input[data-automation-id="adf-people-preselect-input"]'));
groupRoleInput = element(by.css('input[data-automation-id="adf-group-roles-input"]'));
groupAppInput = element(by.css('input[data-automation-id="adf-group-app-input"]'));
groupPreselect = element(by.css('input[data-automation-id="adf-group-preselect-input"]'));
peopleCloudComponentTitle = element(by.cssContainingText('mat-card-title', 'People Cloud Component'));
groupCloudComponentTitle = element(by.cssContainingText('mat-card-title', 'Groups Cloud Component'));
preselectValidation = element(by.css('mat-checkbox.adf-preselect-value'));
@@ -51,13 +49,7 @@ export class PeopleGroupCloudComponentPage {
}
clickPeopleCloudMultipleSelection() {
BrowserVisibility.waitUntilElementIsVisible(this.peopleCloudMultipleSelection);
this.peopleCloudMultipleSelection.click();
}
clickPeopleCloudSingleSelection() {
BrowserVisibility.waitUntilElementIsVisible(this.peopleCloudSingleSelection);
this.peopleCloudSingleSelection.click();
BrowserActions.click(this.peopleCloudMultipleSelection);
}
checkPeopleCloudSingleSelectionIsSelected() {
@@ -65,13 +57,11 @@ export class PeopleGroupCloudComponentPage {
}
clickPeopleCloudFilterRole() {
BrowserVisibility.waitUntilElementIsVisible(this.peopleCloudFilterRole);
this.peopleCloudFilterRole.click();
BrowserActions.click(this.peopleCloudFilterRole);
}
clickGroupCloudFilterRole() {
BrowserVisibility.waitUntilElementIsVisible(this.groupCloudFilterRole);
this.groupCloudFilterRole.click();
BrowserActions.click(this.groupCloudFilterRole);
}
enterPeopleRoles(roles) {
@@ -98,13 +88,11 @@ export class PeopleGroupCloudComponentPage {
}
clickGroupCloudSingleSelection() {
BrowserVisibility.waitUntilElementIsVisible(this.groupCloudSingleSelection);
this.groupCloudSingleSelection.click();
BrowserActions.click(this.groupCloudSingleSelection);
}
clickGroupCloudMultipleSelection() {
BrowserVisibility.waitUntilElementIsVisible(this.groupCloudMultipleSelection);
this.groupCloudMultipleSelection.click();
BrowserActions.click(this.groupCloudMultipleSelection);
}
enterGroupRoles(roles) {
@@ -115,8 +103,7 @@ export class PeopleGroupCloudComponentPage {
}
clickPreselectValidation() {
BrowserVisibility.waitUntilElementIsVisible(this.preselectValidation);
this.preselectValidation.click();
BrowserActions.click(this.preselectValidation);
}
getPreselectValidationStatus() {
@@ -125,13 +112,11 @@ export class PeopleGroupCloudComponentPage {
}
clickPeopleFilerByApp() {
BrowserVisibility.waitUntilElementIsVisible(this.peopleFilterByAppName);
return this.peopleFilterByAppName.click();
return BrowserActions.click(this.peopleFilterByAppName);
}
clickGroupFilerByApp() {
BrowserVisibility.waitUntilElementIsVisible(this.groupFilterByAppName);
return this.groupFilterByAppName.click();
return BrowserActions.click(this.groupFilterByAppName);
}
enterPeopleAppName(appName) {
@@ -17,7 +17,12 @@
import { element, by } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { ProcessFiltersCloudComponentPage, EditProcessFilterCloudComponentPage, ProcessListCloudComponentPage } from '@alfresco/adf-testing';
import {
ProcessFiltersCloudComponentPage,
EditProcessFilterCloudComponentPage,
ProcessListCloudComponentPage,
BrowserActions
} from '@alfresco/adf-testing';
export class ProcessCloudDemoPage {
@@ -33,10 +38,6 @@ export class ProcessCloudDemoPage {
processListCloud = new ProcessListCloudComponentPage();
editProcessFilterCloud = new EditProcessFilterCloudComponentPage();
processFiltersCloudComponent(filter) {
return new ProcessFiltersCloudComponentPage(filter);
}
editProcessFilterCloudComponent() {
return this.editProcessFilterCloud;
}
@@ -66,25 +67,17 @@ export class ProcessCloudDemoPage {
}
getActiveFilterName() {
BrowserVisibility.waitUntilElementIsVisible(this.activeFilter);
return this.activeFilter.getText();
return BrowserActions.getText(this.activeFilter);
}
clickOnProcessFilters() {
BrowserVisibility.waitUntilElementIsVisible(this.processFilters);
return this.processFilters.click();
return BrowserActions.click(this.processFilters);
}
openNewProcessForm() {
this.createButtonIsDisplayed();
this.clickOnCreateButton();
this.newProcessButtonIsDisplayed();
this.newProcessButton.click();
return this;
}
createButtonIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.createButton);
BrowserActions.click(this.newProcessButton);
return this;
}
@@ -94,8 +87,7 @@ export class ProcessCloudDemoPage {
}
clickOnCreateButton() {
BrowserVisibility.waitUntilElementIsClickable(this.createButton);
this.createButton.click();
BrowserActions.click(this.createButton);
return this;
}
}
@@ -16,7 +16,7 @@
*/
import { BrowserVisibility } from '@alfresco/adf-testing';
import { DataTableComponentPage } from '@alfresco/adf-testing';
import { DataTableComponentPage, BrowserActions } from '@alfresco/adf-testing';
import { element, by, protractor } from 'protractor';
export class ProcessListDemoPage {
@@ -36,34 +36,29 @@ export class ProcessListDemoPage {
}
selectSorting(sort) {
BrowserVisibility.waitUntilElementIsVisible(this.stateSelector);
this.sortSelector.click();
BrowserActions.click(this.sortSelector);
const sortLocator = element(by.cssContainingText('mat-option span', sort));
BrowserVisibility.waitUntilElementIsVisible(sortLocator);
sortLocator.click();
BrowserActions.click(sortLocator);
return this;
}
selectStateFilter(state) {
BrowserVisibility.waitUntilElementIsVisible(this.stateSelector);
this.stateSelector.click();
BrowserActions.click(this.stateSelector);
const stateLocator = element(by.cssContainingText('mat-option span', state));
BrowserVisibility.waitUntilElementIsVisible(stateLocator);
stateLocator.click();
BrowserActions.click(stateLocator);
return this;
}
addAppId(appId) {
BrowserVisibility.waitUntilElementIsVisible(this.appIdInput);
this.appIdInput.click();
BrowserActions.click(this.appIdInput);
this.appIdInput.sendKeys(protractor.Key.ENTER);
this.appIdInput.clear();
return this.appIdInput.sendKeys(appId);
}
clickResetButton() {
BrowserVisibility.waitUntilElementIsVisible(this.resetButton);
return this.resetButton.click();
return BrowserActions.click(this.resetButton);
}
checkErrorMessageIsDisplayed(error) {
@@ -104,15 +99,13 @@ export class ProcessListDemoPage {
}
addProcessDefinitionId(procDefinitionId) {
BrowserVisibility.waitUntilElementIsVisible(this.processDefinitionInput);
this.processDefinitionInput.click();
BrowserActions.click(this.processDefinitionInput);
this.processDefinitionInput.clear();
return this.processDefinitionInput.sendKeys(procDefinitionId);
}
addProcessInstanceId(procInstanceId) {
BrowserVisibility.waitUntilElementIsVisible(this.processInstanceInput);
this.processInstanceInput.click();
BrowserActions.click(this.processInstanceInput);
this.processInstanceInput.clear();
return this.processInstanceInput.sendKeys(procInstanceId);
}
@@ -15,22 +15,17 @@
* limitations under the License.
*/
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
import { element, by } from 'protractor';
import { TaskHeaderCloudPage, TaskFormCloudComponent } from '@alfresco/adf-testing';
import { TaskFormCloudComponent } from '@alfresco/adf-testing';
export class TaskDetailsCloudDemoPage {
taskHeaderCloudPage = new TaskHeaderCloudPage();
taskFormCloudPage = new TaskFormCloudComponent();
taskDetailsHeader = element(by.css(`h4[data-automation-id='task-details-header']`));
releaseButton = element(by.css('button[adf-cloud-unclaim-task]'));
taskHeaderCloud() {
return this.taskHeaderCloudPage;
}
taskFormCloud() {
return this.taskFormCloudPage;
}
@@ -41,12 +36,10 @@ export class TaskDetailsCloudDemoPage {
}
getTaskDetailsHeader() {
BrowserVisibility.waitUntilElementIsVisible(this.taskDetailsHeader);
return this.taskDetailsHeader.getText();
return BrowserActions.getText(this.taskDetailsHeader);
}
getReleaseButtonText() {
BrowserVisibility.waitUntilElementIsVisible(this.releaseButton);
return this.releaseButton.getText();
return BrowserActions.getText(this.releaseButton);
}
}
@@ -15,8 +15,7 @@
* limitations under the License.
*/
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserActions } from '@alfresco/adf-testing';
import { element, by } from 'protractor';
import { TaskFiltersPage } from '../../process-services/taskFiltersPage';
@@ -28,10 +27,6 @@ export class TaskFiltersDemoPage {
involvedTask = element(by.css('span[data-automation-id="Involved Tasks_filter"]'));
activeFilter = element(by.css("mat-list-item[class*='active']"));
taskFiltersPage(filter) {
return new TaskFiltersPage(filter);
}
myTasksFilter() {
return new TaskFiltersPage(this.myTasks);
}
@@ -53,8 +48,7 @@ export class TaskFiltersDemoPage {
}
checkActiveFilterActive () {
BrowserVisibility.waitUntilElementIsVisible(this.activeFilter);
return this.activeFilter.getText();
return BrowserActions.getText(this.activeFilter);
}
}
@@ -18,7 +18,7 @@
import { TasksListPage } from '../../process-services/tasksListPage';
import { PaginationPage } from '@alfresco/adf-testing';
import { element, by } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class TaskListDemoPage {
@@ -56,8 +56,7 @@ export class TaskListDemoPage {
}
clickAppId() {
BrowserVisibility.waitUntilElementIsVisible(this.appId);
this.appId.click();
BrowserActions.click(this.appId);
return this;
}
@@ -97,11 +96,6 @@ export class TaskListDemoPage {
return this;
}
getItemsPerPage() {
BrowserVisibility.waitUntilElementIsVisible(this.itemsPerPage);
return this.itemsPerPage.getAttribute('value');
}
typeProcessDefinitionId(input) {
BrowserVisibility.waitUntilElementIsVisible(this.processDefinitionId);
this.clearText(this.processDefinitionId);
@@ -129,8 +123,7 @@ export class TaskListDemoPage {
getItemsPerPageFieldErrorMessage() {
BrowserVisibility.waitUntilElementIsVisible(this.itemsPerPageForm);
const errorMessage = this.itemsPerPageForm.element(by.css('mat-error'));
BrowserVisibility.waitUntilElementIsVisible(errorMessage);
return errorMessage.getText();
return BrowserActions.getText(errorMessage);
}
typePage(input) {
@@ -148,8 +141,7 @@ export class TaskListDemoPage {
getPageFieldErrorMessage() {
BrowserVisibility.waitUntilElementIsVisible(this.pageForm);
const errorMessage = this.pageForm.element(by.css('mat-error'));
BrowserVisibility.waitUntilElementIsVisible(errorMessage);
return errorMessage.getText();
return BrowserActions.getText(errorMessage);
}
typeDueAfter(input) {
@@ -172,23 +164,19 @@ export class TaskListDemoPage {
}
clickResetButton() {
BrowserVisibility.waitUntilElementIsVisible(this.resetButton);
this.resetButton.click();
BrowserActions.click(this.resetButton);
}
selectSort(sort) {
this.clickOnSortDropDownArrow();
const sortElement = element.all(by.cssContainingText('mat-option span', sort)).first();
BrowserVisibility.waitUntilElementIsClickable(sortElement);
BrowserVisibility.waitUntilElementIsVisible(sortElement);
sortElement.click();
BrowserActions.click(sortElement);
return this;
}
clickOnSortDropDownArrow() {
BrowserVisibility.waitUntilElementIsVisible(this.sortDropDownArrow);
this.sortDropDownArrow.click();
BrowserActions.click(this.sortDropDownArrow);
BrowserVisibility.waitUntilElementIsVisible(this.sortSelector);
}
@@ -196,15 +184,12 @@ export class TaskListDemoPage {
this.clickOnStateDropDownArrow();
const stateElement = element.all(by.cssContainingText('mat-option span', state)).first();
BrowserVisibility.waitUntilElementIsClickable(stateElement);
BrowserVisibility.waitUntilElementIsVisible(stateElement);
stateElement.click();
BrowserActions.click(stateElement);
return this;
}
clickOnStateDropDownArrow() {
BrowserVisibility.waitUntilElementIsVisible(this.stateDropDownArrow);
this.stateDropDownArrow.click();
BrowserActions.click(this.stateDropDownArrow);
BrowserVisibility.waitUntilElementIsVisible(this.stateSelector);
}
@@ -16,7 +16,14 @@
*/
import { element, by, browser } from 'protractor';
import { FormControllersPage, TaskFiltersCloudComponentPage, EditTaskFilterCloudComponentPage, BrowserVisibility, TaskListCloudComponentPage } from '@alfresco/adf-testing';
import {
FormControllersPage,
TaskFiltersCloudComponentPage,
EditTaskFilterCloudComponentPage,
BrowserVisibility,
TaskListCloudComponentPage,
BrowserActions
} from '@alfresco/adf-testing';
export class TasksCloudDemoPage {
@@ -24,7 +31,6 @@ export class TasksCloudDemoPage {
completedTasks = element(by.css('span[data-automation-id="completed-tasks-filter"]'));
activeFilter = element(by.css("mat-list-item[class*='active'] span"));
taskFilters = element(by.css("mat-expansion-panel[data-automation-id='Task Filters']"));
defaultActiveFilter = element.all(by.css('.adf-filters__entry')).first();
createButton = element(by.css('button[data-automation-id="create-button"'));
@@ -77,49 +83,30 @@ export class TasksCloudDemoPage {
}
getActiveFilterName() {
BrowserVisibility.waitUntilElementIsVisible(this.activeFilter);
return this.activeFilter.getText();
return BrowserActions.getText(this.activeFilter);
}
customTaskFilter(filterName) {
return new TaskFiltersCloudComponentPage(element(by.css(`span[data-automation-id="${filterName}-filter"]`)));
}
clickOnTaskFilters() {
BrowserVisibility.waitUntilElementIsVisible(this.taskFilters);
return this.taskFilters.click();
}
openNewTaskForm() {
this.createButtonIsDisplayed();
this.clickOnCreateButton();
this.newTaskButtonIsDisplayed();
this.newTaskButton.click();
return this;
}
createButtonIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.createButton);
return this;
}
newTaskButtonIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.newTaskButton);
BrowserActions.click(this.createButton);
BrowserActions.click(this.newTaskButton);
return this;
}
clickOnCreateButton() {
BrowserVisibility.waitUntilElementIsClickable(this.createButton);
this.createButton.click();
BrowserActions.click(this.createButton);
return this;
}
firstFilterIsActive () {
firstFilterIsActive() {
return this.defaultActiveFilter.getAttribute('class').then((value) => value.includes('adf-active'));
}
clickSettingsButton() {
this.settingsButton.click();
BrowserActions.click(this.settingsButton);
browser.driver.sleep(400);
BrowserVisibility.waitUntilElementIsVisible(this.multiSelectionToggle);
BrowserVisibility.waitUntilElementIsVisible(this.modeDropDownArrow);
@@ -128,8 +115,7 @@ export class TasksCloudDemoPage {
}
clickAppButton() {
this.appButton.click();
this.createButtonIsDisplayed();
BrowserActions.click(this.appButton);
return this;
}
@@ -137,16 +123,12 @@ export class TasksCloudDemoPage {
this.clickOnSelectionModeDropDownArrow();
const modeElement = element.all(by.cssContainingText('mat-option span', mode)).first();
BrowserVisibility.waitUntilElementIsClickable(modeElement);
BrowserVisibility.waitUntilElementIsVisible(modeElement);
modeElement.click();
BrowserActions.click(modeElement);
return this;
}
clickOnSelectionModeDropDownArrow() {
BrowserVisibility.waitUntilElementIsVisible(this.modeDropDownArrow);
BrowserVisibility.waitUntilElementIsClickable(this.modeDropDownArrow);
this.modeDropDownArrow.click();
BrowserActions.click(this.modeDropDownArrow);
BrowserVisibility.waitUntilElementIsVisible(this.modeSelector);
}
}
+5 -11
View File
@@ -16,7 +16,7 @@
*/
import { browser, by, element } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class CreateFolderDialog {
folderNameField = element(by.id('adf-folder-name-input'));
@@ -25,9 +25,7 @@ export class CreateFolderDialog {
cancelButton = element(by.id('adf-folder-cancel-button'));
clickOnCreateButton() {
BrowserVisibility.waitUntilElementIsVisible(this.createButton);
this.createButton.click();
return this;
BrowserActions.click(this.createButton);
}
checkCreateBtnIsDisabled() {
@@ -42,23 +40,19 @@ export class CreateFolderDialog {
}
clickOnCancelButton() {
BrowserVisibility.waitUntilElementIsVisible(this.cancelButton);
this.cancelButton.click();
return this;
BrowserActions.click(this.cancelButton);
}
addFolderName(folderName) {
BrowserVisibility.waitUntilElementIsVisible(this.folderNameField);
this.folderNameField.clear();
this.folderNameField.sendKeys(folderName);
BrowserActions.clearSendKeys(this.folderNameField, folderName);
browser.driver.sleep(500);
return this;
}
addFolderDescription(folderDescription) {
BrowserVisibility.waitUntilElementIsVisible(this.folderDescriptionField);
this.folderDescriptionField.clear();
this.folderDescriptionField.sendKeys(folderDescription);
BrowserActions.clearSendKeys(this.folderDescriptionField, folderDescription);
return this;
}
+15 -27
View File
@@ -16,7 +16,7 @@
*/
import { by, element, browser, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class CreateLibraryDialog {
libraryDialog = element(by.css('[role="dialog"]'));
@@ -35,8 +35,7 @@ export class CreateLibraryDialog {
getSelectedRadio() {
const radio = element(by.css('.mat-radio-button[class*="checked"]'));
BrowserVisibility.waitUntilElementIsVisible(radio);
return radio.getText();
return BrowserActions.getText(radio);
}
waitForDialogToOpen() {
@@ -54,7 +53,7 @@ export class CreateLibraryDialog {
}
getTitle() {
return this.libraryTitle.getText();
return BrowserActions.getText(this.libraryTitle);
}
getLibraryIdText() {
@@ -66,22 +65,20 @@ export class CreateLibraryDialog {
}
getErrorMessage() {
BrowserVisibility.waitUntilElementIsVisible(this.errorMessage);
return this.errorMessage.getText();
return BrowserActions.getText(this.errorMessage);
}
getErrorMessages(position) {
BrowserVisibility.waitUntilElementIsVisible(this.errorMessages);
return this.errorMessages.get(position).getText();
return BrowserActions.getText(this.errorMessages.get(position));
}
waitForLibraryNameHint() {
BrowserVisibility.waitUntilElementIsVisible(this.libraryNameHint);
return this;
}
getLibraryNameHint() {
BrowserVisibility.waitUntilElementIsVisible(this.libraryNameHint);
return this.libraryNameHint.getText();
return BrowserActions.getText(this.libraryNameHint);
}
isNameDisplayed() {
@@ -117,27 +114,23 @@ export class CreateLibraryDialog {
}
clickCreate() {
BrowserVisibility.waitUntilElementIsClickable(this.createButton);
this.createButton.click();
BrowserActions.click(this.createButton);
}
clickCancel() {
this.cancelButton.click();
BrowserActions.click(this.cancelButton);
}
typeLibraryName(libraryName: string) {
this.libraryNameField.clear();
this.libraryNameField.sendKeys(libraryName);
BrowserActions.clearSendKeys(this.libraryNameField, libraryName);
}
typeLibraryId(libraryId) {
this.libraryIdField.clear();
this.libraryIdField.sendKeys(libraryId);
BrowserActions.clearSendKeys(this.libraryIdField, libraryId);
}
typeLibraryDescription(libraryDescription) {
this.libraryDescriptionField.clear();
this.libraryDescriptionField.sendKeys(libraryDescription);
BrowserActions.clearSendKeys(this.libraryDescriptionField, libraryDescription);
}
clearLibraryName() {
@@ -150,20 +143,15 @@ export class CreateLibraryDialog {
this.libraryIdField.sendKeys(' ', protractor.Key.CONTROL, 'a', protractor.Key.NULL, protractor.Key.BACK_SPACE);
}
clearLibraryDescription() {
this.libraryDescriptionField.clear();
this.libraryDescriptionField.sendKeys(' ', protractor.Key.CONTROL, 'a', protractor.Key.NULL, protractor.Key.BACK_SPACE);
}
selectPublic() {
this.publicRadioButton.click();
BrowserActions.click(this.publicRadioButton);
}
selectPrivate() {
this.privateRadioButton.click();
BrowserActions.click(this.privateRadioButton);
}
selectModerated() {
this.moderatedRadioButton.click();
BrowserActions.click(this.moderatedRadioButton);
}
}
+7 -8
View File
@@ -16,7 +16,7 @@
*/
import { browser, by, element, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class SearchDialog {
@@ -35,8 +35,7 @@ export class SearchDialog {
}
clickOnSearchIcon() {
BrowserVisibility.waitUntilElementIsVisible(this.searchIcon);
this.searchIcon.click();
BrowserActions.click(this.searchIcon);
return this;
}
@@ -69,14 +68,14 @@ export class SearchDialog {
enterText(text) {
BrowserVisibility.waitUntilElementIsVisible(this.searchBar);
browser.executeScript(`document.querySelector("adf-search-control input").click();`);
BrowserActions.clickExecuteScript('adf-search-control input');
this.searchBar.sendKeys(text);
return this;
}
enterTextAndPressEnter(text) {
BrowserVisibility.waitUntilElementIsVisible(this.searchBar);
browser.executeScript(`document.querySelector("adf-search-control input").click();`);
BrowserActions.clickExecuteScript('adf-search-control input');
this.searchBar.sendKeys(text);
this.searchBar.sendKeys(protractor.Key.ENTER);
return this;
@@ -99,15 +98,15 @@ export class SearchDialog {
}
getSpecificRowsHighlightName(name) {
return this.getRowByRowName(name).element(this.highlightName).getText();
return BrowserActions.getText(this.getRowByRowName(name).element(this.highlightName));
}
getSpecificRowsCompleteName(name) {
return this.getRowByRowName(name).element(this.completeName).getText();
return BrowserActions.getText(this.getRowByRowName(name).element(this.completeName));
}
getSpecificRowsAuthor(name) {
return this.getRowByRowName(name).element(this.rowsAuthor).getText();
return BrowserActions.getText(this.getRowByRowName(name).element(this.rowsAuthor));
}
clearText() {
+19 -26
View File
@@ -16,7 +16,8 @@
*/
import { element, by } from 'protractor';
import { BrowserVisibility, FormControllersPage } from '@alfresco/adf-testing';
import { BrowserVisibility, FormControllersPage, BrowserActions } from '@alfresco/adf-testing';
import moment = require('moment');
export class ShareDialog {
@@ -25,7 +26,6 @@ export class ShareDialog {
dialogTitle = element(by.css('[data-automation-id="adf-share-dialog-title"]'));
shareToggle = element(by.css('[data-automation-id="adf-share-toggle"] label'));
shareToggleChecked = element(by.css('mat-dialog-container mat-slide-toggle.mat-checked'));
shareToggleUnchecked = element(by.css('mat-dialog-container mat-slide-toggle:not(.mat-checked)'));
shareToggleDisabled = element(by.css('mat-dialog-container mat-slide-toggle.mat-disabled'));
shareLink = element(by.css('[data-automation-id="adf-share-link"]'));
closeButton = element(by.css('button[data-automation-id="adf-share-dialog-close"]'));
@@ -50,13 +50,11 @@ export class ShareDialog {
}
clickConfirmationDialogCancelButton() {
BrowserVisibility.waitUntilElementIsVisible(this.confirmationCancelButton);
this.confirmationCancelButton.click();
BrowserActions.click(this.confirmationCancelButton);
}
clickConfirmationDialogRemoveButton() {
BrowserVisibility.waitUntilElementIsVisible(this.confirmationRemoveButton);
this.confirmationRemoveButton.click();
BrowserActions.click(this.confirmationRemoveButton);
}
checkShareLinkIsDisplayed() {
@@ -69,13 +67,12 @@ export class ShareDialog {
}
clickCloseButton() {
BrowserVisibility.waitUntilElementIsVisible(this.closeButton);
return this.closeButton.click();
return BrowserActions.click(this.closeButton);
}
clickShareLinkButton() {
BrowserVisibility.waitUntilElementIsVisible(this.copySharedLinkButton);
return this.copySharedLinkButton.click();
return BrowserActions.click(this.copySharedLinkButton);
}
shareToggleButtonIsChecked() {
@@ -86,39 +83,35 @@ export class ShareDialog {
BrowserVisibility.waitUntilElementIsPresent(this.shareToggleDisabled);
}
shareToggleButtonIsUnchecked() {
BrowserVisibility.waitUntilElementIsVisible(this.shareToggleUnchecked);
}
checkNotificationWithMessage(message) {
BrowserVisibility.waitUntilElementIsVisible(
BrowserVisibility.waitUntilElementIsPresent(
element(by.cssContainingText('simple-snack-bar', message))
);
}
waitForNotificationToClose() {
BrowserVisibility.waitUntilElementIsStale(element(by.css('simple-snack-bar')));
}
dialogIsClosed() {
BrowserVisibility.waitUntilElementIsStale(this.shareDialog);
}
clickDateTimePickerButton() {
BrowserVisibility.waitUntilElementIsVisible(this.timeDatePickerButton);
this.timeDatePickerButton.click();
BrowserActions.click(this.timeDatePickerButton);
}
calendarTodayDayIsDisabled() {
const today: any = this.dayPicker.element(by.css('.mat-datetimepicker-calendar-body-today')).getText();
BrowserVisibility.waitUntilElementIsPresent(element(by.cssContainingText('.mat-datetimepicker-calendar-body-disabled', today)));
const tomorrow = moment().add(1, 'days').format('D');
if (tomorrow !== '1') {
const today: any = this.dayPicker.element(by.css('.mat-datetimepicker-calendar-body-today')).getText();
BrowserVisibility.waitUntilElementIsPresent(element(by.cssContainingText('.mat-datetimepicker-calendar-body-disabled', today)));
}
}
setDefaultDay() {
const selector = '.mat-datetimepicker-calendar-body-cell:not(.mat-datetimepicker-calendar-body-disabled)';
BrowserVisibility.waitUntilElementIsVisible(this.dayPicker);
const tomorrow = new Date(new Date().getTime() + 48 * 60 * 60 * 1000).getDate().toString();
this.dayPicker.element(by.cssContainingText(selector, tomorrow)).click();
const tomorrow = moment().add(1, 'days').format('MMM D, YYYY');
BrowserVisibility.waitUntilElementIsClickable(this.dayPicker.element(by.css(`td[aria-label="${tomorrow}"]`)));
this.dayPicker.element(by.css(`td[aria-label="${tomorrow}"]`)).click();
}
setDefaultHour() {
+8 -15
View File
@@ -16,7 +16,7 @@
*/
import { element, by, protractor, browser } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class UploadDialog {
@@ -31,7 +31,6 @@ export class UploadDialog {
title = element(by.css('span[class*="upload-dialog__title"]'));
minimizeButton = element(by.css('mat-icon[title="Minimize"]'));
maximizeButton = element(by.css('mat-icon[title="Maximize"]'));
sizeUploaded = by.css('span[class="adf-file-uploading-row__status"]');
canUploadConfirmationTitle = element(by.css('p[class="upload-dialog__confirmation--title"]'));
canUploadConfirmationDescription = element(by.css('p[class="upload-dialog__confirmation--text"]'));
confirmationDialogNoButton = element(by.partialButtonText('No'));
@@ -40,7 +39,7 @@ export class UploadDialog {
clickOnCloseButton() {
this.checkCloseButtonIsDisplayed();
this.closeButton.click();
BrowserActions.click(this.closeButton);
return this;
}
@@ -97,8 +96,7 @@ export class UploadDialog {
}
cancelUploads() {
BrowserVisibility.waitUntilElementIsVisible(this.cancelUploadsElement);
this.cancelUploadsElement.click();
BrowserActions.click(this.cancelUploadsElement);
return this;
}
@@ -141,14 +139,12 @@ export class UploadDialog {
}
clickOnConfirmationDialogYesButton() {
BrowserVisibility.waitUntilElementIsVisible(this.confirmationDialogYesButton);
this.confirmationDialogYesButton.click();
BrowserActions.click(this.confirmationDialogYesButton);
return this;
}
clickOnConfirmationDialogNoButton() {
BrowserVisibility.waitUntilElementIsVisible(this.confirmationDialogNoButton);
this.confirmationDialogNoButton.click();
BrowserActions.click(this.confirmationDialogNoButton);
return this;
}
@@ -173,14 +169,12 @@ export class UploadDialog {
}
minimizeUploadDialog() {
BrowserVisibility.waitUntilElementIsVisible(this.minimizeButton);
this.minimizeButton.click();
BrowserActions.click(this.minimizeButton);
return this;
}
maximizeUploadDialog() {
BrowserVisibility.waitUntilElementIsVisible(this.maximizeButton);
this.maximizeButton.click();
BrowserActions.click(this.maximizeButton);
return this;
}
@@ -190,8 +184,7 @@ export class UploadDialog {
}
getTooltip() {
BrowserVisibility.waitUntilElementIsVisible(this.errorTooltip);
return this.errorTooltip.getText();
return BrowserActions.getText(this.errorTooltip);
}
}
+7 -139
View File
@@ -16,7 +16,7 @@
*/
import { browser, by, element, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class FilePreviewPage {
@@ -44,111 +44,23 @@ export class FilePreviewPage {
return deferred.promise;
}
checkCloseButton() {
BrowserVisibility.waitUntilElementIsVisible(element(by.css(`i[id='viewer-close-button']`)));
}
checkOriginalSizeButton() {
BrowserVisibility.waitUntilElementIsVisible(element(by.cssContainingText(`div[id='viewer-scale-page-button'] > i `, `zoom_out_map`)));
}
checkZoomInButton() {
BrowserVisibility.waitUntilElementIsVisible(element(by.css(`div[id='viewer-zoom-in-button']`)));
}
checkZoomOutButton() {
BrowserVisibility.waitUntilElementIsVisible(element(by.css(`div[id='viewer-zoom-out-button']`)));
}
checkPreviousPageButton() {
BrowserVisibility.waitUntilElementIsVisible(element(by.css(`div[id='viewer-previous-page-button']`)));
}
checkNextPageButton() {
BrowserVisibility.waitUntilElementIsVisible(element(by.css(`div[id='viewer-next-page-button']`)));
}
checkDownloadButton() {
BrowserVisibility.waitUntilElementIsVisible(element(by.css(`button[id='viewer-download-button']`)));
}
checkCurrentPageNumber(pageNumber) {
BrowserVisibility.waitUntilElementIsVisible(element(by.css(`input[id='viewer-pagenumber-input'][ng-reflect-value="${pageNumber}"]`)));
}
checkText(pageNumber, text) {
const allPages = element.all(by.css(`div[class='canvasWrapper'] > canvas`)).first();
const pageLoaded = element(by.css(`div[id="pageContainer${pageNumber}"][data-loaded='true']`));
const textLayerLoaded = element(by.css(`div[id="pageContainer${pageNumber}"] div[class='textLayer'] > div`));
const specificText = element(by.cssContainingText(`div[id="pageContainer${pageNumber}"] div[class='textLayer'] > div`, text));
BrowserVisibility.waitUntilElementIsVisible(allPages);
BrowserVisibility.waitUntilElementIsVisible(pageLoaded);
BrowserVisibility.waitUntilElementIsVisible(textLayerLoaded);
BrowserVisibility.waitUntilElementIsVisible(specificText);
}
goToNextPage() {
const nextPageIcon = element(by.css(`div[id='viewer-next-page-button']`));
BrowserVisibility.waitUntilElementIsVisible(nextPageIcon);
nextPageIcon.click();
}
goToPreviousPage() {
const previousPageIcon = element(by.css(`div[id='viewer-previous-page-button']`));
BrowserVisibility.waitUntilElementIsVisible(previousPageIcon);
previousPageIcon.click();
}
goToPage(page) {
const pageInput = element(by.css(`input[id='viewer-pagenumber-input']`));
BrowserVisibility.waitUntilElementIsVisible(pageInput);
pageInput.clear();
pageInput.sendKeys(page);
pageInput.sendKeys(protractor.Key.ENTER);
}
closePreviewWithButton() {
BrowserVisibility.waitUntilElementIsVisible(this.closeButton);
this.closeButton.click();
}
closePreviewWithEsc(fileName) {
const filePreview = element.all(by.css(`div[class='canvasWrapper'] > canvas`)).first();
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
BrowserVisibility.waitUntilElementIsVisible(element(by.cssContainingText(`div[data-automation-id="text_${fileName}"]`, fileName)));
BrowserVisibility.waitUntilElementIsNotOnPage(filePreview);
}
clickDownload(fileName) {
const downloadButton = element(by.css(`button[id='viewer-download-button']`));
BrowserVisibility.waitUntilElementIsVisible(downloadButton);
downloadButton.click();
BrowserActions.clickExecuteScript('button[data-automation-id="adf-toolbar-back"]');
}
clickZoomIn() {
const zoomInButton = element(by.css(`div[id='viewer-zoom-in-button']`));
BrowserVisibility.waitUntilElementIsVisible(zoomInButton);
zoomInButton.click();
BrowserActions.click(zoomInButton);
}
clickZoomOut() {
const zoomOutButton = element(by.css(`div[id='viewer-zoom-out-button']`));
BrowserVisibility.waitUntilElementIsVisible(zoomOutButton);
zoomOutButton.click();
BrowserActions.click(zoomOutButton);
}
clickActualSize() {
const actualSizeButton = element(by.css(`div[id='viewer-scale-page-button']`));
BrowserVisibility.waitUntilElementIsVisible(actualSizeButton);
actualSizeButton.click();
BrowserActions.click(actualSizeButton);
}
checkCanvasWidth() {
@@ -182,7 +94,7 @@ export class FilePreviewPage {
}
});
this.checkCanvasHeight().then( (height) => {
this.checkCanvasHeight().then((height) => {
actualHeight = height;
if (actualHeight && zoomedInHeight) {
expect(zoomedInHeight).toBeGreaterThan(actualHeight);
@@ -198,7 +110,7 @@ export class FilePreviewPage {
}
});
this.checkCanvasHeight().then( (height) => {
this.checkCanvasHeight().then((height) => {
zoomedInHeight = height;
if (actualHeight && zoomedInHeight) {
expect(zoomedInHeight).toBeGreaterThan(actualHeight);
@@ -256,48 +168,4 @@ export class FilePreviewPage {
}
});
}
/*
zoomOut() {
const canvasLayer = element.all(by.css(`div[class='canvasWrapper'] > canvas`)).first();
const textLayer = element(by.css(`div[id*='pageContainer'] div[class='textLayer'] > div`));
BrowserVisibility.waitUntilElementIsVisible(canvasLayer);
BrowserVisibility.waitUntilElementIsVisible(textLayer);
let actualWidth;
let zoomedOutWidth;
let actualHeight;
let zoomedOutHeight;
this.checkCanvasWidth().then((width) => {
actualWidth = width;
if (actualWidth && zoomedOutWidth) {
expect(zoomedOutWidth).toBeLessThan(actualWidth);
}
});
this.checkCanvasHeight().then((height) => {
actualHeight = height;
if (actualHeight && zoomedOutHeight) {
expect(zoomedOutHeight).toBeLessThan(actualHeight);
}
});
this.clickZoomOut();
this.checkCanvasWidth().then((width) => {
zoomedOutWidth = width;
if (actualWidth && zoomedOutWidth) {
expect(zoomedOutWidth).toBeLessThan(actualWidth);
}
});
this.checkCanvasHeight().then(() => {
if (actualHeight && zoomedOutHeight) {
expect(zoomedOutHeight).toBeLessThan(actualHeight);
}
});
}
*/
}
+6 -10
View File
@@ -16,11 +16,11 @@
*/
import { element, by } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class LockFilePage {
cancelButton = element(by.css('button[data-automation-id="lock-dialog-btn-cancel"]'));
cancelButton = element(by.css('button[data-automation-id="lock-dialog-btn-cancel"]'));
saveButton = element(by.cssContainingText('button span', 'Save'));
lockFileCheckboxText = element(by.cssContainingText('mat-checkbox label span', ' Lock file '));
lockFileCheckbox = element(by.css('mat-checkbox[data-automation-id="adf-lock-node-checkbox"]'));
@@ -39,22 +39,18 @@ export class LockFilePage {
}
clickCancelButton() {
BrowserVisibility.waitUntilElementIsClickable(this.cancelButton);
return this.cancelButton.click();
BrowserActions.click(this.cancelButton);
}
clickLockFileCheckbox() {
BrowserVisibility.waitUntilElementIsClickable(this.lockFileCheckbox);
return this.lockFileCheckbox.click();
BrowserActions.click(this.lockFileCheckbox);
}
clickSaveButton() {
BrowserVisibility.waitUntilElementIsClickable(this.saveButton);
return this.saveButton.click();
BrowserActions.click(this.saveButton);
}
clickAllowOwnerCheckbox() {
BrowserVisibility.waitUntilElementIsClickable(this.allowOwnerCheckbox);
return this.allowOwnerCheckbox.click();
BrowserActions.click(this.allowOwnerCheckbox);
}
}
+4 -7
View File
@@ -15,9 +15,9 @@
* limitations under the License.
*/
import { element, by, browser, protractor } from 'protractor';
import { element, by, browser } from 'protractor';
import { DateUtil } from '../../../util/dateUtil';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class DatePickerPage {
@@ -56,15 +56,12 @@ export class DatePickerPage {
selectTodayDate() {
this.checkDatePickerIsDisplayed();
const todayDate = element(by.css('.mat-calendar-body-today'));
BrowserVisibility.waitUntilElementIsClickable(todayDate);
todayDate.click();
BrowserActions.click(todayDate);
return this;
}
closeDatePicker() {
browser.controlFlow().execute(async () => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
});
BrowserActions.closeMenuAndDialogs();
this.checkDatePickerIsNotDisplayed();
}
+37 -72
View File
@@ -16,7 +16,7 @@
*/
import { browser, by, element, promise } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class MetadataViewPage {
@@ -37,7 +37,6 @@ export class MetadataViewPage {
informationButton = element(by.css(`button[data-automation-id='meta-data-card-toggle-expand']`));
informationSpan = element(by.css(`span[data-automation-id='meta-data-card-toggle-expand-label']`));
informationIcon = element(by.css(`span[data-automation-id='meta-data-card-toggle-expand-label'] ~ mat-icon`));
rightChevron = element(by.css(`div[class*='header-pagination-after']`));
displayEmptySwitch = element(by.id(`adf-metadata-empty`));
readonlySwitch = element(by.id(`adf-metadata-readonly`));
multiSwitch = element(by.id(`adf-metadata-multi`));
@@ -48,77 +47,63 @@ export class MetadataViewPage {
applyAspect = element(by.cssContainingText(`button span.mat-button-wrapper`, 'Apply Aspect'));
getTitle(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.title);
return this.title.getText();
return BrowserActions.getText(this.title);
}
getExpandedAspectName(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.expandedAspect);
return this.expandedAspect.element(this.aspectTitle).getText();
return BrowserActions.getText(this.expandedAspect.element(this.aspectTitle));
}
getName(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.name);
return this.name.getText();
return BrowserActions.getText(this.name);
}
getCreator(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.creator);
return this.creator.getText();
return BrowserActions.getText(this.creator);
}
getCreatedDate(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.createdDate);
return this.createdDate.getText();
return BrowserActions.getText(this.createdDate);
}
getModifier(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.modifier);
return this.modifier.getText();
return BrowserActions.getText(this.modifier);
}
getModifiedDate(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.modifiedDate);
return this.modifiedDate.getText();
return BrowserActions.getText(this.modifiedDate);
}
getMimetypeName(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.mimetypeName);
return this.mimetypeName.getText();
return BrowserActions.getText(this.mimetypeName);
}
getSize(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.size);
return this.size.getText();
return BrowserActions.getText(this.size);
}
getDescription(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.description);
return this.description.getText();
return BrowserActions.getText(this.description);
}
getAuthor(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.author);
return this.author.getText();
return BrowserActions.getText(this.author);
}
getTitleProperty(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.titleProperty);
return this.titleProperty.getText();
getTitleProperty() {
BrowserActions.getText(this.titleProperty);
}
editIconIsDisplayed(): promise.Promise<boolean> {
return BrowserVisibility.waitUntilElementIsVisible(this.editIcon);
}
editIconIsNotDisplayed(): promise.Promise<any> {
return BrowserVisibility.waitUntilElementIsNotVisible(this.editIcon);
}
editIconClick(): promise.Promise<void> {
editIconIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.editIcon);
BrowserVisibility.waitUntilElementIsClickable(this.editIcon);
return this.editIcon.click();
}
editIconIsNotDisplayed() {
BrowserVisibility.waitUntilElementIsNotVisible(this.editIcon);
}
editIconClick() {
BrowserActions.clickExecuteScript('button[data-automation-id="meta-data-card-toggle-edit"]');
}
informationButtonIsDisplayed() {
@@ -133,30 +118,22 @@ export class MetadataViewPage {
clickOnInformationButton(): MetadataViewPage {
this.informationButtonIsDisplayed();
browser.sleep(600);
this.informationButton.click();
BrowserActions.click(this.informationButton);
return this;
}
getInformationButtonText(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.informationSpan);
return this.informationSpan.getText();
return BrowserActions.getText(this.informationSpan);
}
getInformationIconText(): promise.Promise<string> {
BrowserVisibility.waitUntilElementIsVisible(this.informationIcon);
return this.informationIcon.getText();
return BrowserActions.getText(this.informationIcon);
}
clickOnPropertiesTab(): MetadataViewPage {
BrowserActions.closeMenuAndDialogs();
const propertiesTab = element(by.cssContainingText(`.adf-info-drawer-layout-content div.mat-tab-labels div .mat-tab-label-content`, `Properties`));
BrowserVisibility.waitUntilElementIsVisible(propertiesTab);
propertiesTab.click();
return this;
}
clickRightChevron(): MetadataViewPage {
BrowserVisibility.waitUntilElementIsVisible(this.rightChevron);
this.rightChevron.click();
BrowserActions.click(propertiesTab);
return this;
}
@@ -164,10 +141,6 @@ export class MetadataViewPage {
return this.editIcon.getAttribute('title');
}
getInformationButtonTooltip(): promise.Promise<string> {
return this.informationSpan.getAttribute('title');
}
editPropertyIconIsDisplayed(propertyName: string) {
const editPropertyIcon = element(by.css('mat-icon[data-automation-id="card-textitem-edit-icon-' + propertyName + '"]'));
BrowserVisibility.waitUntilElementIsPresent(editPropertyIcon);
@@ -180,14 +153,12 @@ export class MetadataViewPage {
clickUpdatePropertyIcon(propertyName: string): promise.Promise<void> {
const updatePropertyIcon = element(by.css('mat-icon[data-automation-id="card-textitem-update-' + propertyName + '"]'));
BrowserVisibility.waitUntilElementIsVisible(updatePropertyIcon);
return updatePropertyIcon.click();
return BrowserActions.click(updatePropertyIcon);
}
clickClearPropertyIcon(propertyName: string): promise.Promise<void> {
const clearPropertyIcon = element(by.css('mat-icon[data-automation-id="card-textitem-reset-' + propertyName + '"]'));
BrowserVisibility.waitUntilElementIsVisible(clearPropertyIcon);
return clearPropertyIcon.click();
return BrowserActions.click(clearPropertyIcon);
}
enterPropertyText(propertyName: string, text: string | number): MetadataViewPage {
@@ -206,7 +177,7 @@ export class MetadataViewPage {
presetField.clear();
presetField.sendKeys(text);
const applyButton = element(by.css('button[id="adf-metadata-aplly"]'));
applyButton.click();
BrowserActions.click(applyButton);
return this;
}
@@ -223,8 +194,7 @@ export class MetadataViewPage {
const propertyType = type || 'textitem';
const textField = element(by.css('span[data-automation-id="card-' + propertyType + '-value-' + propertyName + '"]'));
BrowserVisibility.waitUntilElementIsVisible(textField);
return textField.getText();
return BrowserActions.getText(textField);
}
clearPropertyIconIsDisplayed(propertyName: string) {
@@ -234,8 +204,7 @@ export class MetadataViewPage {
clickEditPropertyIcons(propertyName: string) {
const editPropertyIcon = element(by.css('mat-icon[data-automation-id="card-textitem-edit-icon-' + propertyName + '"]'));
BrowserVisibility.waitUntilElementIsClickable(editPropertyIcon);
editPropertyIcon.click();
BrowserActions.click(editPropertyIcon);
}
getPropertyIconTooltip(propertyName: string): promise.Promise<string> {
@@ -245,8 +214,7 @@ export class MetadataViewPage {
clickMetadataGroup(groupName: string) {
const group = element(by.css('mat-expansion-panel[data-automation-id="adf-metadata-group-' + groupName + '"]'));
BrowserVisibility.waitUntilElementIsVisible(group);
group.click();
BrowserActions.click(group);
}
checkMetadataGroupIsPresent(groupName: string): promise.Promise<boolean> {
@@ -273,8 +241,7 @@ export class MetadataViewPage {
getMetadataGroupTitle(groupName: string): promise.Promise<string> {
const group = element(by.css('mat-expansion-panel[data-automation-id="adf-metadata-group-' + groupName + '"] > mat-expansion-panel-header > span > mat-panel-title'));
BrowserVisibility.waitUntilElementIsPresent(group);
return group.getText();
return BrowserActions.getText(group);
}
checkPropertyIsVisible(propertyName: string, type: string) {
@@ -288,8 +255,7 @@ export class MetadataViewPage {
}
clickCloseButton() {
BrowserVisibility.waitUntilElementIsVisible(this.closeButton);
this.closeButton.click();
BrowserActions.click(this.closeButton);
}
typeAspectName(aspectName) {
@@ -299,7 +265,6 @@ export class MetadataViewPage {
}
clickApplyAspect() {
BrowserVisibility.waitUntilElementIsVisible(this.applyAspect);
this.applyAspect.click();
BrowserActions.click(this.applyAspect);
}
}
+79 -121
View File
@@ -20,24 +20,18 @@ import { ProcessServicesPage } from './process-services/processServicesPage';
import { AppListCloudPage } from '@alfresco/adf-testing';
import TestConfig = require('../../test.config');
import { PeopleGroupCloudComponentPage } from './demo-shell/process-services/peopleGroupCloudComponentPage';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class NavigationBarPage {
linkListContainer = element(by.css('.adf-sidenav-linklist'));
contentServicesButton = element(by.css('a[data-automation-id="Content Services"]'));
dataTableButton = element(by.css('a[data-automation-id="Datatable"]'));
dataTableNestedButton = element(by.css('button[data-automation-id="Datatable"]'));
dataTableCopyContentButton = element(by.css('button[data-automation-id="Copy Content"]'));
dataTableDragAndDropButton = element(by.css('button[data-automation-id="Drag and Drop"]'));
taskListButton = element(by.css("a[data-automation-id='Task List']"));
configEditorButton = element(by.css('a[data-automation-id="Configuration Editor"]'));
processServicesButton = element(by.css('a[data-automation-id="Process Services"]'));
processServicesNestedButton = element(by.css('button[data-automation-id="App"]'));
processServicesCloudButton = element(by.css('a[data-automation-id="Process Cloud"]'));
processServicesCloudHomeButton = element(by.css('button[data-automation-id="Home"]'));
loginButton = element(by.css('a[data-automation-id="Login"]'));
trashcanButton = element(by.css('a[data-automation-id="Trashcan"]'));
overlayViewerButton = element(by.css('a[data-automation-id="Overlay Viewer"]'));
themeButton = element(by.css('button[data-automation-id="theme menu"]'));
themeMenuContent = element(by.css('div[class*="mat-menu-panel"]'));
@@ -45,156 +39,138 @@ export class NavigationBarPage {
cardViewButton = element(by.cssContainingText('.adf-sidenav-menu-label', 'CardView'));
languageMenuButton = element(by.css('button[data-automation-id="language-menu-button"]'));
appTitle = element(by.css('.adf-app-title'));
headerDataButton = element(by.css('a[data-automation-id="Header Data"]'));
menuButton = element(by.css('button[data-automation-id="adf-menu-icon"]'));
formButton = element(by.css('button[data-automation-id="Form"]'));
treeViewButton = element(by.css('a[data-automation-id="Tree View"]'));
iconsButton = element(by.css('a[data-automation-id="Icons"]'));
customSourcesButton = element(by.css('a[data-automation-id="Custom Sources"]'));
settingsButton = element(by.css('a[data-automation-id="Settings"]'));
peopleGroupCloudButton = element(by.css('button[data-automation-id="People/Group Cloud"]'));
aboutButton = element(by.css('a[data-automation-id="About"]'));
tagButton = element.all(by.css('a[data-automation-id="Tag"]'));
clickTagButton() {
BrowserVisibility.waitUntilElementIsVisible(this.tagButton);
this.tagButton.click();
clickMenuButton(title) {
BrowserActions.clickExecuteScript(`a[data-automation-id="${title}"]`);
}
navigateToDatatable() {
BrowserVisibility.waitUntilElementIsVisible(this.dataTableButton);
this.dataTableButton.click();
BrowserVisibility.waitUntilElementIsVisible(this.dataTableNestedButton);
this.dataTableNestedButton.click();
async clickTagButton() {
this.clickMenuButton('Tag');
}
navigateToCopyContentDatatable() {
BrowserVisibility.waitUntilElementIsVisible(this.dataTableButton);
this.dataTableButton.click();
BrowserVisibility.waitUntilElementIsVisible(this.dataTableCopyContentButton);
this.dataTableCopyContentButton.click();
async navigateToDatatable() {
this.clickMenuButton('Datatable');
BrowserActions.click(this.dataTableNestedButton);
}
navigateToDragAndDropDatatable() {
BrowserVisibility.waitUntilElementIsVisible(this.dataTableButton);
this.dataTableButton.click();
BrowserVisibility.waitUntilElementIsVisible(this.dataTableDragAndDropButton);
this.dataTableDragAndDropButton.click();
async navigateToCopyContentDatatable() {
this.clickMenuButton('Datatable');
BrowserActions.click(this.dataTableCopyContentButton);
}
clickContentServicesButton() {
BrowserVisibility.waitUntilElementIsVisible(this.contentServicesButton);
this.contentServicesButton.click();
async navigateToDragAndDropDatatable() {
this.clickMenuButton('Datatable');
BrowserActions.click(this.dataTableDragAndDropButton);
}
clickTaskListButton() {
BrowserVisibility.waitUntilElementIsVisible(this.taskListButton);
this.taskListButton.click();
async clickContentServicesButton() {
this.clickMenuButton('Content Services');
}
clickConfigEditorButton() {
BrowserVisibility.waitUntilElementIsVisible(this.configEditorButton);
this.configEditorButton.click();
async clickTaskListButton() {
this.clickMenuButton('Task List');
}
async clickHomeButton() {
this.clickMenuButton('Home');
}
async clickConfigEditorButton() {
this.clickMenuButton('Configuration Editor');
}
navigateToProcessServicesPage() {
BrowserVisibility.waitUntilElementIsVisible(this.processServicesButton);
this.processServicesButton.click();
BrowserVisibility.waitUntilElementIsVisible(this.processServicesNestedButton);
this.processServicesNestedButton.click();
this.clickMenuButton('Process Services');
BrowserActions.click(this.processServicesNestedButton);
return new ProcessServicesPage();
}
navigateToProcessServicesCloudPage() {
BrowserVisibility.waitUntilElementIsVisible(this.processServicesCloudButton);
this.processServicesCloudButton.click();
BrowserVisibility.waitUntilElementIsVisible(this.processServicesCloudHomeButton);
this.processServicesCloudHomeButton.click();
this.clickMenuButton('Process Cloud');
BrowserActions.click(this.processServicesCloudHomeButton);
return new AppListCloudPage();
}
navigateToPeopleGroupCloudPage() {
BrowserVisibility.waitUntilElementIsVisible(this.processServicesCloudButton);
this.processServicesCloudButton.click();
BrowserVisibility.waitUntilElementIsVisible(this.peopleGroupCloudButton);
this.peopleGroupCloudButton.click();
this.clickMenuButton('Process Cloud');
BrowserActions.click(this.peopleGroupCloudButton);
return new PeopleGroupCloudComponentPage();
}
navigateToSettingsPage() {
BrowserVisibility.waitUntilElementIsVisible(this.settingsButton);
this.settingsButton.click();
async navigateToSettingsPage() {
this.clickMenuButton('Settings');
return new AppListCloudPage();
}
clickLoginButton() {
BrowserVisibility.waitUntilElementIsVisible(this.loginButton);
this.loginButton.click();
async clickLoginButton() {
this.clickMenuButton('Login');
}
clickTrashcanButton() {
BrowserVisibility.waitUntilElementIsVisible(this.trashcanButton);
this.trashcanButton.click();
async clickTrashcanButton() {
this.clickMenuButton('Trashcan');
}
clickOverlayViewerButton() {
BrowserVisibility.waitUntilElementIsVisible(this.overlayViewerButton);
this.overlayViewerButton.click();
async clickOverlayViewerButton() {
this.clickMenuButton('Overlay Viewer');
return this;
}
clickThemeButton() {
BrowserVisibility.waitUntilElementIsVisible(this.themeButton);
this.themeButton.click();
async clickThemeButton() {
BrowserActions.closeMenuAndDialogs();
BrowserActions.click(this.themeButton);
BrowserVisibility.waitUntilElementIsVisible(this.themeMenuContent);
}
clickOnSpecificThemeButton(themeName) {
async clickOnSpecificThemeButton(themeName) {
const themeElement = element(by.css(`button[data-automation-id="${themeName}"]`));
BrowserVisibility.waitUntilElementIsVisible(themeElement);
BrowserVisibility.waitUntilElementIsClickable(themeElement);
themeElement.click();
BrowserActions.click(themeElement);
}
clickLogoutButton() {
BrowserVisibility.waitUntilElementIsVisible(this.logoutButton);
this.logoutButton.click();
async clickLogoutButton() {
BrowserActions.closeMenuAndDialogs();
BrowserActions.click(this.logoutButton);
}
clickCardViewButton() {
BrowserVisibility.waitUntilElementIsVisible(this.cardViewButton);
this.cardViewButton.click();
async clickCardViewButton() {
BrowserActions.closeMenuAndDialogs();
BrowserActions.click(this.cardViewButton);
}
openContentServicesFolder(folderId) {
return browser.get(TestConfig.adf.url + '/files/' + folderId);
return BrowserActions.getUrl(TestConfig.adf.url + '/files/' + folderId);
}
chooseLanguage(language) {
const buttonLanguage = element(by.xpath(`//adf-language-menu//button[contains(text(), '${language}')]`));
BrowserVisibility.waitUntilElementIsVisible(buttonLanguage);
buttonLanguage.click();
BrowserActions.click(buttonLanguage);
}
openLanguageMenu() {
BrowserVisibility.waitUntilElementIsVisible(this.languageMenuButton);
this.languageMenuButton.click();
BrowserActions.click(this.languageMenuButton);
BrowserVisibility.waitUntilElementIsVisible(this.appTitle);
}
clickHeaderDataButton() {
BrowserVisibility.waitUntilElementIsVisible(this.headerDataButton);
BrowserVisibility.waitUntilElementIsClickable(this.headerDataButton);
return this.headerDataButton.click();
async clickHeaderDataButton() {
this.clickMenuButton('Header Data');
}
clickAboutButton() {
BrowserVisibility.waitUntilElementIsClickable(this.aboutButton);
return this.aboutButton.click();
async clickAboutButton() {
this.clickMenuButton('About');
}
checkAboutButtonIsDisplayed() {
return BrowserVisibility.waitUntilElementIsVisible(this.aboutButton);
async clickTreeViewButton() {
this.clickMenuButton('Tree View');
}
async navigateToIconsPage() {
this.clickMenuButton('Icons');
}
async navigateToCustomSources() {
this.clickMenuButton('Custom Sources');
}
checkMenuButtonIsDisplayed() {
@@ -212,20 +188,17 @@ export class NavigationBarPage {
clickAppLogo(logoTitle) {
const appLogo = element(by.css('a[title="' + logoTitle + '"]'));
BrowserVisibility.waitUntilElementIsVisible(appLogo);
appLogo.click();
BrowserActions.click(appLogo);
}
clickAppLogoText() {
BrowserVisibility.waitUntilElementIsVisible(this.appTitle);
this.appTitle.click();
BrowserActions.click(this.appTitle);
}
clickFormButton() {
BrowserVisibility.waitUntilElementIsVisible(this.processServicesButton);
this.processServicesButton.click();
BrowserVisibility.waitUntilElementIsVisible(this.formButton);
return this.formButton.click();
BrowserActions.closeMenuAndDialogs();
BrowserActions.click(this.processServicesButton);
BrowserActions.click(this.formButton);
}
checkLogoTooltip(logoTooltipTitle) {
@@ -233,32 +206,17 @@ export class NavigationBarPage {
BrowserVisibility.waitUntilElementIsVisible(logoTooltip);
}
openViewer(nodeId) {
browser.get(TestConfig.adf.url + `/files(overlay:files/${nodeId}/view`);
async openViewer(nodeId) {
await BrowserActions.getUrl(TestConfig.adf.url + `/files(overlay:files/${nodeId}/view`);
return this;
}
goToSite(site) {
browser.get(TestConfig.adf.url + `/files/${site.entry.guid}/display/list`);
async goToSite(site) {
await BrowserActions.getUrl(TestConfig.adf.url + `/files/${site.entry.guid}/display/list`);
}
clickTreeViewButton() {
BrowserVisibility.waitUntilElementIsVisible(this.treeViewButton);
this.treeViewButton.click();
}
navigateToIconsPage() {
BrowserVisibility.waitUntilElementIsVisible(this.iconsButton);
this.iconsButton.click();
}
navigateToCustomSources() {
BrowserVisibility.waitUntilElementIsVisible(this.customSourcesButton);
this.customSourcesButton.click();
}
scrollTo(el: ElementFinder) {
browser.executeScript(`return arguments[0].scrollTop = arguments[1].offsetTop`, this.linkListContainer.getWebElement(), el.getWebElement());
async scrollTo(el: ElementFinder) {
await browser.executeScript(`return arguments[0].scrollTop = arguments[1].offsetTop`, this.linkListContainer.getWebElement(), el.getWebElement());
return this;
}
}
+14 -17
View File
@@ -15,8 +15,8 @@
* limitations under the License.
*/
import { element, by, protractor, browser, until } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { element, by, protractor, browser } from 'protractor';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class NotificationPage {
@@ -33,18 +33,16 @@ export class NotificationPage {
notificationConfig = element(by.css('p[data-automation-id="notification-custom-object"]'));
checkNotifyContains(message) {
BrowserVisibility.waitUntilElementIsVisible(element(by.cssContainingText('simple-snack-bar', message)));
BrowserVisibility.waitUntilElementIsVisible(element.all(by.cssContainingText('simple-snack-bar', message)).first());
return this;
}
goToNotificationsPage() {
BrowserVisibility.waitUntilElementIsVisible(this.notificationsPage);
this.notificationsPage.click();
BrowserActions.click(this.notificationsPage);
}
getConfigObject() {
BrowserVisibility.waitUntilElementIsVisible(this.notificationConfig);
return this.notificationConfig.getText();
return BrowserActions.getText(this.notificationConfig);
}
checkNotificationSnackBarIsDisplayed() {
@@ -77,28 +75,28 @@ export class NotificationPage {
selectHorizontalPosition(selectedItem) {
const selectItem = element(by.cssContainingText('span[class="mat-option-text"]', selectedItem));
this.horizontalPosition.click();
BrowserActions.click(this.horizontalPosition);
BrowserVisibility.waitUntilElementIsVisible(this.selectionDropDown);
selectItem.click();
BrowserActions.click(selectItem);
}
selectVerticalPosition(selectedItem) {
const selectItem = element(by.cssContainingText('span[class="mat-option-text"]', selectedItem));
this.verticalPosition.click();
BrowserActions.click(this.verticalPosition);
BrowserVisibility.waitUntilElementIsVisible(this.selectionDropDown);
selectItem.click();
BrowserActions.click(selectItem);
}
selectDirection(selectedItem) {
const selectItem = element(by.cssContainingText('span[class="mat-option-text"]', selectedItem));
this.direction.click();
BrowserActions.click(this.direction);
BrowserVisibility.waitUntilElementIsVisible(this.selectionDropDown);
selectItem.click();
BrowserActions.click(selectItem);
}
clickNotificationButton() {
const button = browser.wait(until.elementLocated(by.css('button[data-automation-id="notification-custom-config-button"]')));
button.click();
const button = element(by.css('button[data-automation-id="notification-custom-config-button"]'));
BrowserActions.click(button);
}
checkActionEvent() {
@@ -107,8 +105,7 @@ export class NotificationPage {
}
clickActionToggle() {
BrowserVisibility.waitUntilElementIsVisible(this.actionToggle);
this.actionToggle.click();
BrowserActions.click(this.actionToggle);
}
clickActionButton() {
+20 -30
View File
@@ -18,7 +18,7 @@
import { element, by } from 'protractor';
import { DataTableComponentPage } from '@alfresco/adf-testing';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
const column = {
role: 'Role'
@@ -26,11 +26,13 @@ const column = {
export class PermissionsPage {
dataTableComponentPage: DataTableComponentPage = new DataTableComponentPage();
addPermissionButton = element(by.css("button[data-automation-id='adf-add-permission-button']"));
addPermissionDialog = element(by.css('adf-add-permission-dialog'));
searchUserInput = element(by.id('searchInput'));
searchResults = element.all(by.id('adf-search-results-content')).first();
addButton = element(by.id('add-permission-dialog-confirm-button'));
addButton = element(by.id('add-permission-dialog-confirm-button'));
permissionInheritedButton = element.all(by.css("div[class='adf-inherit_permission_button'] button")).first();
permissionInheritedButtonText = this.permissionInheritedButton.element(by.css('span'));
noPermissions = element(by.css('div[id="adf-no-permissions-template"]'));
@@ -42,8 +44,7 @@ export class PermissionsPage {
closeButton = element(by.id('add-permission-dialog-close-button'));
clickCloseButton() {
BrowserVisibility.waitUntilElementIsClickable(this.closeButton);
this.closeButton.click();
BrowserActions.click(this.closeButton);
}
checkAddPermissionButtonIsDisplayed() {
@@ -51,8 +52,7 @@ export class PermissionsPage {
}
clickAddPermissionButton() {
BrowserVisibility.waitUntilElementIsClickable(this.addPermissionButton);
return this.addPermissionButton.click();
BrowserActions.clickExecuteScript('button[data-automation-id="adf-add-permission-button"]');
}
checkAddPermissionDialogIsDisplayed() {
@@ -64,9 +64,7 @@ export class PermissionsPage {
}
searchUserOrGroup(name) {
BrowserVisibility.waitUntilElementIsClickable(this.searchUserInput);
this.searchUserInput.clear();
return this.searchUserInput.sendKeys(name);
BrowserActions.clearSendKeys(this.searchUserInput, name);
}
checkResultListIsDisplayed() {
@@ -75,10 +73,8 @@ export class PermissionsPage {
clickUserOrGroup(name) {
const userOrGroupName = element(by.cssContainingText('mat-list-option .mat-list-text', name));
BrowserVisibility.waitUntilElementIsVisible(userOrGroupName);
userOrGroupName.click();
BrowserVisibility.waitUntilElementIsVisible(this.addButton);
return this.addButton.click();
BrowserActions.click(userOrGroupName);
return BrowserActions.click(this.addButton);
}
checkUserOrGroupIsAdded(name) {
@@ -96,13 +92,12 @@ export class PermissionsPage {
}
clickPermissionInheritedButton() {
BrowserVisibility.waitUntilElementIsClickable(this.permissionInheritedButton);
return this.permissionInheritedButton.click();
return BrowserActions.click(this.permissionInheritedButton);
}
clickDeletePermissionButton() {
BrowserVisibility.waitUntilElementIsClickable(this.deletePermissionButton);
return this.deletePermissionButton.click();
return BrowserActions.click(this.deletePermissionButton);
}
checkNoPermissionsIsDisplayed() {
@@ -110,8 +105,7 @@ export class PermissionsPage {
}
getPermissionInheritedButtonText() {
BrowserVisibility.waitUntilElementIsClickable(this.permissionInheritedButton);
return this.permissionInheritedButtonText.getText();
return BrowserActions.getText(this.permissionInheritedButton);
}
checkPermissionsDatatableIsDisplayed() {
@@ -120,31 +114,27 @@ export class PermissionsPage {
getRoleCellValue(rowName) {
const locator = new DataTableComponentPage().getCellByRowContentAndColumn('Authority ID', rowName, column.role);
BrowserVisibility.waitUntilElementIsVisible(locator);
return locator.getText();
return BrowserActions.getText(locator);
}
clickRoleDropdown() {
BrowserVisibility.waitUntilElementIsVisible(this.roleDropdown);
return this.roleDropdown.click();
clickRoleDropdownByUserOrGroupName(name) {
const row = this.dataTableComponentPage.getRow('Authority ID', name);
return BrowserActions.click(row.element(by.id('adf-select-role-permission')));
}
getRoleDropdownOptions() {
BrowserVisibility.waitUntilElementIsVisible(this.roleDropdownOptions);
BrowserVisibility.waitUntilElementIsVisible(this.roleDropdownOptions.first());
return this.roleDropdownOptions;
}
selectOption(name) {
const selectProcessDropdown = element(by.cssContainingText('.mat-option-text', name));
BrowserVisibility.waitUntilElementIsVisible(selectProcessDropdown);
BrowserVisibility.waitUntilElementIsClickable(selectProcessDropdown);
selectProcessDropdown.click();
BrowserActions.click(selectProcessDropdown);
return this;
}
getAssignPermissionErrorText() {
BrowserVisibility.waitUntilElementIsVisible(this.assignPermissionError);
return this.assignPermissionError.getText();
return BrowserActions.getText(this.assignPermissionError);
}
checkPermissionContainerIsDisplayed() {
@@ -16,7 +16,7 @@
*/
import { element, by, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class AnalyticsPage {
@@ -27,16 +27,12 @@ export class AnalyticsPage {
getReport(title) {
const reportTitle = element(by.css(`mat-icon[data-automation-id="${title}_filter"]`));
BrowserVisibility.waitUntilElementIsVisible(reportTitle);
reportTitle.click();
BrowserActions.click(reportTitle);
}
changeReportTitle(title) {
BrowserVisibility.waitUntilElementIsVisible(this.toolbarTitleContainer);
BrowserVisibility.waitUntilElementIsClickable(this.toolbarTitleContainer);
this.toolbarTitleContainer.click();
BrowserVisibility.waitUntilElementIsVisible(this.toolbarTitleInput);
this.toolbarTitleInput.click();
BrowserActions.click(this.toolbarTitleContainer);
BrowserActions.click(this.toolbarTitleInput);
this.clearReportTitle();
this.toolbarTitleInput.sendKeys(title);
this.toolbarTitleInput.sendKeys(protractor.Key.ENTER);
@@ -54,8 +50,7 @@ export class AnalyticsPage {
}
getReportTitle() {
BrowserVisibility.waitUntilElementIsVisible(this.toolbarTitle);
return this.toolbarTitle.getText();
return BrowserActions.getText(this.toolbarTitle);
}
checkNoReportMessage() {
@@ -16,11 +16,11 @@
*/
import { element, by } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class AttachFormPage {
noFormMessage = element(by.id('adf-no-form-message'));
noFormMessage = element(by.id('adf-no-form-message'));
attachFormButton = element(by.id('adf-no-form-attach-form-button'));
completeButton = element(by.id('adf-no-form-complete-button'));
formDropdown = element(by.id('form_id'));
@@ -41,8 +41,7 @@ export class AttachFormPage {
}
clickAttachFormButton() {
BrowserVisibility.waitUntilElementIsVisible(this.attachFormButton);
return this.attachFormButton.click();
BrowserActions.click(this.attachFormButton);
}
checkDefaultFormTitleIsDisplayed(formTitle) {
@@ -60,8 +59,7 @@ export class AttachFormPage {
}
clickAttachFormDropdown() {
BrowserVisibility.waitUntilElementIsClickable(this.attachFormDropdown);
return this.attachFormDropdown.click();
BrowserActions.click(this.attachFormDropdown);
}
selectAttachFormOption(option) {
@@ -70,8 +68,7 @@ export class AttachFormPage {
}
clickCancelButton() {
BrowserVisibility.waitUntilElementIsVisible(this.cancelButton);
return this.cancelButton.click();
BrowserActions.click(this.cancelButton);
}
checkAttachFormButtonIsDisabled() {
@@ -20,7 +20,7 @@ import { element, by, protractor, browser } from 'protractor';
import TestConfig = require('../../../test.config');
import path = require('path');
import remote = require('selenium-webdriver/remote');
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class AttachmentListPage {
@@ -52,46 +52,42 @@ export class AttachmentListPage {
}
viewFile(name) {
BrowserActions.closeMenuAndDialogs();
BrowserVisibility.waitUntilElementIsVisible(element.all(by.css('div[data-automation-id="' + name + '"]')).first());
element.all(by.css('div[data-automation-id="' + name + '"]')).first().click();
BrowserVisibility.waitUntilElementIsVisible(this.buttonMenu);
this.buttonMenu.click();
BrowserVisibility.waitUntilElementIsVisible(this.viewButton);
BrowserActions.click(this.buttonMenu);
browser.driver.sleep(500);
this.viewButton.click();
BrowserActions.click(this.viewButton);
browser.driver.sleep(500);
return this;
}
removeFile(name) {
BrowserActions.closeMenuAndDialogs();
BrowserVisibility.waitUntilElementIsVisible(element.all(by.css('div[data-automation-id="' + name + '"]')).first());
element.all(by.css('div[data-automation-id="' + name + '"]')).first().click();
BrowserVisibility.waitUntilElementIsVisible(this.buttonMenu);
this.buttonMenu.click();
BrowserVisibility.waitUntilElementIsVisible(this.removeButton);
BrowserActions.click(this.buttonMenu);
browser.driver.sleep(500);
this.removeButton.click();
BrowserActions.click(this.removeButton);
browser.driver.sleep(500);
return this;
}
downloadFile(name) {
BrowserActions.closeMenuAndDialogs();
BrowserVisibility.waitUntilElementIsVisible(element.all(by.css('div[data-automation-id="' + name + '"]')).first());
element.all(by.css('div[data-automation-id="' + name + '"]')).first().click();
BrowserVisibility.waitUntilElementIsVisible(this.buttonMenu);
this.buttonMenu.click();
BrowserVisibility.waitUntilElementIsVisible(this.downloadButton);
BrowserActions.click(this.buttonMenu);
browser.driver.sleep(500);
this.downloadButton.click();
BrowserActions.click(this.downloadButton);
return this;
}
doubleClickFile(name) {
BrowserActions.closeMenuAndDialogs();
BrowserVisibility.waitUntilElementIsVisible(element.all(by.css('div[data-automation-id="' + name + '"]')).first());
const fileAttached = element.all(by.css('div[data-automation-id="' + name + '"]')).first();
BrowserVisibility.waitUntilElementIsVisible(fileAttached);
BrowserVisibility.waitUntilElementIsClickable(fileAttached);
fileAttached.click();
BrowserActions.click(fileAttached);
browser.actions().sendKeys(protractor.Key.ENTER).perform();
}
@@ -16,7 +16,7 @@
*/
import { element, by } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class ChecklistDialog {
@@ -27,24 +27,20 @@ export class ChecklistDialog {
addName(name) {
BrowserVisibility.waitUntilElementIsClickable(this.nameField);
this.nameField.clear();
this.nameField.sendKeys(name);
BrowserActions.clearSendKeys(this.nameField, name);
return this;
}
clickCreateChecklistButton() {
BrowserVisibility.waitUntilElementIsVisible(this.addChecklistButton);
this.addChecklistButton.click();
BrowserActions.click(this.addChecklistButton);
}
clickCancelButton() {
BrowserVisibility.waitUntilElementIsVisible(this.closeButton);
this.closeButton.click();
BrowserActions.click(this.closeButton);
}
getDialogTitle() {
BrowserVisibility.waitUntilElementIsVisible(this.dialogTitle);
return this.dialogTitle.getText();
return BrowserActions.getText(this.dialogTitle);
}
getNameFieldPlaceholder() {
@@ -16,7 +16,7 @@
*/
import { element, by, Key } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class StartTaskDialog {
@@ -24,10 +24,10 @@ export class StartTaskDialog {
dueDate = element(by.css('input[id="date_id"]'));
description = element(by.css('textarea[id="description_id"]'));
assignee = element(by.css('div#people-widget-content input'));
formDropDown = element(by.css('mat-select[id="form_id"]'));
startButton = element(by.css('button[id="button-start"]'));
startButtonEnabled = element(by.css('button[id="button-start"]:not(disabled)'));
cancelButton = element(by.css('button[id="button-cancel"]'));
formDropDown = element(by.css('mat-select[id="form_id"]'));
addName(userName) {
BrowserVisibility.waitUntilElementIsVisible(this.name);
@@ -57,8 +57,7 @@ export class StartTaskDialog {
selectAssigneeFromList(name) {
const assigneeRow = element(by.cssContainingText('mat-option span.adf-people-label-name', name));
BrowserVisibility.waitUntilElementIsVisible(assigneeRow);
assigneeRow.click();
BrowserActions.click(assigneeRow);
BrowserVisibility.waitUntilElementIsNotVisible(assigneeRow);
return this;
}
@@ -69,23 +68,18 @@ export class StartTaskDialog {
}
addForm(form) {
BrowserVisibility.waitUntilElementIsVisible(this.formDropDown);
this.formDropDown.click();
BrowserActions.click(this.formDropDown);
return this.selectForm(form);
}
selectForm(form) {
const option = element(by.cssContainingText('span[class*="mat-option-text"]', form));
BrowserVisibility.waitUntilElementIsVisible(option);
BrowserVisibility.waitUntilElementIsClickable(option);
option.click();
BrowserActions.click(option);
return this;
}
clickStartButton() {
BrowserVisibility.waitUntilElementIsVisible(this.startButton);
BrowserVisibility.waitUntilElementIsClickable(this.startButton);
return this.startButton.click();
return BrowserActions.click(this.startButton);
}
checkStartButtonIsEnabled() {
@@ -94,18 +88,16 @@ export class StartTaskDialog {
}
checkStartButtonIsDisabled() {
BrowserVisibility.waitUntilElementIsVisible(this.startButton.getAttribute('disabled'));
BrowserVisibility.waitUntilElementIsVisible(element(by.css('button[id="button-start"]:disabled')));
return this;
}
clickCancelButton() {
BrowserVisibility.waitUntilElementIsVisible(this.cancelButton);
BrowserVisibility.waitUntilElementIsClickable(this.cancelButton);
return this.cancelButton.click();
return BrowserActions.click(this.cancelButton);
}
blur(locator) {
locator.click();
BrowserActions.click(locator);
locator.sendKeys(Key.TAB);
return this;
}
@@ -17,7 +17,7 @@
import { by, element } from 'protractor';
import { DataTableComponentPage } from '@alfresco/adf-testing';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserActions } from '@alfresco/adf-testing';
export class FiltersPage {
@@ -25,14 +25,13 @@ export class FiltersPage {
dataTable = new DataTableComponentPage();
getActiveFilter() {
BrowserVisibility.waitUntilElementIsVisible(this.activeFilter);
return this.activeFilter.getText();
return BrowserActions.getText(this.activeFilter);
}
goToFilter(filterName) {
BrowserActions.closeMenuAndDialogs();
const filter = element(by.css(`span[data-automation-id="${filterName}_filter"]`));
BrowserVisibility.waitUntilElementIsVisible(filter);
filter.click();
BrowserActions.click(filter);
return this;
}
+17 -31
View File
@@ -16,7 +16,8 @@
*/
import { by, element } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
import { ElementFinder } from 'protractor/built/element';
export class FormFields {
@@ -35,9 +36,7 @@ export class FormFields {
setFieldValue(locator, field, value) {
const fieldElement = element(locator(field));
BrowserVisibility.waitUntilElementIsVisible(fieldElement);
fieldElement.clear();
fieldElement.sendKeys(value);
BrowserActions.clearSendKeys(fieldElement, value);
return this;
}
@@ -65,25 +64,23 @@ export class FormFields {
getFieldLabel(fieldId, labelLocatorParam?: any) {
const label = this.getWidget(fieldId).all(labelLocatorParam || this.labelLocator).first();
BrowserVisibility.waitUntilElementIsVisible(label);
return label.getText();
return BrowserActions.getText(label);
}
getFieldErrorMessage(fieldId) {
const error = this.getWidget(fieldId).element(this.errorMessage);
return error.getText();
return BrowserActions.getText(error);
}
getFieldText(fieldId, labelLocatorParam?: any) {
const label = this.getWidget(fieldId).element(labelLocatorParam || this.labelLocator);
BrowserVisibility.waitUntilElementIsVisible(label);
return label.getText();
return BrowserActions.getText(label);
}
getFieldPlaceHolder(fieldId, locator = 'input') {
const placeHolderLocator = element(by.css(`${locator}#${fieldId}`)).getAttribute('placeholder');
const placeHolderLocator: ElementFinder = element(by.css(`${locator}#${fieldId}`));
BrowserVisibility.waitUntilElementIsVisible(placeHolderLocator);
return placeHolderLocator;
return placeHolderLocator.getAttribute('placeholder');
}
checkFieldValue(locator, field, val) {
@@ -92,15 +89,12 @@ export class FormFields {
}
refreshForm() {
BrowserVisibility.waitUntilElementIsVisible(this.refreshButton);
this.refreshButton.click();
BrowserActions.click(this.refreshButton);
return this;
}
saveForm() {
BrowserVisibility.waitUntilElementIsVisible(this.saveButton);
BrowserVisibility.waitUntilElementIsClickable(this.saveButton);
this.saveButton.click();
BrowserActions.click(this.saveButton);
return this;
}
@@ -115,24 +109,20 @@ export class FormFields {
}
getNoFormMessage() {
BrowserVisibility.waitUntilElementIsVisible(this.noFormMessage);
return this.noFormMessage.getText();
return BrowserActions.getText(this.noFormMessage);
}
getCompletedTaskNoFormMessage() {
BrowserVisibility.waitUntilElementIsVisible(this.completedTaskNoFormMessage);
return this.completedTaskNoFormMessage.getText();
return BrowserActions.getText(this.completedTaskNoFormMessage);
}
clickOnAttachFormButton() {
BrowserVisibility.waitUntilElementIsVisible(this.attachFormButton);
this.attachFormButton.click();
BrowserActions.click(this.attachFormButton);
return this;
}
selectForm(formName) {
BrowserVisibility.waitUntilElementIsVisible(this.selectFormDropDownArrow);
this.selectFormDropDownArrow.click();
BrowserActions.click(this.selectFormDropDownArrow);
BrowserVisibility.waitUntilElementIsVisible(this.selectFormContent);
this.selectFormFromDropDown(formName);
return this;
@@ -140,8 +130,7 @@ export class FormFields {
selectFormFromDropDown(formName) {
const formNameElement = element(by.cssContainingText('span', formName));
BrowserVisibility.waitUntilElementIsVisible(formNameElement);
formNameElement.click();
BrowserActions.click(formNameElement);
}
checkWidgetIsReadOnlyMode(fieldId) {
@@ -152,15 +141,12 @@ export class FormFields {
}
completeForm() {
BrowserVisibility.waitUntilElementIsVisible(this.completeButton);
return this.completeButton.click();
BrowserActions.click(this.completeButton);
}
setValueInInputById(fieldId, value) {
const input = element(by.id(fieldId));
BrowserVisibility.waitUntilElementIsVisible(input);
input.clear();
input.sendKeys(value);
BrowserActions.clearSendKeys(input, value);
return this;
}
@@ -16,7 +16,7 @@
*/
import { by, element, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class ProcessDetailsPage {
@@ -66,63 +66,50 @@ export class ProcessDetailsPage {
}
checkProcessTitleIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.processTitle);
return this.processTitle.getText();
return BrowserActions.getText(this.processTitle);
}
checkProcessDetailsMessage() {
BrowserVisibility.waitUntilElementIsVisible(this.processDetailsMessage);
return this.processDetailsMessage.getText();
return BrowserActions.getText(this.processDetailsMessage);
}
getProcessStatus() {
BrowserVisibility.waitUntilElementIsVisible(this.processStatusField);
return this.processStatusField.getText();
return BrowserActions.getText(this.processStatusField);
}
getEndDate() {
BrowserVisibility.waitUntilElementIsVisible(this.processEndDateField);
return this.processEndDateField.getText();
return BrowserActions.getText(this.processEndDateField);
}
getProcessCategory() {
BrowserVisibility.waitUntilElementIsVisible(this.processCategoryField);
return this.processCategoryField.getText();
return BrowserActions.getText(this.processCategoryField);
}
getBusinessKey() {
BrowserVisibility.waitUntilElementIsVisible(this.processBusinessKeyField);
return this.processBusinessKeyField.getText();
return BrowserActions.getText(this.processBusinessKeyField);
}
getCreatedBy() {
BrowserVisibility.waitUntilElementIsVisible(this.processCreatedByField);
return this.processCreatedByField.getText();
return BrowserActions.getText(this.processCreatedByField);
}
getCreated() {
BrowserVisibility.waitUntilElementIsVisible(this.processCreatedField);
return this.processCreatedField.getText();
return BrowserActions.getText(this.processCreatedField);
}
getId() {
BrowserVisibility.waitUntilElementIsVisible(this.processIdField);
return this.processIdField.getText();
return BrowserActions.getText(this.processIdField);
}
getProcessDescription() {
BrowserVisibility.waitUntilElementIsVisible(this.processDescription);
return this.processDescription.getText();
return BrowserActions.getText(this.processDescription);
}
clickShowDiagram() {
BrowserVisibility.waitUntilElementIsVisible(this.showDiagramButton);
BrowserVisibility.waitUntilElementIsClickable(this.showDiagramButton);
this.showDiagramButton.click();
BrowserActions.click(this.showDiagramButton);
BrowserVisibility.waitUntilElementIsVisible(this.diagramCanvas);
BrowserVisibility.waitUntilElementIsVisible(this.backButton);
BrowserVisibility.waitUntilElementIsClickable(this.backButton);
this.backButton.click();
BrowserActions.click(this.backButton);
}
checkShowDiagramIsDisabled() {
@@ -143,25 +130,19 @@ export class ProcessDetailsPage {
}
clickAuditLogButton() {
BrowserVisibility.waitUntilElementIsVisible(this.auditLogButton);
BrowserVisibility.waitUntilElementIsClickable(this.auditLogButton);
this.auditLogButton.click();
BrowserActions.click(this.auditLogButton);
}
clickCancelProcessButton() {
BrowserVisibility.waitUntilElementIsVisible(this.cancelProcessButton);
BrowserVisibility.waitUntilElementIsClickable(this.cancelProcessButton);
this.cancelProcessButton.click();
BrowserActions.click(this.cancelProcessButton);
}
clickOnActiveTask() {
BrowserVisibility.waitUntilElementIsVisible(this.activeTask);
return this.activeTask.click();
return BrowserActions.click(this.activeTask);
}
clickOnCompletedTask() {
BrowserVisibility.waitUntilElementIsClickable(this.completedTask);
return this.completedTask.click();
return BrowserActions.click(this.completedTask);
}
checkActiveTaskTitleIsDisplayed() {
@@ -18,7 +18,7 @@
import { element, by } from 'protractor';
import { StartProcessPage } from './startProcessPage';
import { DataTableComponentPage } from '@alfresco/adf-testing';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class ProcessFiltersPage {
@@ -44,37 +44,30 @@ export class ProcessFiltersPage {
}
clickRunningFilterButton() {
BrowserVisibility.waitUntilElementIsVisible(this.runningFilter);
BrowserVisibility.waitUntilElementIsClickable(this.runningFilter);
return this.runningFilter.click();
return BrowserActions.click(this.runningFilter);
}
clickCompletedFilterButton() {
BrowserVisibility.waitUntilElementIsVisible(this.completedFilter);
BrowserVisibility.waitUntilElementIsClickable(this.completedFilter);
this.completedFilter.click();
BrowserActions.click(this.completedFilter);
expect(this.completedFilter.isEnabled()).toBe(true);
}
clickAllFilterButton() {
BrowserVisibility.waitUntilElementIsVisible(this.allFilter);
BrowserVisibility.waitUntilElementIsClickable(this.allFilter);
this.allFilter.click();
BrowserActions.click(this.allFilter);
expect(this.allFilter.isEnabled()).toBe(true);
}
clickCreateProcessButton() {
BrowserActions.closeMenuAndDialogs();
BrowserVisibility.waitUntilElementIsOnPage(this.accordionMenu);
BrowserVisibility.waitUntilElementIsVisible(this.processesPage);
BrowserVisibility.waitUntilElementIsPresent(this.createProcessButton);
this.createProcessButton.click();
BrowserActions.click(this.createProcessButton);
}
clickNewProcessDropdown() {
BrowserVisibility.waitUntilElementIsOnPage(this.buttonWindow);
BrowserVisibility.waitUntilElementIsVisible(this.newProcessButton);
BrowserVisibility.waitUntilElementIsClickable(this.newProcessButton);
this.newProcessButton.click();
BrowserActions.click(this.newProcessButton);
}
checkNoContentMessage() {
@@ -82,9 +75,9 @@ export class ProcessFiltersPage {
}
selectFromProcessList(title) {
BrowserActions.closeMenuAndDialogs();
const processName = element.all(by.css(`div[data-automation-id="text_${title}"]`)).first();
BrowserVisibility.waitUntilElementIsVisible(processName);
processName.click();
BrowserActions.click(processName);
}
checkFilterIsHighlighted(filterName) {
@@ -128,8 +121,7 @@ export class ProcessFiltersPage {
const filterName = element(by.css(`span[data-automation-id='${name}_filter']`));
BrowserVisibility.waitUntilElementIsVisible(filterName);
const icon = filterName.element(this.processIcon);
BrowserVisibility.waitUntilElementIsVisible(icon);
return icon.getText();
return BrowserActions.getText(icon);
}
checkFilterIsNotDisplayed(name) {
@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
import { element, by } from 'protractor';
export class ProcessListPage {
@@ -24,8 +24,7 @@ export class ProcessListPage {
processInstanceList = element(by.css('adf-process-instance-list'));
checkProcessListTitleIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.processListTitle);
return this.processListTitle.getText();
return BrowserActions.getText(this.processListTitle);
}
checkProcessListIsDisplayed() {
@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
import { element, by, browser } from 'protractor';
export class ProcessServiceTabBarPage {
@@ -27,24 +27,22 @@ export class ProcessServiceTabBarPage {
reportsButtonSelected = element.all(by.cssContainingText('div[class*="mat-tab-label"] .mat-tab-labels div[aria-selected="true"]', 'Reports')).first();
clickTasksButton() {
BrowserVisibility.waitUntilElementIsVisible(this.tasksButton);
this.tasksButton.click();
return browser.sleep(600);
BrowserActions.click(this.tasksButton);
browser.sleep(700);
}
clickProcessButton() {
this.processButton.click();
return browser.sleep(600);
BrowserActions.click(this.processButton);
browser.sleep(700);
}
clickSettingsButton() {
this.settingsButton.click();
return browser.sleep(600);
BrowserActions.click(this.settingsButton);
browser.sleep(700);
}
clickReportsButton() {
BrowserVisibility.waitUntilElementIsVisible(this.reportsButton);
this.reportsButton.click();
BrowserActions.click(this.reportsButton);
return BrowserVisibility.waitUntilElementIsVisible(this.reportsButtonSelected);
}
}
@@ -18,7 +18,7 @@
import { ProcessServiceTabBarPage } from './processServiceTabBarPage';
import { element, by } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class ProcessServicesPage {
@@ -33,14 +33,12 @@ export class ProcessServicesPage {
goToApp(applicationName) {
const app = element(by.css('mat-card[title="' + applicationName + '"]'));
BrowserVisibility.waitUntilElementIsVisible(app);
app.click();
BrowserActions.click(app);
return new ProcessServiceTabBarPage();
}
goToTaskApp() {
BrowserVisibility.waitUntilElementIsVisible(this.taskApp);
this.taskApp.click();
BrowserActions.click(this.taskApp);
return new ProcessServiceTabBarPage();
}
@@ -48,8 +46,7 @@ export class ProcessServicesPage {
const app = element(by.css('mat-card[title="' + applicationName + '"]'));
BrowserVisibility.waitUntilElementIsVisible(app);
const iconType = app.element(this.iconTypeLocator);
BrowserVisibility.waitUntilElementIsVisible(iconType);
return iconType.getText();
return BrowserActions.getText(iconType);
}
getBackgroundColor(applicationName) {
@@ -62,8 +59,7 @@ export class ProcessServicesPage {
const app = element(by.css('mat-card[title="' + applicationName + '"]'));
BrowserVisibility.waitUntilElementIsVisible(app);
const description = app.element(this.descriptionLocator);
BrowserVisibility.waitUntilElementIsVisible(description);
return description.getText();
return BrowserActions.getText(description);
}
checkAppIsNotDisplayed(applicationName) {
@@ -16,7 +16,7 @@
*/
import { by, element, Key, protractor, browser } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class StartProcessPage {
@@ -76,9 +76,7 @@ export class StartProcessPage {
}
clickProcessDropdownArrow() {
BrowserVisibility.waitUntilElementIsVisible(this.selectProcessDropdownArrow);
BrowserVisibility.waitUntilElementIsClickable(this.selectProcessDropdownArrow);
this.selectProcessDropdownArrow.click();
BrowserActions.click(this.selectProcessDropdownArrow);
}
checkOptionIsDisplayed(name) {
@@ -96,9 +94,7 @@ export class StartProcessPage {
selectOption(name) {
const selectProcessDropdown = element(by.cssContainingText('.mat-option-text', name));
BrowserVisibility.waitUntilElementIsVisible(selectProcessDropdown);
BrowserVisibility.waitUntilElementIsClickable(selectProcessDropdown);
selectProcessDropdown.click();
BrowserActions.click(selectProcessDropdown);
return this;
}
@@ -116,14 +112,12 @@ export class StartProcessPage {
}
clickCancelProcessButton() {
BrowserVisibility.waitUntilElementIsVisible(this.cancelProcessButton);
this.cancelProcessButton.click();
BrowserActions.click(this.cancelProcessButton);
}
clickFormStartProcessButton() {
BrowserVisibility.waitUntilElementIsVisible(this.formStartProcessButton);
BrowserVisibility.waitUntilElementIsClickable(this.formStartProcessButton);
return this.formStartProcessButton.click();
return BrowserActions.click(this.formStartProcessButton);
}
checkStartProcessButtonIsEnabled() {
@@ -135,7 +129,7 @@ export class StartProcessPage {
}
clickStartProcessButton() {
return this.startProcessButton.click();
return BrowserActions.click(this.startProcessButton);
}
checkSelectProcessPlaceholderIsDisplayed() {
@@ -153,7 +147,7 @@ export class StartProcessPage {
}
blur(locator) {
locator.click();
BrowserActions.click(locator);
locator.sendKeys(Key.TAB);
return this;
}
+37 -104
View File
@@ -16,9 +16,9 @@
*/
import { AppSettingsToggles } from './dialog/appSettingsToggles';
import { element, by, protractor, browser } from 'protractor';
import { element, by, browser } from 'protractor';
import { TabsPage } from '@alfresco/adf-testing';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class TaskDetailsPage {
@@ -44,8 +44,6 @@ export class TaskDetailsPage {
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"]');
editActionInvolvedUser = by.xpath('following-sibling::div[@class="adf-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"]'));
@@ -58,7 +56,6 @@ export class TaskDetailsPage {
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'));
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'));
@@ -68,8 +65,7 @@ export class TaskDetailsPage {
emptyTaskDetails = element(by.css('adf-task-details > div > div'));
getTaskDetailsTitle() {
BrowserVisibility.waitUntilElementIsVisible(this.taskDetailsTitle);
return this.taskDetailsTitle.getText();
return BrowserActions.getText(this.taskDetailsTitle);
}
checkSelectedForm(formName) {
@@ -85,28 +81,17 @@ export class TaskDetailsPage {
BrowserVisibility.waitUntilElementIsClickable(this.attachFormButton);
}
checkEditFormButtonIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.editFormButton);
}
clickEditFormButton() {
BrowserVisibility.waitUntilElementIsClickable(this.editFormButton);
return this.editFormButton.click();
}
checkAttachFormDropdownIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.attachFormDropdown);
}
clickAttachFormDropdown() {
BrowserVisibility.waitUntilElementIsClickable(this.attachFormDropdown);
return this.attachFormDropdown.click();
return BrowserActions.click(this.attachFormDropdown);
}
selectAttachFormOption(option) {
const selectedOption = element(by.cssContainingText('mat-option[role="option"]', option));
BrowserVisibility.waitUntilElementIsClickable(selectedOption);
return selectedOption.click();
return BrowserActions.click(selectedOption);
}
checkCancelAttachFormIsDisplayed() {
@@ -119,8 +104,7 @@ export class TaskDetailsPage {
}
clickCancelAttachForm() {
BrowserVisibility.waitUntilElementIsClickable(this.cancelAttachForm);
return this.cancelAttachForm.click();
return BrowserActions.click(this.cancelAttachForm);
}
checkRemoveAttachFormIsDisplayed() {
@@ -128,8 +112,7 @@ export class TaskDetailsPage {
}
clickRemoveAttachForm() {
BrowserVisibility.waitUntilElementIsClickable(this.removeAttachForm);
return this.removeAttachForm.click();
return BrowserActions.click(this.removeAttachForm);
}
checkAttachFormButtonIsDisplayed() {
@@ -141,8 +124,7 @@ export class TaskDetailsPage {
}
clickAttachFormButton() {
BrowserVisibility.waitUntilElementIsClickable(this.attachFormButton);
return this.attachFormButton.click();
return BrowserActions.click(this.attachFormButton);
}
checkFormIsAttached(formName) {
@@ -153,74 +135,59 @@ export class TaskDetailsPage {
}
getFormName() {
BrowserVisibility.waitUntilElementIsVisible(this.formNameField);
return this.formNameField.getText();
return BrowserActions.getText(this.formNameField);
}
clickForm() {
BrowserVisibility.waitUntilElementIsVisible(this.formNameField);
BrowserVisibility.waitUntilElementIsClickable(this.formNameField);
this.formNameField.click();
BrowserActions.click(this.formNameField);
}
getAssignee() {
BrowserVisibility.waitUntilElementIsVisible(this.assigneeField);
return this.assigneeField.getText();
return BrowserActions.getText(this.assigneeField);
}
getStatus() {
BrowserVisibility.waitUntilElementIsVisible(this.statusField);
return this.statusField.getText();
return BrowserActions.getText(this.statusField);
}
getCategory() {
BrowserVisibility.waitUntilElementIsVisible(this.categoryField);
return this.categoryField.getText();
return BrowserActions.getText(this.categoryField);
}
getParentName() {
BrowserVisibility.waitUntilElementIsVisible(this.parentNameField);
return this.parentNameField.getText();
return BrowserActions.getText(this.parentNameField);
}
getParentTaskId() {
BrowserVisibility.waitUntilElementIsVisible(this.parentTaskIdField);
return this.parentTaskIdField.getText();
return BrowserActions.getText(this.parentTaskIdField);
}
getDuration() {
BrowserVisibility.waitUntilElementIsVisible(this.durationField);
return this.durationField.getText();
return BrowserActions.getText(this.durationField);
}
getEndDate() {
BrowserVisibility.waitUntilElementIsVisible(this.endDateField);
return this.endDateField.getText();
return BrowserActions.getText(this.endDateField);
}
getCreated() {
BrowserVisibility.waitUntilElementIsVisible(this.createdField);
return this.createdField.getText();
return BrowserActions.getText(this.createdField);
}
getId() {
BrowserVisibility.waitUntilElementIsVisible(this.idField);
return this.idField.getText();
return BrowserActions.getText(this.idField);
}
getDescription() {
BrowserVisibility.waitUntilElementIsVisible(this.descriptionField);
return this.descriptionField.getText();
return BrowserActions.getText(this.descriptionField);
}
getDueDate() {
BrowserVisibility.waitUntilElementIsVisible(this.dueDateField);
return this.dueDateField.getText();
return BrowserActions.getText(this.dueDateField);
}
getTitle() {
BrowserVisibility.waitUntilElementIsVisible(this.activitiesTitle);
return this.activitiesTitle.getText();
return BrowserActions.getText(this.activitiesTitle);
}
selectActivityTab() {
@@ -238,14 +205,7 @@ export class TaskDetailsPage {
addComment(comment) {
BrowserVisibility.waitUntilElementIsVisible(this.commentField);
this.commentField.sendKeys(comment);
BrowserVisibility.waitUntilElementIsVisible(this.addCommentButton);
this.addCommentButton.click();
return this;
}
clearComment(comment) {
BrowserVisibility.waitUntilElementIsVisible(this.commentField);
this.commentField.sendKeys(protractor.Key.ENTER);
BrowserActions.click(this.addCommentButton);
return this;
}
@@ -259,7 +219,7 @@ export class TaskDetailsPage {
BrowserVisibility.waitUntilElementIsVisible(this.involvePeopleButton);
BrowserVisibility.waitUntilElementIsClickable(this.involvePeopleButton);
browser.actions().mouseMove(this.involvePeopleButton).perform();
this.involvePeopleButton.click();
BrowserActions.click(this.involvePeopleButton);
return this;
}
@@ -281,9 +241,7 @@ export class TaskDetailsPage {
}
clickAddInvolvedUserButton() {
BrowserVisibility.waitUntilElementIsVisible(this.addInvolvedUserButton);
BrowserVisibility.waitUntilElementIsClickable(this.addInvolvedUserButton);
this.addInvolvedUserButton.click();
BrowserActions.click(this.addInvolvedUserButton);
return this;
}
@@ -298,24 +256,17 @@ export class TaskDetailsPage {
BrowserVisibility.waitUntilElementIsVisible(row);
row.element(by.css('button[data-automation-id="action_menu_0"]')).click();
BrowserVisibility.waitUntilElementIsVisible(this.removeInvolvedPeople);
return this.removeInvolvedPeople.click();
return BrowserActions.click(this.removeInvolvedPeople);
}
getInvolvedUserEmail(user) {
const email = this.getRowsUser(user).element(this.emailInvolvedUser);
BrowserVisibility.waitUntilElementIsVisible(email);
return email.getText();
}
getInvolvedUserEditAction(user) {
const edit = this.getRowsUser(user).element(this.editActionInvolvedUser);
BrowserVisibility.waitUntilElementIsVisible(edit);
return edit.getText();
return BrowserActions.getText(email);
}
clickAuditLogButton() {
BrowserVisibility.waitUntilElementIsVisible(this.auditLogButton);
this.auditLogButton.click();
BrowserActions.click(this.auditLogButton);
}
appSettingsToggles() {
@@ -336,14 +287,12 @@ export class TaskDetailsPage {
}
clickCancelInvolvePeopleButton() {
BrowserVisibility.waitUntilElementIsVisible(this.cancelInvolvePeopleButton);
this.cancelInvolvePeopleButton.click();
BrowserActions.click(this.cancelInvolvePeopleButton);
return this;
}
getInvolvePeopleHeader() {
BrowserVisibility.waitUntilElementIsVisible(this.involvePeopleHeader);
return this.involvePeopleHeader.getText();
return BrowserActions.getText(this.involvePeopleHeader);
}
getInvolvePeoplePlaceholder() {
@@ -369,24 +318,11 @@ export class TaskDetailsPage {
}
getInvolvedPeopleTitle() {
BrowserVisibility.waitUntilElementIsVisible(this.peopleTitle);
return this.peopleTitle.getText();
}
getInvolvedPeopleInitialImage(user) {
const pic = this.getRowsUser(user).element(this.involvedUserPic);
BrowserVisibility.waitUntilElementIsVisible(pic);
return pic.getText();
}
checkTaskDetails() {
BrowserVisibility.waitUntilElementIsVisible(this.taskDetailsSection);
return this.taskDetailsSection.getText();
return BrowserActions.getText(this.peopleTitle);
}
checkTaskDetailsEmpty() {
BrowserVisibility.waitUntilElementIsVisible(this.taskDetailsEmptySection);
return this.taskDetailsEmptySection.getText();
return BrowserActions.getText(this.taskDetailsEmptySection);
}
checkTaskDetailsDisplayed() {
@@ -402,12 +338,11 @@ export class TaskDetailsPage {
BrowserVisibility.waitUntilElementIsVisible(this.dueDateField);
BrowserVisibility.waitUntilElementIsVisible(this.activitiesTitle);
return this.taskDetailsSection.getText();
return BrowserActions.getText(this.taskDetailsSection);
}
clickCompleteTask() {
BrowserVisibility.waitUntilElementIsVisible(this.completeTask);
return this.completeTask.click();
return BrowserActions.click(this.completeTask);
}
checkCompleteFormButtonIsDisplayed() {
@@ -426,13 +361,11 @@ export class TaskDetailsPage {
}
clickCompleteFormTask() {
BrowserVisibility.waitUntilElementIsClickable(this.completeFormTask);
return this.completeFormTask.click();
return BrowserActions.click(this.completeFormTask);
}
getEmptyTaskDetailsMessage() {
BrowserVisibility.waitUntilElementIsVisible(this.emptyTaskDetails);
return this.emptyTaskDetails.getText();
return BrowserActions.getText(this.emptyTaskDetails);
}
}
@@ -16,7 +16,7 @@
*/
import { by } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class TaskFiltersPage {
@@ -35,8 +35,7 @@ export class TaskFiltersPage {
getTaskFilterIcon() {
BrowserVisibility.waitUntilElementIsVisible(this.filter);
const icon = this.filter.element(this.taskIcon);
BrowserVisibility.waitUntilElementIsVisible(icon);
return icon.getText();
return BrowserActions.getText(icon);
}
checkTaskFilterHasNoIcon() {
@@ -45,8 +44,7 @@ export class TaskFiltersPage {
}
clickTaskFilter() {
BrowserVisibility.waitUntilElementIsVisible(this.filter);
return this.filter.click();
return BrowserActions.click(this.filter);
}
checkTaskFilterNotDisplayed() {
@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
import { DataTableComponentPage } from '@alfresco/adf-testing';
import { by, element } from 'protractor';
@@ -59,8 +59,7 @@ export class TasksListPage {
}
getNoTasksFoundMessage() {
BrowserVisibility.waitUntilElementIsVisible(this.noTasksFound);
return this.noTasksFound.getText();
return BrowserActions.getText(this.noTasksFound);
}
}
+6 -17
View File
@@ -23,7 +23,7 @@ import { FiltersPage } from './filtersPage';
import { ChecklistDialog } from './dialog/createChecklistDialog';
import { TasksListPage } from './tasksListPage';
import { element, by } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class TasksPage {
@@ -41,26 +41,18 @@ export class TasksPage {
sortByName = by.css('div[data-automation-id="auto_id_name"]');
createNewTask() {
this.createButtonIsDisplayed();
this.clickOnCreateButton();
this.newTaskButtonIsDisplayed();
this.newTaskButton.click();
BrowserActions.click(this.newTaskButton);
return new StartTaskDialog();
}
createButtonIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.createButton);
return this;
}
newTaskButtonIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.newTaskButton);
return this;
}
clickOnCreateButton() {
BrowserVisibility.waitUntilElementIsClickable(this.createButton);
this.createButton.click();
BrowserActions.click(this.createButton);
return this;
}
@@ -85,8 +77,7 @@ export class TasksPage {
}
clickOnAddChecklistButton() {
BrowserVisibility.waitUntilElementIsClickable(this.addChecklistButton);
this.addChecklistButton.click();
BrowserActions.click(this.addChecklistButton);
return new ChecklistDialog();
}
@@ -120,8 +111,7 @@ export class TasksPage {
}
completeTaskNoForm() {
BrowserVisibility.waitUntilElementIsClickable(this.completeButtonNoForm);
this.completeButtonNoForm.click();
BrowserActions.click(this.completeButtonNoForm);
}
completeTaskNoFormNotDisplayed() {
@@ -145,8 +135,7 @@ export class TasksPage {
}
getNumberOfChecklists() {
BrowserVisibility.waitUntilElementIsVisible(this.numberOfChecklists);
return this.numberOfChecklists.getText();
return BrowserActions.getText(this.numberOfChecklists);
}
removeChecklists(checklist) {
@@ -16,7 +16,7 @@
*/
import { element, by, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
import { FormFields } from '../formFields';
export class AmountWidget {
@@ -26,12 +26,11 @@ export class AmountWidget {
getAmountFieldLabel(fieldId) {
const label = element.all(by.css(`adf-form-field div[id="field-${fieldId}-container"] label`)).first();
BrowserVisibility.waitUntilElementIsVisible(label);
return label.getText();
return BrowserActions.getText(label);
}
getAmountFieldCurrency(fieldId) {
return this.formFields.getWidget(fieldId).element(this.currency).getText();
return BrowserActions.getText(this.formFields.getWidget(fieldId).element(this.currency));
}
setFieldValue(fieldId, value) {
@@ -61,8 +60,7 @@ export class AmountWidget {
getErrorMessage(fieldId) {
const errorMessage = element(by.css(`adf-form-field div[id="field-${fieldId}-container"] div[class="adf-error-text"]`));
BrowserVisibility.waitUntilElementIsVisible(errorMessage);
return errorMessage.getText();
return BrowserActions.getText(errorMessage);
}
getPlaceholder(fieldId) {
@@ -18,7 +18,7 @@
import { FormFields } from '../formFields';
import TestConfig = require('../../../../test.config');
import path = require('path');
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
import remote = require('selenium-webdriver/remote');
import { element, by, browser } from 'protractor';
@@ -33,9 +33,7 @@ export class AttachFileWidget {
browser.setFileDetector(new remote.FileDetector());
const widget = this.formFields.getWidget(fieldId);
const uploadButton = widget.element(this.uploadLocator);
BrowserVisibility.waitUntilElementIsVisible(uploadButton);
uploadButton.click();
BrowserActions.click(uploadButton);
BrowserVisibility.waitUntilElementIsVisible(this.localStorageButton);
this.localStorageButton.sendKeys(path.resolve(path.join(TestConfig.main.rootPath, fileLocation)));
return this;
@@ -50,8 +48,7 @@ export class AttachFileWidget {
viewFile(name) {
const fileView = element(this.filesListLocator).element(by.cssContainingText('mat-list-item span ', name));
BrowserVisibility.waitUntilElementIsVisible(fileView);
fileView.click();
BrowserActions.click(fileView);
browser.actions().doubleClick(fileView).perform();
return this;
}
@@ -16,7 +16,7 @@
*/
import { FormFields } from '../formFields';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserActions } from '@alfresco/adf-testing';
import { by, element } from 'protractor';
export class CheckboxWidget {
@@ -25,14 +25,12 @@ export class CheckboxWidget {
checkboxLabel = element(by.css('span[class*="mat-checkbox-label"]'));
getCheckboxLabel() {
BrowserVisibility.waitUntilElementIsVisible(this.checkboxLabel);
return this.checkboxLabel.getText();
return BrowserActions.getText(this.checkboxLabel);
}
clickCheckboxInput(fieldId) {
const checkboxInput = element.all(by.css(`mat-checkbox[id="${fieldId}"] div`)).first();
BrowserVisibility.waitUntilElementIsVisible(checkboxInput);
return checkboxInput.click();
BrowserActions.click(checkboxInput);
}
isCheckboxDisplayed(fieldId) {
@@ -17,7 +17,7 @@
import { FormFields } from '../formFields';
import { element, by, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class DateTimeWidget {
@@ -30,8 +30,7 @@ export class DateTimeWidget {
getDateTimeLabel(fieldId) {
const label = element(by.css(`adf-form-field div[id="field-${fieldId}-container"] label`));
BrowserVisibility.waitUntilElementIsVisible(label);
return label.getText();
return BrowserActions.getText(label);
}
setDateTimeInput(fieldId, value) {
@@ -46,25 +45,21 @@ export class DateTimeWidget {
clickOutsideWidget(fieldId) {
const form = this.formFields.getWidget(fieldId);
BrowserVisibility.waitUntilElementIsVisible(form);
return form.click();
BrowserActions.click(form);
}
closeDataTimeWidget() {
BrowserVisibility.waitUntilElementIsVisible(this.outsideLayer);
return this.outsideLayer.click();
BrowserActions.click(this.outsideLayer);
}
getErrorMessage(fieldId) {
const errorMessage = element(by.css(`adf-form-field div[id="field-${fieldId}-container"] div[class="adf-error-text"]`));
BrowserVisibility.waitUntilElementIsVisible(errorMessage);
return errorMessage.getText();
return BrowserActions.getText(errorMessage);
}
selectDay(day) {
const selectedDay = element(by.cssContainingText('div[class*="mat-datetimepicker-calendar-body-cell-content"]', day));
BrowserVisibility.waitUntilElementIsVisible(selectedDay);
return selectedDay.click();
BrowserActions.click(selectedDay);
}
openDatepicker(fieldId) {
@@ -73,8 +68,7 @@ export class DateTimeWidget {
private selectTime(time) {
const selectedTime = element(by.cssContainingText('div[class*="mat-datetimepicker-clock-cell"]', time));
BrowserVisibility.waitUntilElementIsClickable(selectedTime);
return selectedTime.click();
BrowserActions.click(selectedTime);
}
selectHour(hour) {
@@ -17,7 +17,7 @@
import { FormFields } from '../formFields';
import { element, by, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class DateWidget {
@@ -33,8 +33,7 @@ export class DateWidget {
getDateLabel(fieldId) {
const label = element.all(by.css(`adf-form-field div[id="field-${fieldId}-container"] label`)).first();
BrowserVisibility.waitUntilElementIsVisible(label);
return label.getText();
return BrowserActions.getText(label);
}
setDateInput(fieldId, value) {
@@ -50,14 +49,12 @@ export class DateWidget {
clickOutsideWidget(fieldId) {
const form = this.formFields.getWidget(fieldId);
BrowserVisibility.waitUntilElementIsVisible(form);
return form.click();
BrowserActions.click(form);
}
getErrorMessage(fieldId) {
const errorMessage = element(by.css(`adf-form-field div[id="field-${fieldId}-container"] div[class="adf-error-text"]`));
BrowserVisibility.waitUntilElementIsVisible(errorMessage);
return errorMessage.getText();
return BrowserActions.getText(errorMessage);
}
removeFromDatetimeWidget(fieldId) {
@@ -17,7 +17,7 @@
import { FormFields } from '../formFields';
import { by, element } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class DropdownWidget {
@@ -33,7 +33,7 @@ export class DropdownWidget {
selectOption(option) {
this.openDropdown();
const row = element(by.cssContainingText('mat-option span', option));
return row.click();
BrowserActions.click(row);
}
openDropdown() {
@@ -16,8 +16,8 @@
*/
import { FormFields } from '../formFields';
import { by, element, browser, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { by, element, protractor } from 'protractor';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class DynamicTableWidget {
@@ -48,29 +48,24 @@ export class DynamicTableWidget {
}
clickAddButton() {
BrowserVisibility.waitUntilElementIsVisible(this.addButton);
return this.addButton.click();
BrowserActions.click(this.addButton);
}
clickAddRow() {
BrowserVisibility.waitUntilElementIsVisible(this.addRow);
return this.addRow.click();
BrowserActions.click(this.addRow);
}
clickTableRow(rowNumber) {
const tableRowByIndex = element(by.id('dynamictable-row-' + rowNumber));
BrowserVisibility.waitUntilElementIsVisible(tableRowByIndex);
return tableRowByIndex.click();
BrowserActions.click(tableRowByIndex);
}
clickEditButton() {
BrowserVisibility.waitUntilElementIsVisible(this.editButton);
return this.editButton.click();
BrowserActions.click(this.editButton);
}
clickCancelButton() {
BrowserVisibility.waitUntilElementIsVisible(this.cancelButton);
return this.cancelButton.click();
BrowserActions.click(this.cancelButton);
}
setDatatableInput(text) {
@@ -81,13 +76,7 @@ export class DynamicTableWidget {
getTableRowText(rowNumber) {
const tableRowByIndex = element(by.id('dynamictable-row-' + rowNumber));
BrowserVisibility.waitUntilElementIsVisible(tableRowByIndex);
return tableRowByIndex.getText();
}
checkTableRowIsVisible(rowNumber) {
const tableRowByIndex = element(by.id('dynamictable-row-' + rowNumber));
return BrowserVisibility.waitUntilElementIsVisible(tableRowByIndex);
return BrowserActions.getText(tableRowByIndex);
}
checkTableRowIsNotVisible(rowNumber) {
@@ -96,41 +85,35 @@ export class DynamicTableWidget {
}
clickColumnDateTime() {
BrowserVisibility.waitUntilElementIsVisible(this.columnDateTime);
this.columnDateTime.click();
BrowserActions.click(this.columnDateTime);
BrowserVisibility.waitUntilElementIsVisible(this.calendarHeader);
BrowserVisibility.waitUntilElementIsVisible(this.calendarContent);
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
BrowserActions.closeMenuAndDialogs();
}
addRandomStringOnDateTime(randomText) {
BrowserVisibility.waitUntilElementIsVisible(this.columnDateTime);
this.columnDateTime.click();
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
BrowserActions.click(this.columnDateTime);
BrowserActions.closeMenuAndDialogs();
this.columnDateTime.sendKeys(randomText);
this.columnDateTime.sendKeys(protractor.Key.ENTER);
return this.columnDateTime.getAttribute('value');
}
addRandomStringOnDate(randomText) {
BrowserVisibility.waitUntilElementIsVisible(this.columnDate);
this.columnDate.click();
BrowserActions.click(this.columnDate);
return this.columnDate.sendKeys(randomText);
}
clickSaveButton() {
BrowserVisibility.waitUntilElementIsVisible(this.saveButton);
return this.saveButton.click();
BrowserActions.click(this.saveButton);
}
checkErrorMessage() {
BrowserVisibility.waitUntilElementIsVisible(this.errorMessage);
return this.errorMessage.getText();
return BrowserActions.getText(this.errorMessage);
}
clickDateWidget() {
BrowserVisibility.waitUntilElementIsVisible(this.dateWidget);
return this.dateWidget.click();
BrowserActions.click(this.dateWidget);
}
getTableRow(rowNumber) {
@@ -17,7 +17,7 @@
import { FormFields } from '../formFields';
import { by, element } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserActions } from '@alfresco/adf-testing';
export class HyperlinkWidget {
@@ -31,7 +31,6 @@ export class HyperlinkWidget {
getFieldLabel(fieldId) {
const label = element.all(by.css(`adf-form-field div[id="field-${fieldId}-container"] label`)).first();
BrowserVisibility.waitUntilElementIsVisible(label);
return label.getText();
return BrowserActions.getText(label);
}
}
@@ -17,7 +17,7 @@
import { element, by } from 'protractor';
import { FormFields } from '../formFields';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class NumberWidget {
@@ -25,8 +25,7 @@ export class NumberWidget {
getNumberFieldLabel(fieldId) {
const label = element.all(by.css(`adf-form-field div[id="field-${fieldId}-container"] label`)).first();
BrowserVisibility.waitUntilElementIsVisible(label);
return label.getText();
return BrowserActions.getText(label);
}
setFieldValue(fieldId, value) {
@@ -45,8 +44,7 @@ export class NumberWidget {
getErrorMessage(fieldId) {
const errorMessage = element(by.css(`adf-form-field div[id="field-${fieldId}-container"] div[class="adf-error-text"]`));
BrowserVisibility.waitUntilElementIsVisible(errorMessage);
return errorMessage.getText();
return BrowserActions.getText(errorMessage);
}
getPlaceholder(fieldId) {
@@ -17,7 +17,7 @@
import { FormFields } from '../formFields';
import { by, element } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class PeopleWidget {
@@ -54,14 +54,9 @@ export class PeopleWidget {
return BrowserVisibility.waitUntilElementIsVisible(user);
}
checkUserNotListed(userName) {
const user = element(by.xpath('div[text()="' + userName + '"]'));
return BrowserVisibility.waitUntilElementIsNotVisible(user);
}
selectUserFromDropDown(userName) {
const user = element(by.cssContainingText('.adf-people-label-name', userName));
user.click();
BrowserActions.click(user);
return this;
}
@@ -17,7 +17,7 @@
import { FormFields } from '../formFields';
import { by, element } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class RadioButtonsWidget {
@@ -29,16 +29,15 @@ export class RadioButtonsWidget {
const optionLocator = by.css('label[for*="radiobuttons-option_' + optionNumber + '"]');
const option = this.formFields.getWidget(fieldId).element(optionLocator);
BrowserVisibility.waitUntilElementIsVisible(option);
return option.getText();
return BrowserActions.getText(option);
}
selectOption(fieldId, optionNumber) {
const optionLocator = by.css(`label[for*="${fieldId}-option_${optionNumber}"]`);
const option = this.formFields.getWidget(fieldId).element(optionLocator);
BrowserVisibility.waitUntilElementIsVisible(option);
return option.click();
return BrowserActions.click(option);
}
isSelectionClean(fieldId) {
@@ -48,8 +47,7 @@ export class RadioButtonsWidget {
getRadioWidgetLabel(fieldId) {
const label = element.all(by.css(`adf-form-field div[id="field-${fieldId}-container"] label`)).first();
BrowserVisibility.waitUntilElementIsVisible(label);
return label.getText();
return BrowserActions.getText(label);
}
}
+18 -22
View File
@@ -16,7 +16,7 @@
*/
import { element, by, protractor, browser } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class TagPage {
@@ -33,6 +33,7 @@ export class TagPage {
showMoreButton = element(by.css('button[data-automation-id="show-more-tags"]'));
showLessButton = element(by.css('button[data-automation-id="show-fewer-tags"]'));
tagsOnPage = element.all(by.css('div[class*="adf-list-tag"]'));
confirmTag = element(by.id('adf-tag-node-send'));
getNodeId() {
BrowserVisibility.waitUntilElementIsVisible(this.insertNodeIdElement);
@@ -40,40 +41,36 @@ export class TagPage {
}
insertNodeId(nodeId) {
BrowserVisibility.waitUntilElementIsVisible(this.insertNodeIdElement);
this.insertNodeIdElement.clear();
this.insertNodeIdElement.sendKeys(nodeId);
BrowserActions.clearSendKeys(this.insertNodeIdElement, nodeId);
browser.driver.sleep(200);
this.insertNodeIdElement.sendKeys(' ');
browser.driver.sleep(200);
this.insertNodeIdElement.sendKeys(protractor.Key.BACK_SPACE);
this.clickConfirmTag();
}
addNewTagInput(tag) {
BrowserVisibility.waitUntilElementIsVisible(this.newTagInput);
this.newTagInput.sendKeys(tag);
BrowserActions.clearSendKeys(this.newTagInput, tag);
return this;
}
addTag(tag) {
this.addNewTagInput(tag);
BrowserVisibility.waitUntilElementIsVisible(this.addTagButton);
BrowserVisibility.waitUntilElementIsClickable(this.addTagButton);
this.addTagButton.click();
BrowserActions.click(this.addTagButton);
return this;
}
deleteTagFromTagListByNodeId(name) {
const deleteChip = element(by.id('tag_chips_delete_' + name));
BrowserVisibility.waitUntilElementIsVisible(deleteChip);
deleteChip.click();
BrowserActions.click(deleteChip);
return this;
}
deleteTagFromTagList(name) {
const deleteChip = element(by.id('tag_chips_delete_' + name));
BrowserVisibility.waitUntilElementIsVisible(deleteChip);
deleteChip.click();
BrowserActions.click(deleteChip);
return this;
}
@@ -126,8 +123,7 @@ export class TagPage {
}
getErrorMessage() {
BrowserVisibility.waitUntilElementIsPresent(this.errorMessage);
return this.errorMessage.getText();
return BrowserActions.getText(this.errorMessage);
}
checkTagListIsOrderedAscending() {
@@ -185,9 +181,7 @@ export class TagPage {
}
clickShowDeleteButtonSwitch() {
BrowserVisibility.waitUntilElementIsVisible(this.showDeleteButton);
BrowserVisibility.waitUntilElementIsClickable(this.showDeleteButton);
this.showDeleteButton.click();
BrowserActions.click(this.showDeleteButton);
}
checkShowMoreButtonIsDisplayed() {
@@ -195,8 +189,11 @@ export class TagPage {
}
clickShowMoreButton() {
BrowserVisibility.waitUntilElementIsClickable(this.showMoreButton);
return this.showMoreButton.click();
return BrowserActions.click(this.showMoreButton);
}
clickConfirmTag() {
return BrowserActions.click(this.confirmTag);
}
checkTagsOnList() {
@@ -214,7 +211,7 @@ export class TagPage {
clickShowMoreButtonUntilNotDisplayed() {
this.showMoreButton.isDisplayed().then((visible) => {
if (visible) {
this.showMoreButton.click();
BrowserActions.click(this.showMoreButton);
this.clickShowMoreButtonUntilNotDisplayed();
}
}, () => {
@@ -224,8 +221,7 @@ export class TagPage {
clickShowLessButtonUntilNotDisplayed() {
this.showLessButton.isDisplayed().then((visible) => {
if (visible) {
this.showLessButton.click();
BrowserActions.click(this.showLessButton);
this.clickShowLessButtonUntilNotDisplayed();
}
}, () => {
+17 -51
View File
@@ -18,9 +18,9 @@
import TestConfig = require('../../test.config');
import path = require('path');
import remote = require('selenium-webdriver/remote');
import { browser, by, element, protractor } from 'protractor';
import { browser, by, element } from 'protractor';
import { FormControllersPage } from '@alfresco/adf-testing';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class VersionManagePage {
@@ -42,27 +42,6 @@ export class VersionManagePage {
return this;
}
checkMajorChangeIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.majorRadio);
return this;
}
checkMinorChangeIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.minorRadio);
return this;
}
checkCommentTextIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.commentText);
return this;
}
clickAddNewVersionsButton() {
BrowserVisibility.waitUntilElementIsVisible(this.showNewVersionButton);
this.showNewVersionButton.click();
return this;
}
checkCancelButtonIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.cancelButton);
return this;
@@ -78,8 +57,7 @@ export class VersionManagePage {
getFileVersionName(version) {
const fileElement = element(by.css(`[id="adf-version-list-item-name-${version}"]`));
BrowserVisibility.waitUntilElementIsVisible(fileElement);
return fileElement.getText();
return BrowserActions.getText(fileElement);
}
checkFileVersionExist(version) {
@@ -94,34 +72,28 @@ export class VersionManagePage {
getFileVersionComment(version) {
const fileComment = element(by.id(`adf-version-list-item-comment-${version}`));
BrowserVisibility.waitUntilElementIsVisible(fileComment);
return fileComment.getText();
return BrowserActions.getText(fileComment);
}
getFileVersionDate(version) {
const fileDate = element(by.id(`adf-version-list-item-date-${version}`));
BrowserVisibility.waitUntilElementIsVisible(fileDate);
return fileDate.getText();
return BrowserActions.getText(fileDate);
}
enterCommentText(text) {
BrowserVisibility.waitUntilElementIsVisible(this.commentText);
this.commentText.sendKeys('');
this.commentText.clear();
this.commentText.sendKeys(text);
BrowserActions.clearSendKeys(this.commentText, text);
return this;
}
clickMajorChange() {
const radioMajor = element(by.id(`adf-new-version-major`));
BrowserVisibility.waitUntilElementIsVisible(radioMajor);
radioMajor.click();
BrowserActions.click(radioMajor);
}
clickMinorChange() {
const radioMinor = element(by.id(`adf-new-version-minor`));
BrowserVisibility.waitUntilElementIsVisible(radioMinor);
radioMinor.click();
BrowserActions.click(radioMinor);
}
/**
@@ -168,27 +140,23 @@ export class VersionManagePage {
}
clickActionButton(version) {
BrowserVisibility.waitUntilElementIsVisible(element(by.id(`adf-version-list-action-menu-button-${version}`)));
element(by.id(`adf-version-list-action-menu-button-${version}`)).click();
BrowserActions.click(element(by.id(`adf-version-list-action-menu-button-${version}`)));
return this;
}
clickAcceptConfirm() {
BrowserVisibility.waitUntilElementIsVisible(element(by.id(`adf-confirm-accept`)));
element(by.id(`adf-confirm-accept`)).click();
BrowserActions.click(element(by.id(`adf-confirm-accept`)));
return this;
}
clickCancelConfirm() {
BrowserVisibility.waitUntilElementIsVisible(element(by.id(`adf-confirm-cancel`)));
element(by.id(`adf-confirm-cancel`)).click();
BrowserActions.click(element(by.id(`adf-confirm-cancel`)));
return this;
}
closeActionButton() {
const container = element(by.css('div.cdk-overlay-backdrop.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing'));
BrowserVisibility.waitUntilElementIsVisible(container);
container.click();
BrowserActions.click(container);
BrowserVisibility.waitUntilElementIsNotVisible(container);
return this;
}
@@ -196,18 +164,16 @@ export class VersionManagePage {
downloadFileVersion(version) {
this.clickActionButton(version);
const downloadButton = element(by.id(`adf-version-list-action-download-${version}`));
BrowserVisibility.waitUntilElementIsVisible(downloadButton);
browser.driver.sleep(500);
downloadButton.click();
BrowserActions.click(downloadButton);
return this;
}
deleteFileVersion(version) {
this.clickActionButton(version);
const deleteButton = element(by.id(`adf-version-list-action-delete-${version}`));
BrowserVisibility.waitUntilElementIsVisible(deleteButton);
browser.driver.sleep(500);
deleteButton.click();
BrowserActions.click(deleteButton);
return this;
}
@@ -216,7 +182,7 @@ export class VersionManagePage {
const restoreButton = element(by.id(`adf-version-list-action-restore-${version}`));
BrowserVisibility.waitUntilElementIsVisible(restoreButton);
browser.driver.sleep(500);
restoreButton.click();
BrowserActions.click(restoreButton);
return this;
}
@@ -227,7 +193,7 @@ export class VersionManagePage {
}
closeVersionDialog() {
browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
BrowserActions.closeMenuAndDialogs();
BrowserVisibility.waitUntilElementIsNotOnPage(this.uploadNewVersionContainer);
}
}
+32 -66
View File
@@ -18,7 +18,7 @@
import { TabsPage } from '@alfresco/adf-testing';
import { FormControllersPage } from '@alfresco/adf-testing';
import { element, by, browser, protractor } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class ViewerPage {
@@ -104,9 +104,9 @@ export class ViewerPage {
}
viewFile(fileName) {
BrowserActions.closeMenuAndDialogs();
const fileView = element.all(by.css(`#document-list-container div[data-automation-id="${fileName}"]`)).first();
BrowserVisibility.waitUntilElementIsVisible(fileView);
fileView.click();
BrowserActions.click(fileView);
browser.actions().sendKeys(protractor.Key.ENTER).perform();
}
@@ -117,7 +117,7 @@ export class ViewerPage {
}
getZoom() {
return this.percentage.getText();
return BrowserActions.getText(this.percentage);
}
exitFullScreen() {
@@ -131,8 +131,8 @@ export class ViewerPage {
this.passwordInput.sendKeys(password);
}
checkFileIsLoaded() {
BrowserVisibility.waitUntilElementIsOnPage(this.pdfPageLoaded, 10000);
checkFileIsLoaded(fileName?: string) {
BrowserVisibility.waitUntilElementIsVisible(this.pdfPageLoaded, 30000, `not loaded ${fileName}`);
}
checkImgViewerIsDisplayed() {
@@ -178,7 +178,7 @@ export class ViewerPage {
}
checkThumbnailsBtnIsDisabled() {
BrowserVisibility.waitUntilElementIsVisible(this.thumbnailsBtn.getAttribute('disabled'));
BrowserVisibility.waitUntilElementIsVisible(element(by.css('button[data-automation-id="adf-thumbnails-button"]:disabled')));
return this;
}
@@ -262,11 +262,11 @@ export class ViewerPage {
BrowserVisibility.waitUntilElementIsVisible(this.mediaContainer);
}
checkFileContent(pageNumber, text) {
async checkFileContent(pageNumber, text) {
const allPages = element.all(by.css('div[class="canvasWrapper"] > canvas')).first();
const pageLoaded = element.all(by.css('div[data-page-number="' + pageNumber + '"][data-loaded="true"]')).first();
const textLayerLoaded = element.all(by.css('div[data-page-number="' + pageNumber + '"] div[class="textLayer"] > div')).first();
const specificText = element.all(by.cssContainingText('div[data-page-number="' + pageNumber + '"] div[class="textLayer"] > div', text)).first();
const textLayerLoaded = element.all(by.css('div[data-page-number="' + pageNumber + '"] div[class="textLayer"]')).first();
const specificText = element.all(by.cssContainingText('div[data-page-number="' + pageNumber + '"] div[class="textLayer"]', text)).first();
BrowserVisibility.waitUntilElementIsVisible(allPages);
BrowserVisibility.waitUntilElementIsVisible(pageLoaded);
@@ -328,8 +328,7 @@ export class ViewerPage {
}
clickInfoButton() {
BrowserVisibility.waitUntilElementIsVisible(this.infoButton);
return this.infoButton.click();
BrowserActions.clickExecuteScript('button[data-automation-id="adf-toolbar-sidebar"]');
}
clickOnTab(tabName) {
@@ -344,8 +343,7 @@ export class ViewerPage {
}
clickLeftSidebarButton() {
BrowserVisibility.waitUntilElementIsVisible(this.leftSideBarButton);
return this.leftSideBarButton.click();
BrowserActions.click(this.leftSideBarButton);
}
checkLeftSideBarIsDisplayed() {
@@ -357,84 +355,67 @@ export class ViewerPage {
}
clickPasswordSubmit() {
BrowserVisibility.waitUntilElementIsVisible(this.passwordSubmit);
return this.passwordSubmit.click();
BrowserActions.click(this.passwordSubmit);
}
clickSecondThumbnail() {
BrowserVisibility.waitUntilElementIsClickable(this.secondThumbnail);
return this.secondThumbnail.click();
BrowserActions.click(this.secondThumbnail);
}
clickLastThumbnailDisplayed() {
BrowserVisibility.waitUntilElementIsClickable(this.lastThumbnailDisplayed);
return this.lastThumbnailDisplayed.click();
BrowserActions.click(this.lastThumbnailDisplayed);
}
clickThumbnailsClose() {
BrowserVisibility.waitUntilElementIsClickable(this.thumbnailsClose);
return this.thumbnailsClose.click();
BrowserActions.click(this.thumbnailsClose);
}
clickThumbnailsBtn() {
BrowserVisibility.waitUntilElementIsVisible(this.thumbnailsBtn);
BrowserVisibility.waitUntilElementIsClickable(this.thumbnailsBtn);
return this.thumbnailsBtn.click();
BrowserActions.click(this.thumbnailsBtn);
}
clickScaleImgButton() {
BrowserVisibility.waitUntilElementIsClickable(this.scaleImg);
return this.scaleImg.click();
BrowserActions.click(this.scaleImg);
}
clickDownloadButton() {
BrowserVisibility.waitUntilElementIsVisible(this.downloadButton);
return this.downloadButton.click();
BrowserActions.click(this.downloadButton);
}
clickCloseButton() {
BrowserVisibility.waitUntilElementIsVisible(this.closeButton);
return this.closeButton.click();
BrowserActions.clickExecuteScript('button[data-automation-id="adf-toolbar-back"]');
}
clickPreviousPageButton() {
BrowserVisibility.waitUntilElementIsVisible(this.previousPageButton);
return this.previousPageButton.click();
BrowserActions.click(this.previousPageButton);
}
clickNextPageButton() {
BrowserVisibility.waitUntilElementIsVisible(this.nextPageButton);
return this.nextPageButton.click();
BrowserActions.click(this.nextPageButton);
}
clickZoomInButton() {
BrowserVisibility.waitUntilElementIsVisible(this.zoomInButton);
return this.zoomInButton.click();
BrowserActions.click(this.zoomInButton);
}
clickZoomOutButton() {
BrowserVisibility.waitUntilElementIsVisible(this.zoomOutButton);
return this.zoomOutButton.click();
BrowserActions.click(this.zoomOutButton);
}
clickFullScreenButton() {
BrowserVisibility.waitUntilElementIsClickable(this.fullScreenButton);
return this.fullScreenButton.click();
BrowserActions.click(this.fullScreenButton);
}
clickRotateLeftButton() {
BrowserVisibility.waitUntilElementIsClickable(this.rotateLeft);
return this.rotateLeft.click();
BrowserActions.click(this.rotateLeft);
}
clickRotateRightButton() {
BrowserVisibility.waitUntilElementIsClickable(this.rotateRight);
return this.rotateRight.click();
BrowserActions.click(this.rotateRight);
}
getActiveTab() {
BrowserVisibility.waitUntilElementIsVisible(this.activeTab);
return this.activeTab.getText();
return BrowserActions.getText(this.activeTab);
}
clickOnCommentsTab() {
@@ -606,13 +587,11 @@ export class ViewerPage {
}
clickToggleRightSidebar() {
BrowserVisibility.waitUntilElementIsVisible(this.showRightSidebarSwitch);
this.showRightSidebarSwitch.click();
BrowserActions.click(this.showRightSidebarSwitch);
}
clickToggleLeftSidebar() {
BrowserVisibility.waitUntilElementIsVisible(this.showLeftSidebarSwitch);
this.showLeftSidebarSwitch.click();
BrowserActions.click(this.showLeftSidebarSwitch);
}
enterCustomName(text) {
@@ -639,17 +618,6 @@ export class ViewerPage {
return this;
}
clickMoveRightChevron() {
BrowserVisibility.waitUntilElementIsVisible(this.moveRightChevron);
return this.moveRightChevron.click();
}
checkTabHasIcon(index: number) {
const tab = element(by.css(`div[id="mat-tab-label-1-${index}"] div[class="mat-tab-label-content"] mat-icon`));
BrowserVisibility.waitUntilElementIsVisible(tab);
return this;
}
checkTabHasNoIcon(index: number) {
const tab = element(by.css(`div[id="mat-tab-label-1-${index}"] div[class="mat-tab-label-content"] mat-icon`));
BrowserVisibility.waitUntilElementIsNotVisible(tab);
@@ -664,13 +632,11 @@ export class ViewerPage {
getTabLabelById(index: number) {
const tab = element(by.css(`div[id="mat-tab-label-1-${index}"] div[class="mat-tab-label-content"] span`));
BrowserVisibility.waitUntilElementIsVisible(tab);
return tab.getText();
return BrowserActions.getText(tab);
}
getTabIconById(index: number) {
const tab = element(by.css(`div[id="mat-tab-label-1-${index}"] div[class="mat-tab-label-content"] mat-icon`));
BrowserVisibility.waitUntilElementIsVisible(tab);
return tab.getText();
return BrowserActions.getText(tab);
}
}