Disable control flow e2e ADF (#4954)

* update project script possible different JS-API

* first commit no controll flow

* second commit no controll flow

* third commit no controll flow

* 4 commit no controll flow

* 5 commit no controll flow

* 6 commit no controll flow

* 7 commit no controll flow

* 8 commit no controll flow

* 9 commit no controll flow

* 10 commit no controll flow

* 11 commit no controll flow

* 12 commit no controll flow

* 13 commit no controll flow

* 14 commit no controll flow

* 15 commit no controll flow

* 16 commit no controll flow

* 17 commit no controll flow

* 18 commit no controll flow

* 19 commit no controll flow

* 20 commit no controll flow

* remove wdpromise, protractor promise and deferred promises

* - fixed some incorrect “expect” calls
- fixed some matchers
- removed “return this;” when not needed
- added a few more await-s

* forgot a file

* fix some failing tests

* replaced driver calls with browser calls and enabled back waitForAngular

* fix rightClick methods and hopefully some tests

* fix settings-component

* some more fixes for core and content tests

* try to fix some more issues

* linting

* revert some changes, allowing download on headless chrome won’t work with multiple browser instances

* fixes for Search tests

* try to remove some wait calls

* fix build

* increase allScriptsTimeout and try another protractor and web driver version

* improve navigation methods

* some fixes for notification history and login sso

* forgot a space

* fix packages and enable some screenshots

* navigation bar fixes

* fix some test

* some fixes for notification history and navigation bar
use correct visibility method in attachFileWidget test

* fix searching and another fix for navigation

* try solve sso login

* some more fixes

* refactor async forEach into for..of

* try fix for search tests

* resolve rebabse problems

* remove install

* fix lint

* fix core e2e

* fix core e2e

* fix core e2e

* fix ps tests

* fix some tests

* fix core e2e

* fix core e2e

* fix core

* fix some issues PS

* fix core

* fix core

* fix some ps test

* fix rebase issues

* remove save

* fix url regressed after rebase

* fix url regressed after rebase

* fix ps and core

* fix lint

* more parallel e2e ps

* fix some ps cloud test

* some cloud fix

* fix lint

* fix some test

* remove files to be ignored

* out-tsc

* improve one cs test

* fix candidate base app

* fix ps test

* remove click function

* clean methods alrady present in browser action

* try ugly wait

* move wait

* remove duplicate call

* remove underscore

* fix after review

* fix imports

* minor cosmetic fixes

* fix comments test
This commit is contained in:
Eugenio Romano
2019-08-17 14:32:02 +02:00
committed by GitHub
parent 4f3cf669f2
commit 83412bb9b6
328 changed files with 17653 additions and 18793 deletions

View File

@@ -54,7 +54,7 @@ describe('Search Checklist Component', () => {
let createdFile, createdFolder;
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -64,16 +64,18 @@ describe('Search Checklist Component', () => {
createdFolder = await this.alfrescoJsApi.nodes.addNode('-my-', { name: nodeNames.folder, nodeType: 'cm:folder' });
createdFile = await this.alfrescoJsApi.nodes.addNode('-my-', { name: nodeNames.document, nodeType: 'cm:content' });
await browser.driver.sleep(15000);
await browser.sleep(15000);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/search;q=' + randomName + '');
done();
});
afterAll(async (done) => {
beforeEach(async () => {
await navigationBarPage.clickContentServicesButton();
await BrowserActions.getUrl(`${browser.params.testConfig.adf.url}/search;q=${randomName}`);
});
afterAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await uploadActions.deleteFileOrFolder(createdFile.entry.id);
@@ -81,45 +83,44 @@ describe('Search Checklist Component', () => {
await navigationBarPage.clickLogoutButton();
done();
});
it('[C276991] Should be able to click between options and Clear All button', () => {
searchFiltersPage.checkCheckListFilterIsDisplayed();
searchFiltersPage.checkCheckListFilterIsCollapsed();
searchFiltersPage.clickCheckListFilter();
it('[C276991] Should be able to click between options and Clear All button', async() => {
await searchFiltersPage.checkCheckListFilterIsDisplayed();
await searchFiltersPage.checkCheckListFilterIsCollapsed();
await searchFiltersPage.clickCheckListFilter();
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsDisplayed(filterType.folder);
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsDisplayed(filterType.document);
searchFiltersPage.checkListFiltersPage().checkClearAllButtonIsDisplayed();
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsNotSelected(filterType.folder);
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsNotSelected(filterType.document);
searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.folder);
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsSelected(filterType.folder);
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsDisplayed(filterType.folder);
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsDisplayed(filterType.document);
await searchFiltersPage.checkListFiltersPage().checkClearAllButtonIsDisplayed();
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsNotSelected(filterType.folder);
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsNotSelected(filterType.document);
await searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.folder);
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsSelected(filterType.folder);
searchResults.checkContentIsDisplayed(nodeNames.folder);
searchResults.checkContentIsNotDisplayed(nodeNames.document);
await searchResults.checkContentIsDisplayed(nodeNames.folder);
await searchResults.checkContentIsNotDisplayed(nodeNames.document);
searchFiltersPage.checkListFiltersPage().clickClearAllButton();
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsNotSelected(filterType.folder);
await searchFiltersPage.checkListFiltersPage().clickClearAllButton();
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsNotSelected(filterType.folder);
searchResults.checkContentIsDisplayed(nodeNames.folder);
searchResults.checkContentIsDisplayed(nodeNames.document);
await searchResults.checkContentIsDisplayed(nodeNames.folder);
await searchResults.checkContentIsDisplayed(nodeNames.document);
searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.folder);
searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.document);
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsSelected(filterType.folder);
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsSelected(filterType.document);
await searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.folder);
await searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.document);
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsSelected(filterType.folder);
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsSelected(filterType.document);
searchResults.checkContentIsDisplayed(nodeNames.folder);
searchResults.checkContentIsDisplayed(nodeNames.document);
await searchResults.checkContentIsDisplayed(nodeNames.folder);
await searchResults.checkContentIsDisplayed(nodeNames.document);
searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.folder);
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsSelected(filterType.document);
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsNotSelected(filterType.folder);
await searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.folder);
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsSelected(filterType.document);
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsNotSelected(filterType.folder);
searchResults.checkContentIsDisplayed(nodeNames.document);
searchResults.checkContentIsNotDisplayed(nodeNames.folder);
await searchResults.checkContentIsDisplayed(nodeNames.document);
await searchResults.checkContentIsNotDisplayed(nodeNames.folder);
});
describe('configuration change', () => {
@@ -130,7 +131,7 @@ describe('Search Checklist Component', () => {
});
it('[C277143] Should be able to click show more/less button with pageSize set as default', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
for (let numberOfOptions = 0; numberOfOptions < 8; numberOfOptions++) {
jsonFile.categories[1].component.settings.options.push({
@@ -140,32 +141,33 @@ describe('Search Checklist Component', () => {
}
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
browser.sleep(2000);
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickCheckListFilter();
expect(searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(5);
await expect(await searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(5);
searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsDisplayed();
searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsNotDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsNotDisplayed();
searchFiltersPage.checkListFiltersPage().clickShowMoreButton();
await searchFiltersPage.checkListFiltersPage().clickShowMoreButton();
expect(searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(10);
await expect(await searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(10);
searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsNotDisplayed();
searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsNotDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsDisplayed();
searchFiltersPage.checkListFiltersPage().clickShowLessButton();
await searchFiltersPage.checkListFiltersPage().clickShowLessButton();
expect(searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(5);
await expect(await searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(5);
searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsDisplayed();
searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsNotDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsNotDisplayed();
});
it('[C277144] Should be able to click show more/less button with pageSize set with a custom value', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[1].component.settings.pageSize = 10;
@@ -178,41 +180,47 @@ describe('Search Checklist Component', () => {
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickCheckListFilter();
expect(searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(10);
await expect(await searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(10);
searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsNotDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsNotDisplayed();
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[1].component.settings.pageSize = 11;
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickCheckListFilter();
expect(searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(10);
await expect(await searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(10);
searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsNotDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsNotDisplayed();
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[1].component.settings.pageSize = 9;
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickCheckListFilter();
expect(searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(9);
await expect(await searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(9);
searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsDisplayed();
});
it('[C277145] Should be able to click show more/less button with pageSize set to zero', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[1].component.settings.pageSize = 0;
@@ -225,41 +233,45 @@ describe('Search Checklist Component', () => {
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickCheckListFilter();
expect(searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(5);
await expect(await searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(5);
searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsDisplayed();
searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsNotDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsNotDisplayed();
searchFiltersPage.checkListFiltersPage().clickShowMoreButton();
await searchFiltersPage.checkListFiltersPage().clickShowMoreButton();
expect(searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(10);
await expect(await searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(10);
searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsNotDisplayed();
searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsNotDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsDisplayed();
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
delete jsonFile.categories[1].component.settings.pageSize;
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickCheckListFilter();
expect(searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(5);
await expect(await searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(5);
searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsDisplayed();
searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsNotDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsNotDisplayed();
searchFiltersPage.checkListFiltersPage().clickShowMoreButton();
await searchFiltersPage.checkListFiltersPage().clickShowMoreButton();
expect(searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(10);
await expect(await searchFiltersPage.checkListFiltersPage().getCheckListOptionsNumberOnPage()).toBe(10);
searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsNotDisplayed();
searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowMoreButtonIsNotDisplayed();
await searchFiltersPage.checkListFiltersPage().checkShowLessButtonIsDisplayed();
});
});
@@ -272,36 +284,37 @@ describe('Search Checklist Component', () => {
jsonFile = SearchConfiguration.getConfiguration();
});
beforeAll(async (done) => {
beforeAll(async () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
it('[C277018] Should be able to change the operator', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[1].component.settings.operator = 'AND';
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickCheckListFilter();
searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.folder);
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsSelected(filterType.folder);
await searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.folder);
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsSelected(filterType.folder);
searchResults.checkContentIsDisplayed(nodeNames.folder);
searchResults.checkContentIsNotDisplayed(nodeNames.document);
await searchResults.checkContentIsDisplayed(nodeNames.folder);
await searchResults.checkContentIsNotDisplayed(nodeNames.document);
searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.document);
await searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.document);
searchResults.checkContentIsNotDisplayed(nodeNames.folder);
searchResults.checkContentIsNotDisplayed(nodeNames.document);
await searchResults.checkContentIsNotDisplayed(nodeNames.folder);
await searchResults.checkContentIsNotDisplayed(nodeNames.document);
});
it('[C277019] Should be able to add new properties with different types', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[1].component.settings.options.push({
'name': filterType.custom,
@@ -310,23 +323,25 @@ describe('Search Checklist Component', () => {
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickCheckListFilter();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickCheckListFilter();
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsDisplayed(filterType.folder);
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsDisplayed(filterType.document);
searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsDisplayed(filterType.custom);
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsDisplayed(filterType.folder);
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsDisplayed(filterType.document);
await searchFiltersPage.checkListFiltersPage().checkCheckListOptionIsDisplayed(filterType.custom);
searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.custom);
await searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.custom);
searchResults.checkContentIsNotDisplayed(nodeNames.folder);
searchResults.checkContentIsNotDisplayed(nodeNames.document);
await searchResults.checkContentIsNotDisplayed(nodeNames.folder);
await searchResults.checkContentIsNotDisplayed(nodeNames.document);
searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.document);
searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.folder);
await searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.document);
await searchFiltersPage.checkListFiltersPage().clickCheckListOption(filterType.folder);
searchResults.checkContentIsDisplayed(nodeNames.folder);
searchResults.checkContentIsDisplayed(nodeNames.document);
await searchResults.checkContentIsDisplayed(nodeNames.folder);
await searchResults.checkContentIsDisplayed(nodeNames.document);
});
});

View File

@@ -34,182 +34,178 @@ describe('Search Date Range Filter', () => {
const dateRangeFilter = searchFilters.createdDateRangeFilterPage();
const searchResults = new SearchResultsPage();
const datePicker = new DatePickerPage();
const navigationBarPage = new NavigationBarPage();
const navigationBar = new NavigationBarPage();
const dataTable = new DataTableComponentPage();
beforeAll(async (done) => {
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
hostEcm: browser.params.testConfig.adf_acs.host
});
loginPage.loginToContentServices(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await loginPage.loginToContentServices(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter('*');
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
done();
});
beforeEach(() => {
searchFilters.checkCreatedRangeFilterIsDisplayed()
.clickCreatedRangeFilterHeader()
.checkCreatedRangeFilterIsExpanded();
beforeEach(async () => {
await searchFilters.checkCreatedRangeFilterIsDisplayed();
await searchFilters.clickCreatedRangeFilterHeader();
await searchFilters.checkCreatedRangeFilterIsExpanded();
});
afterEach(async (done) => {
afterEach(async () => {
await browser.refresh();
done();
});
it('[C277106] Should display default values for Date Range widget', () => {
dateRangeFilter.checkFromFieldIsDisplayed()
.checkFromDateToggleIsDisplayed()
.checkToFieldIsDisplayed()
.checkToDateToggleIsDisplayed()
.checkApplyButtonIsDisplayed()
.checkApplyButtonIsDisabled()
.checkClearButtonIsDisplayed();
it('[C277106] Should display default values for Date Range widget', async () => {
await dateRangeFilter.checkFromFieldIsDisplayed();
await dateRangeFilter.checkFromDateToggleIsDisplayed();
await dateRangeFilter.checkToFieldIsDisplayed();
await dateRangeFilter.checkToDateToggleIsDisplayed();
await dateRangeFilter.checkApplyButtonIsDisplayed();
await dateRangeFilter.checkApplyButtonIsDisabled();
await dateRangeFilter.checkClearButtonIsDisplayed();
});
it('[C277104] Should be able to set dates using date pickers', () => {
dateRangeFilter.checkFromDateToggleIsDisplayed().openFromDatePicker()
.selectTodayDate();
browser.controlFlow().execute(async () => {
await expect(dateRangeFilter.getFromDate()).toEqual(dateRangeFilter.getFromCalendarSelectedDate());
});
it('[C277104] Should be able to set dates using date pickers', async () => {
await dateRangeFilter.checkFromDateToggleIsDisplayed();
const fromDatePicker = await dateRangeFilter.openFromDatePicker();
await fromDatePicker.selectTodayDate();
await expect(await dateRangeFilter.getFromDate()).toEqual(await dateRangeFilter.getFromCalendarSelectedDate());
});
it('[C277105] Should be able to type a date', () => {
it('[C277105] Should be able to type a date', async () => {
const date = '01-May-18';
dateRangeFilter.putFromDate(date);
browser.controlFlow().execute(async () => {
await expect(dateRangeFilter.getFromCalendarSelectedDate()).toEqual(dateRangeFilter.getFromDate());
});
await dateRangeFilter.putFromDate(date);
await expect(await dateRangeFilter.getFromCalendarSelectedDate()).toEqual(await dateRangeFilter.getFromDate());
});
it('[C277119] FROM and TO dates should depend on each other', () => {
dateRangeFilter.checkFromDateToggleIsDisplayed().openFromDatePicker()
.checkDatesAfterDateAreDisabled(new Date())
.closeDatePicker();
it('[C277119] FROM and TO dates should depend on each other', async () => {
await dateRangeFilter.checkFromDateToggleIsDisplayed();
const fromDatePicker = await dateRangeFilter.openFromDatePicker();
await fromDatePicker.checkDatesAfterDateAreDisabled(new Date());
await fromDatePicker.closeDatePicker();
dateRangeFilter.checkToDateToggleIsDisplayed().openToDatePicker()
.checkDatesAfterDateAreDisabled(new Date())
.closeDatePicker();
await dateRangeFilter.checkToDateToggleIsDisplayed();
let datePickerTo = await dateRangeFilter.openToDatePicker();
dateRangeFilter.checkFromDateToggleIsDisplayed().openFromDatePicker()
.selectTodayDate()
.checkDatePickerIsNotDisplayed();
await datePickerTo.checkDatesAfterDateAreDisabled(new Date());
await datePickerTo.closeDatePicker();
dateRangeFilter.checkToDateToggleIsDisplayed().openToDatePicker()
.checkDatesBeforeDateAreDisabled(new Date())
.checkDatesAfterDateAreDisabled(new Date());
await dateRangeFilter.checkFromDateToggleIsDisplayed();
const datePickerFrom = await dateRangeFilter.openFromDatePicker();
await datePickerFrom.selectTodayDate();
await datePickerFrom.checkDatePickerIsNotDisplayed();
await dateRangeFilter.checkToDateToggleIsDisplayed();
datePickerTo = await dateRangeFilter.openToDatePicker();
await datePickerTo.checkDatesBeforeDateAreDisabled(new Date());
await datePickerTo.checkDatesAfterDateAreDisabled(new Date());
});
it('[C277107] Should be able to apply a date range', () => {
let fromDate, toDate;
dateRangeFilter.checkFromDateToggleIsDisplayed().openFromDatePicker()
.selectTodayDate()
.checkDatePickerIsNotDisplayed();
dateRangeFilter.getFromDate().then((date) => {
fromDate = DateUtil.formatDate('DD-MM-YY', DateUtil.parse(date, 'DD-MMM-YY'));
});
it('[C277107] Should be able to apply a date range', async () => {
await dateRangeFilter.checkFromDateToggleIsDisplayed();
const datePickerToday = await dateRangeFilter.openFromDatePicker();
await datePickerToday.selectTodayDate();
await datePickerToday.checkDatePickerIsNotDisplayed();
let fromDate = await dateRangeFilter.getFromDate();
fromDate = DateUtil.formatDate('DD-MM-YY', DateUtil.parse(fromDate, 'DD-MMM-YY'));
dateRangeFilter.checkApplyButtonIsDisabled();
await dateRangeFilter.checkApplyButtonIsDisabled();
dateRangeFilter.checkToDateToggleIsDisplayed().openToDatePicker()
.selectTodayDate()
.checkDatePickerIsNotDisplayed();
dateRangeFilter.getToDate().then((date) => {
toDate = DateUtil.formatDate('DD-MM-YY', DateUtil.parse(date, 'DD-MMM-YY'), 1);
});
await dateRangeFilter.checkToDateToggleIsDisplayed();
const toDatePicker = await dateRangeFilter.openToDatePicker();
dateRangeFilter.checkApplyButtonIsEnabled()
.clickApplyButton();
await toDatePicker.selectTodayDate();
await toDatePicker.checkDatePickerIsNotDisplayed();
let toDate = await dateRangeFilter.getToDate();
toDate = DateUtil.formatDate('DD-MM-YY', DateUtil.parse(toDate, 'DD-MMM-YY'), 1);
searchResults.sortByCreated('ASC');
await dateRangeFilter.checkApplyButtonIsEnabled();
await dateRangeFilter.clickApplyButton();
browser.controlFlow().execute(async () => {
const results = await dataTable.geCellElementDetail('Created');
for (const currentResult of results) {
await searchResults.sortByCreated('ASC');
currentResult.getAttribute('title').then(async (currentDate) => {
const currentDateFormatted = DateUtil.parse(currentDate, 'MMM DD, YYYY, h:mm:ss a');
const results: any = dataTable.geCellElementDetail('Created');
for (const currentResult of results) {
await expect(currentDateFormatted <= DateUtil.parse(toDate, 'DD-MM-YY')).toBe(true);
await expect(currentDateFormatted >= DateUtil.parse(fromDate, 'DD-MM-YY')).toBe(true);
});
const currentDate = currentResult.getAttribute('title');
const currentDateFormatted = DateUtil.parse(currentDate, 'MMM DD, YYYY, h:mm:ss a');
}
});
await expect(currentDateFormatted <= DateUtil.parse(toDate, 'DD-MM-YY')).toBe(true);
await expect(currentDateFormatted >= DateUtil.parse(fromDate, 'DD-MM-YY')).toBe(true);
}
});
it('[C277108] Should display a warning message when user doesn\'t set the date range at all', () => {
dateRangeFilter.checkFromFieldIsDisplayed()
.clickFromField()
.clickToField()
.checkFromErrorMessageIsDisplayed('Required value')
.clickFromField()
.checkToErrorMessageIsDisplayed('Required value');
it('[C277108] Should display a warning message when user doesn\'t set the date range at all', async () => {
await dateRangeFilter.checkFromFieldIsDisplayed();
await dateRangeFilter.clickFromField();
await dateRangeFilter.clickToField();
await dateRangeFilter.checkFromErrorMessageIsDisplayed('Required value');
await dateRangeFilter.clickFromField();
await dateRangeFilter.checkToErrorMessageIsDisplayed('Required value');
});
it('[C277114] Should display warning message if user doesn\'t set the date range properly', () => {
it('[C277114] Should display warning message if user doesn\'t set the date range properly', async () => {
const toDate = '01-May-18';
const fromDate = '16-May-18';
dateRangeFilter.checkToFieldIsDisplayed()
.putToDate(toDate)
.checkFromFieldIsDisplayed()
.putFromDate(fromDate)
.clickFromField()
.checkToErrorMessageIsDisplayed('No days selected.');
await dateRangeFilter.checkToFieldIsDisplayed();
await dateRangeFilter.putToDate(toDate);
await dateRangeFilter.checkFromFieldIsDisplayed();
await dateRangeFilter.putFromDate(fromDate);
await dateRangeFilter.clickFromField();
await dateRangeFilter.checkToErrorMessageIsDisplayed('No days selected.');
});
it('[C277115] Should display warning message if user types a date later than today\'s date', () => {
dateRangeFilter.checkFromFieldIsDisplayed()
.putFromDate(DateUtil.formatDate('DD-MMM-YY', new Date(), 1))
.checkFromErrorMessageIsDisplayed('The date is beyond the maximum date.');
it('[C277115] Should display warning message if user types a date later than today\'s date', async () => {
await dateRangeFilter.checkFromFieldIsDisplayed();
await dateRangeFilter.putFromDate(DateUtil.formatDate('DD-MMM-YY', new Date(), 1));
await dateRangeFilter.checkFromErrorMessageIsDisplayed('The date is beyond the maximum date.');
});
it('[C277108] Should display a warning message when user doesn\'t set the date range at all', () => {
dateRangeFilter.checkFromFieldIsDisplayed()
.putFromDate('Wrong Format')
.clickToField()
.checkFromErrorMessageIsDisplayed('Invalid date. The date must be in the format \'DD-MMM-YY\'')
.putFromDate('01-May-18')
.checkFromErrorMessageIsNotDisplayed();
it('[C277108] Should display a warning message when user doesn\'t set the date range at all', async () => {
await dateRangeFilter.checkFromFieldIsDisplayed();
await dateRangeFilter.putFromDate('Wrong Format');
await dateRangeFilter.clickToField();
await dateRangeFilter.checkFromErrorMessageIsDisplayed('Invalid date. The date must be in the format \'DD-MMM-YY\'');
await dateRangeFilter.putFromDate('01-May-18');
await dateRangeFilter.checkFromErrorMessageIsNotDisplayed();
});
describe('configuration change', () => {
let jsonFile;
beforeAll(() => {
beforeAll(async () => {
jsonFile = SearchConfiguration.getConfiguration();
});
it('[C277117] Should be able to change date format', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBar.clickContentServicesButton();
jsonFile.categories[4].component.settings.dateFormat = 'MM-DD-YY';
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().enterTextAndPressEnter('*');
searchFilters.checkCreatedRangeFilterIsDisplayed()
.clickCreatedRangeFilterHeader()
.checkCreatedRangeFilterIsExpanded();
dateRangeFilter.checkFromFieldIsDisplayed()
.openFromDatePicker();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
await searchFilters.checkCreatedRangeFilterIsDisplayed();
await searchFilters.clickCreatedRangeFilterHeader();
await searchFilters.checkCreatedRangeFilterIsExpanded();
await dateRangeFilter.checkFromFieldIsDisplayed();
await dateRangeFilter.openFromDatePicker();
const todayDate = DateUtil.formatDate('MM-DD-YY');
datePicker.selectTodayDate();
await datePicker.selectTodayDate();
browser.controlFlow().execute(async () => {
await expect(dateRangeFilter.getFromDate()).toEqual(todayDate);
});
await expect(await dateRangeFilter.getFromDate()).toEqual(todayDate);
});
});
});

View File

@@ -56,7 +56,7 @@ describe('Search Number Range Filter', () => {
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
@@ -66,322 +66,318 @@ describe('Search Number Range Filter', () => {
file2Bytes = await uploadActions.uploadFile(file2BytesModel.location, file2BytesModel.name, '-my-');
file0Bytes = await uploadActions.uploadFile(file0BytesModel.location, file0BytesModel.name, '-my-');
await browser.driver.sleep(15000);
await browser.sleep(15000);
loginPage.loginToContentServices(acsUser.id, acsUser.password);
await loginPage.loginToContentServices(acsUser.id, acsUser.password);
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter('*');
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
done();
});
afterAll(async (done) => {
afterAll(async () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await uploadActions.deleteFileOrFolder(file2Bytes.entry.id);
await uploadActions.deleteFileOrFolder(file0Bytes.entry.id);
await navigationBarPage.clickLogoutButton();
done();
});
beforeEach(() => {
searchFilters.checkSizeRangeFilterIsDisplayed()
.clickSizeRangeFilterHeader()
.checkSizeRangeFilterIsExpanded();
beforeEach(async () => {
await searchFilters.checkSizeRangeFilterIsDisplayed();
await searchFilters.clickSizeRangeFilterHeader();
await searchFilters.checkSizeRangeFilterIsExpanded();
});
afterEach(async (done) => {
afterEach(async () => {
await browser.refresh();
done();
});
it('[C276921] Should display default values for Number Range widget', () => {
sizeRangeFilter.checkFromFieldIsDisplayed()
.checkToFieldIsDisplayed()
.checkApplyButtonIsDisplayed()
.checkClearButtonIsDisplayed();
it('[C276921] Should display default values for Number Range widget', async () => {
await sizeRangeFilter.checkFromFieldIsDisplayed();
await sizeRangeFilter.checkToFieldIsDisplayed();
await sizeRangeFilter.checkApplyButtonIsDisplayed();
await sizeRangeFilter.checkClearButtonIsDisplayed();
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
});
it('[C276922] Should be keep value when Number Range widget is collapsed', () => {
it('[C276922] Should be keep value when Number Range widget is collapsed', async () => {
const size = 5;
sizeRangeFilter.putFromNumber(size);
sizeRangeFilter.putToNumber(size);
searchFilters.clickSizeRangeFilterHeader()
.checkSizeRangeFilterIsCollapsed()
.clickSizeRangeFilterHeader()
.checkSizeRangeFilterIsExpanded();
expect(sizeRangeFilter.getFromNumber()).toEqual(`${size}`);
expect(sizeRangeFilter.getToNumber()).toEqual(`${size}`);
await sizeRangeFilter.putFromNumber(size);
await sizeRangeFilter.putToNumber(size);
await searchFilters.clickSizeRangeFilterHeader();
await searchFilters.checkSizeRangeFilterIsCollapsed();
await searchFilters.clickSizeRangeFilterHeader();
await searchFilters.checkSizeRangeFilterIsExpanded();
await expect(await sizeRangeFilter.getFromNumber()).toEqual(`${size}`);
await expect(await sizeRangeFilter.getToNumber()).toEqual(`${size}`);
});
it('[C276924] Should display error message when input had an invalid format', () => {
sizeRangeFilter.checkFromFieldIsDisplayed()
.putFromNumber('a').putToNumber('A')
.checkFromErrorInvalidIsDisplayed().checkToErrorInvalidIsDisplayed();
it('[C276924] Should display error message when input had an invalid format', async () => {
await sizeRangeFilter.checkFromFieldIsDisplayed();
await sizeRangeFilter.putFromNumber('a');
await sizeRangeFilter.putToNumber('A');
await sizeRangeFilter.checkFromErrorInvalidIsDisplayed();
await sizeRangeFilter.checkToErrorInvalidIsDisplayed();
expect(sizeRangeFilter.getFromErrorInvalid()).toEqual('Invalid Format');
expect(sizeRangeFilter.getToErrorInvalid()).toEqual('Invalid Format');
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
await expect(await sizeRangeFilter.getFromErrorInvalid()).toEqual('Invalid Format');
await expect(await sizeRangeFilter.getToErrorInvalid()).toEqual('Invalid Format');
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
sizeRangeFilter.putFromNumber('@').putToNumber('£')
.checkFromErrorInvalidIsDisplayed().checkToErrorInvalidIsDisplayed();
expect(sizeRangeFilter.getFromErrorInvalid()).toEqual('Invalid Format');
expect(sizeRangeFilter.getToErrorInvalid()).toEqual('Invalid Format');
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
await sizeRangeFilter.putFromNumber('@');
await sizeRangeFilter.putToNumber('£');
await sizeRangeFilter.checkFromErrorInvalidIsDisplayed();
await sizeRangeFilter.checkToErrorInvalidIsDisplayed();
await expect(await sizeRangeFilter.getFromErrorInvalid()).toEqual('Invalid Format');
await expect(await sizeRangeFilter.getToErrorInvalid()).toEqual('Invalid Format');
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
sizeRangeFilter.putFromNumber('4.5').putToNumber('4,5')
.checkFromErrorInvalidIsDisplayed().checkToErrorInvalidIsDisplayed();
expect(sizeRangeFilter.getFromErrorInvalid()).toEqual('Invalid Format');
expect(sizeRangeFilter.getToErrorInvalid()).toEqual('Invalid Format');
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
await sizeRangeFilter.putFromNumber('4.5');
await sizeRangeFilter.putToNumber('4,5');
await sizeRangeFilter.checkFromErrorInvalidIsDisplayed();
await sizeRangeFilter.checkToErrorInvalidIsDisplayed();
await expect(await sizeRangeFilter.getFromErrorInvalid()).toEqual('Invalid Format');
await expect(await sizeRangeFilter.getToErrorInvalid()).toEqual('Invalid Format');
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
sizeRangeFilter.putFromNumber('01').putToNumber('-1');
expect(sizeRangeFilter.getFromErrorInvalid()).toEqual('Invalid Format');
expect(sizeRangeFilter.getToErrorInvalid()).toEqual('Invalid Format');
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
await sizeRangeFilter.putFromNumber('01');
await sizeRangeFilter.putToNumber('-1');
await expect(await sizeRangeFilter.getFromErrorInvalid()).toEqual('Invalid Format');
await expect(await sizeRangeFilter.getToErrorInvalid()).toEqual('Invalid Format');
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
sizeRangeFilter.clearFromField().clearToField()
.checkFromErrorRequiredIsDisplayed().checkToErrorRequiredIsDisplayed();
expect(sizeRangeFilter.getFromErrorRequired()).toEqual('Required value');
expect(sizeRangeFilter.getToErrorRequired()).toEqual('Required value');
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
await sizeRangeFilter.clearFromField();
await sizeRangeFilter.clearToField();
await sizeRangeFilter.checkFromErrorRequiredIsDisplayed();
await sizeRangeFilter.checkToErrorRequiredIsDisplayed();
await expect(await sizeRangeFilter.getFromErrorRequired()).toEqual('Required value');
await expect(await sizeRangeFilter.getToErrorRequired()).toEqual('Required value');
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
});
it('[C276943] Should be able to put a big value in To field', () => {
it('[C276943] Should be able to put a big value in To field', async () => {
const toSize = 999999999;
const fromSize = 0;
sizeRangeFilter.checkToFieldIsDisplayed()
.putToNumber(toSize)
.putFromNumber(fromSize);
await sizeRangeFilter.checkToFieldIsDisplayed();
await sizeRangeFilter.putToNumber(toSize);
await sizeRangeFilter.putFromNumber(fromSize);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
sizeRangeFilter.clickApplyButton();
searchResults.tableIsLoaded();
searchResults.sortBySize('DESC');
await sizeRangeFilter.clickApplyButton();
await searchResults.tableIsLoaded();
await searchResults.sortBySize('DESC');
browser.controlFlow().execute(async () => {
const results = await dataTable.geCellElementDetail('Size');
for (const currentResult of results) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) <= toSize).toBe(true);
}
} catch (e) {
const results: any = dataTable.geCellElementDetail('Size');
for (const currentResult of results) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) <= toSize).toBe(true);
}
} catch (e) {
}
});
}
});
it('[C276944] Should be able to filter by name when size range filter is applied', () => {
const nameFilter = searchFilters.textFiltersPage();
it('[C276944] Should be able to filter by name when size range filter is applied', async () => {
const nameFilter = await searchFilters.textFiltersPage();
const toSize = 40;
const fromSize = 0;
searchFilters.checkNameFilterIsDisplayed()
.checkNameFilterIsExpanded();
nameFilter.searchByName('*');
await searchFilters.checkNameFilterIsDisplayed();
await searchFilters.checkNameFilterIsExpanded();
await nameFilter.searchByName('*');
sizeRangeFilter.checkFromFieldIsDisplayed()
.putFromNumber(fromSize)
.putToNumber(toSize);
await sizeRangeFilter.checkFromFieldIsDisplayed();
await sizeRangeFilter.putFromNumber(fromSize);
await sizeRangeFilter.putToNumber(toSize);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
sizeRangeFilter.clickApplyButton();
searchResults.sortBySize('DESC');
await sizeRangeFilter.clickApplyButton();
await searchResults.sortBySize('DESC');
browser.controlFlow().execute(async () => {
const results = await dataTable.geCellElementDetail('Size');
for (const currentResult of results) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) <= toSize).toBe(true);
}
} catch (e) {
const results: any = dataTable.geCellElementDetail('Size');
for (const currentResult of results) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) <= toSize).toBe(true);
}
} catch (e) {
}
});
}
searchFilters.checkNameFilterIsDisplayed()
.checkNameFilterIsExpanded();
nameFilter.searchByName('z*');
searchResults.sortBySize('DESC');
await searchFilters.checkNameFilterIsDisplayed();
await searchFilters.checkNameFilterIsExpanded();
await nameFilter.searchByName('z*');
await searchResults.sortBySize('DESC');
browser.controlFlow().execute(async () => {
const results = await dataTable.geCellElementDetail('Size');
for (const currentResult of results) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) <= toSize).toBe(true);
}
} catch (e) {
const resultsSize: any = dataTable.geCellElementDetail('Size');
for (const currentResult of resultsSize) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) <= toSize).toBe(true);
}
} catch (e) {
}
});
}
browser.controlFlow().execute(async () => {
const results = await dataTable.geCellElementDetail('Display name');
for (const currentResult of results) {
try {
const name = await currentResult.getAttribute('title');
if (name && name.trim() !== '') {
await expect(/z*/i.test(name)).toBe(true);
}
} catch (e) {
const resultsDisplay: any = dataTable.geCellElementDetail('Display name');
for (const currentResult of resultsDisplay) {
try {
const name = await currentResult.getAttribute('title');
if (name && name.trim() !== '') {
await expect(/z*/i.test(name)).toBe(true);
}
} catch (e) {
}
});
}
});
it('[C276951] Should not display folders when Size range is applied', () => {
sizeRangeFilter.checkToFieldIsDisplayed()
.putToNumber(99999999)
.putFromNumber(0);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
it('[C276951] Should not display folders when Size range is applied', async () => {
await sizeRangeFilter.checkToFieldIsDisplayed();
await sizeRangeFilter.putToNumber(99999999);
await sizeRangeFilter.putFromNumber(0);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
sizeRangeFilter.clickApplyButton();
searchResults.tableIsLoaded();
searchFilters.checkCheckListFilterIsDisplayed();
searchFilters.clickCheckListFilter();
searchFilters.checkCheckListFilterIsExpanded();
await sizeRangeFilter.clickApplyButton();
await searchResults.tableIsLoaded();
await searchFilters.checkCheckListFilterIsDisplayed();
await searchFilters.clickCheckListFilter();
await searchFilters.checkCheckListFilterIsExpanded();
searchFilters.checkListFiltersPage()
.clickCheckListOption('Folder');
await searchFilters.checkListFiltersPage().clickCheckListOption('Folder');
searchResults.tableIsLoaded();
searchResults.checkNoResultMessageIsDisplayed();
await searchResults.tableIsLoaded();
await searchResults.checkNoResultMessageIsDisplayed();
});
it('[C276952] Should only display empty files when size range is set from 0 to 1', () => {
sizeRangeFilter.checkToFieldIsDisplayed()
.putToNumber(1)
.putFromNumber(0);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
it('[C276952] Should only display empty files when size range is set from 0 to 1', async () => {
await sizeRangeFilter.checkToFieldIsDisplayed();
await sizeRangeFilter.putToNumber(1);
await sizeRangeFilter.putFromNumber(0);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
sizeRangeFilter.clickApplyButton();
searchResults.tableIsLoaded();
searchResults.sortBySize('DESC');
await sizeRangeFilter.clickApplyButton();
await searchResults.tableIsLoaded();
await searchResults.sortBySize('DESC');
browser.controlFlow().execute(async () => {
const results = await dataTable.geCellElementDetail('Size');
for (const currentResult of results) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(currentSize === '0').toBe(true);
}
} catch (e) {
const results: any = dataTable.geCellElementDetail('Size');
for (const currentResult of results) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(currentSize === '0').toBe(true);
}
} catch (e) {
}
});
}
});
it('[C277092] Should disable apply button when from field value equal/is bigger than to field value', () => {
sizeRangeFilter.checkFromFieldIsDisplayed()
.putFromNumber(10);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
it('[C277092] Should disable apply button when from field value equal/is bigger than to field value', async () => {
await sizeRangeFilter.checkFromFieldIsDisplayed();
await sizeRangeFilter.putFromNumber(10);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
sizeRangeFilter.putToNumber('5');
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
await sizeRangeFilter.putToNumber('5');
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
sizeRangeFilter.putToNumber('10');
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
await sizeRangeFilter.putToNumber('10');
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(false);
});
it('[C289930] Should be able to clear values in number range fields', () => {
sizeRangeFilter.checkFromFieldIsDisplayed().checkClearButtonIsDisplayed().checkNoErrorMessageIsDisplayed()
.clickClearButton().checkNoErrorMessageIsDisplayed()
.putFromNumber(0).putToNumber(1).clickClearButton();
it('[C289930] Should be able to clear values in number range fields', async () => {
await sizeRangeFilter.checkFromFieldIsDisplayed();
await sizeRangeFilter.checkClearButtonIsDisplayed();
await sizeRangeFilter.checkNoErrorMessageIsDisplayed();
await sizeRangeFilter.clickClearButton();
await sizeRangeFilter.checkNoErrorMessageIsDisplayed();
await sizeRangeFilter.putFromNumber(0);
await sizeRangeFilter.putToNumber(1);
await sizeRangeFilter.clickClearButton();
expect(sizeRangeFilter.getFromNumber()).toEqual('');
expect(sizeRangeFilter.getToNumber()).toEqual('');
await expect(await sizeRangeFilter.getFromNumber()).toEqual('');
await expect(await sizeRangeFilter.getToNumber()).toEqual('');
sizeRangeFilter.putFromNumber(0).putToNumber(1).clickApplyButton();
searchResults.sortBySize('DESC');
await sizeRangeFilter.putFromNumber(0);
await sizeRangeFilter.putToNumber(1);
await sizeRangeFilter.clickApplyButton();
await searchResults.sortBySize('DESC');
browser.controlFlow().execute(async () => {
const results = await dataTable.geCellElementDetail('Size');
for (const currentResult of results) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) <= 1000).toBe(true);
}
} catch (e) {
const results: any = dataTable.geCellElementDetail('Size');
for (const currentResult of results) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) <= 1000).toBe(true);
}
} catch (e) {
}
});
}
sizeRangeFilter.clickClearButton();
await sizeRangeFilter.clickClearButton();
expect(sizeRangeFilter.getFromNumber()).toEqual('');
expect(sizeRangeFilter.getToNumber()).toEqual('');
await expect(await sizeRangeFilter.getFromNumber()).toEqual('');
await expect(await sizeRangeFilter.getToNumber()).toEqual('');
browser.controlFlow().execute(async () => {
const results = await dataTable.geCellElementDetail('Size');
for (const currentResult of results) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) >= 1000).toBe(true);
}
} catch (e) {
const resultsSize: any = dataTable.geCellElementDetail('Size');
for (const currentResult of resultsSize) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) >= 1000).toBe(true);
}
} catch (e) {
}
});
}
});
it('[C277137] Number Range should be inclusive', () => {
sizeRangeFilter.checkToFieldIsDisplayed()
.putToNumber(2)
.putFromNumber(1);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
it('[C277137] Number Range should be inclusive', async () => {
await sizeRangeFilter.checkToFieldIsDisplayed();
await sizeRangeFilter.putToNumber(2);
await sizeRangeFilter.putFromNumber(1);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
sizeRangeFilter.clickApplyButton();
await sizeRangeFilter.clickApplyButton();
searchResults.tableIsLoaded();
searchResults.checkContentIsDisplayed(file2BytesModel.name);
await searchResults.tableIsLoaded();
await searchResults.checkContentIsDisplayed(file2BytesModel.name);
sizeRangeFilter.checkToFieldIsDisplayed()
.putToNumber(1)
.putFromNumber(0);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
await sizeRangeFilter.checkToFieldIsDisplayed();
await sizeRangeFilter.putToNumber(1);
await sizeRangeFilter.putFromNumber(0);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
sizeRangeFilter.clickApplyButton();
await sizeRangeFilter.clickApplyButton();
searchResults.tableIsLoaded();
searchResults.checkContentIsNotDisplayed(file2BytesModel.name);
await searchResults.tableIsLoaded();
await searchResults.checkContentIsNotDisplayed(file2BytesModel.name);
sizeRangeFilter.checkToFieldIsDisplayed()
.putToNumber(3)
.putFromNumber(2);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
await sizeRangeFilter.checkToFieldIsDisplayed();
await sizeRangeFilter.putToNumber(3);
await sizeRangeFilter.putFromNumber(2);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
sizeRangeFilter.clickApplyButton();
await sizeRangeFilter.clickApplyButton();
searchResults.tableIsLoaded();
searchResults.checkContentIsDisplayed(file2BytesModel.name);
await searchResults.tableIsLoaded();
await searchResults.checkContentIsDisplayed(file2BytesModel.name);
sizeRangeFilter.checkToFieldIsDisplayed()
.putToNumber(4)
.putFromNumber(3);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
await sizeRangeFilter.checkToFieldIsDisplayed();
await sizeRangeFilter.putToNumber(4);
await sizeRangeFilter.putFromNumber(3);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
sizeRangeFilter.clickApplyButton();
await sizeRangeFilter.clickApplyButton();
searchResults.tableIsLoaded();
searchResults.checkContentIsNotDisplayed(file2BytesModel.name);
await searchResults.tableIsLoaded();
await searchResults.checkContentIsNotDisplayed(file2BytesModel.name);
});
describe('Configuration change', () => {
@@ -392,117 +388,113 @@ describe('Search Number Range Filter', () => {
});
it('[C276928] Should be able to change the field property for number range', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[3].component.settings.field = 'cm:created';
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter('*');
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
searchFilters.checkSizeRangeFilterIsDisplayed()
.clickSizeRangeFilterHeader()
.checkSizeRangeFilterIsExpanded();
await searchFilters.checkSizeRangeFilterIsDisplayed();
await searchFilters.clickSizeRangeFilterHeader();
await searchFilters.checkSizeRangeFilterIsExpanded();
const fromYear = (new Date()).getFullYear();
const toYear = fromYear + 1;
sizeRangeFilter.checkToFieldIsDisplayed()
.putToNumber(toYear)
.putFromNumber(fromYear);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
await sizeRangeFilter.checkToFieldIsDisplayed();
await sizeRangeFilter.putToNumber(toYear);
await sizeRangeFilter.putFromNumber(fromYear);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
sizeRangeFilter.clickApplyButton();
searchResults.tableIsLoaded();
searchResults.sortByCreated('DESC');
await sizeRangeFilter.clickApplyButton();
await searchResults.tableIsLoaded();
await searchResults.sortByCreated('DESC');
browser.controlFlow().execute(async () => {
const results = await dataTable.geCellElementDetail('Created');
for (const currentResult of results) {
currentResult.getAttribute('title').then(async (currentDate) => {
const currentDateFormatted = DateUtil.parse(currentDate, 'MMM DD, YYYY, h:mm:ss a');
const results: any = dataTable.geCellElementDetail('Created');
for (const currentResult of results) {
const currentDate = await currentResult.getAttribute('title');
const currentDateFormatted = DateUtil.parse(currentDate, 'MMM DD, YYYY, h:mm:ss a');
await expect(currentDateFormatted.getFullYear() <= toYear).toBe(true);
await expect(currentDateFormatted.getFullYear() >= fromYear).toBe(true);
});
}
});
await expect(currentDateFormatted.getFullYear() <= toYear).toBe(true);
await expect(currentDateFormatted.getFullYear() >= fromYear).toBe(true);
}
});
it('[C277139] Should be able to set To field to be exclusive', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[3].component.settings.format = '[{FROM} TO {TO}>';
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter('*');
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
searchFilters.checkSizeRangeFilterIsDisplayed()
.clickSizeRangeFilterHeader()
.checkSizeRangeFilterIsExpanded();
await searchFilters.checkSizeRangeFilterIsDisplayed();
await searchFilters.clickSizeRangeFilterHeader();
await searchFilters.checkSizeRangeFilterIsExpanded();
sizeRangeFilter.checkToFieldIsDisplayed()
.putToNumber(2)
.putFromNumber(1);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
await sizeRangeFilter.checkToFieldIsDisplayed();
await sizeRangeFilter.putToNumber(2);
await sizeRangeFilter.putFromNumber(1);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
sizeRangeFilter.clickApplyButton();
await sizeRangeFilter.clickApplyButton();
searchResults.tableIsLoaded();
searchResults.checkContentIsNotDisplayed(file2BytesModel.name);
await searchResults.tableIsLoaded();
await searchResults.checkContentIsNotDisplayed(file2BytesModel.name);
sizeRangeFilter.checkToFieldIsDisplayed()
.putToNumber(3)
.putFromNumber(1);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
await sizeRangeFilter.checkToFieldIsDisplayed();
await sizeRangeFilter.putToNumber(3);
await sizeRangeFilter.putFromNumber(1);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
sizeRangeFilter.clickApplyButton();
await sizeRangeFilter.clickApplyButton();
searchResults.tableIsLoaded();
searchResults.checkContentIsDisplayed(file2BytesModel.name);
await searchResults.tableIsLoaded();
await searchResults.checkContentIsDisplayed(file2BytesModel.name);
});
it('[C277140] Should be able to set From field to be exclusive', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[3].component.settings.format = '<{FROM} TO {TO}]';
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter('*');
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
searchFilters.checkSizeRangeFilterIsDisplayed()
.clickSizeRangeFilterHeader()
.checkSizeRangeFilterIsExpanded();
await searchFilters.checkSizeRangeFilterIsDisplayed();
await searchFilters.clickSizeRangeFilterHeader();
await searchFilters.checkSizeRangeFilterIsExpanded();
sizeRangeFilter.checkToFieldIsDisplayed()
.putToNumber(3)
.putFromNumber(1);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
await sizeRangeFilter.checkToFieldIsDisplayed();
await sizeRangeFilter.putToNumber(3);
await sizeRangeFilter.putFromNumber(1);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
sizeRangeFilter.clickApplyButton();
await sizeRangeFilter.clickApplyButton();
searchResults.tableIsLoaded();
searchResults.checkContentIsDisplayed(file2BytesModel.name);
await searchResults.tableIsLoaded();
await searchResults.checkContentIsDisplayed(file2BytesModel.name);
sizeRangeFilter.checkToFieldIsDisplayed()
.putToNumber(3)
.putFromNumber(2);
expect(sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
await sizeRangeFilter.checkToFieldIsDisplayed();
await sizeRangeFilter.putToNumber(3);
await sizeRangeFilter.putFromNumber(2);
await expect(await sizeRangeFilter.checkApplyButtonIsEnabled()).toBe(true);
sizeRangeFilter.clickApplyButton();
await sizeRangeFilter.clickApplyButton();
searchResults.tableIsLoaded();
searchResults.checkContentIsNotDisplayed(file2BytesModel.name);
await searchResults.tableIsLoaded();
await searchResults.checkContentIsNotDisplayed(file2BytesModel.name);
});
});
});

View File

@@ -56,7 +56,7 @@ describe('Search Radio Component', () => {
let createdFile, createdFolder;
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -71,16 +71,15 @@ describe('Search Radio Component', () => {
nodeType: 'cm:content'
});
await browser.driver.sleep(15000);
await browser.sleep(15000);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/search;q=' + randomName);
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/search;q=' + randomName);
done();
});
afterAll(async (done) => {
afterAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await uploadActions.deleteFileOrFolder(createdFile.entry.id);
@@ -88,41 +87,40 @@ describe('Search Radio Component', () => {
await navigationBarPage.clickLogoutButton();
done();
});
it('[C277039] Should be able to choose only one option at a time', () => {
searchFiltersPage.checkTypeFilterIsDisplayed();
searchFiltersPage.checkTypeFilterIsCollapsed();
searchFiltersPage.clickTypeFilterHeader();
it('[C277039] Should be able to choose only one option at a time', async () => {
await searchFiltersPage.checkTypeFilterIsDisplayed();
await searchFiltersPage.checkTypeFilterIsCollapsed();
await searchFiltersPage.clickTypeFilterHeader();
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.none);
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.all);
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.folder);
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.document);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.none);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.all);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.folder);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.document);
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsChecked(filterType.none);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsChecked(filterType.none);
searchResults.checkContentIsDisplayed(nodeNames.folder);
searchResults.checkContentIsDisplayed(nodeNames.document);
await searchResults.checkContentIsDisplayed(nodeNames.folder);
await searchResults.checkContentIsDisplayed(nodeNames.document);
searchFiltersPage.typeFiltersPage().clickFilterRadioButton(filterType.folder);
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsChecked(filterType.folder);
await searchFiltersPage.typeFiltersPage().clickFilterRadioButton(filterType.folder);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsChecked(filterType.folder);
searchResults.checkContentIsDisplayed(nodeNames.folder);
searchResults.checkContentIsNotDisplayed(nodeNames.document);
await searchResults.checkContentIsDisplayed(nodeNames.folder);
await searchResults.checkContentIsNotDisplayed(nodeNames.document);
searchFiltersPage.typeFiltersPage().clickFilterRadioButton(filterType.document);
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsChecked(filterType.document);
await searchFiltersPage.typeFiltersPage().clickFilterRadioButton(filterType.document);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsChecked(filterType.document);
searchResults.checkContentIsDisplayed(nodeNames.document);
searchResults.checkContentIsNotDisplayed(nodeNames.folder);
await searchResults.checkContentIsDisplayed(nodeNames.document);
await searchResults.checkContentIsNotDisplayed(nodeNames.folder);
searchFiltersPage.typeFiltersPage().clickFilterRadioButton(filterType.all);
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsChecked(filterType.all);
await searchFiltersPage.typeFiltersPage().clickFilterRadioButton(filterType.all);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsChecked(filterType.all);
searchResults.checkContentIsDisplayed(nodeNames.folder);
searchResults.checkContentIsDisplayed(nodeNames.document);
await searchResults.checkContentIsDisplayed(nodeNames.folder);
await searchResults.checkContentIsDisplayed(nodeNames.document);
});
describe('configuration change', () => {
@@ -134,7 +132,7 @@ describe('Search Radio Component', () => {
});
it('[C277147] Should be able to customise the pageSize value', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[5].component.settings.pageSize = 10;
@@ -147,40 +145,46 @@ describe('Search Radio Component', () => {
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickTypeFilterHeader();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickTypeFilterHeader();
expect(searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(10);
await expect(await searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(10);
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[5].component.settings.pageSize = 11;
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickTypeFilterHeader();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickTypeFilterHeader();
expect(searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(10);
await expect(await searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(10);
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[5].component.settings.pageSize = 9;
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickTypeFilterHeader();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickTypeFilterHeader();
expect(searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(9);
await expect(await searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(9);
searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsDisplayed();
searchFiltersPage.typeFiltersPage().checkShowLessButtonIsNotDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowLessButtonIsNotDisplayed();
browser.refresh();
await browser.refresh();
});
it('[C277148] Should be able to click show more/less button', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[5].component.settings.pageSize = 0;
@@ -193,54 +197,58 @@ describe('Search Radio Component', () => {
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickTypeFilterHeader();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickTypeFilterHeader();
expect(searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(5);
await expect(await searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(5);
searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsDisplayed();
searchFiltersPage.typeFiltersPage().checkShowLessButtonIsNotDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowLessButtonIsNotDisplayed();
searchFiltersPage.typeFiltersPage().clickShowMoreButton();
await searchFiltersPage.typeFiltersPage().clickShowMoreButton();
expect(searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(10);
await expect(await searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(10);
searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsNotDisplayed();
searchFiltersPage.typeFiltersPage().checkShowLessButtonIsDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsNotDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowLessButtonIsDisplayed();
searchFiltersPage.typeFiltersPage().clickShowLessButton();
await searchFiltersPage.typeFiltersPage().clickShowLessButton();
expect(searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(5);
await expect(await searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(5);
searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsDisplayed();
searchFiltersPage.typeFiltersPage().checkShowLessButtonIsNotDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowLessButtonIsNotDisplayed();
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
delete jsonFile.categories[5].component.settings.pageSize;
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickTypeFilterHeader();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickTypeFilterHeader();
expect(searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(5);
await expect(await searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(5);
searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsDisplayed();
searchFiltersPage.typeFiltersPage().checkShowLessButtonIsNotDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowLessButtonIsNotDisplayed();
searchFiltersPage.typeFiltersPage().clickShowMoreButton();
await searchFiltersPage.typeFiltersPage().clickShowMoreButton();
expect(searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(10);
await expect(await searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(10);
searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsNotDisplayed();
searchFiltersPage.typeFiltersPage().checkShowLessButtonIsDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsNotDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowLessButtonIsDisplayed();
searchFiltersPage.typeFiltersPage().clickShowLessButton();
await searchFiltersPage.typeFiltersPage().clickShowLessButton();
expect(searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(5);
await expect(await searchFiltersPage.typeFiltersPage().getRadioButtonsNumberOnPage()).toBe(5);
searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsDisplayed();
searchFiltersPage.typeFiltersPage().checkShowLessButtonIsNotDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowMoreButtonIsDisplayed();
await searchFiltersPage.typeFiltersPage().checkShowLessButtonIsNotDisplayed();
});
});
@@ -253,14 +261,13 @@ describe('Search Radio Component', () => {
jsonFile = SearchConfiguration.getConfiguration();
});
beforeAll(async (done) => {
beforeAll(async () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
it('[C277033] Should be able to add a new option', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.categories[5].component.settings.options.push({
'name': filterType.custom,
@@ -269,20 +276,22 @@ describe('Search Radio Component', () => {
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().checkSearchBarIsVisible().enterTextAndPressEnter(randomName);
searchFiltersPage.clickTypeFilterHeader();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(randomName);
await searchFiltersPage.clickTypeFilterHeader();
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.none);
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.all);
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.folder);
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.document);
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.custom);
searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsChecked(filterType.none);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.none);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.all);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.folder);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.document);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsDisplayed(filterType.custom);
await searchFiltersPage.typeFiltersPage().checkFilterRadioButtonIsChecked(filterType.none);
searchFiltersPage.typeFiltersPage().clickFilterRadioButton(filterType.custom);
await searchFiltersPage.typeFiltersPage().clickFilterRadioButton(filterType.custom);
searchResults.checkContentIsDisplayed(nodeNames.document);
searchResults.checkContentIsNotDisplayed(nodeNames.folder);
await searchResults.checkContentIsDisplayed(nodeNames.document);
await searchResults.checkContentIsNotDisplayed(nodeNames.folder);
});
});

View File

@@ -27,7 +27,7 @@ import { browser } from 'protractor';
import resources = require('../../util/resources');
import { SearchConfiguration } from '../search.config';
describe('Search Number Range Filter', () => {
describe('Search Slider Filter', () => {
const loginPage = new LoginPage();
const searchDialog = new SearchDialog();
@@ -51,7 +51,7 @@ describe('Search Number Range Filter', () => {
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
@@ -60,18 +60,17 @@ describe('Search Number Range Filter', () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
file2Bytes = await uploadActions.uploadFile(file2BytesModel.location, file2BytesModel.name, '-my-');
await browser.driver.sleep(15000);
await browser.sleep(15000);
loginPage.loginToContentServices(acsUser.id, acsUser.password);
await loginPage.loginToContentServices(acsUser.id, acsUser.password);
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter('*');
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
done();
});
afterAll(async (done) => {
afterAll(async () => {
try {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await uploadActions.deleteFileOrFolder(file2Bytes.entry.id);
@@ -80,169 +79,162 @@ describe('Search Number Range Filter', () => {
await navigationBarPage.clickLogoutButton();
done();
});
beforeEach(() => {
searchFilters.checkSizeSliderFilterIsDisplayed()
.clickSizeSliderFilterHeader()
.checkSizeSliderFilterIsExpanded();
});
afterEach(async (done) => {
afterEach(async () => {
await browser.refresh();
done();
});
it('[C276970] Should be able to expand/collapse Search Size Slider', () => {
searchFilters.checkSizeSliderFilterIsExpanded()
.clickSizeSliderFilterHeader();
sizeSliderFilter.checkSliderIsDisplayed()
.checkClearButtonIsDisplayed()
.checkClearButtonIsEnabled();
searchFilters.checkSizeSliderFilterIsCollapsed();
it('[C276970] Should be able to expand/collapse Search Size Slider', async () => {
await searchFilters.checkSizeSliderFilterIsDisplayed();
await searchFilters.clickSizeSliderFilterHeader();
await sizeSliderFilter.checkSliderIsDisplayed();
await sizeSliderFilter.checkClearButtonIsDisplayed();
await sizeSliderFilter.checkClearButtonIsEnabled();
await searchFilters.clickSizeSliderFilterHeader();
await searchFilters.checkSizeSliderFilterIsCollapsed();
await sizeSliderFilter.checkSliderIsNotDisplayed();
await sizeSliderFilter.checkClearButtonIsNotDisplayed();
});
it('[C276972] Should be keep value when Search Size Slider is collapsed', () => {
it('[C276972] Should be keep value when Search Size Slider is collapsed', async () => {
const size = 5;
sizeSliderFilter.checkSliderIsDisplayed().setValue(size);
searchFilters.clickSizeSliderFilterHeader()
.checkSizeSliderFilterIsCollapsed()
.clickSizeSliderFilterHeader()
.checkSizeSliderFilterIsExpanded()
.checkSizeSliderFilterIsDisplayed();
expect(sizeSliderFilter.getValue()).toEqual(`${size}`);
await searchFilters.checkSizeSliderFilterIsDisplayed();
await searchFilters.clickSizeSliderFilterHeader();
await sizeSliderFilter.checkSliderIsDisplayed();
await sizeSliderFilter.setValue(size);
await searchFilters.clickSizeSliderFilterHeader();
await searchFilters.checkSizeSliderFilterIsCollapsed();
await searchFilters.clickSizeSliderFilterHeader();
await searchFilters.checkSizeSliderFilterIsExpanded();
await searchFilters.checkSizeSliderFilterIsDisplayed();
await expect(await sizeSliderFilter.getValue()).toEqual(`${size}`);
});
it('[C276981] Should be able to clear value in Search Size Slider', () => {
it('[C276981] Should be able to clear value in Search Size Slider', async () => {
const size = 5;
sizeSliderFilter.checkSliderIsDisplayed().setValue(size);
searchResults.sortBySize('DESC')
.tableIsLoaded();
browser.controlFlow().execute(async () => {
const results = await dataTable.geCellElementDetail('Size');
for (const currentResult of results) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) <= 5000).toBe(true);
}
} catch (e) {
await searchFilters.checkSizeSliderFilterIsDisplayed();
await searchFilters.clickSizeSliderFilterHeader();
await sizeSliderFilter.checkSliderIsDisplayed();
await sizeSliderFilter.setValue(size);
await searchResults.sortBySize('DESC');
await searchResults.tableIsLoaded();
const results: any = dataTable.geCellElementDetail('Size');
for (const currentResult of results) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) <= 5000).toBe(true);
}
} catch (e) {
}
});
}
sizeSliderFilter.checkSliderIsDisplayed()
.clickClearButton();
await sizeSliderFilter.checkSliderIsDisplayed();
await sizeSliderFilter.clickClearButton();
searchResults.sortBySize('DESC')
.tableIsLoaded();
await searchResults.sortBySize('DESC');
await searchResults.tableIsLoaded();
browser.controlFlow().execute(async () => {
const results = await dataTable.geCellElementDetail('Size');
for (const currentResult of results) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) >= 5000).toBe(true);
}
} catch (e) {
const resultsSize: any = dataTable.geCellElementDetail('Size');
for (const currentResult of resultsSize) {
try {
const currentSize = await currentResult.getAttribute('title');
if (currentSize && currentSize.trim() !== '') {
await expect(parseInt(currentSize, 10) >= 5000).toBe(true);
}
} catch (e) {
}
});
}
});
describe('Configuration change', () => {
let jsonFile;
beforeEach(() => {
beforeEach(async () => {
jsonFile = SearchConfiguration.getConfiguration();
await navigationBarPage.clickContentServicesButton();
});
it('[C276983] Should be able to disable thumb label in Search Size Slider', async () => {
navigationBarPage.clickContentServicesButton();
jsonFile.categories[2].component.settings.thumbLabel = false;
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter('*');
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
searchFilters.checkSizeSliderFilterIsDisplayed()
.clickSizeSliderFilterHeader()
.checkSizeSliderFilterIsExpanded();
await searchFilters.checkSizeSliderFilterIsDisplayed();
await searchFilters.clickSizeSliderFilterHeader();
await searchFilters.checkSizeSliderFilterIsExpanded();
sizeSliderFilter.checkSliderWithThumbLabelIsNotDisplayed();
await sizeSliderFilter.checkSliderWithThumbLabelIsNotDisplayed();
});
it('[C276985] Should be able to set min value for Search Size Slider', async () => {
navigationBarPage.clickContentServicesButton();
const minSize = 3;
jsonFile.categories[2].component.settings.min = minSize;
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter('*');
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
searchFilters.checkSizeSliderFilterIsDisplayed()
.clickSizeSliderFilterHeader()
.checkSizeSliderFilterIsExpanded();
await searchFilters.checkSizeSliderFilterIsDisplayed();
await searchFilters.clickSizeSliderFilterHeader();
await searchFilters.checkSizeSliderFilterIsExpanded();
sizeSliderFilter.checkSliderIsDisplayed();
await sizeSliderFilter.checkSliderIsDisplayed();
expect(sizeSliderFilter.getMinValue()).toEqual(`${minSize}`);
await expect(await sizeSliderFilter.getMinValue()).toEqual(`${minSize}`);
});
it('[C276986] Should be able to set max value for Search Size Slider', async () => {
navigationBarPage.clickContentServicesButton();
const maxSize = 50;
jsonFile.categories[2].component.settings.max = maxSize;
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter('*');
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
searchFilters.checkSizeSliderFilterIsDisplayed()
.clickSizeSliderFilterHeader()
.checkSizeSliderFilterIsExpanded();
await searchFilters.checkSizeSliderFilterIsDisplayed();
await searchFilters.clickSizeSliderFilterHeader();
await searchFilters.checkSizeSliderFilterIsExpanded();
sizeSliderFilter.checkSliderIsDisplayed();
await sizeSliderFilter.checkSliderIsDisplayed();
expect(sizeSliderFilter.getMaxValue()).toEqual(`${maxSize}`);
await expect(await sizeSliderFilter.getMaxValue()).toEqual(`${maxSize}`);
});
it('[C276987] Should be able to set steps for Search Size Slider', async () => {
navigationBarPage.clickContentServicesButton();
const step = 10;
jsonFile.categories[2].component.settings.step = step;
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter('*');
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
searchFilters.checkSizeSliderFilterIsDisplayed()
.clickSizeSliderFilterHeader()
.checkSizeSliderFilterIsExpanded();
await searchFilters.checkSizeSliderFilterIsDisplayed();
await searchFilters.clickSizeSliderFilterHeader();
await searchFilters.checkSizeSliderFilterIsExpanded();
const randomValue = 5;
sizeSliderFilter.checkSliderIsDisplayed()
.setValue(randomValue);
expect(sizeSliderFilter.getValue()).toEqual(`0`);
sizeSliderFilter.setValue(step);
expect(sizeSliderFilter.getValue()).toEqual(`${step}`);
await sizeSliderFilter.checkSliderIsDisplayed();
await sizeSliderFilter.setValue(randomValue);
await expect(await sizeSliderFilter.getValue()).toEqual(`0`);
await sizeSliderFilter.setValue(step);
await expect(await sizeSliderFilter.getValue()).toEqual(`${step}`);
});
});
});

View File

@@ -15,7 +15,12 @@
* limitations under the License.
*/
import { LoginPage, LocalStorageUtil, BrowserActions, SearchSortingPickerPage, UploadActions } from '@alfresco/adf-testing';
import {
LoginPage,
LocalStorageUtil,
SearchSortingPickerPage,
UploadActions
} from '@alfresco/adf-testing';
import { SearchDialog } from '../../pages/adf/dialog/searchDialog';
import { SearchResultsPage } from '../../pages/adf/searchResultsPage';
import { NavigationBarPage } from '../../pages/adf/navigationBarPage';
@@ -59,53 +64,47 @@ describe('Search Sorting Picker', () => {
const search = '_png_file.png';
let jsonFile;
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
pngA = await uploadActions.uploadFile(pngAModel.location, pngAModel.name, '-my-');
await browser.driver.sleep(3000);
pngD = await uploadActions.uploadFile(pngDModel.location, pngDModel.name, '-my-');
await browser.driver.sleep(12000);
await browser.sleep(12000);
loginPage.loginToContentServices(acsUser.id, acsUser.password);
await loginPage.loginToContentServices(acsUser.id, acsUser.password);
done();
});
afterAll(async (done) => {
afterAll(async () => {
await uploadActions.deleteFileOrFolder(pngA.entry.id);
await uploadActions.deleteFileOrFolder(pngD.entry.id);
await navigationBarPage.clickLogoutButton();
done();
});
beforeEach(async (done) => {
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter(search);
done();
beforeEach(async () => {
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(search);
});
afterEach(async (done) => {
await BrowserActions.getUrl(browser.params.testConfig.adf.url);
done();
afterEach(async () => {
await navigationBarPage.clickHomeButton();
});
it(`[C277269] Should see the "sort by" option when search results are displayed in search results page`, () => {
searchSortingPicker.checkSortingSelectorIsDisplayed();
it(`[C277269] Should see the "sort by" option when search results are displayed in search results page`, async () => {
await searchSortingPicker.checkSortingSelectorIsDisplayed();
});
it(`[C277270] Should see the icon for ASC and DESC sort when search results are displayed in the search results page`, () => {
searchSortingPicker.checkOrderArrowIsDisplayed();
it(`[C277270] Should see the icon for ASC and DESC sort when search results are displayed in the search results page`, async () => {
await searchSortingPicker.checkOrderArrowIsDisplayed();
});
it('[C277271] Should be able to add a custom search sorter in the "sort by" option', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile = SearchConfiguration.getConfiguration();
jsonFile.sorting.options.push({
'key': 'Modifier',
@@ -116,34 +115,34 @@ describe('Search Sorting Picker', () => {
});
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter(search);
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(search);
searchSortingPicker.checkSortingSelectorIsDisplayed()
.clickSortingSelector()
.checkOptionsDropdownIsDisplayed()
.checkOptionIsDisplayed('Modifier');
await searchSortingPicker.checkSortingSelectorIsDisplayed();
await searchSortingPicker.clickSortingSelector();
await searchSortingPicker.checkOptionsDropdownIsDisplayed();
await searchSortingPicker.checkOptionIsDisplayed('Modifier');
});
it('[C277272] Should be able to exclude a standard search sorter from the sorting option', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile = SearchConfiguration.getConfiguration();
const removedOption = jsonFile.sorting.options.splice(0, 1);
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter(search);
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(search);
searchSortingPicker.checkSortingSelectorIsDisplayed()
.clickSortingSelector()
.checkOptionsDropdownIsDisplayed()
.checkOptionIsNotDisplayed(removedOption[0].label);
await searchSortingPicker.checkSortingSelectorIsDisplayed();
await searchSortingPicker.clickSortingSelector();
await searchSortingPicker.checkOptionsDropdownIsDisplayed();
await searchSortingPicker.checkOptionIsNotDisplayed(removedOption[0].label);
});
it('[C277273] Should be able to set a default order for a search sorting option', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile = SearchConfiguration.getConfiguration();
jsonFile.sorting.options[0].ascending = false;
@@ -157,50 +156,46 @@ describe('Search Sorting Picker', () => {
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter(search);
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(search);
searchSortingPicker.checkSortingSelectorIsDisplayed()
.clickSortingSelector()
.checkOptionIsDisplayed('Name')
.clickSortingOption('Name');
expect(searchSortingPicker.checkOrderArrowIsDownward()).toBe(true);
await searchSortingPicker.checkSortingSelectorIsDisplayed();
await searchSortingPicker.clickSortingSelector();
await searchSortingPicker.checkOptionIsDisplayed('Name');
await searchSortingPicker.clickSortingOption('Name');
await expect(await searchSortingPicker.checkOrderArrowIsDownward()).toBe(true);
});
it('[C277280] Should be able to sort the search results by "Name" ASC', () => {
searchFilters.checkSearchFiltersIsDisplayed();
searchFilters.creatorCheckListFiltersPage().filterBy(`${acsUser.firstName} ${acsUser.lastName}`);
searchResults.sortByName('ASC');
it('[C277280] Should be able to sort the search results by "Name" ASC', async () => {
await searchFilters.checkSearchFiltersIsDisplayed();
await searchFilters.creatorCheckListFiltersPage().filterBy(`${acsUser.firstName} ${acsUser.lastName}`);
await searchResults.sortByName('ASC');
expect(searchResults.checkListIsOrderedByNameAsc()).toBe(true);
await expect(await searchResults.checkListIsOrderedByNameAsc()).toBe(true);
});
it('[C277281] Should be able to sort the search results by "Name" DESC', () => {
searchFilters.checkSearchFiltersIsDisplayed();
searchFilters.creatorCheckListFiltersPage().filterBy(`${acsUser.firstName} ${acsUser.lastName}`);
searchResults.sortByName('DESC');
expect(searchResults.checkListIsOrderedByNameDesc()).toBe(true);
it('[C277281] Should be able to sort the search results by "Name" DESC', async () => {
await searchFilters.checkSearchFiltersIsDisplayed();
await searchFilters.creatorCheckListFiltersPage().filterBy(`${acsUser.firstName} ${acsUser.lastName}`);
await searchResults.sortByName('DESC');
await expect(await searchResults.checkListIsOrderedByNameDesc()).toBe(true);
});
it('[C277286] Should be able to sort the search results by "Created Date" ASC', () => {
searchResults.sortByCreated('ASC');
browser.controlFlow().execute(async () => {
const results = await searchResults.dataTable.geCellElementDetail('Created');
expect(contentServices.checkElementsDateSortedAsc(results)).toBe(true);
});
it('[C277286] Should be able to sort the search results by "Created Date" ASC', async () => {
await searchResults.sortByCreated('ASC');
const results: any = searchResults.dataTable.geCellElementDetail('Created');
await expect(contentServices.checkElementsDateSortedAsc(results)).toBe(true);
});
it('[C277287] Should be able to sort the search results by "Created Date" DESC', () => {
searchResults.sortByCreated('DESC');
browser.controlFlow().execute(async () => {
const results = await searchResults.dataTable.geCellElementDetail('Created');
expect(contentServices.checkElementsDateSortedDesc(results)).toBe(true);
});
it('[C277287] Should be able to sort the search results by "Created Date" DESC', async () => {
await searchResults.sortByCreated('DESC');
const results = searchResults.dataTable.geCellElementDetail('Created');
await expect(contentServices.checkElementsDateSortedDesc(results)).toBe(true);
});
it('[C277288] Should be able to sort the search results by "Modified Date" ASC', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile = SearchConfiguration.getConfiguration();
jsonFile.sorting.options.push({
@@ -212,24 +207,22 @@ describe('Search Sorting Picker', () => {
});
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterTextAndPressEnter(search);
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(search);
searchSortingPicker.checkSortingSelectorIsDisplayed()
.sortBy('ASC', 'Modified Date');
await searchSortingPicker.checkSortingSelectorIsDisplayed();
await searchSortingPicker.sortBy('ASC', 'Modified Date');
browser.controlFlow().execute(async () => {
const idList = await contentServices.getElementsDisplayedId();
const numberOfElements = await contentServices.numberOfResultsDisplayed();
const idList = await contentServices.getElementsDisplayedId();
const numberOfElements = await contentServices.numberOfResultsDisplayed();
const nodeList = await nodeActions.getNodesDisplayed(this.alfrescoJsApi, idList, numberOfElements);
const modifiedDateList = [];
for (let i = 0; i < nodeList.length; i++) {
modifiedDateList.push(new Date(nodeList[i].entry.modifiedAt));
}
expect(contentServices.checkElementsDateSortedAsc(modifiedDateList)).toBe(true);
});
const nodeList = await nodeActions.getNodesDisplayed(this.alfrescoJsApi, idList, numberOfElements);
const modifiedDateList = [];
for (let i = 0; i < nodeList.length; i++) {
modifiedDateList.push(new Date(nodeList[i].entry.modifiedAt));
}
await expect(contentServices.checkElementsDateSortedAsc(modifiedDateList)).toBe(true);
});
});

View File

@@ -42,7 +42,7 @@ describe('Search component - Text widget', () => {
const acsUser = new AcsUserModel();
const newFolderModel = new FolderModel({ 'name': 'newFolder', 'description': 'newDescription' });
beforeAll(async (done) => {
beforeAll(async () => {
this.alfrescoJsApi = new AlfrescoApi({
provider: 'ECM',
@@ -64,66 +64,66 @@ describe('Search component - Text widget', () => {
}
}, {}, {});
await browser.driver.sleep(15000);
await browser.sleep(15000);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
it('[C289329] Placeholder should be displayed in the widget when the input string is empty', () => {
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/search;q=*');
searchResultPage.tableIsLoaded();
it('[C289329] Placeholder should be displayed in the widget when the input string is empty', async () => {
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/search;q=*');
await searchResultPage.tableIsLoaded();
searchFiltersPage.checkNameFilterIsDisplayed();
expect(searchFiltersPage.textFiltersPage().getNamePlaceholder()).toEqual('Enter the name');
await searchFiltersPage.checkNameFilterIsDisplayed();
await expect(await searchFiltersPage.textFiltersPage().getNamePlaceholder()).toEqual('Enter the name');
});
describe('configuration change', () => {
let jsonFile;
beforeAll(() => {
beforeAll(async () => {
jsonFile = SearchConfiguration.getConfiguration();
});
it('[C289330] Should be able to change the Field setting', async () => {
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/search;q=*');
searchResultPage.tableIsLoaded();
await BrowserActions.getUrl(browser.params.testConfig.adf.url + '/search;q=*');
await searchResultPage.tableIsLoaded();
searchFiltersPage.checkCheckListFilterIsDisplayed();
searchFiltersPage.clickCheckListFilter();
searchFiltersPage.checkListFiltersPage().clickCheckListOption('Folder');
await searchFiltersPage.checkCheckListFilterIsDisplayed();
await searchFiltersPage.clickCheckListFilter();
await searchFiltersPage.checkListFiltersPage().clickCheckListOption('Folder');
searchFiltersPage.checkNameFilterIsDisplayed();
searchFiltersPage.textFiltersPage().searchByName(newFolderModel.name);
searchResultPage.checkContentIsDisplayed(newFolderModel.name);
await searchFiltersPage.checkNameFilterIsDisplayed();
await searchFiltersPage.textFiltersPage().searchByName(newFolderModel.name);
await searchResultPage.checkContentIsDisplayed(newFolderModel.name);
searchFiltersPage.textFiltersPage().searchByName(newFolderModel.description);
searchResultPage.checkContentIsNotDisplayed(newFolderModel.name);
await searchFiltersPage.textFiltersPage().searchByName(newFolderModel.description);
await searchResultPage.checkContentIsNotDisplayed(newFolderModel.name);
jsonFile.categories[0].component.settings.field = 'cm:description';
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon().enterTextAndPressEnter('*');
searchResultPage.tableIsLoaded();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
await searchResultPage.tableIsLoaded();
searchFiltersPage.checkCheckListFilterIsDisplayed();
searchFiltersPage.clickCheckListFilter();
searchFiltersPage.checkListFiltersPage().clickCheckListOption('Folder');
await searchFiltersPage.checkCheckListFilterIsDisplayed();
await searchFiltersPage.clickCheckListFilter();
await searchFiltersPage.checkListFiltersPage().clickCheckListOption('Folder');
searchFiltersPage.checkNameFilterIsDisplayed();
searchFiltersPage.textFiltersPage().searchByName(newFolderModel.name);
searchResultPage.checkContentIsNotDisplayed(newFolderModel.name);
await searchFiltersPage.checkNameFilterIsDisplayed();
await searchFiltersPage.textFiltersPage().searchByName(newFolderModel.name);
await searchResultPage.checkContentIsNotDisplayed(newFolderModel.name);
searchFiltersPage.textFiltersPage().searchByName(newFolderModel.description);
searchResultPage.checkContentIsDisplayed(newFolderModel.name);
await searchFiltersPage.textFiltersPage().searchByName(newFolderModel.description);
await searchResultPage.checkContentIsDisplayed(newFolderModel.name);
});
});
});

View File

@@ -79,7 +79,7 @@ describe('Search component - Search Bar', () => {
let fileHighlightUploaded;
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -103,178 +103,161 @@ describe('Search component - Search Bar', () => {
filesToDelete.push(await uploadActions.createFolder(secondFolder.name, '-my-'));
filesToDelete.push(await uploadActions.createFolder(thirdFolder.name, '-my-'));
await browser.driver.sleep(15000); // wait search index previous file/folder uploaded
await browser.sleep(15000); // wait search index previous file/folder uploaded
await loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
afterAll(async (done) => {
filesToDelete.forEach(async (currentNode) => {
afterAll(async () => {
for (const currentNode of filesToDelete) {
await uploadActions.deleteFileOrFolder(currentNode.entry.id);
});
}
await navigationBarPage.clickLogoutButton();
done();
});
afterEach(async (done) => {
afterEach(async () => {
await BrowserActions.getUrl(browser.params.testConfig.adf.url);
done();
});
it('[C272798] Search bar should be visible', () => {
searchDialog
.checkSearchBarIsNotVisible()
.checkSearchIconIsVisible();
it('[C272798] Search bar should be visible', async () => {
await searchDialog.checkSearchBarIsNotVisible();
await searchDialog.checkSearchIconIsVisible();
searchDialog
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.checkSearchIconIsVisible();
BrowserActions.closeMenuAndDialogs();
await BrowserActions.closeMenuAndDialogs();
searchDialog
.checkSearchBarIsNotVisible()
.checkSearchIconIsVisible();
await searchDialog.checkSearchBarIsNotVisible();
await searchDialog.checkSearchIconIsVisible();
});
it('[C272799] Should be possible to hide search bar after input', () => {
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.enterText(firstFolderModel.shortName);
it('[C272799] Should be possible to hide search bar after input', async () => {
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterText(firstFolderModel.shortName);
});
it('[C260255] Should display message when searching for an inexistent file', () => {
searchDialog
.checkSearchBarIsNotVisible()
.clickOnSearchIcon()
.checkNoResultMessageIsNotDisplayed()
.enterText(search.inactive.name)
.checkNoResultMessageIsDisplayed();
it('[C260255] Should display message when searching for an inexistent file', async () => {
await searchDialog.checkSearchBarIsNotVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkNoResultMessageIsNotDisplayed();
await searchDialog.enterText(search.inactive.name);
await searchDialog.checkNoResultMessageIsDisplayed();
});
it('[C260256] Should display file/folder in search suggestion when typing first characters', () => {
searchDialog
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(firstFolderModel.shortName);
it('[C260256] Should display file/folder in search suggestion when typing first characters', async () => {
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterText(firstFolderModel.shortName);
searchDialog.resultTableContainsRow(firstFolderModel.name);
await searchDialog.resultTableContainsRow(firstFolderModel.name);
expect(searchDialog.getSpecificRowsHighlightName(firstFolderModel.name)).toEqual(firstFolderModel.shortName);
expect(searchDialog.getSpecificRowsAuthor(firstFolderModel.name)).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
expect(searchDialog.getSpecificRowsCompleteName(firstFolderModel.name)).toEqual(firstFolderModel.name);
await expect(await searchDialog.getSpecificRowsHighlightName(firstFolderModel.name)).toEqual(firstFolderModel.shortName);
await expect(await searchDialog.getSpecificRowsAuthor(firstFolderModel.name)).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
await expect(await searchDialog.getSpecificRowsCompleteName(firstFolderModel.name)).toEqual(firstFolderModel.name);
searchDialog.clearText();
await searchDialog.clearText();
searchDialog.clickOnSearchIcon().enterText(firstFileModel.shortName);
searchDialog.resultTableContainsRow(firstFileModel.name);
await searchDialog.clickOnSearchIcon();
await searchDialog.enterText(firstFileModel.shortName);
await searchDialog.resultTableContainsRow(firstFileModel.name);
expect(searchDialog.getSpecificRowsHighlightName(firstFileModel.name)).toEqual(firstFileModel.shortName);
expect(searchDialog.getSpecificRowsAuthor(firstFileModel.name)).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
await expect(await searchDialog.getSpecificRowsHighlightName(firstFileModel.name)).toEqual(firstFileModel.shortName);
await expect(await searchDialog.getSpecificRowsAuthor(firstFileModel.name)).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
expect(searchDialog.getSpecificRowsCompleteName(firstFileModel.name)).toEqual(firstFileModel.name);
await expect(await searchDialog.getSpecificRowsCompleteName(firstFileModel.name)).toEqual(firstFileModel.name);
});
it('[C272800] Should display file/folder in search suggestion when typing name', () => {
searchDialog
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(firstFolderModel.name);
it('[C272800] Should display file/folder in search suggestion when typing name', async () => {
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterText(firstFolderModel.name);
searchDialog.resultTableContainsRow(firstFolderModel.name);
await searchDialog.resultTableContainsRow(firstFolderModel.name);
expect(searchDialog.getSpecificRowsHighlightName(firstFolderModel.name)).toEqual(firstFolderModel.name);
expect(searchDialog.getSpecificRowsAuthor(firstFolderModel.name)).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
expect(searchDialog.getSpecificRowsCompleteName(firstFolderModel.name)).toEqual(firstFolderModel.name);
await expect(await searchDialog.getSpecificRowsHighlightName(firstFolderModel.name)).toEqual(firstFolderModel.name);
await expect(await searchDialog.getSpecificRowsAuthor(firstFolderModel.name)).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
await expect(await searchDialog.getSpecificRowsCompleteName(firstFolderModel.name)).toEqual(firstFolderModel.name);
searchDialog.clearText();
await searchDialog.clearText();
searchDialog.clickOnSearchIcon().enterText(firstFileModel.name);
searchDialog.resultTableContainsRow(firstFileModel.name);
await searchDialog.clickOnSearchIcon();
await searchDialog.enterText(firstFileModel.name);
await searchDialog.resultTableContainsRow(firstFileModel.name);
expect(searchDialog.getSpecificRowsHighlightName(firstFileModel.name)).toEqual(firstFileModel.name);
expect(searchDialog.getSpecificRowsAuthor(firstFileModel.name)).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
expect(searchDialog.getSpecificRowsCompleteName(firstFileModel.name)).toEqual(firstFileModel.name);
await expect(await searchDialog.getSpecificRowsHighlightName(firstFileModel.name)).toEqual(firstFileModel.name);
await expect(await searchDialog.getSpecificRowsAuthor(firstFileModel.name)).toEqual(acsUser.firstName + ' ' + acsUser.lastName);
await expect(await searchDialog.getSpecificRowsCompleteName(firstFileModel.name)).toEqual(firstFileModel.name);
});
it('[C260257] Should display content when clicking on folder from search suggestions', async () => {
searchDialog
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(firstFolderModel.shortName);
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterText(firstFolderModel.shortName);
searchDialog.resultTableContainsRow(firstFolderModel.name);
searchDialog.clickOnSpecificRow(firstFolderModel.name);
await searchDialog.resultTableContainsRow(firstFolderModel.name);
await searchDialog.clickOnSpecificRow(firstFolderModel.name);
expect(contentServicesPage.currentFolderName()).toEqual(firstFolderModel.name);
await expect(await contentServicesPage.currentFolderName()).toEqual(firstFolderModel.name);
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(firstFileModel.name)
.resultTableContainsRow(firstFileModel.name);
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterText(firstFileModel.name);
await searchDialog.resultTableContainsRow(firstFileModel.name);
searchDialog.clickOnSpecificRow(firstFileModel.name);
expect(await viewerPage.getDisplayedFileName()).toEqual(firstFileModel.name);
await searchDialog.clickOnSpecificRow(firstFileModel.name);
await expect(await viewerPage.getDisplayedFileName()).toEqual(firstFileModel.name);
viewerPage.clickCloseButton();
await viewerPage.clickCloseButton();
});
it('[C272801] Should display message when searching for non-existent folder', () => {
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterTextAndPressEnter(search.inactive.name);
it('[C272801] Should display message when searching for non-existent folder', async () => {
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(search.inactive.name);
searchResultPage.checkNoResultMessageIsDisplayed();
await searchResultPage.checkNoResultMessageIsDisplayed();
});
it('[C272802] Should be able to find an existent folder in search results', () => {
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterTextAndPressEnter(firstFolderModel.name);
it('[C272802] Should be able to find an existent folder in search results', async () => {
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(firstFolderModel.name);
searchResultPage.checkContentIsDisplayed(firstFolderModel.name);
await searchResultPage.checkContentIsDisplayed(firstFolderModel.name);
});
it('[C260258] Should be able to find an existent file in search results', () => {
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterTextAndPressEnter(firstFileModel.name);
it('[C260258] Should be able to find an existent file in search results', async () => {
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(firstFileModel.name);
searchResultPage.checkContentIsDisplayed(firstFileModel.name);
await searchResultPage.checkContentIsDisplayed(firstFileModel.name);
});
it('[C91321] Should be able to use down arrow key when navigating throw suggestions', () => {
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterText(secondFolder.shortName)
.pressDownArrowAndEnter();
it('[C91321] Should be able to use down arrow key when navigating throw suggestions', async () => {
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterText(secondFolder.shortName);
await searchDialog.pressDownArrowAndEnter();
searchResultPage.tableIsLoaded();
expect(contentServicesPage.currentFolderName()).toEqual(secondFolder.name);
await expect(await contentServicesPage.currentFolderName()).toEqual(secondFolder.name);
});
it('[C290137] Should be able to search by \'%\'', () => {
searchDialog
.clickOnSearchIcon()
.enterTextAndPressEnter('%');
searchResultPage.tableIsLoaded();
it('[C290137] Should be able to search by \'%\'', async () => {
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('%');
await searchResultPage.tableIsLoaded();
});
describe('Highlight', () => {
@@ -282,22 +265,20 @@ describe('Search component - Search Bar', () => {
const searchConfiguration = SearchConfiguration.getConfiguration();
beforeAll(async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
await LocalStorageUtil.setConfigField('search', JSON.stringify(searchConfiguration));
searchDialog
.checkSearchIconIsVisible()
.clickOnSearchIcon()
.checkSearchBarIsVisible()
.enterTextAndPressEnter(term);
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.checkSearchBarIsVisible();
await searchDialog.enterTextAndPressEnter(term);
});
it('[C299212] Should be able to configure the highlight option for search results', () => {
searchResultPage.getNodeHighlight(fileHighlightUploaded.entry.name).getText().then((text) => {
expect(text.includes(`¿${term}?`)).toBe(true);
expect(text.includes(`(${term})`)).toBe(true);
});
it('[C299212] Should be able to configure the highlight option for search results', async () => {
const text = await searchResultPage.getNodeHighlight(fileHighlightUploaded.entry.name).getText();
await expect(text.includes(`¿${term}?`)).toBe(true);
await expect(text.includes(`(${term})`)).toBe(true);
});
});
});

View File

@@ -21,12 +21,19 @@ import { SearchResultsPage } from '../pages/adf/searchResultsPage';
import { AcsUserModel } from '../models/ACS/acsUserModel';
import { FileModel } from '../models/ACS/fileModel';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
import { StringUtil, DocumentListPage, PaginationPage, LoginPage, LocalStorageUtil, UploadActions } from '@alfresco/adf-testing';
import {
StringUtil,
DocumentListPage,
PaginationPage,
LoginPage,
LocalStorageUtil,
UploadActions,
BrowserActions
} from '@alfresco/adf-testing';
import resources = require('../util/resources');
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
import { browser } from 'protractor';
import { SearchConfiguration } from './search.config';
import { BrowserActions } from '../../lib/testing/src/lib/core/utils/browser-actions';
describe('Search Filters', () => {
@@ -81,7 +88,7 @@ describe('Search Filters', () => {
let jsonFile;
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -89,28 +96,19 @@ describe('Search Filters', () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
fileUploaded = await uploadActions.uploadFile(fileModel.location, fileModel.name, '-my-');
fileTypePng = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, '-my-');
fileTypeTxt1 = await uploadActions.uploadFile(txtFileModel1.location, txtFileModel1.name, '-my-');
fileTypeJpg = await uploadActions.uploadFile(jpgFileModel.location, jpgFileModel.name, '-my-');
fileTypeTxt2 = await uploadActions.uploadFile(txtFileModel2.location, txtFileModel2.name, '-my-');
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await browser.driver.sleep(15000); // wait search index previous file/folder uploaded
searchDialog.checkSearchIconIsVisible();
searchDialog.clickOnSearchIcon();
await browser.sleep(15000); // wait search index previous file/folder uploaded
jsonFile = SearchConfiguration.getConfiguration();
done();
});
afterAll(async (done) => {
afterAll(async () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await uploadActions.deleteFileOrFolder(fileUploaded.entry.id);
@@ -119,153 +117,158 @@ describe('Search Filters', () => {
await uploadActions.deleteFileOrFolder(fileTypeTxt2.entry.id);
await uploadActions.deleteFileOrFolder(fileTypeJpg.entry.id);
await navigationBarPage.clickLogoutButton();
done();
});
it('[C286298] Should be able to cancel a filter using "x" button from the toolbar', () => {
searchDialog.enterTextAndPressEnter(fileUploaded.entry.name);
it('[C286298] Should be able to cancel a filter using "x" button from the toolbar', async () => {
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(fileUploaded.entry.name);
searchFiltersPage.checkSearchFiltersIsDisplayed();
await searchFiltersPage.checkSearchFiltersIsDisplayed();
const userOption = `${acsUser.firstName} ${acsUser.lastName}`;
searchFiltersPage.creatorCheckListFiltersPage().filterBy(userOption)
.checkChipIsDisplayed(userOption)
.removeFilterOption(userOption)
.checkChipIsNotDisplayed(userOption);
const searchCheckListPage = await searchFiltersPage.creatorCheckListFiltersPage().filterBy(userOption);
await searchCheckListPage.checkChipIsDisplayed(userOption);
await searchCheckListPage.removeFilterOption(userOption);
await searchCheckListPage.checkChipIsNotDisplayed(userOption);
});
it('[C277146] Should Show more/less buttons be hidden when inactive', () => {
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/search;q=*');
it('[C277146] Should Show more/less buttons be hidden when inactive', async () => {
await BrowserActions.getUrl(`${browser.params.testConfig.adf.url}/search;q=*`);
searchFiltersPage.creatorCheckListFiltersPage().checkShowLessButtonIsNotDisplayed()
.checkShowMoreButtonIsDisplayed()
.clickShowMoreButtonUntilIsNotDisplayed()
.checkShowLessButtonIsDisplayed()
.clickShowLessButtonUntilIsNotDisplayed();
const searchCheckListPage = searchFiltersPage.creatorCheckListFiltersPage();
await searchCheckListPage.checkShowLessButtonIsNotDisplayed();
await searchCheckListPage.checkShowMoreButtonIsDisplayed();
await searchCheckListPage.clickShowMoreButtonUntilIsNotDisplayed();
await searchCheckListPage.checkShowLessButtonIsDisplayed();
await searchCheckListPage.clickShowLessButtonUntilIsNotDisplayed();
});
it('[C286556] Search categories should preserve their collapsed/expanded state after the search', () => {
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/search;q=*');
it('[C286556] Search categories should preserve their collapsed/expanded state after the search', async () => {
await BrowserActions.getUrl(`${browser.params.testConfig.adf.url}/search;q=*`);
searchFiltersPage.clickFileTypeListFilter()
.checkFileTypeFilterIsCollapsed()
.clickFileSizeFilterHeader()
.checkFileSizeFilterIsCollapsed();
await searchFiltersPage.clickFileTypeListFilter();
await searchFiltersPage.checkFileTypeFilterIsCollapsed();
await searchFiltersPage.clickFileSizeFilterHeader();
await searchFiltersPage.checkFileSizeFilterIsCollapsed();
searchFiltersPage.creatorCheckListFiltersPage().clickCheckListOption('Administrator');
await searchFiltersPage.creatorCheckListFiltersPage().clickCheckListOption('Administrator');
searchFiltersPage.checkFileTypeFilterIsCollapsed()
.checkFileSizeFilterIsCollapsed();
await searchFiltersPage.checkFileTypeFilterIsCollapsed();
await searchFiltersPage.checkFileSizeFilterIsCollapsed();
});
it('[C287796] Should be able to display the correct bucket number after selecting a filter', () => {
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/search;q=*');
it('[C287796] Should be able to display the correct bucket number after selecting a filter', async () => {
await BrowserActions.getUrl(`${browser.params.testConfig.adf.url}/search;q=*`);
searchFiltersPage.fileTypeCheckListFiltersPage().clickCheckListOption('PNG Image');
await searchFiltersPage.fileTypeCheckListFiltersPage().clickCheckListOption('PNG Image');
const bucketNumberForFilter = searchFiltersPage.fileTypeCheckListFiltersPage().getBucketNumberOfFilterType(filter.type);
const resultFileNames = contentList.getAllRowsColumnValues('Display name');
const bucketNumberForFilter = await searchFiltersPage.fileTypeCheckListFiltersPage().getBucketNumberOfFilterType(filter.type);
const resultFileNames: any = await contentList.getAllRowsColumnValues('Display name');
expect(bucketNumberForFilter).not.toEqual('0');
expect(paginationPage.getTotalNumberOfFiles()).toEqual(bucketNumberForFilter);
await expect(bucketNumberForFilter).not.toEqual('0');
await expect(await paginationPage.getTotalNumberOfFiles()).toEqual(bucketNumberForFilter);
resultFileNames.then((fileNames) => {
fileNames.map((nameOfResultFiles) => {
expect(nameOfResultFiles).toContain('.png');
});
resultFileNames.map(async (nameOfResultFiles) => {
await expect(nameOfResultFiles).toContain('.png');
});
});
it('[C291802] Should be able to filter facet fields with "Contains"', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile['filterWithContains'] = true;
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon()
.enterTextAndPressEnter('*');
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
searchResults.tableIsLoaded();
await searchResults.tableIsLoaded();
searchFiltersPage.creatorCheckListFiltersPage()
.searchInFilter('dminis')
.checkCheckListOptionIsDisplayed('Administrator');
await searchFiltersPage.creatorCheckListFiltersPage().searchInFilter('dminis');
await searchFiltersPage.creatorCheckListFiltersPage().checkCheckListOptionIsDisplayed('Administrator');
});
it('[C291980] Should group search facets under specified labels', () => {
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/search;q=*');
it('[C291980] Should group search facets under specified labels', async () => {
await BrowserActions.getUrl(`${browser.params.testConfig.adf.url}/search;q=*`);
searchFiltersPage.checkDefaultFacetQueryGroupIsDisplayed()
.checkTypeFacetQueryGroupIsDisplayed()
.checkSizeFacetQueryGroupIsDisplayed();
await searchFiltersPage.checkDefaultFacetQueryGroupIsDisplayed();
await searchFiltersPage.checkTypeFacetQueryGroupIsDisplayed();
await searchFiltersPage.checkSizeFacetQueryGroupIsDisplayed();
});
it('[C291981] Should group search facets under the default label, by default', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon()
.enterTextAndPressEnter('*');
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
searchResults.tableIsLoaded();
await searchResults.tableIsLoaded();
searchFiltersPage.checkDefaultFacetQueryGroupIsDisplayed();
expect(searchFiltersPage.isTypeFacetQueryGroupPresent()).toBe(false);
expect(searchFiltersPage.isSizeFacetQueryGroupPresent()).toBe(false);
await searchFiltersPage.checkDefaultFacetQueryGroupIsDisplayed();
await expect(await searchFiltersPage.isTypeFacetQueryGroupPresent()).toBe(false);
await expect(await searchFiltersPage.isSizeFacetQueryGroupPresent()).toBe(false);
});
it('[C297509] Should display search intervals under specified labels from config', () => {
BrowserActions.getUrl(browser.params.testConfig.adf.url + '/search;q=*');
it('[C297509] Should display search intervals under specified labels from config', async () => {
await BrowserActions.getUrl(`${browser.params.testConfig.adf.url}/search;q=*`);
searchFiltersPage.checkFacetIntervalsByCreatedIsDisplayed()
.checkFacetIntervalsByCreatedIsExpanded()
.clickFacetIntervalsByCreatedFilterHeader()
.checkFacetIntervalsByCreatedIsCollapsed()
.clickFacetIntervalsByCreatedFilterHeader()
.checkFacetIntervalsByCreatedIsExpanded()
.checkFacetIntervalsByModifiedIsDisplayed()
.checkFacetIntervalsByModifiedIsExpanded()
.clickFacetIntervalsByModifiedFilterHeader()
.checkFacetIntervalsByModifiedIsCollapsed()
.clickFacetIntervalsByModifiedFilterHeader()
.checkFacetIntervalsByModifiedIsExpanded();
await searchFiltersPage.checkFacetIntervalsByCreatedIsDisplayed();
await searchFiltersPage.checkFacetIntervalsByCreatedIsExpanded();
await searchFiltersPage.clickFacetIntervalsByCreatedFilterHeader();
await searchFiltersPage.checkFacetIntervalsByCreatedIsCollapsed();
await searchFiltersPage.clickFacetIntervalsByCreatedFilterHeader();
await searchFiltersPage.checkFacetIntervalsByCreatedIsExpanded();
await searchFiltersPage.checkFacetIntervalsByModifiedIsDisplayed();
await searchFiltersPage.checkFacetIntervalsByModifiedIsExpanded();
await searchFiltersPage.clickFacetIntervalsByModifiedFilterHeader();
await searchFiltersPage.checkFacetIntervalsByModifiedIsCollapsed();
await searchFiltersPage.clickFacetIntervalsByModifiedFilterHeader();
await searchFiltersPage.checkFacetIntervalsByModifiedIsExpanded();
});
it('[C299200] Should reset the filters facet with search query', () => {
searchDialog.enterTextAndPressEnter(fileTypeTxt1.entry.name);
it('[C299200] Should reset the filters facet with search query', async () => {
await navigationBarPage.clickContentServicesButton();
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(fileTypeTxt1.entry.name);
searchFiltersPage.checkSearchFiltersIsDisplayed();
searchResults.tableIsLoaded();
searchResults.checkContentIsDisplayed(fileTypeTxt1.entry.name);
searchFiltersPage.checkFileTypeFacetLabelIsDisplayed('Plain Text (1)');
searchFiltersPage.checkFileTypeFacetLabelIsNotDisplayed('JPEG Image');
await searchFiltersPage.checkSearchFiltersIsDisplayed();
await searchResults.tableIsLoaded();
await searchResults.checkContentIsDisplayed(fileTypeTxt1.entry.name);
await searchFiltersPage.checkFileTypeFacetLabelIsDisplayed('Plain Text (1)');
await searchFiltersPage.checkFileTypeFacetLabelIsNotDisplayed('JPEG Image');
searchDialog.enterTextAndPressEnter(fileNamePrefix);
searchFiltersPage.checkSearchFiltersIsDisplayed();
searchResults.tableIsLoaded();
searchResults.checkContentIsDisplayed(fileTypeTxt1.entry.name);
searchResults.checkContentIsDisplayed(fileTypeTxt2.entry.name);
searchResults.checkContentIsDisplayed(fileTypeJpg.entry.name);
searchFiltersPage.checkFileTypeFacetLabelIsDisplayed('Plain Text (2)');
searchFiltersPage.checkFileTypeFacetLabelIsDisplayed('JPEG Image (1)');
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(fileNamePrefix);
await searchFiltersPage.checkSearchFiltersIsDisplayed();
await searchResults.tableIsLoaded();
await searchResults.checkContentIsDisplayed(fileTypeTxt1.entry.name);
await searchResults.checkContentIsDisplayed(fileTypeTxt2.entry.name);
await searchResults.checkContentIsDisplayed(fileTypeJpg.entry.name);
await searchFiltersPage.checkFileTypeFacetLabelIsDisplayed('Plain Text (2)');
await searchFiltersPage.checkFileTypeFacetLabelIsDisplayed('JPEG Image (1)');
});
it('[C299124] Should be able to parse escaped empty spaced labels inside facetFields', async () => {
navigationBarPage.clickContentServicesButton();
await navigationBarPage.clickContentServicesButton();
jsonFile.facetFields.fields[0].label = 'My File Types';
jsonFile.facetFields.fields[1].label = 'My File Sizes';
await LocalStorageUtil.setConfigField('search', JSON.stringify(jsonFile));
searchDialog.clickOnSearchIcon()
.enterTextAndPressEnter('*');
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
searchResults.tableIsLoaded();
searchFiltersPage.checkCustomFacetFieldLabelIsDisplayed('My File Types');
searchFiltersPage.checkCustomFacetFieldLabelIsDisplayed('My File Sizes');
await searchResults.tableIsLoaded();
await searchFiltersPage.checkCustomFacetFieldLabelIsDisplayed('My File Types');
await searchFiltersPage.checkCustomFacetFieldLabelIsDisplayed('My File Sizes');
});
});

View File

@@ -55,7 +55,7 @@ describe('Search Component - Multi-Select Facet', () => {
'name': `${randomName}.txt`
});
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -75,24 +75,23 @@ describe('Search Component - Multi-Select Facet', () => {
txtFileSite = await uploadActions.uploadFile(txtFileInfo.location, txtFileInfo.name, site.entry.guid);
await browser.driver.sleep(15000);
await browser.sleep(15000);
loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
searchDialog.checkSearchIconIsVisible();
searchDialog.clickOnSearchIcon();
searchDialog.enterTextAndPressEnter(`${randomName}`);
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(`${randomName}`);
userOption = `${acsUser.firstName} ${acsUser.lastName}`;
searchFiltersPage.checkSearchFiltersIsDisplayed();
searchFiltersPage.creatorCheckListFiltersPage().filterBy(userOption);
await searchFiltersPage.checkSearchFiltersIsDisplayed();
await searchFiltersPage.creatorCheckListFiltersPage().filterBy(userOption);
done();
});
afterAll(async (done) => {
Promise.all([
afterAll(async () => {
await Promise.all([
uploadActions.deleteFileOrFolder(jpgFile.entry.id),
uploadActions.deleteFileOrFolder(jpgFileSite.entry.id),
uploadActions.deleteFileOrFolder(txtFile.entry.id),
@@ -102,33 +101,32 @@ describe('Search Component - Multi-Select Facet', () => {
await this.alfrescoJsApi.core.sitesApi.deleteSite(site.entry.id);
await navigationBarPage.clickLogoutButton();
done();
});
it('[C280054] Should be able to select multiple items from a search facet filter', () => {
loginPage.loginToContentServicesUsingUserModel(acsUser);
it('[C280054] Should be able to select multiple items from a search facet filter', async () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
searchDialog.checkSearchIconIsVisible();
searchDialog.clickOnSearchIcon();
searchDialog.enterTextAndPressEnter(`${randomName}`);
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(`${randomName}`);
userOption = `${acsUser.firstName} ${acsUser.lastName}`;
searchFiltersPage.checkSearchFiltersIsDisplayed();
searchFiltersPage.creatorCheckListFiltersPage().filterBy(userOption);
searchFiltersPage.fileTypeCheckListFiltersPage().filterBy('Plain Text');
await searchFiltersPage.checkSearchFiltersIsDisplayed();
await searchFiltersPage.creatorCheckListFiltersPage().filterBy(userOption);
await searchFiltersPage.fileTypeCheckListFiltersPage().filterBy('Plain Text');
expect(searchResultsPage.numberOfResultsDisplayed()).toBe(2);
searchResultsPage.checkContentIsDisplayed(txtFile.entry.name);
searchResultsPage.checkContentIsDisplayed(txtFileSite.entry.name);
await expect(searchResultsPage.numberOfResultsDisplayed()).toBe(2);
await searchResultsPage.checkContentIsDisplayed(txtFile.entry.name);
await searchResultsPage.checkContentIsDisplayed(txtFileSite.entry.name);
searchFiltersPage.fileTypeCheckListFiltersPage().filterBy('JPEG Image');
await searchFiltersPage.fileTypeCheckListFiltersPage().filterBy('JPEG Image');
expect(searchResultsPage.numberOfResultsDisplayed()).toBe(4);
searchResultsPage.checkContentIsDisplayed(txtFile.entry.name);
searchResultsPage.checkContentIsDisplayed(txtFileSite.entry.name);
searchResultsPage.checkContentIsDisplayed(jpgFile.entry.name);
searchResultsPage.checkContentIsDisplayed(jpgFileSite.entry.name);
await expect(await searchResultsPage.numberOfResultsDisplayed()).toBe(4);
await searchResultsPage.checkContentIsDisplayed(txtFile.entry.name);
await searchResultsPage.checkContentIsDisplayed(txtFileSite.entry.name);
await searchResultsPage.checkContentIsDisplayed(jpgFile.entry.name);
await searchResultsPage.checkContentIsDisplayed(jpgFileSite.entry.name);
});
});
@@ -147,7 +145,7 @@ describe('Search Component - Multi-Select Facet', () => {
'name': `${randomName}.txt`
});
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(userUploadingTxt);
@@ -171,27 +169,27 @@ describe('Search Component - Multi-Select Facet', () => {
jpgFile = await uploadActions.uploadFile(jpgFileInfo.location, jpgFileInfo.name, site.entry.guid);
await browser.driver.sleep(15000);
await browser.sleep(15000);
loginPage.loginToContentServicesUsingUserModel(userUploadingImg);
await loginPage.loginToContentServicesUsingUserModel(userUploadingImg);
searchDialog.checkSearchIconIsVisible();
searchDialog.clickOnSearchIcon();
searchDialog.enterTextAndPressEnter(`*${randomName}*`);
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(`*${randomName}*`);
searchFiltersPage.checkSearchFiltersIsDisplayed();
searchFiltersPage.creatorCheckListFiltersPage().filterBy(`${userUploadingTxt.firstName} ${userUploadingTxt.lastName}`);
searchFiltersPage.creatorCheckListFiltersPage().filterBy(`${userUploadingImg.firstName} ${userUploadingImg.lastName}`);
await searchFiltersPage.checkSearchFiltersIsDisplayed();
await searchFiltersPage.creatorCheckListFiltersPage().filterBy(`${userUploadingTxt.firstName} ${userUploadingTxt.lastName}`);
await searchFiltersPage.creatorCheckListFiltersPage().filterBy(`${userUploadingImg.firstName} ${userUploadingImg.lastName}`);
searchResultsPage.checkContentIsDisplayed(txtFile.entry.name);
searchResultsPage.checkContentIsDisplayed(jpgFile.entry.name);
await searchResultsPage.checkContentIsDisplayed(txtFile.entry.name);
await searchResultsPage.checkContentIsDisplayed(jpgFile.entry.name);
searchFiltersPage.fileTypeCheckListFiltersPage().filterBy('Plain Text');
searchFiltersPage.fileTypeCheckListFiltersPage().filterBy('JPEG Image');
await searchFiltersPage.fileTypeCheckListFiltersPage().filterBy('Plain Text');
await searchFiltersPage.fileTypeCheckListFiltersPage().filterBy('JPEG Image');
expect(searchResultsPage.numberOfResultsDisplayed()).toBe(2);
searchResultsPage.checkContentIsDisplayed(txtFile.entry.name);
searchResultsPage.checkContentIsDisplayed(jpgFile.entry.name);
await expect(await searchResultsPage.numberOfResultsDisplayed()).toBe(2);
await searchResultsPage.checkContentIsDisplayed(txtFile.entry.name);
await searchResultsPage.checkContentIsDisplayed(jpgFile.entry.name);
});
});
@@ -205,7 +203,7 @@ describe('Search Component - Multi-Select Facet', () => {
'name': `${randomName}.txt`
});
beforeAll(async (done) => {
beforeAll(async () => {
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.core.peopleApi.addPerson(acsUser);
@@ -218,38 +216,37 @@ describe('Search Component - Multi-Select Facet', () => {
});
txtFile = await uploadActions.uploadFile(txtFileInfo.location, txtFileInfo.name, '-my-');
await browser.driver.sleep(15000);
await browser.sleep(15000);
loginPage.loginToContentServicesUsingUserModel(acsUser);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
searchDialog.checkSearchIconIsVisible();
searchDialog.clickOnSearchIcon();
searchDialog.enterTextAndPressEnter(`*${randomName}*`);
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(`*${randomName}*`);
searchFiltersPage.checkSearchFiltersIsDisplayed();
await searchFiltersPage.checkSearchFiltersIsDisplayed();
done();
});
afterAll(async (done) => {
afterAll(async () => {
await uploadActions.deleteFileOrFolder(txtFile.entry.id);
await this.alfrescoJsApi.core.sitesApi;
done();
});
it('[C280058] Should update filter facets items number when another filter facet item is selected', () => {
loginPage.loginToContentServicesUsingUserModel(acsUser);
it('[C280058] Should update filter facets items number when another filter facet item is selected', async () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
searchDialog.checkSearchIconIsVisible();
searchDialog.clickOnSearchIcon();
searchDialog.enterTextAndPressEnter(`*${randomName}*`);
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(`*${randomName}*`);
searchFiltersPage.checkSearchFiltersIsDisplayed();
searchFiltersPage.fileTypeCheckListFiltersPage().filterBy('Plain Text');
searchFiltersPage.creatorCheckListFiltersPage().filterBy(`${acsUser.firstName} ${acsUser.lastName}`);
await searchFiltersPage.checkSearchFiltersIsDisplayed();
await searchFiltersPage.fileTypeCheckListFiltersPage().filterBy('Plain Text');
await searchFiltersPage.creatorCheckListFiltersPage().filterBy(`${acsUser.firstName} ${acsUser.lastName}`);
expect(searchResultsPage.numberOfResultsDisplayed()).toBe(1);
searchResultsPage.checkContentIsDisplayed(txtFile.entry.name);
await expect(await searchResultsPage.numberOfResultsDisplayed()).toBe(1);
await searchResultsPage.checkContentIsDisplayed(txtFile.entry.name);
});
});
});

View File

@@ -63,7 +63,7 @@ describe('Search component - Search Page', () => {
});
const uploadActions = new UploadActions(this.alfrescoJsApi);
beforeAll(async (done) => {
beforeAll(async () => {
fileNames = Util.generateSequenceFiles(1, nrOfFiles, search.active.base, search.active.extension);
const adminFileNames = Util.generateSequenceFiles(nrOfFiles + 1, nrOfFiles + adminNrOfFiles, search.active.base, search.active.extension);
search.active.firstFile = fileNames[0];
@@ -91,84 +91,83 @@ describe('Search component - Search Page', () => {
await uploadActions.createEmptyFiles(adminFileNames, newFolderModelUploaded.entry.id);
browser.driver.sleep(15000);
await browser.sleep(15000);
await loginPage.loginToContentServicesUsingUserModel(acsUser);
done();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
});
it('[C260264] Should display message when no results are found', () => {
it('[C260264] Should display message when no results are found', async() => {
const notExistentFileName = StringUtil.generateRandomString();
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
.enterTextAndPressEnter(notExistentFileName);
searchResultPage.checkNoResultMessageIsDisplayed();
await searchDialog.checkSearchBarIsNotVisible();
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(notExistentFileName);
await searchResultPage.checkNoResultMessageIsDisplayed();
});
it('[C272810] Should display only files corresponding to search', () => {
searchDialog
.clickOnSearchIcon()
.enterTextAndPressEnter(search.active.firstFile);
it('[C272810] Should display only files corresponding to search', async () => {
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(search.active.firstFile);
searchResultPage.checkContentIsDisplayed(search.active.firstFile);
expect(searchResultPage.numberOfResultsDisplayed()).toBe(1);
await searchResultPage.checkContentIsDisplayed(search.active.firstFile);
await expect(await searchResultPage.numberOfResultsDisplayed()).toBe(1);
});
it('[C260267] Should display content when opening a folder from search results', () => {
searchDialog
.clickOnSearchIcon()
.enterTextAndPressEnter(emptyFolderModel.name);
it('[C260267] Should display content when opening a folder from search results', async () => {
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(emptyFolderModel.name);
searchResultPage.checkNoResultMessageIsNotDisplayed();
searchResultPage.checkContentIsDisplayed(emptyFolderModel.name);
searchResultPage.navigateToFolder(emptyFolderModel.name);
contentServicesPage.currentFolderName().then((result) => {
expect(result).toEqual(emptyFolderModel.name);
});
await searchResultPage.checkNoResultMessageIsNotDisplayed();
await searchResultPage.checkContentIsDisplayed(emptyFolderModel.name);
await searchResultPage.navigateToFolder(emptyFolderModel.name);
const result = await contentServicesPage.currentFolderName();
await expect(result).toEqual(emptyFolderModel.name);
});
it('[C260261] Should be able to delete a file from search results', () => {
searchDialog
.clickOnSearchIcon()
.enterTextAndPressEnter(search.active.firstFile);
it('[C260261] Should be able to delete a file from search results', async () => {
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(search.active.firstFile);
searchResultPage.checkContentIsDisplayed(search.active.firstFile);
await searchResultPage.checkContentIsDisplayed(search.active.firstFile);
searchResultPage.deleteContent(search.active.firstFile);
await searchResultPage.deleteContent(search.active.firstFile);
searchResultPage.checkNoResultMessageIsDisplayed();
searchResultPage.checkContentIsNotDisplayed(search.active.firstFile);
await searchResultPage.checkNoResultMessageIsDisplayed();
await searchResultPage.checkContentIsNotDisplayed(search.active.firstFile);
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
.enterTextAndPressEnter(search.active.firstFile);
searchResultPage.checkNoResultMessageIsDisplayed();
await searchDialog.checkSearchBarIsNotVisible();
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(search.active.firstFile);
await searchResultPage.checkNoResultMessageIsDisplayed();
});
it('[C272809] Should be able to delete a folder from search results', () => {
searchDialog
.clickOnSearchIcon()
.enterTextAndPressEnter(emptyFolderModel.name);
it('[C272809] Should be able to delete a folder from search results', async () => {
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(emptyFolderModel.name);
searchResultPage.checkContentIsDisplayed(emptyFolderModel.name);
searchResultPage.checkNoResultMessageIsNotDisplayed();
searchResultPage.checkContentIsDisplayed(emptyFolderModel.name);
searchResultPage.deleteContent(emptyFolderModel.name);
searchResultPage.checkNoResultMessageIsDisplayed();
await searchResultPage.checkContentIsDisplayed(emptyFolderModel.name);
await searchResultPage.checkNoResultMessageIsNotDisplayed();
await searchResultPage.checkContentIsDisplayed(emptyFolderModel.name);
await searchResultPage.deleteContent(emptyFolderModel.name);
await searchResultPage.checkNoResultMessageIsDisplayed();
searchDialog.checkSearchBarIsNotVisible().checkSearchIconIsVisible().clickOnSearchIcon()
.enterTextAndPressEnter(emptyFolderModel.name);
searchResultPage.checkNoResultMessageIsDisplayed();
await searchDialog.checkSearchBarIsNotVisible();
await searchDialog.checkSearchIconIsVisible();
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter(emptyFolderModel.name);
await searchResultPage.checkNoResultMessageIsDisplayed();
});
it('[C286675] Should display results when searching for all elements', () => {
searchDialog
.clickOnSearchIcon()
.enterTextAndPressEnter('*');
it('[C286675] Should display results when searching for all elements', async () => {
await searchDialog.clickOnSearchIcon();
await searchDialog.enterTextAndPressEnter('*');
searchResultPage.checkNoResultMessageIsNotDisplayed();
await searchResultPage.checkNoResultMessageIsNotDisplayed();
});
});