diff --git a/e2e/content-services/tag_component.e2e.ts b/e2e/content-services/tag_component.e2e.ts index d365a24559..bd83916e2f 100644 --- a/e2e/content-services/tag_component.e2e.ts +++ b/e2e/content-services/tag_component.e2e.ts @@ -36,21 +36,31 @@ describe('Tag component', () => { let tagPage = new TagPage(); let acsUser = new AcsUserModel(); + let uploadActions = new UploadActions(); let pdfFileModel = new FileModel({ 'name': resources.Files.ADF_DOCUMENTS.PDF.file_name }); let deleteFile = new FileModel({ 'name': Util.generateRandomString() }); let sameTag = Util.generateRandomStringToLowerCase(); + let tagList = [ Util.generateRandomStringToLowerCase(), Util.generateRandomStringToLowerCase(), Util.generateRandomStringToLowerCase(), Util.generateRandomStringToLowerCase()]; + + let tags = [ + {tag: 'test-tag-01'}, {tag: 'test-tag-02'}, {tag: 'test-tag-03'}, {tag: 'test-tag-04'}, {tag: 'test-tag-05'}, + {tag: 'test-tag-06'}, {tag: 'test-tag-07'}, {tag: 'test-tag-08'}, {tag: 'test-tag-09'}, {tag: 'test-tag-10'}, + {tag: 'test-tag-11'}, {tag: 'test-tag-12'}, {tag: 'test-tag-13'}, {tag: 'test-tag-14'}, {tag: 'test-tag-15'}, + {tag: 'test-tag-16'}, {tag: 'test-tag-17'}, {tag: 'test-tag-18'}, {tag: 'test-tag-19'}, {tag: 'test-tag-20'}, + {tag: 'test-tag-21'}, {tag: 'test-tag-22'}, {tag: 'test-tag-23'}, {tag: 'test-tag-24'}, {tag: 'test-tag-25'}, + {tag: 'test-tag-26'}, {tag: 'test-tag-27'}, {tag: 'test-tag-28'}, {tag: 'test-tag-29'}, {tag: 'test-tag-30'}]; + let uppercaseTag = Util.generateRandomStringToUpperCase(); let digitsTag = Util.generateRandomStringDigits(); let nonLatinTag = Util.generateRandomStringNonLatin(); + let pdfUploadedFile, nodeId; beforeAll(async (done) => { - let uploadActions = new UploadActions(); - this.alfrescoJsApi = new AlfrescoApi({ provider: 'ECM', hostEcm: TestConfig.adf.url @@ -62,7 +72,9 @@ describe('Tag component', () => { await this.alfrescoJsApi.login(acsUser.id, acsUser.password); - let pdfUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFileModel.location, pdfFileModel.name, '-my-'); + pdfUploadedFile = await uploadActions.uploadFile(this.alfrescoJsApi, pdfFileModel.location, pdfFileModel.name, '-my-'); + + nodeId = pdfUploadedFile.entry.id; let uploadedDeleteFile = await uploadActions.uploadFile(this.alfrescoJsApi, deleteFile.location, deleteFile.name, '-my-'); @@ -70,6 +82,8 @@ describe('Tag component', () => { Object.assign(deleteFile, uploadedDeleteFile.entry); + await this.alfrescoJsApi.core.tagsApi.addTag(nodeId, tags); + loginPage.loginToContentServicesUsingUserModel(acsUser); tagPage.goToTagPage(); @@ -77,6 +91,12 @@ describe('Tag component', () => { done(); }); + afterAll(async (done) => { + await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, pdfUploadedFile.entry.id); + + done(); + }); + it('[C260374] Tag node ID', () => { expect(tagPage.getNodeId()).toEqual(''); expect(tagPage.getNewTagPlaceholder()).toEqual('New Tag'); @@ -176,4 +196,37 @@ describe('Tag component', () => { tagPage.checkDeleteTagFromTagListByNodeIdIsNotDisplayed(tagList[3]); }); + + it('[C286472] Should be able to click Show more/less button on "List Tags Content Services"', async() => { + await browser.refresh(); + + await tagPage.checkShowMoreButtonIsDisplayed(); + await tagPage.checkShowLessButtonIsNotDisplayed(); + + expect(tagPage.checkTagsOnList()).toEqual(10); + + await tagPage.clickShowMoreButton(); + await tagPage.checkShowMoreButtonIsDisplayed(); + await tagPage.checkShowLessButtonIsDisplayed(); + + await tagPage.clickShowMoreButtonUntilNotDisplayed(); + await tagPage.checkShowLessButtonIsDisplayed(); + await tagPage.checkShowMoreButtonIsNotDisplayed(); + + let totalTags = await this.alfrescoJsApi.core.tagsApi.getTags({maxItems: 400}); + let totalNumberOfTags = totalTags.list.pagination.count; + + expect(tagPage.checkTagsOnList()).toEqual(totalNumberOfTags); + + await tagPage.clickShowLessButton(); + await tagPage.checkShowMoreButtonIsDisplayed(); + await tagPage.checkShowLessButtonIsDisplayed(); + + expect(tagPage.checkTagsOnList()).toBeLessThan(totalNumberOfTags); + + await tagPage.clickShowLessButtonUntilNotDisplayed(); + await tagPage.checkShowMoreButtonIsDisplayed(); + await tagPage.checkShowLessButtonIsNotDisplayed(); + }); + }); diff --git a/e2e/pages/adf/tagPage.js b/e2e/pages/adf/tagPage.js index c5e6bf7005..31512b84d3 100644 --- a/e2e/pages/adf/tagPage.js +++ b/e2e/pages/adf/tagPage.js @@ -32,6 +32,9 @@ var TagPage = function () { var tagListByNodeIdRowLocator = by.css("adf-tag-node-list mat-chip span"); var tagListContentServicesRowLocator = by.css("div[class*='adf-list-tag']"); var showDeleteButton = element(by.id('adf-remove-button-tag')); + var showMoreButton = element(by.css('button[data-automation-id="show-more-tags"]')); + var showLessButton = element(by.css('button[data-automation-id="show-fewer-tags"]')); + var tagsOnPage = element.all(by.css('div[class*="adf-list-tag"]')); this.goToTagPage = function () { browser.driver.get(tagURL); @@ -174,5 +177,55 @@ var TagPage = function () { var deleteChip = element(by.css('button[id="tag_chips_delete_' + name + '"]')); return Util.waitUntilElementIsNotVisible(deleteChip); }; + + this.checkShowMoreButtonIsDisplayed = function () { + return Util.waitUntilElementIsVisible(showMoreButton); + }; + + this.checkShowMoreButtonIsNotDisplayed = function () { + return Util.waitUntilElementIsNotVisible(showMoreButton); + }; + + this.clickShowMoreButton = function () { + Util.waitUntilElementIsClickable(showMoreButton); + return showMoreButton.click(); + }; + + this.clickShowLessButton = function () { + Util.waitUntilElementIsClickable(showLessButton); + return showLessButton.click(); + }; + + this.checkTagsOnList = function () { + return tagsOnPage.count(); + }; + + this.checkShowLessButtonIsDisplayed = function () { + return Util.waitUntilElementIsVisible(showLessButton); + }; + + this.checkShowLessButtonIsNotDisplayed = function () { + return Util.waitUntilElementIsNotVisible(showLessButton); + }; + + this.clickShowMoreButtonUntilNotDisplayed = function () { + showMoreButton.isDisplayed().then((visible) => { + if(visible){ + showMoreButton.click(); + + this.clickShowMoreButtonUntilNotDisplayed(); + } + }, err => {}) + }; + + this.clickShowLessButtonUntilNotDisplayed = function () { + showLessButton.isDisplayed().then((visible) => { + if(visible){ + showLessButton.click(); + + this.clickShowLessButtonUntilNotDisplayed(); + } + }, err => {}) + }; }; module.exports = TagPage;