Files
alfresco-ng2-components/e2e/pages/adf/content-services/search/components/search-checkList.ts
gmandakini 4376d357ac [ADF-3962] sso download directive automated (#4452)
* sso download directive automated

* temp changes

* temp changes

* moving of services under lib testing and ADF-3962 automated

* removed the browser sleep

* cspell and linting fixes.

* codacy improvements

* export public-api update

* remove circular dep

* remove circular dep

* fixes

* fix user info test

* fix datatable

* random commit

* move other string

* fix lint

* fix lint

* fix prolem type

* fix failing test

* fix tag test

* fix problems after rebase

* fix lint

* remove space

* remove visibility method duplicated
2019-03-27 09:57:26 +00:00

184 lines
6.6 KiB
TypeScript

/*!
* @license
* Copyright 2019 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { element, by, ElementFinder } from 'protractor';
import { BrowserVisibility } from '@alfresco/adf-testing';
export class SearchCheckListPage {
filter: ElementFinder;
inputBy = by.css('div[class*="mat-expansion-panel-content"] input');
showMoreBy = by.css('button[title="Show more"]');
showLessBy = by.css('button[title="Show less"]');
clearAllButton = by.css('button');
constructor(filter: ElementFinder) {
this.filter = filter;
}
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();
}
checkChipIsDisplayed(option) {
BrowserVisibility.waitUntilElementIsVisible(element(by.cssContainingText('mat-chip', option)).element(by.css('mat-icon')));
return this;
}
checkChipIsNotDisplayed(option) {
BrowserVisibility.waitUntilElementIsNotOnPage(element(by.cssContainingText('mat-chip', option)).element(by.css('mat-icon')));
return this;
}
removeFilterOption(option) {
const cancelChipButton = element(by.cssContainingText('mat-chip', option)).element(by.css('mat-icon'));
BrowserVisibility.waitUntilElementIsClickable(cancelChipButton);
cancelChipButton.click();
return this;
}
filterBy(option) {
this.checkSearchFilterInputIsDisplayed();
this.searchInFilter(option);
this.clickCheckListOption(option);
return this;
}
checkSearchFilterInputIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.all(this.inputBy).first());
return this;
}
searchInFilter(option) {
BrowserVisibility.waitUntilElementIsClickable(this.filter);
const inputElement = this.filter.all(this.inputBy).first();
BrowserVisibility.waitUntilElementIsClickable(inputElement);
inputElement.clear();
this.filter.all(this.inputBy).first().sendKeys(option);
return this;
}
checkShowLessButtonIsNotDisplayed() {
BrowserVisibility.waitUntilElementIsNotVisible(this.filter.element(this.showLessBy));
return this;
}
checkShowLessButtonIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.showLessBy));
return this;
}
checkShowMoreButtonIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.showMoreBy));
return this;
}
checkShowMoreButtonIsNotDisplayed() {
BrowserVisibility.waitUntilElementIsNotVisible(this.filter.element(this.showMoreBy));
return this;
}
clickShowMoreButtonUntilIsNotDisplayed() {
this.filter.element(this.showMoreBy).isDisplayed().then(async (visible) => {
if (visible) {
this.filter.element(this.showMoreBy).click();
this.clickShowMoreButtonUntilIsNotDisplayed();
}
}, () => {
});
return this;
}
clickShowLessButtonUntilIsNotDisplayed() {
this.filter.element(this.showLessBy).isDisplayed().then(async (visible) => {
if (visible) {
this.filter.element(this.showLessBy).click();
this.clickShowLessButtonUntilIsNotDisplayed();
}
}, () => {
});
return this;
}
getBucketNumberOfFilterType(option) {
const fileTypeFilter = this.filter.all(by.css('mat-checkbox[data-automation-id*=".' + option + '"] span')).first();
BrowserVisibility.waitUntilElementIsVisible(fileTypeFilter);
const bucketNumber = fileTypeFilter.getText().then((valueOfBucket) => {
const numberOfBucket = valueOfBucket.split('(')[1];
const totalNumberOfBucket = numberOfBucket.split(')')[0];
return totalNumberOfBucket.trim();
});
return bucketNumber;
}
checkCheckListOptionIsDisplayed(option) {
BrowserVisibility.waitUntilElementIsVisible(this.filter);
const result = this.filter.element(by.css(`mat-checkbox[data-automation-id*='-${option}']`));
return BrowserVisibility.waitUntilElementIsVisible(result);
}
checkCheckListOptionIsNotSelected(option) {
BrowserVisibility.waitUntilElementIsVisible(this.filter);
const result = this.filter.element(by.css(`mat-checkbox[data-automation-id*='-${option}'][class*='checked']`));
return BrowserVisibility.waitUntilElementIsNotVisible(result);
}
checkCheckListOptionIsSelected(option) {
BrowserVisibility.waitUntilElementIsVisible(this.filter);
const result = this.filter.element(by.css(`mat-checkbox[data-automation-id*='-${option}'][class*='checked']`));
return BrowserVisibility.waitUntilElementIsVisible(result);
}
checkClearAllButtonIsDisplayed() {
BrowserVisibility.waitUntilElementIsVisible(this.filter);
const result = this.filter.element(this.clearAllButton);
return BrowserVisibility.waitUntilElementIsVisible(result);
}
clickClearAllButton() {
BrowserVisibility.waitUntilElementIsVisible(this.filter);
const result = this.filter.element(this.clearAllButton);
BrowserVisibility.waitUntilElementIsVisible(result);
return result.click();
}
getCheckListOptionsNumberOnPage() {
BrowserVisibility.waitUntilElementIsVisible(this.filter);
const checkListOptions = this.filter.all(by.css('div[class="checklist"] mat-checkbox'));
return checkListOptions.count();
}
clickShowMoreButton() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.showMoreBy));
return this.filter.element(this.showMoreBy).click();
}
clickShowLessButton() {
BrowserVisibility.waitUntilElementIsVisible(this.filter.element(this.showLessBy));
return this.filter.element(this.showLessBy).click();
}
}