[ADF-3696] Create an automated test to cover the search filter buckets scenario (#3915)

* [ADF-3696] Create an automated test to cover the search filter buckets

* Removing comments

* Removing spaces and xit

* Minor changes

* Add spaces where needed

* Changing locator

* Changes on the splitting of names

* Changing to single quotes
This commit is contained in:
jdosti 2018-10-29 15:52:35 +00:00 committed by Eugenio Romano
parent a358a81132
commit baf6050111
4 changed files with 67 additions and 2 deletions

View File

@ -18,12 +18,15 @@
import { LoginPage } from '../../pages/adf/loginPage'; import { LoginPage } from '../../pages/adf/loginPage';
import SearchDialog = require('../../pages/adf/dialog/searchDialog'); import SearchDialog = require('../../pages/adf/dialog/searchDialog');
import { SearchFiltersPage } from '../../pages/adf/searchFiltersPage'; import { SearchFiltersPage } from '../../pages/adf/searchFiltersPage';
import PaginationPage = require('../../pages/adf/paginationPage');
import ContentList = require('../../pages/adf/dialog/contentList');
import AcsUserModel = require('../../models/ACS/acsUserModel'); import AcsUserModel = require('../../models/ACS/acsUserModel');
import FileModel = require('../../models/ACS/fileModel'); import FileModel = require('../../models/ACS/fileModel');
import TestConfig = require('../../test.config'); import TestConfig = require('../../test.config');
import Util = require('../../util/util'); import Util = require('../../util/util');
import resources = require('../../util/resources');
import AlfrescoApi = require('alfresco-js-api-node'); import AlfrescoApi = require('alfresco-js-api-node');
import { UploadActions } from '../../actions/ACS/upload.actions'; import { UploadActions } from '../../actions/ACS/upload.actions';
@ -35,6 +38,8 @@ describe('Search Filters', () => {
let searchDialog = new SearchDialog(); let searchDialog = new SearchDialog();
let searchFiltersPage = new SearchFiltersPage(); let searchFiltersPage = new SearchFiltersPage();
let uploadActions = new UploadActions(); let uploadActions = new UploadActions();
let paginationPage = new PaginationPage();
let contentList = new ContentList();
let acsUser = new AcsUserModel(); let acsUser = new AcsUserModel();
@ -43,7 +48,15 @@ describe('Search Filters', () => {
let fileModel = new FileModel({ let fileModel = new FileModel({
'name': filename, 'shortName': filename.substring(0, 8) 'name': filename, 'shortName': filename.substring(0, 8)
}); });
let fileUploaded;
let pngFileModel = new FileModel({
'name': resources.Files.ADF_DOCUMENTS.PNG.file_name,
'location': resources.Files.ADF_DOCUMENTS.PNG.file_location
});
let fileUploaded, fileTypePng;
let filter = {type: 'TYPE-PNG Image'};
beforeAll(async (done) => { beforeAll(async (done) => {
@ -60,6 +73,8 @@ describe('Search Filters', () => {
fileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, fileModel.location, fileModel.name, '-my-'); fileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, fileModel.location, fileModel.name, '-my-');
fileTypePng = await uploadActions.uploadFile(this.alfrescoJsApi, pngFileModel.location, pngFileModel.name, '-my-');
loginPage.loginToContentServicesUsingUserModel(acsUser); loginPage.loginToContentServicesUsingUserModel(acsUser);
await browser.driver.sleep(30000); // wait search index previous file/folder uploaded await browser.driver.sleep(30000); // wait search index previous file/folder uploaded
@ -77,6 +92,7 @@ describe('Search Filters', () => {
await this.alfrescoJsApi.login(acsUser.id, acsUser.password); await this.alfrescoJsApi.login(acsUser.id, acsUser.password);
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileUploaded.entry.id); await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileUploaded.entry.id);
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, fileTypePng.entry.id);
done(); done();
}); });
@ -114,4 +130,24 @@ describe('Search Filters', () => {
searchFiltersPage.checkFileSizeFilterIsCollapsed(); searchFiltersPage.checkFileSizeFilterIsCollapsed();
}); });
it('[C287796] Should be able to display the correct bucket number after selecting a filter', () => {
browser.get(TestConfig.adf.url + '/search;q=*');
searchFiltersPage.clickPngImageType();
let bucketNumberForFilter = searchFiltersPage.getBucketNumberOfFilterType(filter.type);
let resultFileNames = contentList.getAllRowsNameColumn();
expect(bucketNumberForFilter).not.toEqual('0');
expect(paginationPage.getTotalNumberOfFiles()).toEqual(bucketNumberForFilter);
resultFileNames.then((fileNames) => {
fileNames.map((nameOfResultFiles) => {
expect(nameOfResultFiles).toContain('.png');
});
});
});
}); });

View File

@ -28,7 +28,7 @@ var ContentList = function () {
var actionMenu = element(by.css("div[role='menu']")); var actionMenu = element(by.css("div[role='menu']"));
var optionButton = by.css("button[data-automation-id*='action_menu_']"); var optionButton = by.css("button[data-automation-id*='action_menu_']");
var rowByRowName = by.xpath("ancestor::div[contains(@class, 'adf-datatable-row')]"); var rowByRowName = by.xpath("ancestor::div[contains(@class, 'adf-datatable-row')]");
var nameColumn = by.css("div[id*='document-list-container'] div[class*='adf-datatable-row'] div[class*='--text full-width'] span"); var nameColumn = by.css('div[class*="datatable-body"] div[class*="adf-data-table-cell"][title="Display name"]');
var nameColumnHeader = by.css("div[data-automation-id='auto_id_name']"); var nameColumnHeader = by.css("div[data-automation-id='auto_id_name']");
var createdByColumn = by.css("div[class*='--text'][title='Created by'] span"); var createdByColumn = by.css("div[class*='--text'][title='Created by'] span");
var sizeColumn = by.css("div[id*='document-list-container'] div[class*='adf-datatable-row'] .adf-filesize-cell"); var sizeColumn = by.css("div[id*='document-list-container'] div[class*='adf-datatable-row'] .adf-filesize-cell");

View File

@ -33,6 +33,7 @@ var PaginationPage = function () {
var pageDropDownOptions = by.css("div[class*='mat-menu-content'] button"); var pageDropDownOptions = by.css("div[class*='mat-menu-content'] button");
var paginationSection = element(by.css("adf-pagination")); var paginationSection = element(by.css("adf-pagination"));
var paginationSectionEmpty = element(by.css("adf-pagination[class*='adf-pagination__empty ng-star-inserted']")); var paginationSectionEmpty = element(by.css("adf-pagination[class*='adf-pagination__empty ng-star-inserted']"));
var totalFiles = element(by.css('span[class="adf-pagination__range"]'));
this.selectItemsPerPage = function (item) { this.selectItemsPerPage = function (item) {
Util.waitUntilElementIsVisible(itemsPerPageDropdown); Util.waitUntilElementIsVisible(itemsPerPageDropdown);
@ -130,6 +131,16 @@ var PaginationPage = function () {
Util.waitUntilElementIsNotOnPage(previousButtonDisabled); Util.waitUntilElementIsNotOnPage(previousButtonDisabled);
}; };
this.getTotalNumberOfFiles = function () {
Util.waitUntilElementIsVisible(totalFiles);
var numberOfFiles = totalFiles.getText().then(function (totalNumber) {
var totalNumberOfFiles = totalNumber.split('of ')[1];
return totalNumberOfFiles;
});
return numberOfFiles;
}
}; };
module.exports = PaginationPage; module.exports = PaginationPage;

View File

@ -29,6 +29,7 @@ export class SearchFiltersPage {
createdFilter = element(by.css('mat-expansion-panel[data-automation-id="expansion-panel-SEARCH.FACET_FIELDS.CREATED"')); createdFilter = element(by.css('mat-expansion-panel[data-automation-id="expansion-panel-SEARCH.FACET_FIELDS.CREATED"'));
showMoreButtonForCreated = this.createdFilter.element(by.css('button[title="Show more"]')); showMoreButtonForCreated = this.createdFilter.element(by.css('button[title="Show more"]'));
showLessButtonForCreated = this.createdFilter.element(by.css('button[title="Show less"]')); showLessButtonForCreated = this.createdFilter.element(by.css('button[title="Show less"]'));
pngImageFileType = element(by.css('mat-checkbox[data-automation-id="checkbox-SEARCH.FACET_FIELDS.TYPE-PNG Image"]'));
checkSearchFiltersIsDisplayed() { checkSearchFiltersIsDisplayed() {
Util.waitUntilElementIsVisible(this.searchFilters); Util.waitUntilElementIsVisible(this.searchFilters);
@ -166,4 +167,21 @@ export class SearchFiltersPage {
Util.waitUntilElementIsVisible(this.showLessButtonForCreated); Util.waitUntilElementIsVisible(this.showLessButtonForCreated);
} }
clickPngImageType() {
Util.waitUntilElementIsVisible(this.pngImageFileType);
return this.pngImageFileType.click();
}
getBucketNumberOfFilterType(fileType) {
let fileTypeFilter = element(by.css('mat-checkbox[data-automation-id="checkbox-SEARCH.FACET_FIELDS.' + fileType + '"] span'));
Util.waitUntilElementIsVisible(fileTypeFilter);
let bucketNumber = fileTypeFilter.getText().then((valueOfBucket) => {
let numberOfBucket = valueOfBucket.split('(')[1];
let totalNumberOfBucket = numberOfBucket.split(')')[0];
return totalNumberOfBucket;
});
return bucketNumber;
}
} }