diff --git a/e2e/protractor/protractor.excludes.json b/e2e/protractor/protractor.excludes.json
index 03eedcb8f4..94ba967406 100644
--- a/e2e/protractor/protractor.excludes.json
+++ b/e2e/protractor/protractor.excludes.json
@@ -6,11 +6,6 @@
"C286252": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
"C284666": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
"C286269": "temp, see https://alfresco.atlassian.net/browse/ACS-5189",
- "C279186": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
- "C279230": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
- "C279231": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
- "C279232": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
- "C279233": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4986",
"C279191": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
"C279192": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
"C279193": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
@@ -19,6 +14,7 @@
"C280052": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
"C279188": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
"C308042": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-5183",
+ "C279186": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4985",
"C279219": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4985",
"C279221": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4985",
"C279220": "temp, will be fixed in https://alfresco.atlassian.net/browse/ACS-4985",
diff --git a/e2e/protractor/suites/search/search-filters.test.ts b/e2e/protractor/suites/search/search-filters.test.ts
index 4c735de7b1..c8a14853df 100644
--- a/e2e/protractor/suites/search/search-filters.test.ts
+++ b/e2e/protractor/suites/search/search-filters.test.ts
@@ -482,8 +482,7 @@ describe('Search filters', () => {
await locationFilter.openDialog();
expect(await locationFilter.isDialogPresent()).toBe(true, 'Location filter panel not expanded');
- expect(await locationFilter.getFiltersValues()).toEqual(expectedLocations, 'Incorrect Location filters facets');
- expect(await locationFilter.isFilterCategoryInputDisplayed()).toBe(true, 'Location filter categories not displayed');
+ expect(await locationFilter.isFilterAutocompleteInputDisplayed()).toBe(true, 'Location filter categories not displayed');
await locationFilter.closeDialog();
expect(await locationFilter.isDialogPresent()).toBe(false, 'Location filter panel is expanded');
@@ -491,7 +490,7 @@ describe('Search filters', () => {
it('[C279231] Results are filtered by Location', async () => {
await locationFilter.openDialog();
- await locationFilter.checkCategory(site);
+ await locationFilter.setAutocompleteInputValue(site);
await locationFilter.clickApplyButton();
expect(await dataTable.isItemPresent(filePdfUser2.name)).toBe(false, 'PDF file is displayed');
@@ -499,17 +498,17 @@ describe('Search filters', () => {
expect(await locationFilter.getChipTitle()).toEqual(site, 'Incorrect location filter selected');
await locationFilter.openDialog();
- await locationFilter.checkCategory('_REPOSITORY_');
+ await locationFilter.setAutocompleteInputValue('_REPOSITORY_');
await locationFilter.clickApplyButton();
expect(await dataTable.isItemPresent(filePdfUser2.name)).toBe(true, 'PDF file not displayed');
expect(await dataTable.isItemPresent(fileJpgUser1.name)).toBe(true, 'JPG file not displayed');
- expect(await locationFilter.getChipTitle()).toEqual(`_REPOSITORY_, ${site}`, 'Incorrect location filter selected');
+ expect(await locationFilter.getChipTitle()).toEqual(`${site}, _REPOSITORY_`, 'Incorrect location filter selected');
});
it('[C279232] Clear the Location filter options', async () => {
await locationFilter.openDialog();
- await locationFilter.checkCategory(site);
+ await locationFilter.setAutocompleteInputValue(site);
await locationFilter.clickApplyButton();
expect(await dataTable.isItemPresent(filePdfUser2.name)).toBe(false, 'PDF file is displayed');
@@ -517,7 +516,7 @@ describe('Search filters', () => {
expect(await locationFilter.getChipTitle()).toEqual(`${site}`, 'Incorrect location filter selected');
await locationFilter.openDialog();
- expect(await locationFilter.getFiltersCheckedValues()).toEqual([`${site} (1)`]);
+ expect(await locationFilter.getFiltersSelectedValues()).toEqual([`${site}`]);
await locationFilter.clickResetButton();
expect(await dataTable.isItemPresent(filePdfUser2.name)).toBe(true, 'PDF file not displayed');
@@ -527,9 +526,9 @@ describe('Search filters', () => {
it('[C279233] Search for a specific location', async () => {
await locationFilter.openDialog();
- expect(await locationFilter.getFiltersValues()).toEqual(expectedLocations, 'Incorrect Location filters facets');
- await locationFilter.filterCategoriesBy(site);
- expect(await locationFilter.getFiltersValues()).toEqual([`${site} (1)`], 'Incorrect Location filters facets');
+ expect(await locationFilter.getFiltersSelectedValues()).toEqual([], 'Incorrect Location filters facets');
+ await locationFilter.setAutocompleteInputValue(site);
+ expect(await locationFilter.getFiltersSelectedValues()).toEqual([`${site}`], 'Incorrect Location filters facets');
});
});
@@ -621,7 +620,7 @@ describe('Search filters', () => {
await creatorFilter.clickApplyButton();
await locationFilter.openDialog();
- await locationFilter.checkCategory(site);
+ await locationFilter.setAutocompleteInputValue(site);
await locationFilter.clickApplyButton();
expect(await dataTable.isItemPresent(filePdfUser2.name)).toBe(false, 'PDF file is displayed');
@@ -682,7 +681,7 @@ describe('Search filters', () => {
await modifierFilter.closeDialog();
await locationFilter.openDialog();
- expect(await locationFilter.getFiltersValues()).toEqual(expectedLocations);
+ expect(await locationFilter.getFiltersSelectedValues()).toEqual(expectedLocations);
await locationFilter.closeDialog();
await searchInput.clickSearchButton();
@@ -702,7 +701,7 @@ describe('Search filters', () => {
await modifierFilter.closeDialog();
await locationFilter.openDialog();
- expect(await locationFilter.getFiltersValues()).toEqual([`${site} (1)`]);
+ expect(await locationFilter.getFiltersSelectedValues()).toEqual([`${site}`]);
await locationFilter.closeDialog();
});
});
diff --git a/projects/aca-testing-shared/src/components/search/filters/autocomplete-chips-filter.ts b/projects/aca-testing-shared/src/components/search/filters/autocomplete-chips-filter.ts
new file mode 100644
index 0000000000..ef7f4156ee
--- /dev/null
+++ b/projects/aca-testing-shared/src/components/search/filters/autocomplete-chips-filter.ts
@@ -0,0 +1,58 @@
+/*!
+ * Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
+ *
+ * Alfresco Example Content Application
+ *
+ * This file is part of the Alfresco Example Content Application.
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
+ * provided under the following open source license terms:
+ *
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+
+import { browser, by, ElementArrayFinder, ElementFinder, protractor } from 'protractor';
+import { GenericFilter } from './generic-filter';
+
+export class AutocompleteChipsFilter extends GenericFilter {
+ private readonly locators = {
+ selectedOption: '.mat-chip span',
+ input: '.mat-menu-content input',
+ };
+
+ constructor(filterName: string) {
+ super(filterName);
+ }
+
+ selectedOptions: ElementArrayFinder = this.filterDialogOpened.all(by.css(this.locators.selectedOption));
+
+ get filterInput(): ElementFinder {
+ return this.filterDialogOpened.element(by.css(this.locators.input));
+ }
+
+ async getFiltersSelectedValues(): Promise {
+ return this.selectedOptions.map((option) => {
+ return option.getText();
+ });
+ }
+
+ async isFilterAutocompleteInputDisplayed(): Promise {
+ return this.filterInput.isDisplayed();
+ }
+
+ async setAutocompleteInputValue(value: string): Promise {
+ await this.filterInput.sendKeys(value);
+ await browser.actions().sendKeys(protractor.Key.ENTER).perform();
+ }
+}
diff --git a/projects/aca-testing-shared/src/components/search/index.ts b/projects/aca-testing-shared/src/components/search/index.ts
index 9c1f195633..27d1710fe4 100644
--- a/projects/aca-testing-shared/src/components/search/index.ts
+++ b/projects/aca-testing-shared/src/components/search/index.ts
@@ -22,6 +22,7 @@
* along with Alfresco. If not, see .
*/
+export * from './filters/autocomplete-chips-filter';
export * from './filters/created-date-filter';
export * from './filters/facet-filter';
export * from './filters/generic-filter';
diff --git a/projects/aca-testing-shared/src/components/search/search-filters.ts b/projects/aca-testing-shared/src/components/search/search-filters.ts
index a86f719dc1..2c5206eb21 100755
--- a/projects/aca-testing-shared/src/components/search/search-filters.ts
+++ b/projects/aca-testing-shared/src/components/search/search-filters.ts
@@ -27,6 +27,7 @@ import { Component } from '../component';
import { SizeFilter } from './filters/size-filter';
import { CreatedDateFilter } from './filters/created-date-filter';
import { FacetFilter } from './filters/facet-filter';
+import { AutocompleteChipsFilter } from './filters/autocomplete-chips-filter';
export class SearchFilters extends Component {
resetAllButton = browser.element(by.css('button[adf-reset-search]'));
@@ -36,7 +37,7 @@ export class SearchFilters extends Component {
fileType = new FacetFilter('File type');
creator = new FacetFilter('Creator');
modifier = new FacetFilter('Modifier');
- location = new FacetFilter('Location');
+ location = new AutocompleteChipsFilter('Location');
modifiedDate = new FacetFilter('Modified date');
constructor(ancestor?: string) {