mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-19 17:14:57 +00:00
[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:
parent
a358a81132
commit
baf6050111
@ -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');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
@ -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");
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user