From b8ce53375930dcb00f63de1d95028c2dcd6fbfc4 Mon Sep 17 00:00:00 2001 From: Adina Parpalita Date: Thu, 20 Dec 2018 11:27:54 +0200 Subject: [PATCH] [ACA-1928] e2e improvements - part1 (#883) * refactor Mark as favourite tests rename method to be more clear create separate methods for some checks and actions * forgot some changes * refactor delete-undo tests * some more refactoring * fix --- e2e/components/data-table/data-table.ts | 8 +- e2e/components/dialog/confirm-dialog.ts | 43 + e2e/components/dialog/copy-move-dialog.ts | 2 +- .../dialog/create-edit-folder-dialog.ts | 29 + e2e/components/dialog/share-dialog.ts | 4 + e2e/components/header/header.ts | 4 + e2e/components/login/login.ts | 23 +- e2e/components/menu/menu.ts | 152 ++- e2e/components/toolbar/toolbar.ts | 122 ++- e2e/pages/browsing-page.ts | 3 + e2e/pages/page.ts | 6 + e2e/pages/search-results-page.ts | 6 +- .../context-menu-multiple-selection.test.ts | 246 ++--- .../context-menu-single-selection.test.ts | 263 ++--- e2e/suites/actions/create-folder.test.ts | 59 +- e2e/suites/actions/create-library.test.ts | 40 +- e2e/suites/actions/delete-undo-delete.test.ts | 598 ++++++------ e2e/suites/actions/edit-folder.test.ts | 71 +- e2e/suites/actions/library-actions.test.ts | 54 +- e2e/suites/actions/mark-favorite.test.ts | 907 ++++++++---------- e2e/suites/actions/new-menu.test.ts | 37 +- e2e/suites/actions/permanently-delete.test.ts | 52 +- e2e/suites/actions/restore.test.ts | 50 +- e2e/suites/actions/share-file.test.ts | 179 ++-- e2e/suites/actions/single-click.test.ts | 2 +- ...cial-permissions-available-actions.test.ts | 498 +++++----- .../toolbar-multiple-selection.test.ts | 154 +-- .../actions/toolbar-single-selection.test.ts | 138 +-- e2e/suites/actions/unshare-file.test.ts | 134 +-- e2e/suites/application/general.test.ts | 3 +- e2e/suites/authentication/login.test.ts | 19 +- e2e/suites/authentication/logout.test.ts | 2 +- e2e/suites/extensions/ext-info-drawer.test.ts | 12 +- e2e/suites/extensions/ext-metadata.test.ts | 2 +- e2e/suites/extensions/ext-viewer.test.ts | 4 +- .../info-drawer/library-properties.test.ts | 26 +- e2e/suites/list-views/favorites.test.ts | 16 +- e2e/suites/list-views/file-libraries.test.ts | 4 +- e2e/suites/list-views/personal-files.test.ts | 8 +- e2e/suites/list-views/recent-files.test.ts | 14 +- e2e/suites/list-views/shared-files.test.ts | 14 +- e2e/suites/list-views/trash.test.ts | 24 +- e2e/suites/pagination/pag-favorites.test.ts | 6 +- .../pagination/pag-file-libraries.test.ts | 6 +- .../pagination/pag-personal-files.test.ts | 6 +- .../pagination/pag-recent-files.test.ts | 6 +- .../pagination/pag-shared-files.test.ts | 6 +- e2e/suites/pagination/pag-trash.test.ts | 6 +- .../search/search-results-libraries.test.ts | 28 +- e2e/suites/search/search-results.test.ts | 30 +- e2e/suites/viewer/viewer-actions.test.ts | 209 ++-- .../apis/favorites/favorites-api.ts | 23 +- .../repo-client/apis/nodes/nodes-api.ts | 17 +- src/assets/app.extensions.json | 4 +- 54 files changed, 2310 insertions(+), 2069 deletions(-) diff --git a/e2e/components/data-table/data-table.ts b/e2e/components/data-table/data-table.ts index 4f57cb105..d65912c52 100755 --- a/e2e/components/data-table/data-table.ts +++ b/e2e/components/data-table/data-table.ts @@ -252,10 +252,6 @@ export class DataTable extends Component { } async getItemLocationTooltip(name: string) { - return await this.getItemLocationEl(name).$('a').getAttribute('title'); - } - - async getItemLocationTileAttr(name: string) { const location = this.getItemLocationEl(name).$('a'); const condition = () => location.getAttribute('title').then(value => value && value.length > 0); @@ -319,4 +315,8 @@ export class DataTable extends Component { async getLibraryRole(name: string) { return await this.getRowByName(name).element(by.css(DataTable.selectors.libraryRole)).getText(); } + + async isItemPresent(name: string) { + return await this.getRowByName(name).isPresent(); + } } diff --git a/e2e/components/dialog/confirm-dialog.ts b/e2e/components/dialog/confirm-dialog.ts index 5f2e44616..996a7694b 100755 --- a/e2e/components/dialog/confirm-dialog.ts +++ b/e2e/components/dialog/confirm-dialog.ts @@ -81,4 +81,47 @@ export class ConfirmDialog extends Component { const button = this.getButtonByName(name); return await button.isEnabled(); } + + + async isOkEnabled() { + return await this.isButtonEnabled('OK'); + } + + async isCancelEnabled() { + return await this.isButtonEnabled('Cancel'); + } + + async isKeepEnabled() { + return await this.isButtonEnabled('Keep'); + } + + async isDeleteEnabled() { + return await this.isButtonEnabled('Delete'); + } + + async isRemoveEnabled() { + return await this.isButtonEnabled('Remove'); + } + + + async clickOk() { + return await this.clickButton('OK'); + } + + async clickCancel() { + return await this.clickButton('Cancel'); + } + + async clickKeep() { + return await this.clickButton('Keep'); + } + + async clickDelete() { + return await this.clickButton('Delete'); + } + + async clickRemove() { + return await this.clickButton('Remove'); + } + } diff --git a/e2e/components/dialog/copy-move-dialog.ts b/e2e/components/dialog/copy-move-dialog.ts index e7dd9ebc9..e4ef948ea 100755 --- a/e2e/components/dialog/copy-move-dialog.ts +++ b/e2e/components/dialog/copy-move-dialog.ts @@ -115,7 +115,7 @@ export class CopyMoveDialog extends Component { await this.waitForDropDownToClose(); } - async chooseDestination(folderName: string) { + async selectDestination(folderName: string) { const row = this.getRow(folderName); await Utils.waitUntilElementClickable(row); await row.click(); diff --git a/e2e/components/dialog/create-edit-folder-dialog.ts b/e2e/components/dialog/create-edit-folder-dialog.ts index d3d4cd5ec..c2a29c2a0 100755 --- a/e2e/components/dialog/create-edit-folder-dialog.ts +++ b/e2e/components/dialog/create-edit-folder-dialog.ts @@ -72,11 +72,39 @@ export class CreateOrEditFolderDialog extends Component { return await this.validationMessage.isDisplayed(); } + async isUpdateButtonEnabled() { + return this.updateButton.isEnabled(); + } + + async isCreateButtonEnabled() { + return this.createButton.isEnabled(); + } + + async isCancelButtonEnabled() { + return this.cancelButton.isEnabled(); + } + + async isNameDisplayed() { + return await this.nameInput.isDisplayed(); + } + + async isDescriptionDisplayed() { + return await this.descriptionTextArea.isDisplayed(); + } + async getValidationMessage() { await this.isValidationMessageDisplayed(); return await this.validationMessage.getText(); } + async getName() { + return await this.nameInput.getAttribute('value'); + } + + async getDescription() { + return await this.descriptionTextArea.getAttribute('value'); + } + async enterName(name: string) { await this.nameInput.clear(); await Utils.typeInField(this.nameInput, name); @@ -104,4 +132,5 @@ export class CreateOrEditFolderDialog extends Component { async clickUpdate() { await this.updateButton.click(); } + } diff --git a/e2e/components/dialog/share-dialog.ts b/e2e/components/dialog/share-dialog.ts index dc668850e..f27d2e143 100755 --- a/e2e/components/dialog/share-dialog.ts +++ b/e2e/components/dialog/share-dialog.ts @@ -94,6 +94,10 @@ export class ShareDialog extends Component { return await this.url.getAttribute('readonly'); } + async isCloseEnabled() { + return await this.closeButton.isEnabled(); + } + async clickClose() { await this.closeButton.click(); await this.waitForDialogToClose(); diff --git a/e2e/components/header/header.ts b/e2e/components/header/header.ts index b14777c06..37c2bc8a2 100755 --- a/e2e/components/header/header.ts +++ b/e2e/components/header/header.ts @@ -54,5 +54,9 @@ export class Header extends Component { await this.moreActions.click(); await this.menu.waitForMenuToOpen(); } + + async isSignOutDisplayed() { + return await this.userInfo.menu.isMenuItemPresent('Sign out'); + } } diff --git a/e2e/components/login/login.ts b/e2e/components/login/login.ts index 543cd4f2f..865d5146b 100755 --- a/e2e/components/login/login.ts +++ b/e2e/components/login/login.ts @@ -72,6 +72,10 @@ export class LoginComponent extends Component { return this.submitButton.click(); } + async clickPasswordVisibility() { + return await this.passwordVisibility.click(); + } + async getPasswordVisibility() { const text = await this.passwordVisibility.getText(); if (text.endsWith('visibility_off')) { @@ -84,7 +88,7 @@ export class LoginComponent extends Component { } } - async isPasswordShown() { + async isPasswordDisplayed() { const type = await this.passwordInput.getAttribute('type'); if (type === 'text') { return true; @@ -95,4 +99,21 @@ export class LoginComponent extends Component { } } } + + async isUsernameEnabled() { + return await this.usernameInput.isEnabled(); + } + + async isPasswordEnabled() { + return await this.passwordInput.isEnabled(); + } + + async isSubmitEnabled() { + return await this.submitButton.isEnabled(); + } + + async isPasswordHidden() { + return !(await this.getPasswordVisibility()); + } + } diff --git a/e2e/components/menu/menu.ts b/e2e/components/menu/menu.ts index 4edfa7633..0a5a2f346 100755 --- a/e2e/components/menu/menu.ts +++ b/e2e/components/menu/menu.ts @@ -35,9 +35,7 @@ export class Menu extends Component { icon: '.mat-icon', uploadFiles: 'app-upload-files', - submenu: 'app-context-menu-item .mat-menu-item', - - share: `[data-automation-id='share-action-button']` + submenu: 'app-context-menu-item .mat-menu-item' }; items: ElementArrayFinder = this.component.all(by.css(Menu.selectors.item)); @@ -45,8 +43,27 @@ export class Menu extends Component { uploadFiles: ElementFinder = browser.element(by.id(Menu.selectors.uploadFiles)); submenus: ElementArrayFinder = browser.element.all(by.css(Menu.selectors.submenu)); - shareAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.share, 'Share')); - shareEditAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.share, 'Shared link settings')); + shareAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Share')); + shareEditAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Shared link settings')); + viewAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'View')); + downloadAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Download')); + editAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Edit')); + copyAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Copy')); + moveAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Move')); + deleteAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Delete')); + managePermissionsAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Permissions')); + manageVersionsAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Manage Versions')); + favoriteAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Favorite')); + leaveAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Leave')); + joinAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Join')); + cancelJoinAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Cancel join')); + permanentDeleteAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Permanently delete')); + restoreAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Restore')); + viewDetailsAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'View details')); + createFolderAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Create folder')); + createLibraryAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Create Library')); + uploadFileAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Upload file')); + uploadFolderAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Upload folder')); constructor(ancestor?: ElementFinder) { super(Menu.selectors.root, ancestor); @@ -173,13 +190,134 @@ export class Menu extends Component { return this.uploadFiles; } - async clickShareAction() { + + async clickShare() { const action = this.shareAction; await action.click(); } - async clickShareEditAction() { + async clickSharedLinkSettings() { const action = this.shareEditAction; await action.click(); } + + + async isViewPresent() { + return await this.viewAction.isPresent(); + } + + async isDownloadPresent() { + return await this.downloadAction.isPresent(); + } + + async isEditPresent() { + return await this.editAction.isPresent(); + } + + async isCopyPresent() { + return await this.copyAction.isPresent(); + } + + async isMovePresent() { + return await this.moveAction.isPresent(); + } + + async isDeletePresent() { + return await this.deleteAction.isPresent(); + } + + async isManagePermissionsPresent() { + return await this.managePermissionsAction.isPresent(); + } + + async isManageVersionsPresent() { + return await this.manageVersionsAction.isPresent(); + } + + async isFavoritePresent() { + return await this.favoriteAction.isPresent(); + } + + async isJoinLibraryPresent() { + return await this.joinAction.isPresent(); + } + + async isCancelJoinPresent() { + return await this.cancelJoinAction.isPresent(); + } + + async isLeaveLibraryPresent() { + return await this.leaveAction.isPresent(); + } + + async isPermanentDeletePresent() { + return await this.permanentDeleteAction.isPresent(); + } + + async isRestorePresent() { + return await this.restoreAction.isPresent(); + } + + async isSharePresent() { + return await this.shareAction.isPresent(); + } + + async isSharedLinkSettingsPresent() { + return await this.shareEditAction.isPresent(); + } + + async isViewDetailsPresent() { + return await this.viewDetailsAction.isPresent(); + } + + async isCreateFolderPresent() { + return await this.createFolderAction.isPresent(); + } + async isCreateFolderEnabled() { + return await this.createFolderAction.isEnabled(); + } + + async isCreateLibraryPresent() { + return await this.createLibraryAction.isPresent(); + } + async isCreateLibraryEnabled() { + return await this.createLibraryAction.isEnabled(); + } + + async isUploadFilePresent() { + return await this.uploadFileAction.isPresent(); + } + async isUploadFileEnabled() { + return await this.uploadFileAction.isEnabled(); + } + + async isUploadFolderPresent() { + return await this.uploadFolderAction.isPresent(); + } + async isUploadFolderEnabled() { + return await this.uploadFolderAction.isEnabled(); + } + + + + async clickCreateFolder() { + const action = this.createFolderAction; + await action.click(); + } + + async clickCreateLibrary() { + const action = this.createLibraryAction; + await action.click(); + } + + async clickUploadFile() { + const action = this.uploadFileAction; + await action.click(); + } + + async clickUploadFolder() { + const action = this.uploadFolderAction; + await action.click(); + } + } diff --git a/e2e/components/toolbar/toolbar.ts b/e2e/components/toolbar/toolbar.ts index d337b8f6c..db0e975f8 100755 --- a/e2e/components/toolbar/toolbar.ts +++ b/e2e/components/toolbar/toolbar.ts @@ -31,15 +31,35 @@ export class Toolbar extends Component { private static selectors = { root: '.adf-toolbar', button: 'button', - + share: `.mat-icon-button[title='Share']`, - shareEdit: `.mat-icon-button[title='Shared link settings']` + shareEdit: `.mat-icon-button[title='Shared link settings']`, + view: `.mat-icon-button[title='View']`, + download: `.mat-icon-button[title='Download']`, + edit: `.mat-icon-button[title='Edit']`, + viewDetails: `.mat-icon-button[title='View details']`, + print: `.mat-icon-button[title='Print']`, + fullScreen: `.mat-icon-button[title='Activate full-screen mode']`, + joinLibrary: `.mat-icon-button[title='Join']`, + leaveLibrary: `.mat-icon-button[title='Leave library']`, + permanentlyDelete: `.mat-icon-button[title='Permanently delete']`, + restore: `.mat-icon-button[title='Restore']` }; menu: Menu = new Menu(); buttons: ElementArrayFinder = this.component.all(by.css(Toolbar.selectors.button)); shareButton: ElementFinder = this.component.element(by.css(Toolbar.selectors.share)); shareEditButton: ElementFinder = this.component.element(by.css(Toolbar.selectors.shareEdit)); + viewButton: ElementFinder = this.component.element(by.css(Toolbar.selectors.view)); + downloadButton: ElementFinder = this.component.element(by.css(Toolbar.selectors.download)); + editButton: ElementFinder = this.component.element(by.css(Toolbar.selectors.edit)); + viewDetailsButton: ElementFinder = this.component.element(by.css(Toolbar.selectors.viewDetails)); + printButton: ElementFinder = this.component.element(by.css(Toolbar.selectors.print)); + fullScreenButton: ElementFinder = this.component.element(by.css(Toolbar.selectors.fullScreen)); + joinButton: ElementFinder = this.component.element(by.css(Toolbar.selectors.joinLibrary)); + leaveButton: ElementFinder = this.component.element(by.css(Toolbar.selectors.leaveLibrary)); + permanentlyDeleteButton: ElementFinder = this.component.element(by.css(Toolbar.selectors.permanentlyDelete)); + restoreButton: ElementFinder = this.component.element(by.css(Toolbar.selectors.restore)); constructor(ancestor?: ElementFinder) { super(Toolbar.selectors.root, ancestor); @@ -87,21 +107,105 @@ export class Toolbar extends Component { await btn.click(); } - async clickShareButton() { + async clickShare() { const btn = this.shareButton; await btn.click(); } - async isShareButtonPresent() { - return await browser.isElementPresent(this.shareButton); - } - - async clickShareEditButton() { + async clickSharedLinkSettings() { const btn = this.shareEditButton; await btn.click(); } - async isShareEditButtonPresent() { + async isSharedLinkSettingsPresent() { return await browser.isElementPresent(this.shareEditButton); } + + async isSharePresent() { + return await browser.isElementPresent(this.shareButton); + } + + async isViewPresent() { + return await browser.isElementPresent(this.viewButton); + } + + async isDownloadPresent() { + return await browser.isElementPresent(this.downloadButton); + } + + async isEditPresent() { + return await browser.isElementPresent(this.editButton); + } + + async isViewDetailsPresent() { + return await browser.isElementPresent(this.viewDetailsButton); + } + + async isPrintPresent() { + return await browser.isElementPresent(this.printButton); + } + + async isFullScreenPresent() { + return await browser.isElementPresent(this.fullScreenButton); + } + + + async clickEdit() { + return await this.editButton.click(); + } + + async clickViewDetails() { + return await this.viewDetailsButton.click(); + } + + async clickDownload() { + return await this.downloadButton.click(); + } + + async clickJoin() { + return await this.joinButton.click(); + } + + async clickLeave() { + return await this.leaveButton.click(); + } + + async clickPermanentlyDelete() { + return await this.permanentlyDeleteButton.click(); + } + async clickRestore() { + return await this.restoreButton.click(); + } + + + async clickMoreActionsFavorite() { + await this.openMoreMenu(); + return await this.menu.clickMenuItem('Favorite'); + } + + async clickMoreActionsDelete() { + await this.openMoreMenu(); + return await this.menu.clickMenuItem('Delete'); + } + + async clickMoreActionsManageVersions() { + await this.openMoreMenu(); + return await this.menu.clickMenuItem('Manage Versions'); + } + + async clickMoreActionsMove() { + await this.openMoreMenu(); + return await this.menu.clickMenuItem('Move'); + } + + async clickMoreActionsCopy() { + await this.openMoreMenu(); + return await this.menu.clickMenuItem('Copy'); + } + + + async clickFullScreen() { + return await this.fullScreenButton.click(); + } + } diff --git a/e2e/pages/browsing-page.ts b/e2e/pages/browsing-page.ts index 31b25dd90..41267da43 100755 --- a/e2e/pages/browsing-page.ts +++ b/e2e/pages/browsing-page.ts @@ -39,6 +39,9 @@ export class BrowsingPage extends Page { await this.header.userInfo.signOut(); } + async isSnackBarPresent() { + return this.snackBar.isPresent(); + } // helper methods diff --git a/e2e/pages/page.ts b/e2e/pages/page.ts index ac8c67d65..2070cbb9d 100755 --- a/e2e/pages/page.ts +++ b/e2e/pages/page.ts @@ -108,4 +108,10 @@ export abstract class Page { return await this.genericErrorTitle.getText(); } + + async isUndoActionPresent() { + const message = await this.snackBar.getAttribute('innerText'); + return message.includes('Undo'); + } + } diff --git a/e2e/pages/search-results-page.ts b/e2e/pages/search-results-page.ts index 76c0b3ee9..abdf9b8fe 100755 --- a/e2e/pages/search-results-page.ts +++ b/e2e/pages/search-results-page.ts @@ -23,9 +23,8 @@ * along with Alfresco. If not, see . */ -import { browser, ElementFinder, by, ExpectedConditions as EC } from 'protractor'; +import { browser, ElementFinder } from 'protractor'; import { BrowsingPage } from './browsing-page'; -import { BROWSER_WAIT_TIMEOUT } from '../configs'; export class SearchResultsPage extends BrowsingPage { @@ -51,5 +50,8 @@ export class SearchResultsPage extends BrowsingPage { root: ElementFinder = browser.$(SearchResultsPage.selectors.root); + waitForResults() { + return this.dataTable.waitForBody(); + } } diff --git a/e2e/suites/actions/context-menu-multiple-selection.test.ts b/e2e/suites/actions/context-menu-multiple-selection.test.ts index 85a472b04..12e05aeac 100755 --- a/e2e/suites/actions/context-menu-multiple-selection.test.ts +++ b/e2e/suites/actions/context-menu-multiple-selection.test.ts @@ -109,15 +109,17 @@ describe('Context menu actions - multiple selection : ', () => { it('Context menu appears on right click on a multiple selection of items - [C286268]', async () => { await dataTable.selectMultipleItems([ file1, file2 ]); await dataTable.rightClickOnMultipleSelection(); + expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); }); it('Context menu appears when right clicking on a single item while having multiple items selected - [C286269]', async () => { await dataTable.selectMultipleItems([ file2, folder1 ]); await dataTable.rightClickOnItem(file1); + expect(await dataTable.hasContextMenu()).toBe(true, `Context menu is not displayed for ${file1}`); expect(await dataTable.countSelectedRows()).toEqual(1, 'incorrect number of selected rows'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`); + expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${file1}`); expect(await dataTable.hasCheckMarkIcon(file1)).toBe(true, `${file1} is not selected`); expect(await dataTable.hasCheckMarkIcon(file2)).toBe(false, `${file2} is selected`); expect(await dataTable.hasCheckMarkIcon(folder1)).toBe(false, `${folder1} is selected`); @@ -135,39 +137,42 @@ describe('Context menu actions - multiple selection : ', () => { it('correct actions appear when multiple files are selected - [C280661]', async () => { await dataTable.selectMultipleItems([file1, file2]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`); + + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); }); it('correct actions appear when multiple folders are selected - [C280632]', async () => { await dataTable.selectMultipleItems([folder1, folder2]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`); + + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditPresent()).toBe(false, 'Edit is displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); }); it('correct actions appear when both files and folders are selected - [C280631]', async () => { await dataTable.selectMultipleItems([file1, file2, folder1, folder2]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`); + + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditPresent()).toBe(false, 'Edit is displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); }); }); @@ -184,40 +189,43 @@ describe('Context menu actions - multiple selection : ', () => { it('correct actions appear when multiple files are selected - [C280641]', async () => { await dataTable.selectMultipleItems([ file1Site, file2Site ]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`); + + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditPresent()).toBe(false, 'Edit is displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); }); it('correct actions appear when multiple folders are selected - [C280574]', async () => { await dataTable.selectMultipleItems([ folder1Site, folder2Site ]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`); + + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditPresent()).toBe(false, 'Edit is displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); }); it('correct actions appear when both files and folders are selected - [C280642]', async () => { await dataTable.selectMultipleItems([ file1Site, file2Site, folder1Site, folder2Site ]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`); + + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditPresent()).toBe(false, 'Edit is displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); }); }); @@ -232,14 +240,15 @@ describe('Context menu actions - multiple selection : ', () => { it('correct actions appear when multiple files are selected - [C280648]', async () => { await dataTable.selectMultipleItems([ file1, file2 ]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`); + + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditPresent()).toBe(false, 'Edit is displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); }); }); @@ -254,14 +263,15 @@ describe('Context menu actions - multiple selection : ', () => { it('correct actions appear when multiple files are selected - [C280652]', async () => { await dataTable.selectMultipleItems([ file1, file2 ]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`); + + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditPresent()).toBe(false, 'Edit is displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); }); }); @@ -276,43 +286,46 @@ describe('Context menu actions - multiple selection : ', () => { it('correct actions appear when multiple files are selected - [C280656]', async () => { await dataTable.selectMultipleItems([ file1, file2 ]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); + + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditPresent()).toBe(false, 'Edit is displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); // TODO: enable when ACA-1794 is fixed - // expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`); + // expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); }); it('correct actions appear when multiple folders are selected - [C280664]', async () => { await dataTable.selectMultipleItems([ folder1, folder2 ]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); + + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditPresent()).toBe(false, 'Edit is displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); // TODO: enable when ACA-1794 is fixed - // expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`); + // expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); }); it('correct actions appear when both files and folders are selected - [C280657]', async () => { await dataTable.selectMultipleItems([ file1, file2, folder1, folder2 ]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); + + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditPresent()).toBe(false, 'Edit is displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); // TODO: enable when ACA-1794 is fixed - // expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`); + // expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); }); }); @@ -327,43 +340,46 @@ describe('Context menu actions - multiple selection : ', () => { it('correct actions appear when multiple files are selected - [C286273]', async () => { await dataTable.selectMultipleItems([ fileInTrash1, fileInTrash2 ]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('Permanently delete')).toBe(true, 'Permanently delete is not displayed'); - expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, 'Restore is not displayed'); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, 'Download is displayed'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is displayed`); + + expect(await contextMenu.isPermanentDeletePresent()).toBe(true, 'Permanently delete is not displayed'); + expect(await contextMenu.isRestorePresent()).toBe(true, 'Restore is not displayed'); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(false, 'Download is displayed'); + expect(await contextMenu.isEditPresent()).toBe(false, 'Edit is displayed'); + expect(await contextMenu.isCopyPresent()).toBe(false, `Copy is displayed`); + expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed`); + expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(false, `Favorite is displayed`); }); it('correct actions appear when multiple folders are selected - [C286274]', async () => { await dataTable.selectMultipleItems([ folderInTrash1, folderInTrash2 ]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('Permanently delete')).toBe(true, 'Permanently delete is not displayed'); - expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, 'Restore is not displayed'); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, 'Download is displayed'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is displayed`); + + expect(await contextMenu.isPermanentDeletePresent()).toBe(true, 'Permanently delete is not displayed'); + expect(await contextMenu.isRestorePresent()).toBe(true, 'Restore is not displayed'); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(false, 'Download is displayed'); + expect(await contextMenu.isEditPresent()).toBe(false, 'Edit is displayed'); + expect(await contextMenu.isCopyPresent()).toBe(false, `Copy is displayed`); + expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed`); + expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(false, `Favorite is displayed`); }); it('correct actions appear when both files and folders are selected - [C286275]', async () => { await dataTable.selectMultipleItems([ fileInTrash1, fileInTrash2, folderInTrash1, folderInTrash2 ]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('Permanently delete')).toBe(true, 'Permanently delete is not displayed'); - expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, 'Restore is not displayed'); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, 'Download is displayed'); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is displayed`); + + expect(await contextMenu.isPermanentDeletePresent()).toBe(true, 'Permanently delete is not displayed'); + expect(await contextMenu.isRestorePresent()).toBe(true, 'Restore is not displayed'); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(false, 'Download is displayed'); + expect(await contextMenu.isEditPresent()).toBe(false, 'Edit is displayed'); + expect(await contextMenu.isCopyPresent()).toBe(false, `Copy is displayed`); + expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed`); + expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(false, `Favorite is displayed`); }); }); }); diff --git a/e2e/suites/actions/context-menu-single-selection.test.ts b/e2e/suites/actions/context-menu-single-selection.test.ts index 96cdfd934..1fc3f77c2 100755 --- a/e2e/suites/actions/context-menu-single-selection.test.ts +++ b/e2e/suites/actions/context-menu-single-selection.test.ts @@ -107,31 +107,36 @@ describe('Context menu actions - single selection : ', () => { it('Row is marked with a check circle icon on direct right click - [C286252]', async () => { await dataTable.rightClickOnItem(fileUser); + expect(await dataTable.hasCheckMarkIcon(fileUser)).toBe(true, 'check mark missing'); }); it('Context menu appears on direct right click on an item - [C286253]', async () => { await dataTable.rightClickOnItem(fileUser); + expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); }); it('Context menu appears when selecting an item and then right clicking on it - [C286254]', async () => { await dataTable.selectItem(fileUser); await dataTable.rightClickOnItem(fileUser); + expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); }); it('Context menu appears correctly when right clicking on another item - [C284666]', async () => { await dataTable.selectItem(fileUser); await dataTable.rightClickOnItem(folderUser); + expect(await dataTable.hasContextMenu()).toBe(true, `Context menu is not displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`); + expect(await contextMenu.isEditPresent()).toBe(true, `Edit is not displayed for ${folderUser}`); expect(await dataTable.hasCheckMarkIcon(folderUser)).toBe(true, `${folderUser} is not selected`); expect(await dataTable.hasCheckMarkIcon(fileUser)).toBe(false, `${fileUser} is not selected`); }); it('Context menu closes when clicking away from it - [C280619]', async () => { await dataTable.rightClickOnItem(fileUser); + expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); await page.sidenav.getActiveLink().click(); expect(await dataTable.hasContextMenu()).toBe(false, 'Context menu is displayed'); @@ -148,31 +153,33 @@ describe('Context menu actions - single selection : ', () => { it('Context menu has the correct actions for a file - [C280615]', async () => { await dataTable.rightClickOnItem(fileUser); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileUser}`); + + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileUser}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${fileUser}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileUser}`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`); + expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileUser}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${fileUser}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileUser}`); + expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${fileUser}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileUser}`); }); it('Context menu has the correct actions for a folder - [C280616]', async () => { await dataTable.rightClickOnItem(folderUser); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(false, `Manage Versions is displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is displayed for ${folderUser}`); + + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${folderUser}`); + expect(await contextMenu.isEditPresent()).toBe(true, `Edit is not displayed for ${folderUser}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folderUser}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folderUser}`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${folderUser}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${folderUser}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${folderUser}`); + expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folderUser}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${folderUser}`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folderUser}`); }); }); @@ -187,31 +194,33 @@ describe('Context menu actions - single selection : ', () => { it('Context menu has the correct actions for a file - [C280594]', async () => { await dataTable.rightClickOnItem(fileSiteUser); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions not displayed for ${fileSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileSiteUser}`); - expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileSiteUser}`); + + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileSiteUser}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${fileSiteUser}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileSiteUser}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileSiteUser}`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileSiteUser}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileSiteUser}`); + expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileSiteUser}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileSiteUser}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileSiteUser}`); + expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${fileSiteUser}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileSiteUser}`); }); it('Context menu has the correct actions for a folder - [C280595]', async () => { await dataTable.rightClickOnItem(folderSiteUser); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not enabled for ${folderSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(true, `Edit is not displayed for ${folderSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${folderSiteUser}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is displayed for ${folderSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(false, `Manage Versions displayed for ${folderSiteUser}`); - expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is displayed for ${folderSiteUser}`); + + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${folderSiteUser}`); + expect(await contextMenu.isEditPresent()).toBe(true, `Edit is not displayed for ${folderSiteUser}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folderSiteUser}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folderSiteUser}`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${folderSiteUser}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${folderSiteUser}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${folderSiteUser}`); + expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folderSiteUser}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions displayed for ${folderSiteUser}`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folderSiteUser}`); }); }); @@ -225,37 +234,41 @@ describe('Context menu actions - single selection : ', () => { it('Available actions when a library is selected - My Libraries - [C290080]', async () => { await page.goToMyLibraries(); await dataTable.rightClickOnItem(siteName); + expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - expect(await contextMenu.isMenuItemPresent('Leave library')).toBe(true, `Leave is not displayed for ${siteName}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${siteName}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${siteName}`); + expect(await contextMenu.isLeaveLibraryPresent()).toBe(true, `Leave is not displayed for ${siteName}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${siteName}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${siteName}`); }); it('Available actions when a library is selected - Favorite Libraries - user is a member - [C290081]', async () => { await page.goToFavoriteLibraries(); await dataTable.rightClickOnItem(siteName); + expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - expect(await contextMenu.isMenuItemPresent('Leave library')).toBe(true, `Leave is not displayed for ${siteName}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${siteName}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${siteName}`); + expect(await contextMenu.isLeaveLibraryPresent()).toBe(true, `Leave is not displayed for ${siteName}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${siteName}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${siteName}`); }); it('Available actions when a library is selected - Favorite Libraries - user is not a member - [C290082]', async () => { await page.goToFavoriteLibraries(); await dataTable.rightClickOnItem(adminPublic); + expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - expect(await contextMenu.isMenuItemPresent('Join')).toBe(true, `Join is not displayed for ${adminPublic}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${adminPublic}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${adminPublic}`); + expect(await contextMenu.isJoinLibraryPresent()).toBe(true, `Join is not displayed for ${adminPublic}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${adminPublic}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${adminPublic}`); }); it('Available actions when a library is selected - Favorite Libraries - user requested to join - [C290089]', async () => { await page.goToFavoriteLibraries(); await dataTable.rightClickOnItem(adminModerated); + expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - expect(await contextMenu.isMenuItemPresent('Cancel join')).toBe(true, `Cancel join is not displayed for ${adminModerated}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${adminModerated}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${adminModerated}`); + expect(await contextMenu.isCancelJoinPresent()).toBe(true, `Cancel join is not displayed for ${adminModerated}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${adminModerated}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${adminModerated}`); }); }); @@ -268,17 +281,18 @@ describe('Context menu actions - single selection : ', () => { it('Context menu has the correct actions for a file - [C280601]', async () => { await dataTable.rightClickOnItem(fileUser); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Shared link settings')).toBe(true, `Shared link settings is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileUser}`); + + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileUser}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${fileUser}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileUser}`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`); + expect(await contextMenu.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed for ${fileUser}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileUser}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileUser}`); + expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${fileUser}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileUser}`); }); }); @@ -291,17 +305,18 @@ describe('Context menu actions - single selection : ', () => { it('Context menu has the correct actions for a file - [C280622]', async () => { await dataTable.rightClickOnItem(fileUser); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileUser}`); + + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileUser}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${fileUser}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileUser}`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`); + expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileUser}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileUser}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileUser}`); + expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${fileUser}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileUser}`); }); }); @@ -314,33 +329,35 @@ describe('Context menu actions - single selection : ', () => { it('Context menu has the correct actions for a file - [C280608]', async () => { await dataTable.rightClickOnItem(fileUser); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions is not displayed for ${fileUser}`); + + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileUser}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${fileUser}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileUser}`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`); + expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileUser}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${fileUser}`); // TODO: enable when ACA-1794 is fixed - // expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); - expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileUser}`); + // expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileUser}`); + expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${fileUser}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileUser}`); }); it('Context menu has the correct actions for a folder - [C280609]', async () => { await dataTable.rightClickOnItem(folderUser); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderUser}`); + + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${folderUser}`); + expect(await contextMenu.isEditPresent()).toBe(true, `Edit is not displayed for ${folderUser}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folderUser}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folderUser}`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${folderUser}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${folderUser}`); // TODO: enable when ACA-1794 is fixed - // expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(false, `Manage Versions is displayed for ${folderUser}`); - expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is displayed for ${folderUser}`); + // expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${folderUser}`); + expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folderUser}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${folderUser}`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folderUser}`); }); }); @@ -353,38 +370,40 @@ describe('Context menu actions - single selection : ', () => { it('Context menu has the correct actions for a file - [C286258]', async () => { await dataTable.rightClickOnItem(fileInTrash); - expect(await contextMenu.isMenuItemPresent('Permanently delete')) + + expect(await contextMenu.isPermanentDeletePresent()) .toBe(true, `Permanently delete is not displayed for ${fileInTrash}`); - expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, `Restore is not displayed for ${fileInTrash}`); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, `Download is not displayed for ${fileInTrash}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is not displayed for ${fileInTrash}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is not displayed for ${fileInTrash}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is not displayed for ${fileInTrash}`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is not displayed for ${fileInTrash}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is not displayed for ${fileInTrash}`); - expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is not displayed for ${fileInTrash}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')) + expect(await contextMenu.isRestorePresent()).toBe(true, `Restore is not displayed for ${fileInTrash}`); + expect(await contextMenu.isDownloadPresent()).toBe(false, `Download is not displayed for ${fileInTrash}`); + expect(await contextMenu.isViewPresent()).toBe(false, `View is not displayed for ${fileInTrash}`); + expect(await contextMenu.isFavoritePresent()).toBe(false, `Favorite is not displayed for ${fileInTrash}`); + expect(await contextMenu.isCopyPresent()).toBe(false, `Copy is not displayed for ${fileInTrash}`); + expect(await contextMenu.isMovePresent()).toBe(false, `Move is not displayed for ${fileInTrash}`); + expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is not displayed for ${fileInTrash}`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is not displayed for ${fileInTrash}`); + expect(await contextMenu.isManageVersionsPresent()) .toBe(false, `Manage Versions is not displayed for ${fileInTrash}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileInTrash}`); - expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileInTrash}`); + expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${fileInTrash}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileInTrash}`); }); it('Context menu has the correct actions for a folder - [C286259]', async () => { await dataTable.rightClickOnItem(folderInTrash); - expect(await contextMenu.isMenuItemPresent('Permanently delete')) + + expect(await contextMenu.isPermanentDeletePresent()) .toBe(true, `Permanently delete is not displayed for ${folderInTrash}`); - expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, `Restore is not displayed for ${folderInTrash}`); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, `Download is not displayed for ${folderInTrash}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is not displayed for ${folderInTrash}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is not displayed for ${folderInTrash}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is not displayed for ${folderInTrash}`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is not displayed for ${folderInTrash}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is not displayed for ${folderInTrash}`); - expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is not displayed for ${folderInTrash}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')) + expect(await contextMenu.isRestorePresent()).toBe(true, `Restore is not displayed for ${folderInTrash}`); + expect(await contextMenu.isDownloadPresent()).toBe(false, `Download is not displayed for ${folderInTrash}`); + expect(await contextMenu.isViewPresent()).toBe(false, `View is not displayed for ${folderInTrash}`); + expect(await contextMenu.isFavoritePresent()).toBe(false, `Favorite is not displayed for ${folderInTrash}`); + expect(await contextMenu.isCopyPresent()).toBe(false, `Copy is not displayed for ${folderInTrash}`); + expect(await contextMenu.isMovePresent()).toBe(false, `Move is not displayed for ${folderInTrash}`); + expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is not displayed for ${folderInTrash}`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is not displayed for ${folderInTrash}`); + expect(await contextMenu.isManageVersionsPresent()) .toBe(false, `Manage Versions is not displayed for ${folderInTrash}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${folderInTrash}`); - expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${folderInTrash}`); + expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${folderInTrash}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${folderInTrash}`); }); }); }); diff --git a/e2e/suites/actions/create-folder.test.ts b/e2e/suites/actions/create-folder.test.ts index 76601f9ea..9d6b26ea5 100755 --- a/e2e/suites/actions/create-folder.test.ts +++ b/e2e/suites/actions/create-folder.test.ts @@ -101,8 +101,8 @@ describe('Create folder', () => { await createDialog.clickCreate(); await createDialog.waitForDialogToClose(); await dataTable.waitForHeader(); - const isPresent = await dataTable.getRowByName(folderName1).isPresent(); - expect(isPresent).toBe(true, 'Folder not displayed in list view'); + + expect(await dataTable.isItemPresent(folderName1)).toBe(true, 'Folder not displayed in list view'); }); it('creates new folder with name and description - [C216340]', async (done) => { @@ -114,7 +114,8 @@ describe('Create folder', () => { await createDialog.clickCreate(); await createDialog.waitForDialogToClose(); await dataTable.waitForHeader(); - expect(await dataTable.getRowByName(folderName2).isPresent()).toBe(true, 'Folder not displayed'); + + expect(await dataTable.isItemPresent(folderName2)).toBe(true, 'Folder not displayed'); const desc = await apis.user.nodes.getNodeDescription(folderName2, parentId); expect(desc).toEqual(folderDescription); done(); @@ -124,17 +125,12 @@ describe('Create folder', () => { await page.dataTable.doubleClickOnRowByName(parent); await page.sidenav.openCreateFolderDialog(); await createDialog.waitForDialogToOpen(); - const dialogTitle = await createDialog.getTitle(); - const isFolderNameDisplayed = await createDialog.nameInput.isDisplayed(); - const isDescriptionDisplayed = await createDialog.descriptionTextArea.isDisplayed(); - const isCreateEnabled = await createDialog.createButton.isEnabled(); - const isCancelEnabled = await createDialog.cancelButton.isEnabled(); - expect(dialogTitle).toMatch('Create new folder'); - expect(isFolderNameDisplayed).toBe(true, 'Name input is not displayed'); - expect(isDescriptionDisplayed).toBe(true, 'Description field is not displayed'); - expect(isCreateEnabled).toBe(false, 'Create button is not disabled'); - expect(isCancelEnabled).toBe(true, 'Cancel button is not enabled'); + expect(await createDialog.getTitle()).toMatch('Create new folder'); + expect(await createDialog.isNameDisplayed()).toBe(true, 'Name input is not displayed'); + expect(await createDialog.isDescriptionDisplayed()).toBe(true, 'Description field is not displayed'); + expect(await createDialog.isCreateButtonEnabled()).toBe(false, 'Create button is not disabled'); + expect(await createDialog.isCancelButtonEnabled()).toBe(true, 'Cancel button is not enabled'); }); it('with empty folder name - [C216346]', async () => { @@ -142,11 +138,9 @@ describe('Create folder', () => { await page.sidenav.openCreateFolderDialog(); await createDialog.waitForDialogToOpen(); await createDialog.deleteNameWithBackspace(); - const isCreateEnabled = await createDialog.createButton.isEnabled(); - const validationMessage = await createDialog.getValidationMessage(); - expect(isCreateEnabled).toBe(false, 'Create button is enabled'); - expect(validationMessage).toMatch('Folder name is required'); + expect(await createDialog.isCreateButtonEnabled()).toBe(false, 'Create button is enabled'); + expect(await createDialog.getValidationMessage()).toMatch('Folder name is required'); }); it('with folder name ending with a dot "." - [C216348]', async () => { @@ -154,11 +148,9 @@ describe('Create folder', () => { await page.sidenav.openCreateFolderDialog(); await createDialog.waitForDialogToOpen(); await createDialog.enterName('folder-name.'); - const isCreateEnabled = await createDialog.createButton.isEnabled(); - const validationMessage = await createDialog.getValidationMessage(); - expect(isCreateEnabled).toBe(false, 'Create button is not disabled'); - expect(validationMessage).toMatch(`Folder name can't end with a period .`); + expect(await createDialog.isCreateButtonEnabled()).toBe(false, 'Create button is not disabled'); + expect(await createDialog.getValidationMessage()).toMatch(`Folder name can't end with a period .`); }); it('with folder name containing special characters - [C216347]', async () => { @@ -170,7 +162,7 @@ describe('Create folder', () => { for (const name of namesWithSpecialChars) { await createDialog.enterName(name); - expect(await createDialog.createButton.isEnabled()).toBe(false, 'Create button is not disabled'); + expect(await createDialog.isCreateButtonEnabled()).toBe(false, 'Create button is not disabled'); expect(await createDialog.getValidationMessage()).toContain(`Folder name can't contain these characters`); } }); @@ -180,11 +172,9 @@ describe('Create folder', () => { await page.sidenav.openCreateFolderDialog(); await createDialog.waitForDialogToOpen(); await createDialog.enterName(' '); - const isCreateEnabled = await createDialog.createButton.isEnabled(); - const validationMessage = await createDialog.getValidationMessage(); - expect(isCreateEnabled).toBe(false, 'Create button is not disabled'); - expect(validationMessage).toMatch(`Folder name can't contain only spaces`); + expect(await createDialog.isCreateButtonEnabled()).toBe(false, 'Create button is not disabled'); + expect(await createDialog.getValidationMessage()).toMatch(`Folder name can't contain only spaces`); }); it('cancel folder creation - [C216349]', async () => { @@ -194,6 +184,7 @@ describe('Create folder', () => { await createDialog.enterName('test'); await createDialog.enterDescription('test description'); await createDialog.clickCancel(); + expect(await createDialog.isDialogOpen()).not.toBe(true, 'dialog is not closed'); }); @@ -203,8 +194,8 @@ describe('Create folder', () => { await createDialog.waitForDialogToOpen(); await createDialog.enterName(duplicateFolderName); await createDialog.clickCreate(); - const message = await page.getSnackBarMessage(); - expect(message).toEqual(`There's already a folder with this name. Try a different name.`); + + expect(await page.getSnackBarMessage()).toEqual(`There's already a folder with this name. Try a different name.`); expect(await createDialog.isDialogOpen()).toBe(true, 'dialog is not present'); }); @@ -216,8 +207,8 @@ describe('Create folder', () => { await createDialog.clickCreate(); await createDialog.waitForDialogToClose(); await dataTable.waitForHeader(); - const isPresent = await dataTable.getRowByName(nameWithSpaces.trim()).isPresent(); - expect(isPresent).toBe(true, 'Folder not displayed in list view'); + + expect(await dataTable.isItemPresent(nameWithSpaces.trim())).toBe(true, 'Folder not displayed in list view'); }); }); @@ -243,7 +234,8 @@ describe('Create folder', () => { await createDialog.clickCreate(); await createDialog.waitForDialogToClose(); await dataTable.waitForHeader(); - expect(await dataTable.getRowByName(folderSite).isPresent()).toBe(true, 'Folder not displayed'); + + expect(await dataTable.isItemPresent(folderSite)).toBe(true, 'Folder not displayed'); const desc = await apis.user.nodes.getNodeDescription(folderSite, docLibUserSite); expect(desc).toEqual(folderDescription); }); @@ -255,6 +247,7 @@ describe('Create folder', () => { await createDialog.enterName('test'); await createDialog.enterDescription('test description'); await createDialog.clickCancel(); + expect(await createDialog.isDialogOpen()).not.toBe(true, 'dialog is not closed'); }); @@ -264,8 +257,8 @@ describe('Create folder', () => { await createDialog.waitForDialogToOpen(); await createDialog.enterName(duplicateFolderSite); await createDialog.clickCreate(); - const message = await page.getSnackBarMessage(); - expect(message).toEqual(`There's already a folder with this name. Try a different name.`); + + expect(await page.getSnackBarMessage()).toEqual(`There's already a folder with this name. Try a different name.`); expect(await createDialog.isDialogOpen()).toBe(true, 'dialog is not present'); }); }); diff --git a/e2e/suites/actions/create-library.test.ts b/e2e/suites/actions/create-library.test.ts index 1d1fabc1c..1e4bc532c 100755 --- a/e2e/suites/actions/create-library.test.ts +++ b/e2e/suites/actions/create-library.test.ts @@ -85,6 +85,7 @@ describe('Create library', () => { it('Create Library dialog UI - [C280024]', async () => { await page.sidenav.openCreateLibraryDialog(); await createDialog.waitForDialogToOpen(); + expect(await createDialog.getTitle()).toMatch('Create Library'); expect(await createDialog.isNameDisplayed()).toBe(true, 'Name input is not displayed'); expect(await createDialog.isLibraryIdDisplayed()).toBe(true, 'Library ID input is not displayed'); @@ -103,10 +104,10 @@ describe('Create library', () => { await createDialog.enterName(site1Name); await createDialog.clickCreate(); await createDialog.waitForDialogToClose(); - const current = await page.breadcrumb.getCurrentItemName(); - expect(current).toEqual(site1Name, `Not navigated into ${site1Name}`); + + expect(await page.breadcrumb.getCurrentItemName()).toEqual(site1Name, `Not navigated into ${site1Name}`); await page.clickFileLibrariesAndWait(); - expect(await dataTable.getRowByName(site1Name).isPresent()).toBe(true, `${site1Name} not in the list`); + expect(await dataTable.isItemPresent(site1Name)).toBe(true, `${site1Name} not in the list`); expect(await apis.user.sites.getVisibility(site1Name)).toEqual(SITE_VISIBILITY.PUBLIC); }); @@ -117,10 +118,10 @@ describe('Create library', () => { await createDialog.selectModerated(); await createDialog.clickCreate(); await createDialog.waitForDialogToClose(); - const current = await page.breadcrumb.getCurrentItemName(); - expect(current).toEqual(site2Name, `Not navigated into ${site2Name}`); + + expect(await page.breadcrumb.getCurrentItemName()).toEqual(site2Name, `Not navigated into ${site2Name}`); await page.clickFileLibrariesAndWait(); - expect(await dataTable.getRowByName(site2Name).isPresent()).toBe(true, `${site2Name} not in the list`); + expect(await dataTable.isItemPresent(site2Name)).toBe(true, `${site2Name} not in the list`); expect(await apis.user.sites.getVisibility(site2Name)).toEqual(SITE_VISIBILITY.MODERATED); }); @@ -131,10 +132,10 @@ describe('Create library', () => { await createDialog.selectPrivate(); await createDialog.clickCreate(); await createDialog.waitForDialogToClose(); - const current = await page.breadcrumb.getCurrentItemName(); - expect(current).toEqual(site3Name, `Not navigated into ${site3Name}`); + + expect(await page.breadcrumb.getCurrentItemName()).toEqual(site3Name, `Not navigated into ${site3Name}`); await page.clickFileLibrariesAndWait(); - expect(await dataTable.getRowByName(site3Name).isPresent()).toBe(true, `${site3Name} not in the list`); + expect(await dataTable.isItemPresent(site3Name)).toBe(true, `${site3Name} not in the list`); expect(await apis.user.sites.getVisibility(site3Name)).toEqual(SITE_VISIBILITY.PRIVATE); }); @@ -147,10 +148,10 @@ describe('Create library', () => { await createDialog.selectPublic(); await createDialog.clickCreate(); await createDialog.waitForDialogToClose(); - const current = await page.breadcrumb.getCurrentItemName(); - expect(current).toEqual(site4.name, `Not navigated into ${site4.name}`); + + expect(await page.breadcrumb.getCurrentItemName()).toEqual(site4.name, `Not navigated into ${site4.name}`); await page.clickFileLibrariesAndWait(); - expect(await dataTable.getRowByName(site4.name).isPresent()).toBe(true, `${site4.name} not in the list`); + expect(await dataTable.isItemPresent(site4.name)).toBe(true, `${site4.name} not in the list`); expect(await apis.user.sites.getVisibility(site4.id)).toEqual(SITE_VISIBILITY.PUBLIC); expect(await apis.user.sites.getDescription(site4.id)).toEqual(site4.description); }); @@ -160,9 +161,9 @@ describe('Create library', () => { await createDialog.waitForDialogToOpen(); await createDialog.enterName(duplicateSite.name); await createDialog.enterLibraryId(duplicateSite.id); + expect(await createDialog.isCreateEnabled()).toBe(false, 'Create button not disabled'); - const err = await createDialog.getErrorMessage(); - expect(err).toEqual(`This Library ID isn't available. Try a different Library ID.`); + expect(await createDialog.getErrorMessage()).toEqual(`This Library ID isn't available. Try a different Library ID.`); }); it('Create library using the ID of a library from the Trashcan - [C280028]', async () => { @@ -171,8 +172,8 @@ describe('Create library', () => { await createDialog.enterName(siteInTrash.name); await createDialog.enterLibraryId(siteInTrash.id); await createDialog.clickCreate(); - const err = await createDialog.getErrorMessage(); - expect(err).toEqual(`This Library ID is already used. Check the trashcan.`); + + expect(await createDialog.getErrorMessage()).toEqual(`This Library ID is already used. Check the trashcan.`); }); it('Cancel button - [C280029]', async () => { @@ -181,6 +182,7 @@ describe('Create library', () => { await createDialog.enterName('test site'); await createDialog.enterDescription('test description'); await createDialog.clickCancel(); + expect(await createDialog.isDialogOpen()).not.toBe(true, 'dialog is not closed'); }); @@ -205,10 +207,10 @@ describe('Create library', () => { await createDialog.enterLibraryId(`${duplicateSite.id}-2`); await createDialog.clickCreate(); await createDialog.waitForDialogToClose(); - const current = await page.breadcrumb.getCurrentItemName(); - expect(current).toEqual(duplicateSite.name, `Not navigated into ${duplicateSite.name}`); + + expect(await page.breadcrumb.getCurrentItemName()).toEqual(duplicateSite.name, `Not navigated into ${duplicateSite.name}`); await page.clickFileLibrariesAndWait(); - expect(await dataTable.getRowByName(`${duplicateSite.name} (${duplicateSite.id}-2)`).isPresent()).toBe(true, `${duplicateSite.name} not in the list`); + expect(await dataTable.isItemPresent(`${duplicateSite.name} (${duplicateSite.id}-2)`)).toBe(true, `${duplicateSite.name} not in the list`); expect(await apis.user.sites.getTitle(`${duplicateSite.id}-2`)).toEqual(duplicateSite.name); }); diff --git a/e2e/suites/actions/delete-undo-delete.test.ts b/e2e/suites/actions/delete-undo-delete.test.ts index d82173311..b1f8fa3f5 100755 --- a/e2e/suites/actions/delete-undo-delete.test.ts +++ b/e2e/suites/actions/delete-undo-delete.test.ts @@ -23,7 +23,6 @@ * along with Alfresco. If not, see . */ -import { browser } from 'protractor'; import { LoginPage, BrowsingPage } from '../../pages/pages'; import { RepoClient } from '../../utilities/repo-client/repo-client'; import { Utils } from '../../utilities/utils'; @@ -53,192 +52,181 @@ describe('Delete and undo delete', () => { xit(''); describe('on Personal Files', () => { - const file1 = `file1-${Utils.random()}.txt`; let file1Id; - const file2 = `file2-${Utils.random()}.txt`; let file2Id; + const file1 = `file1-${Utils.random()}.txt`; + const file2 = `file2-${Utils.random()}.txt`; const file3 = `file3-${Utils.random()}.txt`; - const file4 = `file4-${Utils.random()}.txt`; let file4Id; + const file4 = `file4-${Utils.random()}.txt`; + const file5 = `file5-${Utils.random()}.txt`; + const file6 = `file6-${Utils.random()}.txt`; + const file7 = `file7-${Utils.random()}.txt`; + const folder1 = `folder1-${Utils.random()}`; let folder1Id; const folder2 = `folder2-${Utils.random()}`; let folder2Id; const folder3 = `folder3-${Utils.random()}`; let folder3Id; + const folder4 = `folder4-${Utils.random()}`; let folder4Id; + const folder5 = `folder5-${Utils.random()}`; let folder5Id; + const folder6 = `folder6-${Utils.random()}`; let folder6Id; + + const file1InFolder = `file1InFolder-${Utils.random()}.txt`; + const file2InFolder = `file2InFolder-${Utils.random()}.txt`; const fileLocked1 = `fileLocked1-${Utils.random()}.txt`; let fileLocked1Id; const fileLocked2 = `fileLocked2-${Utils.random()}.txt`; let fileLocked2Id; + const fileLocked3 = `fileLocked3-${Utils.random()}.txt`; let fileLocked3Id; + const fileLocked4 = `fileLocked4-${Utils.random()}.txt`; let fileLocked4Id; + + const parent = `parentPF-${Utils.random()}`; let parentId; beforeAll(async (done) => { - file1Id = (await apis.user.nodes.createFile(file1)).entry.id; - file2Id = (await apis.user.nodes.createFile(file2)).entry.id; - folder1Id = (await apis.user.nodes.createFolder(folder1)).entry.id; + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; - folder2Id = (await apis.user.nodes.createFolder(folder2)).entry.id; - await apis.user.nodes.createFile(file3, folder1Id); - file4Id = (await apis.user.nodes.createFile(file4, folder2Id)).entry.id; - await apis.user.nodes.lockFile(file4Id); + await apis.user.nodes.createFile(file1, parentId); + await apis.user.nodes.createFile(file2, parentId); + await apis.user.nodes.createFile(file3, parentId); + await apis.user.nodes.createFile(file4, parentId); + await apis.user.nodes.createFile(file5, parentId); + await apis.user.nodes.createFile(file6, parentId); + await apis.user.nodes.createFile(file7, parentId); - folder3Id = (await apis.user.nodes.createFolder(folder3)).entry.id; + folder1Id = (await apis.user.nodes.createFolder(folder1, parentId)).entry.id; + folder2Id = (await apis.user.nodes.createFolder(folder2, parentId)).entry.id; + folder3Id = (await apis.user.nodes.createFolder(folder3, parentId)).entry.id; + folder4Id = (await apis.user.nodes.createFolder(folder4, parentId)).entry.id; + folder5Id = (await apis.user.nodes.createFolder(folder5, parentId)).entry.id; + folder6Id = (await apis.user.nodes.createFolder(folder6, parentId)).entry.id; + + await apis.user.nodes.createFile(file1InFolder, folder1Id); + fileLocked1Id = (await apis.user.nodes.createFile(fileLocked1, folder2Id)).entry.id; fileLocked2Id = (await apis.user.nodes.createFile(fileLocked2, folder3Id)).entry.id; - await apis.user.nodes.lockFile(fileLocked2Id); + fileLocked3Id = (await apis.user.nodes.createFile(fileLocked3, folder4Id)).entry.id; + fileLocked4Id = (await apis.user.nodes.createFile(fileLocked4, folder5Id)).entry.id; + await apis.user.nodes.createFile(file2InFolder, folder6Id); - fileLocked1Id = (await apis.user.nodes.createFile(fileLocked1)).entry.id; await apis.user.nodes.lockFile(fileLocked1Id); + await apis.user.nodes.lockFile(fileLocked2Id); + await apis.user.nodes.lockFile(fileLocked3Id); + await apis.user.nodes.lockFile(fileLocked4Id); await loginPage.loginWith(username); + done(); }); beforeEach(async (done) => { await page.clickPersonalFilesAndWait(); - done(); - }); - - afterEach(async (done) => { - await page.refresh(); + await page.dataTable.doubleClickOnRowByName(parent); done(); }); afterAll(async (done) => { - await apis.user.nodes.unlockFile(file4Id); await apis.user.nodes.unlockFile(fileLocked1Id); await apis.user.nodes.unlockFile(fileLocked2Id); - await apis.user.nodes.deleteNodesById([file1Id, file2Id, folder1Id, folder2Id, folder3Id, fileLocked1Id]); - await apis.user.search.waitForApi(username, {expect: 0}); + await apis.user.nodes.unlockFile(fileLocked3Id); + await apis.user.nodes.unlockFile(fileLocked4Id); + await apis.user.nodes.deleteNodeById(parentId); + await apis.user.trashcan.emptyTrash(); done(); }); - xit('delete a file and check notification - [C217125]', async () => { + it('delete a file and check notification - [C217125]', async () => { let items = await page.dataTable.countRows(); - await dataTable.selectItem(file1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); expect(message).toContain(`${file1} deleted`); - expect(await dataTable.getRowByName(file1).isPresent()).toBe(false, 'Item was not removed from list'); + expect(message).toContain(`Undo`); + expect(await dataTable.isItemPresent(file1)).toBe(false, 'Item was not removed from list'); items--; expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`); await page.clickTrash(); - expect(await dataTable.getRowByName(file1).isPresent()).toBe(true, 'Item is not in trash'); - - await apis.user.trashcan.restore(file1Id); + expect(await dataTable.isItemPresent(file1)).toBe(true, 'Item is not in trash'); }); - xit('delete multiple files and check notification - [C280502]', async () => { + it('delete multiple files and check notification - [C280502]', async () => { let items = await page.dataTable.countRows(); - - await dataTable.selectMultipleItems([file1, file2]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectMultipleItems([file2, file3]); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); expect(message).toContain(`Deleted 2 items`); - expect(await dataTable.getRowByName(file1).isPresent()).toBe(false, `${file1} was not removed from list`); - expect(await dataTable.getRowByName(file2).isPresent()).toBe(false, `${file2} was not removed from list`); + expect(await dataTable.isItemPresent(file2)).toBe(false, `${file2} was not removed from list`); + expect(await dataTable.isItemPresent(file3)).toBe(false, `${file3} was not removed from list`); items = items - 2; expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`); await page.clickTrash(); - expect(await dataTable.getRowByName(file1).isPresent()).toBe(true, `${file1} is not in trash`); - expect(await dataTable.getRowByName(file2).isPresent()).toBe(true, `${file2} is not in trash`); - - await apis.user.trashcan.restore(file1Id); - await apis.user.trashcan.restore(file2Id); + expect(await dataTable.isItemPresent(file2)).toBe(true, `${file2} is not in trash`); + expect(await dataTable.isItemPresent(file3)).toBe(true, `${file3} is not in trash`); }); it('delete a folder with content - [C217126]', async () => { let items = await page.dataTable.countRows(); - await dataTable.selectItem(folder1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); - expect(await dataTable.getRowByName(folder1).isPresent()).toBe(false, 'Item was not removed from list'); + await toolbar.clickMoreActionsDelete(); + expect(await dataTable.isItemPresent(folder1)).toBe(false, 'Item was not removed from list'); items--; expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`); await page.clickTrash(); - expect(await dataTable.getRowByName(folder1).isPresent()).toBe(true, 'Item is not in trash'); - expect(await dataTable.getRowByName(file3).isPresent()).toBe(false, 'Item is in trash'); - - await apis.user.trashcan.restore(folder1Id); + expect(await dataTable.isItemPresent(folder1)).toBe(true, 'Item is not in trash'); + expect(await dataTable.isItemPresent(file1InFolder)).toBe(false, 'Item is in trash'); }); it('delete a folder containing locked files - [C217127]', async () => { await dataTable.selectItem(folder2); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); expect(message).toContain(`${folder2} couldn't be deleted`); - expect(await dataTable.getRowByName(folder2).isPresent()).toBe(true, 'Item was removed from list'); + expect(message).not.toContain(`Undo`); + expect(await dataTable.isItemPresent(folder2)).toBe(true, 'Item was removed from list'); await page.clickTrash(); - expect(await dataTable.getRowByName(folder2).isPresent()).toBe(false, 'Item is in trash'); - expect(await dataTable.getRowByName(file4).isPresent()).toBe(false, 'Item is in trash'); + expect(await dataTable.isItemPresent(folder2)).toBe(false, 'Item is in trash'); + expect(await dataTable.isItemPresent(fileLocked1)).toBe(false, 'Item is in trash'); }); it('notification on multiple items deletion - some items fail to delete - [C217129]', async () => { - await dataTable.selectMultipleItems([file1, folder2]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectMultipleItems([file4, folder3]); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); expect(message).toContain(`Deleted 1 item, 1 couldn't be deleted`); - - await apis.user.trashcan.restore(file1Id); + expect(message).toContain(`Undo`); }); it('notification on multiple items deletion - all items fail to delete - [C217130]', async () => { - await dataTable.selectMultipleItems([folder3, folder2]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectMultipleItems([folder4, folder5]); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); expect(message).toEqual(`2 items couldn't be deleted`); - }); - - it('successful delete notification shows Undo action - [C217131]', async () => { - await dataTable.selectItem(file1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); - const message = await page.getSnackBarMessage(); - expect(message).toContain(`Undo`); - - await apis.user.trashcan.restore(file1Id); - }); - - it('unsuccessful delete notification does not show Undo action - [C217134]', async () => { - await dataTable.selectItem(folder2); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); - const message = await page.getSnackBarMessage(); expect(message).not.toContain(`Undo`); }); it('undo delete of file - [C217132]', async () => { const items = await page.dataTable.countRows(); - await dataTable.selectItem(file1); - await toolbar.openMoreMenu(); - - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectItem(file5); + await toolbar.clickMoreActionsDelete(); await page.clickSnackBarAction(); - expect(await dataTable.getRowByName(file1).isPresent()).toBe(true, 'Item was not restored'); + expect(await dataTable.isItemPresent(file5)).toBe(true, 'Item was not restored'); expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`); }); it('undo delete of folder with content - [C280503]', async () => { const items = await page.dataTable.countRows(); - await dataTable.selectItem(folder1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectItem(folder6); + await toolbar.clickMoreActionsDelete(); await page.clickSnackBarAction(); - expect(await dataTable.getRowByName(folder1).isPresent()).toBe(true, 'Item was not restored'); + expect(await dataTable.isItemPresent(folder6)).toBe(true, 'Item was not restored'); expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`); - await dataTable.doubleClickOnRowByName(folder1); - expect(await dataTable.getRowByName(file3).isPresent()).toBe(true, 'file from folder not restored'); + await dataTable.doubleClickOnRowByName(folder6); + expect(await dataTable.isItemPresent(file2InFolder)).toBe(true, 'file from folder not restored'); }); - xit('undo delete of multiple files - [C280504]', async () => { + it('undo delete of multiple files - [C280504]', async () => { const items = await page.dataTable.countRows(); - await dataTable.selectMultipleItems([file1, file2]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectMultipleItems([file6, file7]); + await toolbar.clickMoreActionsDelete(); await page.clickSnackBarAction(); - expect(await dataTable.getRowByName(file1).isPresent()).toBe(true, `${file1} was not removed from list`); - expect(await dataTable.getRowByName(file2).isPresent()).toBe(true, `${file2} was not removed from list`); + expect(await dataTable.isItemPresent(file6)).toBe(true, `${file6} was not removed from list`); + expect(await dataTable.isItemPresent(file7)).toBe(true, `${file7} was not removed from list`); expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`); }); }); @@ -248,14 +236,28 @@ describe('Delete and undo delete', () => { const sharedFile2 = `sharedFile2-${Utils.random()}.txt`; let sharedFile2Id; const sharedFile3 = `sharedFile3-${Utils.random()}.txt`; let sharedFile3Id; const sharedFile4 = `sharedFile4-${Utils.random()}.txt`; let sharedFile4Id; + const sharedFile5 = `sharedFile5-${Utils.random()}.txt`; let sharedFile5Id; + const sharedFile6 = `sharedFile6-${Utils.random()}.txt`; let sharedFile6Id; + + const parent = `parentSF-${Utils.random()}`; let parentId; beforeAll(async (done) => { - sharedFile1Id = (await apis.user.nodes.createFile(sharedFile1)).entry.id; - sharedFile2Id = (await apis.user.nodes.createFile(sharedFile2)).entry.id; - sharedFile3Id = (await apis.user.nodes.createFile(sharedFile3)).entry.id; - sharedFile4Id = (await apis.user.nodes.createFile(sharedFile4)).entry.id; - await apis.user.shared.shareFilesByIds([sharedFile1Id, sharedFile2Id, sharedFile3Id, sharedFile4Id]); - await apis.user.shared.waitForApi({ expect: 4 }); + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; + + sharedFile1Id = (await apis.user.nodes.createFile(sharedFile1, parentId)).entry.id; + sharedFile2Id = (await apis.user.nodes.createFile(sharedFile2, parentId)).entry.id; + sharedFile3Id = (await apis.user.nodes.createFile(sharedFile3, parentId)).entry.id; + sharedFile4Id = (await apis.user.nodes.createFile(sharedFile4, parentId)).entry.id; + sharedFile5Id = (await apis.user.nodes.createFile(sharedFile5, parentId)).entry.id; + sharedFile6Id = (await apis.user.nodes.createFile(sharedFile6, parentId)).entry.id; + await apis.user.shared.shareFilesByIds([ + sharedFile1Id, + sharedFile2Id, + sharedFile3Id, + sharedFile4Id, + sharedFile5Id, + sharedFile6Id]); + await apis.user.shared.waitForApi({ expect: 6 }); await loginPage.loginWith(username); done(); @@ -266,109 +268,112 @@ describe('Delete and undo delete', () => { done(); }); - afterEach(async (done) => { - await page.refresh(); - done(); - }); - afterAll(async (done) => { - await apis.user.nodes.deleteNodesById([sharedFile1Id, sharedFile2Id, sharedFile3Id, sharedFile4Id]); - await apis.user.search.waitForApi(username, {expect: 0}); + await apis.user.nodes.deleteNodeById(parentId); + await apis.user.trashcan.emptyTrash(); done(); }); - xit('delete a file and check notification - [C280316]', async () => { + it('delete a file and check notification - [C280316]', async () => { await dataTable.selectItem(sharedFile1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); expect(message).toContain(`${sharedFile1} deleted`); - expect(await dataTable.getRowByName(sharedFile1).isPresent()).toBe(false, 'Item was not removed from list'); + expect(message).toContain(`Undo`); + expect(await dataTable.isItemPresent(sharedFile1)).toBe(false, 'Item was not removed from list'); await page.clickTrash(); - expect(await dataTable.getRowByName(sharedFile1).isPresent()).toBe(true, 'Item is not in trash'); - - await apis.user.trashcan.restore(sharedFile1Id); - await apis.user.shared.shareFilesByIds([ sharedFile1Id ]); - await apis.user.shared.waitForApi({ expect: 4 }); + expect(await dataTable.isItemPresent(sharedFile1)).toBe(true, 'Item is not in trash'); }); - xit('delete multiple files and check notification - [C280513]', async () => { + it('delete multiple files and check notification - [C280513]', async () => { await dataTable.selectMultipleItems([sharedFile2, sharedFile3]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); expect(message).toContain(`Deleted 2 items`); - expect(await dataTable.getRowByName(sharedFile2).isPresent()).toBe(false, `${sharedFile2} was not removed from list`); - expect(await dataTable.getRowByName(sharedFile3).isPresent()).toBe(false, `${sharedFile3} was not removed from list`); - await page.clickTrash(); - expect(await dataTable.getRowByName(sharedFile2).isPresent()).toBe(true, `${sharedFile2} is not in trash`); - expect(await dataTable.getRowByName(sharedFile3).isPresent()).toBe(true, `${sharedFile3} is not in trash`); - - await apis.user.trashcan.restore(sharedFile2Id); - await apis.user.trashcan.restore(sharedFile3Id); - await apis.user.shared.shareFilesByIds([ sharedFile2Id, sharedFile3Id ]); - await apis.user.shared.waitForApi({ expect: 4 }); - }); - - xit('successful delete notification shows Undo action - [C280323]', async () => { - await dataTable.selectItem(sharedFile1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); - const message = await page.getSnackBarMessage(); expect(message).toContain(`Undo`); - - await apis.user.trashcan.restore(sharedFile1Id); + expect(await dataTable.isItemPresent(sharedFile2)).toBe(false, `${sharedFile2} was not removed from list`); + expect(await dataTable.isItemPresent(sharedFile3)).toBe(false, `${sharedFile3} was not removed from list`); + await page.clickTrash(); + expect(await dataTable.isItemPresent(sharedFile2)).toBe(true, `${sharedFile2} is not in trash`); + expect(await dataTable.isItemPresent(sharedFile3)).toBe(true, `${sharedFile3} is not in trash`); }); - xit('undo delete of file - [C280324]', async () => { - await dataTable.selectItem(sharedFile2); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + it('undo delete of file - [C280324]', async () => { + await dataTable.selectItem(sharedFile4); + await toolbar.clickMoreActionsDelete(); await page.clickSnackBarAction(); await page.clickTrash(); - expect(await dataTable.getRowByName(sharedFile2).isPresent()).toBe(false, 'Item was not restored'); + expect(await dataTable.isItemPresent(sharedFile4)).toBe(false, 'Item was not restored'); }); - xit('undo delete of multiple files - [C280514]', async () => { - await dataTable.selectMultipleItems([sharedFile3, sharedFile4]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + it('undo delete of multiple files - [C280514]', async () => { + await dataTable.selectMultipleItems([sharedFile5, sharedFile6]); + await toolbar.clickMoreActionsDelete(); await page.clickSnackBarAction(); await page.clickTrash(); - expect(await dataTable.getRowByName(sharedFile3).isPresent()).toBe(false, `${sharedFile3} was not restored`); - expect(await dataTable.getRowByName(sharedFile4).isPresent()).toBe(false, `${sharedFile4} was not restored`); + expect(await dataTable.isItemPresent(sharedFile5)).toBe(false, `${sharedFile5} was not restored`); + expect(await dataTable.isItemPresent(sharedFile6)).toBe(false, `${sharedFile6} was not restored`); }); }); describe('on Favorites', () => { - const favoriteFile1 = `favFile1-${Utils.random()}.txt`; let favoriteFile1Id; - const favoriteFile2 = `favFile2-${Utils.random()}.txt`; let favoriteFile2Id; - const favoriteFile3 = `favFile3-${Utils.random()}.txt`; - const favoriteFile4 = `favFile4-${Utils.random()}.txt`; let favoriteFile4Id; - const favoriteFolder1 = `favFolder1-${Utils.random()}`; let favoriteFolder1Id; - const favoriteFolder2 = `favFolder2-${Utils.random()}`; let favoriteFolder2Id; - const favoriteFolder3 = `favFolder3-${Utils.random()}`; let favoriteFolder3Id; - const favoriteFileLocked1 = `favFileLocked1-${Utils.random()}.txt`; let favoriteFileLocked1Id; - const favoriteFileLocked2 = `favFileLocked2-${Utils.random()}.txt`; let favoriteFileLocked2Id; + const parent = `parentF-${Utils.random()}`; let parentId; + + const favFile1 = `favFile1-${Utils.random()}.txt`; let favFile1Id; + const favFile2 = `favFile2-${Utils.random()}.txt`; let favFile2Id; + const favFile3 = `favFile3-${Utils.random()}.txt`; let favFile3Id; + const favFile4 = `favFile4-${Utils.random()}.txt`; let favFile4Id; + const favFile5 = `favFile5-${Utils.random()}.txt`; let favFile5Id; + const favFile6 = `favFile6-${Utils.random()}.txt`; let favFile6Id; + const favFile7 = `favFile7-${Utils.random()}.txt`; let favFile7Id; + + const favFolder1 = `favFolder1-${Utils.random()}`; let favFolder1Id; + const favFolder2 = `favFolder2-${Utils.random()}`; let favFolder2Id; + const favFolder3 = `favFolder3-${Utils.random()}`; let favFolder3Id; + const favFolder4 = `favFolder4-${Utils.random()}`; let favFolder4Id; + const favFolder5 = `favFolder5-${Utils.random()}`; let favFolder5Id; + const favFolder6 = `favFolder6-${Utils.random()}`; let favFolder6Id; + + const file1InFolder = `file1InFolder-${Utils.random()}.txt`; + const file2InFolder = `file2InFolder-${Utils.random()}.txt`; + const fileLocked1 = `fileLocked1-${Utils.random()}.txt`; let fileLocked1Id; + const fileLocked2 = `fileLocked2-${Utils.random()}.txt`; let fileLocked2Id; + const fileLocked3 = `fileLocked3-${Utils.random()}.txt`; let fileLocked3Id; + const fileLocked4 = `fileLocked4-${Utils.random()}.txt`; let fileLocked4Id; beforeAll(async (done) => { - favoriteFile1Id = (await apis.user.nodes.createFile(favoriteFile1)).entry.id; - favoriteFile2Id = (await apis.user.nodes.createFile(favoriteFile2)).entry.id; - favoriteFolder1Id = (await apis.user.nodes.createFolder(favoriteFolder1)).entry.id; - favoriteFolder2Id = (await apis.user.nodes.createFolder(favoriteFolder2)).entry.id; - favoriteFolder3Id = (await apis.user.nodes.createFolder(favoriteFolder3)).entry.id; - await apis.user.nodes.createFile(favoriteFile3, favoriteFolder1Id); - favoriteFile4Id = (await apis.user.nodes.createFile(favoriteFile4, favoriteFolder2Id)).entry.id; - favoriteFileLocked2Id = (await apis.user.nodes.createFile(favoriteFileLocked2, favoriteFolder3Id)).entry.id; - await apis.user.nodes.lockFile(favoriteFile4Id); - await apis.user.nodes.lockFile(favoriteFileLocked2Id); + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; - favoriteFileLocked1Id = (await apis.user.nodes.createFile(favoriteFileLocked1)).entry.id; - await apis.user.nodes.lockFile(favoriteFileLocked1Id); + favFile1Id = (await apis.user.nodes.createFile(favFile1, parentId)).entry.id; + favFile2Id = (await apis.user.nodes.createFile(favFile2, parentId)).entry.id; + favFile3Id = (await apis.user.nodes.createFile(favFile3, parentId)).entry.id; + favFile4Id = (await apis.user.nodes.createFile(favFile4, parentId)).entry.id; + favFile5Id = (await apis.user.nodes.createFile(favFile5, parentId)).entry.id; + favFile6Id = (await apis.user.nodes.createFile(favFile6, parentId)).entry.id; + favFile7Id = (await apis.user.nodes.createFile(favFile7, parentId)).entry.id; - await apis.user.favorites.addFavoritesByIds('file', [ favoriteFile1Id, favoriteFile2Id, favoriteFileLocked1Id ]); - await apis.user.favorites.addFavoritesByIds('folder', [ favoriteFolder1Id, favoriteFolder2Id, favoriteFolder3Id ]); - await apis.user.favorites.waitForApi({ expect: 6 }); + favFolder1Id = (await apis.user.nodes.createFolder(favFolder1, parentId)).entry.id; + favFolder2Id = (await apis.user.nodes.createFolder(favFolder2, parentId)).entry.id; + favFolder3Id = (await apis.user.nodes.createFolder(favFolder3, parentId)).entry.id; + favFolder4Id = (await apis.user.nodes.createFolder(favFolder4, parentId)).entry.id; + favFolder5Id = (await apis.user.nodes.createFolder(favFolder5, parentId)).entry.id; + favFolder6Id = (await apis.user.nodes.createFolder(favFolder6, parentId)).entry.id; + + await apis.user.nodes.createFile(file1InFolder, favFolder1Id); + fileLocked1Id = (await apis.user.nodes.createFile(fileLocked1, favFolder2Id)).entry.id; + fileLocked2Id = (await apis.user.nodes.createFile(fileLocked2, favFolder3Id)).entry.id; + fileLocked3Id = (await apis.user.nodes.createFile(fileLocked3, favFolder4Id)).entry.id; + fileLocked4Id = (await apis.user.nodes.createFile(fileLocked4, favFolder5Id)).entry.id; + await apis.user.nodes.createFile(file2InFolder, favFolder6Id); + + await apis.user.nodes.lockFile(fileLocked1Id); + await apis.user.nodes.lockFile(fileLocked2Id); + await apis.user.nodes.lockFile(fileLocked3Id); + await apis.user.nodes.lockFile(fileLocked4Id); + + await apis.user.favorites.addFavoritesByIds('file', [ favFile1Id, favFile2Id, favFile3Id, favFile4Id, favFile5Id, favFile6Id, favFile7Id ]); + await apis.user.favorites.addFavoritesByIds('folder', [ favFolder1Id, favFolder2Id, favFolder3Id, favFolder4Id, favFolder5Id, favFolder6Id ]); + await apis.user.favorites.waitForApi({ expect: 13 }); await loginPage.loginWith(username); done(); @@ -379,182 +384,145 @@ describe('Delete and undo delete', () => { done(); }); - afterEach(async (done) => { - await page.refresh(); - done(); - }); - afterAll(async (done) => { - await apis.user.nodes.unlockFile(favoriteFile4Id); - await apis.user.nodes.unlockFile(favoriteFileLocked1Id); - await apis.user.nodes.unlockFile(favoriteFileLocked2Id); - await apis.user.nodes.deleteNodesById([ - favoriteFile1Id, favoriteFile2Id, favoriteFolder1Id, favoriteFolder2Id, favoriteFileLocked1Id, favoriteFolder3Id - ]); - await apis.user.search.waitForApi(username, {expect: 0}); + await apis.user.nodes.unlockFile(fileLocked1Id); + await apis.user.nodes.unlockFile(fileLocked2Id); + await apis.user.nodes.unlockFile(fileLocked3Id); + await apis.user.nodes.unlockFile(fileLocked4Id); + await apis.user.nodes.deleteNodeById(parentId); + await apis.user.trashcan.emptyTrash(); done(); }); - xit('delete a file and check notification - [C280516]', async () => { + it('delete a file and check notification - [C280516]', async () => { let items = await page.dataTable.countRows(); - await dataTable.selectItem(favoriteFile1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectItem(favFile1); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); - expect(message).toContain(`${favoriteFile1} deleted`); - expect(await dataTable.getRowByName(favoriteFile1).isPresent()).toBe(false, 'Item was not removed from list'); + expect(message).toContain(`${favFile1} deleted`); + expect(message).toContain(`Undo`); + expect(await dataTable.isItemPresent(favFile1)).toBe(false, 'Item was not removed from list'); items--; expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`); await page.clickTrash(); - expect(await dataTable.getRowByName(favoriteFile1).isPresent()).toBe(true, 'Item is not in trash'); - - await apis.user.trashcan.restore(favoriteFile1Id); + expect(await dataTable.isItemPresent(favFile1)).toBe(true, 'Item is not in trash'); }); - xit('delete multiple files and check notification - [C280517]', async () => { + it('delete multiple files and check notification - [C280517]', async () => { let items = await page.dataTable.countRows(); - await dataTable.selectMultipleItems([favoriteFile1, favoriteFile2]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectMultipleItems([favFile2, favFile3]); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); expect(message).toContain(`Deleted 2 items`); - expect(await dataTable.getRowByName(favoriteFile1).isPresent()).toBe(false, `${favoriteFile1} was not removed from list`); - expect(await dataTable.getRowByName(favoriteFile2).isPresent()).toBe(false, `${favoriteFile2} was not removed from list`); + expect(message).toContain(`Undo`); + expect(await dataTable.isItemPresent(favFile2)).toBe(false, `${favFile2} was not removed from list`); + expect(await dataTable.isItemPresent(favFile3)).toBe(false, `${favFile3} was not removed from list`); items = items - 2; expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`); await page.clickTrash(); - expect(await dataTable.getRowByName(favoriteFile1).isPresent()).toBe(true, `${favoriteFile1} is not in trash`); - expect(await dataTable.getRowByName(favoriteFile2).isPresent()).toBe(true, `${favoriteFile2} is not in trash`); - - await apis.user.trashcan.restore(favoriteFile1Id); - await apis.user.trashcan.restore(favoriteFile2Id); + expect(await dataTable.isItemPresent(favFile2)).toBe(true, `${favFile2} is not in trash`); + expect(await dataTable.isItemPresent(favFile3)).toBe(true, `${favFile3} is not in trash`); }); it('delete a folder with content - [C280518]', async () => { let items = await page.dataTable.countRows(); - await dataTable.selectItem(favoriteFolder1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); - expect(await dataTable.getRowByName(favoriteFolder1).isPresent()).toBe(false, 'Item was not removed from list'); + await dataTable.selectItem(favFolder1); + await toolbar.clickMoreActionsDelete(); + expect(await dataTable.isItemPresent(favFolder1)).toBe(false, 'Item was not removed from list'); items--; expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`); await page.clickTrash(); - expect(await dataTable.getRowByName(favoriteFolder1).isPresent()).toBe(true, 'Item is not in trash'); - expect(await dataTable.getRowByName(favoriteFile3).isPresent()).toBe(false, 'Item is in trash'); - - await apis.user.trashcan.restore(favoriteFolder1Id); + expect(await dataTable.isItemPresent(favFolder1)).toBe(true, 'Item is not in trash'); + expect(await dataTable.isItemPresent(file1InFolder)).toBe(false, 'Item is in trash'); }); it('delete a folder containing locked files - [C280519]', async () => { - await dataTable.selectItem(favoriteFolder2); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectItem(favFolder2); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); - expect(message).toContain(`${favoriteFolder2} couldn't be deleted`); - expect(await dataTable.getRowByName(favoriteFolder2).isPresent()).toBe(true, 'Item was removed from list'); + expect(message).toContain(`${favFolder2} couldn't be deleted`); + expect(await dataTable.isItemPresent(favFolder2)).toBe(true, 'Item was removed from list'); await page.clickTrash(); - expect(await dataTable.getRowByName(favoriteFolder2).isPresent()).toBe(false, 'Item is in trash'); - expect(await dataTable.getRowByName(favoriteFile4).isPresent()).toBe(false, 'Item is in trash'); + expect(await dataTable.isItemPresent(favFolder2)).toBe(false, 'Item is in trash'); + expect(await dataTable.isItemPresent(fileLocked1)).toBe(false, 'Item is in trash'); }); it('notification on multiple items deletion - some items fail to delete - [C280520]', async () => { - await dataTable.selectMultipleItems([favoriteFile1, favoriteFolder2]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectMultipleItems([favFile4, favFolder3]); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); expect(message).toContain(`Deleted 1 item, 1 couldn't be deleted`); - - await apis.user.trashcan.restore(favoriteFile1Id); + expect(message).toContain(`Undo`); }); it('notification on multiple items deletion - all items fail to delete - [C280521]', async () => { - await dataTable.selectMultipleItems([favoriteFolder3, favoriteFolder2]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectMultipleItems([favFolder4, favFolder5]); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); expect(message).toEqual(`2 items couldn't be deleted`); - }); - - it('successful delete notification shows Undo action - [C280522]', async () => { - await dataTable.selectItem(favoriteFile1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); - const message = await page.getSnackBarMessage(); - expect(message).toContain(`Undo`); - - await apis.user.trashcan.restore(favoriteFile1Id); - }); - - it('unsuccessful delete notification does not show Undo action - [C280523]', async () => { - await dataTable.selectItem(favoriteFolder2); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); - const message = await page.getSnackBarMessage(); expect(message).not.toContain(`Undo`); }); it('undo delete of file - [C280524]', async () => { const items = await page.dataTable.countRows(); - await dataTable.selectItem(favoriteFile1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectItem(favFile5); + await toolbar.clickMoreActionsDelete(); await page.clickSnackBarAction(); - expect(await dataTable.getRowByName(favoriteFile1).isPresent()).toBe(true, 'Item was not restored'); + expect(await dataTable.isItemPresent(favFile5)).toBe(true, 'Item was not restored'); expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`); }); it('undo delete of folder with content - [C280526]', async () => { const items = await page.dataTable.countRows(); - await dataTable.selectItem(favoriteFolder1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectItem(favFolder6); + await toolbar.clickMoreActionsDelete(); await page.clickSnackBarAction(); - expect(await dataTable.getRowByName(favoriteFolder1).isPresent()).toBe(true, 'Item was not restored'); + expect(await dataTable.isItemPresent(favFolder6)).toBe(true, 'Item was not restored'); expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`); - await dataTable.doubleClickOnRowByName(favoriteFolder1); - expect(await dataTable.getRowByName(favoriteFile3).isPresent()).toBe(true, 'file from folder not restored'); + await dataTable.doubleClickOnRowByName(favFolder6); + expect(await dataTable.isItemPresent(file2InFolder)).toBe(true, 'file from folder not restored'); }); it('undo delete of multiple files - [C280525]', async () => { const items = await page.dataTable.countRows(); - await dataTable.selectMultipleItems([favoriteFile1, favoriteFile2]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await dataTable.selectMultipleItems([favFile6, favFile7]); + await toolbar.clickMoreActionsDelete(); await page.clickSnackBarAction(); - expect(await dataTable.getRowByName(favoriteFile1).isPresent()).toBe(true, `${favoriteFile1} was not removed from list`); - expect(await dataTable.getRowByName(favoriteFile2).isPresent()).toBe(true, `${favoriteFile2} was not removed from list`); + expect(await dataTable.isItemPresent(favFile6)).toBe(true, `${favFile6} was not removed from list`); + expect(await dataTable.isItemPresent(favFile7)).toBe(true, `${favFile7} was not removed from list`); expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`); }); }); - // TODO: try to change search.waitForApi to wait for exact number of items - xdescribe('on Recent Files', () => { - const recentFile1 = `recentFile1-${Utils.random()}.txt`; let recentFile1Id; - const recentFile2 = `recentFile2-${Utils.random()}.txt`; let recentFile2Id; - const recentFile3 = `recentFile3-${Utils.random()}.txt`; let recentFile3Id; - const recentFile4 = `recentFile4-${Utils.random()}.txt`; let recentFile4Id; + describe('on Recent Files', () => { + const parent = `parentRF-${Utils.random()}`; let parentId; + + const recentFile1 = `recentFile1-${Utils.random()}.txt`; + const recentFile2 = `recentFile2-${Utils.random()}.txt`; + const recentFile3 = `recentFile3-${Utils.random()}.txt`; + const recentFile4 = `recentFile4-${Utils.random()}.txt`; + const recentFile5 = `recentFile5-${Utils.random()}.txt`; + const recentFile6 = `recentFile6-${Utils.random()}.txt`; beforeAll(async (done) => { - recentFile1Id = (await apis.user.nodes.createFile(recentFile1)).entry.id; - recentFile2Id = (await apis.user.nodes.createFile(recentFile2)).entry.id; - recentFile3Id = (await apis.user.nodes.createFile(recentFile3)).entry.id; - recentFile4Id = (await apis.user.nodes.createFile(recentFile4)).entry.id; - await apis.user.search.waitForApi(username, { expect: 4 }); + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; + + await apis.user.nodes.createFile(recentFile1, parentId); + await apis.user.nodes.createFile(recentFile2, parentId); + await apis.user.nodes.createFile(recentFile3, parentId); + await apis.user.nodes.createFile(recentFile4, parentId); + await apis.user.nodes.createFile(recentFile5, parentId); + await apis.user.nodes.createFile(recentFile6, parentId); + await apis.user.search.waitForApi(username, { expect: 6 }); await loginPage.loginWith(username); await page.clickRecentFiles(); - const empty = await dataTable.isEmptyList(); - if (empty) { - await browser.sleep(6000); - await browser.refresh(); - await page.waitForApp(); - } done(); }); @@ -563,83 +531,59 @@ describe('Delete and undo delete', () => { done(); }); - afterEach(async (done) => { - await page.refresh(); - done(); - }); - afterAll(async (done) => { - await apis.user.nodes.deleteNodesById([recentFile1Id, recentFile2Id, recentFile3Id, recentFile4Id]); + await apis.user.nodes.deleteNodeById(parentId); + await apis.user.trashcan.emptyTrash(); done(); }); - xit('delete a file and check notification - [C280528]', async () => { + it('delete a file and check notification - [C280528]', async () => { await dataTable.selectItem(recentFile1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); expect(message).toContain(`${recentFile1} deleted`); - expect(await dataTable.getRowByName(recentFile1).isPresent()).toBe(false, 'Item was not removed from list'); + expect(message).toContain(`Undo`); + expect(await dataTable.isItemPresent(recentFile1)).toBe(false, 'Item was not removed from list'); await page.clickTrash(); - expect(await dataTable.getRowByName(recentFile1).isPresent()).toBe(true, 'Item is not in trash'); - - await apis.user.trashcan.restore(recentFile1Id); - await apis.user.search.waitForApi(username, { expect: 4 }); + expect(await dataTable.isItemPresent(recentFile1)).toBe(true, 'Item is not in trash'); }); - xit('delete multiple files and check notification - [C280529]', async () => { + it('delete multiple files and check notification - [C280529]', async () => { await dataTable.selectMultipleItems([recentFile2, recentFile3]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await toolbar.clickMoreActionsDelete(); const message = await page.getSnackBarMessage(); expect(message).toContain(`Deleted 2 items`); - expect(await dataTable.getRowByName(recentFile2).isPresent()).toBe(false, `${recentFile2} was not removed from list`); - expect(await dataTable.getRowByName(recentFile3).isPresent()).toBe(false, `${recentFile3} was not removed from list`); - await page.clickTrash(); - expect(await dataTable.getRowByName(recentFile2).isPresent()).toBe(true, `${recentFile2} is not in trash`); - expect(await dataTable.getRowByName(recentFile3).isPresent()).toBe(true, `${recentFile3} is not in trash`); - - await apis.user.trashcan.restore(recentFile2Id); - await apis.user.trashcan.restore(recentFile3Id); - await apis.user.search.waitForApi(username, { expect: 4 }); - }); - - xit('successful delete notification shows Undo action - [C280534]', async () => { - await dataTable.selectItem(recentFile1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); - const message = await page.getSnackBarMessage(); expect(message).toContain(`Undo`); - - await apis.user.trashcan.restore(recentFile1Id); - await apis.user.search.waitForApi(username, { expect: 4 }); + expect(await dataTable.isItemPresent(recentFile2)).toBe(false, `${recentFile2} was not removed from list`); + expect(await dataTable.isItemPresent(recentFile3)).toBe(false, `${recentFile3} was not removed from list`); + await page.clickTrash(); + expect(await dataTable.isItemPresent(recentFile2)).toBe(true, `${recentFile2} is not in trash`); + expect(await dataTable.isItemPresent(recentFile3)).toBe(true, `${recentFile3} is not in trash`); }); // due to the fact that the search api is slow to update, // we cannot test that the restored file is displayed in the Recent Files list // without adding a very big browser.sleep followed by a page.refresh // so for the moment we're testing that the restored file is not displayed in the Trash - xit('undo delete of file - [C280536]', async () => { - await dataTable.selectItem(recentFile2); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + it('undo delete of file - [C280536]', async () => { + await dataTable.selectItem(recentFile4); + await toolbar.clickMoreActionsDelete(); await page.clickSnackBarAction(); await page.clickTrash(); - expect(await dataTable.getRowByName(recentFile2).isPresent()).toBe(false, 'Item is in Trash'); + expect(await dataTable.isItemPresent(recentFile4)).toBe(false, 'Item is in Trash'); }); // due to the fact that the search api is slow to update, // we cannot test that the restored file is displayed in the Recent Files list // without adding a very big browser.sleep followed by a page.refresh // so for the moment we're testing that the restored file is not displayed in the Trash - xit('undo delete of multiple files - [C280537]', async () => { - await dataTable.selectMultipleItems([recentFile3, recentFile4]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + it('undo delete of multiple files - [C280537]', async () => { + await dataTable.selectMultipleItems([recentFile5, recentFile6]); + await toolbar.clickMoreActionsDelete(); await page.clickSnackBarAction(); await page.clickTrash(); - expect(await dataTable.getRowByName(recentFile3).isPresent()).toBe(false, `${recentFile3} is in Trash`); - expect(await dataTable.getRowByName(recentFile4).isPresent()).toBe(false, `${recentFile4} is in Trash`); + expect(await dataTable.isItemPresent(recentFile5)).toBe(false, `${recentFile5} is in Trash`); + expect(await dataTable.isItemPresent(recentFile6)).toBe(false, `${recentFile6} is in Trash`); }); }); }); diff --git a/e2e/suites/actions/edit-folder.test.ts b/e2e/suites/actions/edit-folder.test.ts index 5342bac45..887982eff 100755 --- a/e2e/suites/actions/edit-folder.test.ts +++ b/e2e/suites/actions/edit-folder.test.ts @@ -62,8 +62,7 @@ describe('Edit folder', () => { const loginPage = new LoginPage(); const page = new BrowsingPage(); const editDialog = new CreateOrEditFolderDialog(); - const { dataTable } = page; - const editButton = page.toolbar.getButtonByTitleAttribute('Edit'); + const { dataTable, toolbar } = page; beforeAll(async (done) => { await apis.admin.people.createUser({ username }); @@ -112,12 +111,13 @@ describe('Edit folder', () => { it('dialog UI defaults - [C216331]', async () => { await dataTable.doubleClickOnRowByName(parent); await dataTable.selectItem(folderName); - await editButton.click(); + await toolbar.clickEdit(); + expect(await editDialog.getTitle()).toEqual('Edit folder'); - expect(await editDialog.nameInput.getAttribute('value')).toBe(folderName); - expect(await editDialog.descriptionTextArea.getAttribute('value')).toBe(folderDescription); - expect(await editDialog.updateButton.isEnabled()).toBe(true, 'upload button is not enabled'); - expect(await editDialog.cancelButton.isEnabled()).toBe(true, 'cancel button is not enabled'); + expect(await editDialog.getName()).toBe(folderName); + expect(await editDialog.getDescription()).toBe(folderDescription); + expect(await editDialog.isUpdateButtonEnabled()).toBe(true, 'upload button is not enabled'); + expect(await editDialog.isCancelButtonEnabled()).toBe(true, 'cancel button is not enabled'); }); describe('on Personal Files', () => { @@ -130,14 +130,15 @@ describe('Edit folder', () => { it('properties are modified when pressing OK - [C216335]', async (done) => { await dataTable.selectItem(folderNameToEdit); - await editButton.click(); + await toolbar.clickEdit(); await editDialog.waitForDialogToOpen(); await editDialog.enterDescription(folderDescriptionEdited); await editDialog.enterName(folderNameEdited); await editDialog.clickUpdate(); await editDialog.waitForDialogToClose(); await dataTable.waitForHeader(); - expect(await dataTable.getRowByName(folderNameEdited).isPresent()).toBe(true, 'Folder not displayed'); + + expect(await dataTable.isItemPresent(folderNameEdited)).toBe(true, 'Folder not displayed'); const desc = await apis.user.nodes.getNodeDescription(folderNameEdited, parentId); expect(desc).toEqual(folderDescriptionEdited); done(); @@ -145,9 +146,10 @@ describe('Edit folder', () => { it('with empty folder name - [C216332]', async () => { await dataTable.selectItem(folderName); - await editButton.click(); + await toolbar.clickEdit(); await editDialog.deleteNameWithBackspace(); - expect(await editDialog.updateButton.isEnabled()).toBe(false, 'upload button is not enabled'); + + expect(await editDialog.isUpdateButtonEnabled()).toBe(false, 'upload button is not enabled'); expect(await editDialog.getValidationMessage()).toMatch('Folder name is required'); }); @@ -155,51 +157,54 @@ describe('Edit folder', () => { const namesWithSpecialChars = [ 'a*a', 'a"a', 'aa', `a\\a`, 'a/a', 'a?a', 'a:a', 'a|a' ]; await dataTable.selectItem(folderName); - await editButton.click(); + await toolbar.clickEdit(); for (const name of namesWithSpecialChars) { await editDialog.enterName(name); - expect(await editDialog.updateButton.isEnabled()).toBe(false, 'upload button is not disabled'); + expect(await editDialog.isUpdateButtonEnabled()).toBe(false, 'upload button is not disabled'); expect(await editDialog.getValidationMessage()).toContain(`Folder name can't contain these characters`); } }); it('with name ending with a dot - [C216334]', async () => { await dataTable.selectItem(folderName); - await editButton.click(); + await toolbar.clickEdit(); await editDialog.waitForDialogToOpen(); await editDialog.nameInput.sendKeys('.'); - expect(await editDialog.updateButton.isEnabled()).toBe(false, 'upload button is not enabled'); + + expect(await editDialog.isUpdateButtonEnabled()).toBe(false, 'upload button is not enabled'); expect(await editDialog.getValidationMessage()).toMatch(`Folder name can't end with a period .`); }); it('Cancel button - [C216336]', async () => { await dataTable.selectItem(folderName); - await editButton.click(); + await toolbar.clickEdit(); await editDialog.waitForDialogToOpen(); await editDialog.clickCancel(); + expect(await editDialog.isDialogOpen()).not.toBe(true, 'dialog is not closed'); }); it('with duplicate folder name - [C216337]', async () => { await dataTable.selectItem(folderName); - await editButton.click(); + await toolbar.clickEdit(); await editDialog.waitForDialogToOpen(); await editDialog.enterName(duplicateFolderName); await editDialog.clickUpdate(); - const message = await page.getSnackBarMessage(); - expect(message).toEqual(`There's already a folder with this name. Try a different name.`); + + expect(await page.getSnackBarMessage()).toEqual(`There's already a folder with this name. Try a different name.`); expect(await editDialog.isDialogOpen()).toBe(true, 'dialog is not present'); }); it('trim ending spaces - [C216338]', async () => { await dataTable.selectItem(folderName); - await editButton.click(); + await toolbar.clickEdit(); await editDialog.nameInput.sendKeys(' '); await editDialog.clickUpdate(); await editDialog.waitForDialogToClose(); - expect(await page.snackBar.isPresent()).not.toBe(true, 'notification appears'); - expect(await dataTable.getRowByName(folderName).isPresent()).toBe(true, 'Folder not displayed in list view'); + + expect(await page.isSnackBarPresent()).not.toBe(true, 'notification appears'); + expect(await dataTable.isItemPresent(folderName)).toBe(true, 'Folder not displayed in list view'); }); }); @@ -211,14 +216,15 @@ describe('Edit folder', () => { it('properties are modified when pressing OK - [C280384]', async (done) => { await dataTable.selectItem(folderFavoriteToEdit); - await editButton.click(); + await toolbar.clickEdit(); await editDialog.waitForDialogToOpen(); await editDialog.enterDescription(folderDescriptionEdited); await editDialog.enterName(folderNameEdited); await editDialog.clickUpdate(); await editDialog.waitForDialogToClose(); await dataTable.waitForHeader(); - expect(await dataTable.getRowByName(folderNameEdited).isPresent()).toBe(true, 'Folder not displayed'); + + expect(await dataTable.isItemPresent(folderNameEdited)).toBe(true, 'Folder not displayed'); const desc = await apis.user.nodes.getNodeProperty(folderFavoriteToEditId, 'cm:description'); expect(desc).toEqual(folderDescriptionEdited); done(); @@ -226,12 +232,12 @@ describe('Edit folder', () => { it('with duplicate folder name - [C280386]', async () => { await dataTable.selectItem(folderFavorite); - await editButton.click(); + await toolbar.clickEdit(); await editDialog.waitForDialogToOpen(); await editDialog.enterName(folderFavoriteDuplicate); await editDialog.clickUpdate(); - const message = await page.getSnackBarMessage(); - expect(message).toEqual(`There's already a folder with this name. Try a different name.`); + + expect(await page.getSnackBarMessage()).toEqual(`There's already a folder with this name. Try a different name.`); expect(await editDialog.isDialogOpen()).toBe(true, 'dialog is not present'); }); }); @@ -245,14 +251,15 @@ describe('Edit folder', () => { it('properties are modified when pressing OK - [C280509]', async (done) => { await dataTable.selectItem(folderSiteToEdit); - await editButton.click(); + await toolbar.clickEdit(); await editDialog.waitForDialogToOpen(); await editDialog.enterDescription(folderDescriptionEdited); await editDialog.enterName(folderNameEdited); await editDialog.clickUpdate(); await editDialog.waitForDialogToClose(); await dataTable.waitForHeader(); - expect(await dataTable.getRowByName(folderNameEdited).isPresent()).toBe(true, 'Folder not displayed'); + + expect(await dataTable.isItemPresent(folderNameEdited)).toBe(true, 'Folder not displayed'); const desc = await apis.user.nodes.getNodeProperty(folderSiteToEditId, 'cm:description'); expect(desc).toEqual(folderDescriptionEdited); done(); @@ -260,12 +267,12 @@ describe('Edit folder', () => { it('with duplicate folder name - [C280511]', async () => { await dataTable.selectItem(folderSite); - await editButton.click(); + await toolbar.clickEdit(); await editDialog.waitForDialogToOpen(); await editDialog.enterName(duplicateFolderSite); await editDialog.clickUpdate(); - const message = await page.getSnackBarMessage(); - expect(message).toEqual(`There's already a folder with this name. Try a different name.`); + + expect(await page.getSnackBarMessage()).toEqual(`There's already a folder with this name. Try a different name.`); expect(await editDialog.isDialogOpen()).toBe(true, 'dialog is not present'); }); }); diff --git a/e2e/suites/actions/library-actions.test.ts b/e2e/suites/actions/library-actions.test.ts index 7a32a5590..b892c0d6b 100755 --- a/e2e/suites/actions/library-actions.test.ts +++ b/e2e/suites/actions/library-actions.test.ts @@ -98,17 +98,17 @@ describe('Library actions', () => { it('Join a public library - Favorite Libraries - [C290105]', async () => { await page.goToFavoriteLibraries(); await dataTable.selectItem(sitePublic1Admin); - await toolbar.clickButton('Join'); - const role = await dataTable.getLibraryRole(sitePublic1Admin); - expect(role).toEqual('Consumer'); + await toolbar.clickJoin(); + + expect(await dataTable.getLibraryRole(sitePublic1Admin)).toEqual('Consumer'); }); it('Join a moderated library - Favorite Libraries - [C290109]', async () => { await page.goToFavoriteLibraries(); await dataTable.selectItem(siteModerated1Admin); - await toolbar.clickButton('Join'); - const role = await dataTable.getLibraryRole(siteModerated1Admin); - expect(role).toEqual(''); + await toolbar.clickJoin(); + + expect(await dataTable.getLibraryRole(siteModerated1Admin)).toEqual(''); const hasJoinRequest = await apis.user.sites.hasMembershipRequest(siteModerated1Admin); expect(hasJoinRequest).toBe(true, `Join request does not exist on ${siteModerated1Admin}`); }); @@ -116,60 +116,57 @@ describe('Library actions', () => { it('Leave a library - My Libraries - [C290106]', async () => { await page.goToMyLibraries(); await dataTable.selectItem(sitePublic2Admin); - await toolbar.clickButton('Leave library'); + await toolbar.clickLeave(); await page.waitForDialog(); - await confirmDialog.clickButton('OK'); - const text = await page.getSnackBarMessage(); + await confirmDialog.clickOk(); - expect(text).toEqual(`You have left the library`); - expect(await dataTable.getRowByName(sitePublic2Admin).isPresent()).toBe(false, `${sitePublic2Admin} is displayed`); + expect(await page.getSnackBarMessage()).toEqual(`You have left the library`); + expect(await dataTable.isItemPresent(sitePublic2Admin)).toBe(false, `${sitePublic2Admin} is displayed`); }); it('Leave a library - Favorite Libraries - [C290110]', async () => { await page.goToFavoriteLibraries(); await dataTable.selectItem(sitePublic3Admin); - await toolbar.clickButton('Leave library'); + await toolbar.clickLeave(); await page.waitForDialog(); - await confirmDialog.clickButton('OK'); - const text = await page.getSnackBarMessage(); + await confirmDialog.clickOk(); - expect(text).toEqual(`You have left the library`); - expect(await dataTable.getRowByName(sitePublic3Admin).isPresent()).toBe(true, `${sitePublic3Admin} is not displayed`); + expect(await page.getSnackBarMessage()).toEqual(`You have left the library`); + expect(await dataTable.isItemPresent(sitePublic3Admin)).toBe(true, `${sitePublic3Admin} is not displayed`); }); it('Confirmation dialog UI - [C290136]', async () => { await page.goToMyLibraries(); await dataTable.selectItem(sitePublic4Admin); - await toolbar.clickButton('Leave library'); + await toolbar.clickLeave(); await page.waitForDialog(); expect(await confirmDialog.isDialogOpen()).toBe(true, 'Confirm delete dialog not open'); expect(await confirmDialog.getTitle()).toContain('Leave this library?'); expect(await confirmDialog.getText()).toContain('Leaving will remove your access.'); - expect(await confirmDialog.isButtonEnabled('OK')).toBe(true, 'OK button is not enabled'); - expect(await confirmDialog.isButtonEnabled('Cancel')).toBe(true, 'Cancel button is not enabled'); + expect(await confirmDialog.isOkEnabled()).toBe(true, 'OK button is not enabled'); + expect(await confirmDialog.isCancelEnabled()).toBe(true, 'Cancel button is not enabled'); }); it('Cancel Leave library - [C290111]', async () => { await page.goToMyLibraries(); await dataTable.selectItem(sitePublic4Admin); - await toolbar.clickButton('Leave library'); + await toolbar.clickLeave(); await page.waitForDialog(); - expect(await confirmDialog.isButtonEnabled('Cancel')).toBe(true, 'Cancel button is not enabled'); - await confirmDialog.clickButton('Cancel'); - expect(await dataTable.getRowByName(sitePublic4Admin).isPresent()).toBe(true, `${sitePublic4Admin} was deleted`); + expect(await confirmDialog.isCancelEnabled()).toBe(true, 'Cancel button is not enabled'); + await confirmDialog.clickCancel(); + expect(await dataTable.isItemPresent(sitePublic4Admin)).toBe(true, `${sitePublic4Admin} was deleted`); }); it('Leave a library - failure notification - [C290107]', async () => { await page.goToMyLibraries(); await dataTable.selectItem(sitePublicUser); - await toolbar.clickButton('Leave library'); + await toolbar.clickLeave(); await page.waitForDialog(); - await confirmDialog.clickButton('OK'); - const text = await page.getSnackBarMessage(); + await confirmDialog.clickOk(); - expect(text).toEqual(`Cannot leave this library`); + expect(await page.getSnackBarMessage()).toEqual(`Cannot leave this library`); }); it('Cancel join - Favorite Libraries - [C290108]', async () => { @@ -177,8 +174,7 @@ describe('Library actions', () => { await dataTable.selectItem(siteModerated2Admin); await toolbar.clickButton('Cancel join request'); - const text = await page.getSnackBarMessage(); - expect(text).toEqual(`Canceled the request to join the library`); + expect(await page.getSnackBarMessage()).toEqual(`Canceled the request to join the library`); const hasJoinRequest = await apis.user.sites.hasMembershipRequest(siteModerated2Admin); expect(hasJoinRequest).toBe(false, `Join request exists on ${siteModerated2Admin}`); diff --git a/e2e/suites/actions/mark-favorite.test.ts b/e2e/suites/actions/mark-favorite.test.ts index 3f4afadcb..1268b8781 100644 --- a/e2e/suites/actions/mark-favorite.test.ts +++ b/e2e/suites/actions/mark-favorite.test.ts @@ -29,525 +29,456 @@ import { RepoClient } from '../../utilities/repo-client/repo-client'; import { Utils } from '../../utilities/utils'; describe('Mark items as favorites', () => { - const username = `user-${Utils.random()}`; + const username = `user-${Utils.random()}`; - const file1NotFav = `file1-${Utils.random()}.txt`; - const file2NotFav = `file2-${Utils.random()}.txt`; - const file3Fav = `file3-${Utils.random()}.txt`; - const file4Fav = `file4-${Utils.random()}.txt`; - const folder1 = `folder-${Utils.random()}`; + const parent = `parent-${Utils.random()}`; + const fileNotFavUI = `fileNotFavUI-${Utils.random()}.txt`; + const fileFavUI = `fileFavUI-${Utils.random()}.txt`; + const fileNotFav1 = `fileNotFav1-${Utils.random()}.txt`; + const fileNotFav2 = `fileNotFav2-${Utils.random()}.txt`; + const fileNotFav3 = `fileNotFav3-${Utils.random()}.txt`; + const fileNotFav4 = `fileNotFav4-${Utils.random()}.txt`; + const fileFav1 = `fileFav1-${Utils.random()}.txt`; + const fileFav2 = `fileFav2-${Utils.random()}.txt`; + const fileFav3 = `fileFav3-${Utils.random()}.txt`; + const fileFav4 = `fileFav4-${Utils.random()}.txt`; + const folder = `folder-${Utils.random()}`; + + let fileNotFavUIId, fileFavUIId, fileNotFav1Id, fileNotFav2Id, fileNotFav3Id, fileNotFav4Id, fileFav1Id, fileFav2Id, fileFav3Id, fileFav4Id, folderId, parentId; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + const { dataTable, toolbar } = page; + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username }); + + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; + + fileNotFavUIId = (await apis.user.nodes.createFile(fileNotFavUI, parentId)).entry.id; + fileFavUIId = (await apis.user.nodes.createFile(fileFavUI, parentId)).entry.id; + fileNotFav1Id = (await apis.user.nodes.createFile(fileNotFav1, parentId)).entry.id; + fileNotFav2Id = (await apis.user.nodes.createFile(fileNotFav2, parentId)).entry.id; + fileNotFav3Id = (await apis.user.nodes.createFile(fileNotFav3, parentId)).entry.id; + fileNotFav4Id = (await apis.user.nodes.createFile(fileNotFav4, parentId)).entry.id; + fileFav1Id = (await apis.user.nodes.createFile(fileFav1, parentId)).entry.id; + fileFav2Id = (await apis.user.nodes.createFile(fileFav2, parentId)).entry.id; + fileFav3Id = (await apis.user.nodes.createFile(fileFav3, parentId)).entry.id; + fileFav4Id = (await apis.user.nodes.createFile(fileFav4, parentId)).entry.id; + folderId = (await apis.user.nodes.createFolder(folder, parentId)).entry.id; + + await apis.user.favorites.addFavoritesByIds('file', [ fileFavUIId, fileFav1Id, fileFav2Id, fileFav3Id, fileFav4Id ]); + await apis.user.favorites.waitForApi({ expect: 5 }); + + await apis.user.shared.shareFilesByIds([ fileFav1Id, fileFav2Id, fileFav3Id, fileFav4Id ]); + await apis.user.shared.shareFilesByIds([ fileNotFav1Id, fileNotFav2Id, fileNotFav3Id, fileNotFav4Id ]); + await apis.user.shared.waitForApi({ expect: 8 }); + + await loginPage.loginWith(username); + done(); + }); + + afterAll(async (done) => { + await apis.user.nodes.deleteNodeById(parentId); + done(); + }); + + xit(''); + + describe('on Personal Files', () => { + afterAll(async (done) => { + await apis.user.favorites.addFavoritesByIds('file', [ fileFavUIId, fileFav1Id, fileFav2Id, fileFav3Id, fileFav4Id ]); + await apis.user.favorites.addFavoriteById('folder', folderId); + await apis.user.favorites.removeFavoritesByIds([ fileNotFavUIId , fileNotFav1Id, fileNotFav2Id, fileNotFav3Id, fileNotFav4Id ]); + await apis.user.favorites.waitForApi({ expect: 6 }); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickPersonalFilesAndWait(); + await dataTable.doubleClickOnRowByName(parent); + done(); + }); + + it('Favorite action has empty star icon for an item not marked as favorite - [C217186]', async () => { + await dataTable.selectItem(fileNotFavUI); + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.getItemIconText('Favorite')).toEqual('star_border'); + }); + + it('Favorite action has empty star icon for multiple selection of items when some are not favorite - [C217187]', async () => { + await dataTable.selectMultipleItems([ fileNotFavUI, fileFavUI ]); + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.getItemIconText('Favorite')).toEqual('star_border'); + }); + + it('Favorite action has full star icon for items marked as favorite - [C217188]', async () => { + await dataTable.selectItem(fileFavUI); + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.getItemIconText('Favorite')).toEqual('star'); + }); + + it('favorite a file - [C217189]', async () => { + await dataTable.selectItem(fileNotFav1); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileNotFav1Id, { expect: true })).toBe(true, `${fileNotFav1} not marked as favorite`); + }); + + it('favorite a folder - [C280390]', async () => { + await dataTable.selectItem(folder); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(folderId, { expect: true })).toBe(true, `${folder} not marked as favorite`); + }); + + it('unfavorite an item - [C217190]', async () => { + await dataTable.selectItem(fileFav1); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav1Id, { expect: false })).toBe(false, `${fileFav1} is marked as favorite`); + }); + + it('favorite multiple items - all unfavorite - [C217192]', async () => { + await dataTable.selectMultipleItems([ fileNotFav2, fileNotFav3 ]); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileNotFav2Id, { expect: true })).toBe(true, `${fileNotFav2} not marked as favorite`); + expect(await apis.user.favorites.isFavoriteWithRetry(fileNotFav3Id, { expect: true })).toBe(true, `${fileNotFav3} not marked as favorite`); + }); + + it('favorite multiple items - some favorite and some unfavorite - [C217194]', async () => { + await dataTable.selectMultipleItems([ fileNotFav4, fileFav2 ]); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileNotFav4Id, { expect: true })).toBe(true, `${fileNotFav4} not marked as favorite`); + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav2Id, { expect: true })).toBe(true, `${fileFav2} not marked as favorite`); + }); + + it('unfavorite multiple items - [C217193]', async () => { + await dataTable.selectMultipleItems([ fileFav3, fileFav4 ]) + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav3Id, { expect: false })).toBe(false, `${fileFav3} marked as favorite`); + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav4Id, { expect: false })).toBe(false, `${fileFav4} marked as favorite`); + }); + }); + + describe('on Recent Files', () => { + afterAll(async (done) => { + await apis.user.favorites.addFavoritesByIds('file', [ fileFav1Id, fileFav2Id, fileFav3Id, fileFav4Id ]); + await apis.user.favorites.removeFavoritesByIds([ fileNotFav1Id, fileNotFav2Id, fileNotFav3Id, fileNotFav4Id ]); + await apis.user.favorites.waitForApi({ expect: 6 }); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickRecentFilesAndWait(); + done(); + }); + + it('favorite a file - [C280352]', async () => { + await dataTable.selectItem(fileNotFav1); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileNotFav1Id, { expect: true })).toBe(true, `${fileNotFav1} not marked as favorite`); + }); + + it('unfavorite an item - [C280353]', async () => { + await dataTable.selectItem(fileFav1); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav1Id, { expect: false })).toBe(false, `${fileFav1} is marked as favorite`); + }); + + it('favorite multiple items - all unfavorite - [C280355]', async () => { + await dataTable.selectMultipleItems([ fileNotFav2, fileNotFav3 ]); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileNotFav2Id, { expect: true })).toBe(true, `${fileNotFav2} not marked as favorite`); + expect(await apis.user.favorites.isFavoriteWithRetry(fileNotFav3Id, { expect: true })).toBe(true, `${fileNotFav3} not marked as favorite`); + }); + + it('favorite multiple items - some favorite and some unfavorite - [C280357]', async () => { + await dataTable.selectMultipleItems([ fileNotFav4, fileFav2 ]); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileNotFav4Id, { expect: true })).toBe(true, `${fileNotFav4} not marked as favorite`); + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav2Id, { expect: true })).toBe(true, `${fileFav2} not marked as favorite`); + }); + + it('unfavorite multiple items - [C280356]', async () => { + await dataTable.selectMultipleItems([ fileFav3, fileFav4 ]); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav3Id, { expect: false })).toBe(false, `${fileFav3} marked as favorite`); + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav4Id, { expect: false })).toBe(false, `${fileFav4} marked as favorite`); + }); + }); + + describe('on Shared Files', () => { + afterAll(async (done) => { + await apis.user.favorites.addFavoritesByIds('file', [ fileFav1Id, fileFav2Id, fileFav3Id, fileFav4Id ]); + await apis.user.favorites.removeFavoritesByIds([ fileNotFav1Id, fileNotFav2Id, fileNotFav3Id, fileNotFav4Id ]); + await apis.user.favorites.waitForApi({ expect: 6 }); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickSharedFilesAndWait(); + done(); + }); + + it('favorite a file - [C280362]', async () => { + await dataTable.selectItem(fileNotFav1); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileNotFav1Id, { expect: true })).toBe(true, `${fileNotFav1} not marked as favorite`); + }); + + it('unfavorite an item - [C280363]', async () => { + await dataTable.selectItem(fileFav1); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav1Id, { expect: false })).toBe(false, `${fileFav1} is marked as favorite`); + }); + + it('favorite multiple items - all unfavorite - [C280365]', async () => { + await dataTable.selectMultipleItems([ fileNotFav2, fileNotFav3 ]); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileNotFav2Id, { expect: true })).toBe(true, `${fileNotFav2} not marked as favorite`); + expect(await apis.user.favorites.isFavoriteWithRetry(fileNotFav3Id, { expect: true })).toBe(true, `${fileNotFav3} not marked as favorite`); + }); + + it('favorite multiple items - some favorite and some unfavorite - [C280367]', async () => { + await dataTable.selectMultipleItems([ fileNotFav4, fileFav2 ]); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileNotFav4Id, { expect: true })).toBe(true, `${fileNotFav4} not marked as favorite`); + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav2Id, { expect: true })).toBe(true, `${fileFav2} not marked as favorite`); + }); + + it('unfavorite multiple items - [C280366]', async () => { + await dataTable.selectMultipleItems([ fileFav3, fileFav4 ]); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav3Id, { expect: false })).toBe(false, `${fileFav3} marked as favorite`); + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav4Id, { expect: false })).toBe(false, `${fileFav4} marked as favorite`); + }); + }); + + describe('on Favorites', () => { + afterAll(async (done) => { + await apis.user.favorites.addFavoritesByIds('file', [ fileFav1Id, fileFav2Id, fileFav3Id, fileFav4Id ]); + await apis.user.favorites.removeFavoritesByIds([ fileNotFav1Id, fileNotFav2Id, fileNotFav3Id, fileNotFav4Id ]); + await apis.user.favorites.waitForApi({ expect: 6 }); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.refresh(); + await page.clickFavoritesAndWait(); + done(); + }); + + it('unfavorite an item - [C280368]', async () => { + await dataTable.selectItem(fileFav1); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav1Id, { expect: false })).toBe(false, `${fileFav1} is marked as favorite`); + expect(await dataTable.isItemPresent(fileFav1)).toBe(false, 'item still displayed'); + }); + + it('unfavorite multiple items - [C280374]', async () => { + await dataTable.selectMultipleItems([ fileFav3, fileFav4 ]); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav3Id, { expect: false })).toBe(false, `${fileFav3} marked as favorite`); + expect(await apis.user.favorites.isFavoriteWithRetry(fileFav4Id, { expect: false })).toBe(false, `${fileFav4} marked as favorite`); + expect(await dataTable.isItemPresent(fileFav3)).toBe(false, 'file3 still displayed'); + expect(await dataTable.isItemPresent(fileFav4)).toBe(false, 'file4 still displayed'); + }); + + it('Favorite action has full star icon for items marked as favorite - [C280371]', async () => { + await dataTable.selectItem(fileFav2); + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.getItemIconText('Favorite')).toEqual('star'); + }); + }); + + describe ('on File Libraries', () => { const siteName = `site-public-${Utils.random()}`; - const fileSiteNotFav1 = `file1-site-${Utils.random()}.txt`; - const fileSiteNotFav2 = `file2-site-${Utils.random()}.txt`; - const folderSite = `folder-site-${Utils.random()}`; - const fileSiteFav1 = `file3-${Utils.random()}.txt`; - const fileSiteFav2 = `file4-${Utils.random()}.txt`; - let file1Id, file2Id, file3Id, file4Id, folder1Id, fileSiteNotFav1Id, fileSiteNotFav2Id, folderSiteId, fileSiteFav1Id, fileSiteFav2Id; + const folderSite = `folderSite-${Utils.random()}`; - const apis = { - admin: new RepoClient(), - user: new RepoClient(username, username) - }; + const fileSiteNotFav1 = `fileSiteNotFav1-${Utils.random()}.txt`; + const fileSiteNotFav2 = `fileSiteNotFav2-${Utils.random()}.txt`; + const fileSiteNotFav3 = `fileSiteNotFav3-${Utils.random()}.txt`; + const fileSiteNotFav4 = `fileSiteNotFav4-${Utils.random()}.txt`; + const fileSiteFav1 = `fileSiteFav1-${Utils.random()}.txt`; + const fileSiteFav2 = `fileSiteFav2-${Utils.random()}.txt`; + const fileSiteFav3 = `fileSiteFav3-${Utils.random()}.txt`; + const fileSiteFav4 = `fileSiteFav4-${Utils.random()}.txt`; - const loginPage = new LoginPage(); - const page = new BrowsingPage(); - const { dataTable, toolbar } = page; + let folderSiteId, fileSiteNotFav1Id, fileSiteNotFav2Id, fileSiteNotFav3Id, fileSiteNotFav4Id; + let fileSiteFav1Id, fileSiteFav2Id, fileSiteFav3Id, fileSiteFav4Id; beforeAll(async (done) => { - await apis.admin.people.createUser({ username }); - file1Id = (await apis.user.nodes.createFile(file1NotFav)).entry.id; - file2Id = (await apis.user.nodes.createFile(file2NotFav)).entry.id; - file3Id = (await apis.user.nodes.createFile(file3Fav)).entry.id; - file4Id = (await apis.user.nodes.createFile(file4Fav)).entry.id; - folder1Id = (await apis.user.nodes.createFolder(folder1)).entry.id; + await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC); + const docLibId = await apis.user.sites.getDocLibId(siteName); - await apis.user.favorites.addFavoriteById('file', file3Id); - await apis.user.favorites.addFavoriteById('file', file4Id); + folderSiteId = (await apis.user.nodes.createFolder(folderSite, docLibId)).entry.id; + fileSiteNotFav1Id = (await apis.user.nodes.createFile(fileSiteNotFav1, folderSiteId)).entry.id; + fileSiteNotFav2Id = (await apis.user.nodes.createFile(fileSiteNotFav2, folderSiteId)).entry.id; + fileSiteNotFav3Id = (await apis.user.nodes.createFile(fileSiteNotFav3, folderSiteId)).entry.id; + fileSiteNotFav4Id = (await apis.user.nodes.createFile(fileSiteNotFav4, folderSiteId)).entry.id; + fileSiteFav1Id = (await apis.user.nodes.createFile(fileSiteFav1, folderSiteId)).entry.id; + fileSiteFav2Id = (await apis.user.nodes.createFile(fileSiteFav2, folderSiteId)).entry.id; + fileSiteFav3Id = (await apis.user.nodes.createFile(fileSiteFav3, folderSiteId)).entry.id; + fileSiteFav4Id = (await apis.user.nodes.createFile(fileSiteFav4, folderSiteId)).entry.id; - await apis.user.shared.shareFilesByIds([ file1Id, file2Id, file3Id, file4Id ]); + await apis.user.favorites.addFavoritesByIds('file', [ fileSiteFav1Id, fileSiteFav2Id, fileSiteFav3Id, fileSiteFav4Id ]); - await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC); - const docLibId = await apis.user.sites.getDocLibId(siteName); - folderSiteId = (await apis.user.nodes.createFolder(folderSite, docLibId)).entry.id; - fileSiteNotFav1Id = (await apis.user.nodes.createFile(fileSiteNotFav1, folderSiteId)).entry.id; - fileSiteFav1Id = (await apis.user.nodes.createFile(fileSiteFav1, folderSiteId)).entry.id; - fileSiteNotFav2Id = (await apis.user.nodes.createFile(fileSiteNotFav2, folderSiteId)).entry.id; - fileSiteFav2Id = (await apis.user.nodes.createFile(fileSiteFav2, folderSiteId)).entry.id; - await apis.user.favorites.addFavoriteById('file', fileSiteFav1Id); - await apis.user.favorites.addFavoriteById('file', fileSiteFav2Id); + await apis.user.favorites.isFavoriteWithRetry(fileSiteFav1Id, { expect: true }); + await apis.user.favorites.isFavoriteWithRetry(fileSiteFav2Id, { expect: true }); + await apis.user.favorites.isFavoriteWithRetry(fileSiteFav3Id, { expect: true }); + await apis.user.favorites.isFavoriteWithRetry(fileSiteFav4Id, { expect: true }); - await apis.user.favorites.waitForApi({ expect: 5 }); - await apis.user.search.waitForApi(username, { expect: 8 }); - await apis.user.shared.waitForApi({ expect: 4 }); - - await loginPage.loginWith(username); - done(); + done(); }); afterAll(async (done) => { - await Promise.all([ - apis.user.nodes.deleteNodesById([ file1Id, file2Id, file3Id, file4Id, folder1Id]), - apis.user.sites.deleteSite(siteName) - ]); - done(); + await apis.user.sites.deleteSite(siteName); + done(); }); - xit(''); - - describe('on Personal Files', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickPersonalFilesAndWait(); - done(); - }); - - it('Favorite action has empty star icon for an item not marked as favorite - [C217186]', async () => { - await dataTable.selectItem(file1NotFav); - await toolbar.openMoreMenu(); - expect(await toolbar.menu.getItemIconText('Favorite')).toEqual('star_border'); - }); - - it('Favorite action has empty star icon for multiple selection of items when some are not favorite - [C217187]', async () => { - await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]); - await toolbar.openMoreMenu(); - expect(await toolbar.menu.getItemIconText('Favorite')).toEqual('star_border'); - }); - - it('Favorite action has full star icon for items marked as favorite - [C217188]', async () => { - await dataTable.selectItem(file3Fav); - await toolbar.openMoreMenu(); - expect(await toolbar.menu.getItemIconText('Favorite')).toEqual('star'); - }); - - it('favorite a file - [C217189]', async () => { - await dataTable.selectItem(file1NotFav); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 6 }); - const isFavorite = await apis.user.favorites.isFavorite(file1Id); - expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`); - - await apis.user.favorites.removeFavoriteById(file1Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('favorite a folder - [C280390]', async () => { - await dataTable.selectItem(folder1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 6 }); - const isFavorite = await apis.user.favorites.isFavorite(folder1Id); - expect(isFavorite).toBe(true, `${folder1} not marked as favorite`); - - await apis.user.favorites.removeFavoriteById(folder1Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('unfavorite an item - [C217190]', async () => { - await dataTable.selectItem(file3Fav); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 4 }); - const isFavorite = await apis.user.favorites.isFavorite(file3Id); - expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`); - - await apis.user.favorites.addFavoriteById('file', file3Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('favorite multiple items - all unfavorite - [C217192]', async () => { - await dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 7 }); - const isFile1Fav = await apis.user.favorites.isFavorite(file1Id); - const isFile2Fav = await apis.user.favorites.isFavorite(file2Id); - expect(isFile1Fav).toBe(true, 'item not marked as favorite'); - expect(isFile2Fav).toBe(true, 'item not marked as favorite'); - - await apis.user.favorites.removeFavoriteById(file1Id); - await apis.user.favorites.removeFavoriteById(file2Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('favorite multiple items - some favorite and some unfavorite - [C217194]', async () => { - await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 6 }); - const isFile1Fav = await apis.user.favorites.isFavorite(file1Id); - const isFile2Fav = await apis.user.favorites.isFavorite(file3Id); - expect(isFile1Fav).toBe(true, 'item not marked as favorite'); - expect(isFile2Fav).toBe(true, 'item not marked as favorite'); - - await apis.user.favorites.removeFavoriteById(file1Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('unfavorite multiple items - [C217193]', async () => { - await dataTable.selectMultipleItems([ file3Fav, file4Fav ]) - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 3 }); - const isFile1Fav = await apis.user.favorites.isFavorite(file3Id); - const isFile2Fav = await apis.user.favorites.isFavorite(file4Id); - expect(isFile1Fav).toBe(false, 'item marked as favorite'); - expect(isFile2Fav).toBe(false, 'item marked as favorite'); - - await apis.user.favorites.addFavoriteById('file', file3Id); - await apis.user.favorites.addFavoriteById('file', file4Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickFileLibrariesAndWait(); + await page.dataTable.doubleClickOnRowByName(siteName); + await page.dataTable.waitForHeader(); + done(); }); - describe('on Recent Files', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickRecentFilesAndWait(); - done(); - }); + it('Favorite a folder - [C280391]', async () => { + await dataTable.selectItem(folderSite); + await toolbar.clickMoreActionsFavorite(); - it('favorite a file - [C280352]', async () => { - await dataTable.selectItem(file1NotFav); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 6 }); - const isFavorite = await apis.user.favorites.isFavorite(file1Id); - expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`); - - await apis.user.favorites.removeFavoriteById(file1Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('unfavorite an item - [C280353]', async () => { - await dataTable.selectItem(file3Fav); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 4 }); - const isFavorite = await apis.user.favorites.isFavorite(file3Id); - expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`); - - await apis.user.favorites.addFavoriteById('file', file3Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('favorite multiple items - all unfavorite - [C280355]', async () => { - await dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 7 }); - const isFile1Fav = await apis.user.favorites.isFavorite(file1Id); - const isFile2Fav = await apis.user.favorites.isFavorite(file2Id); - expect(isFile1Fav).toBe(true, 'item not marked as favorite'); - expect(isFile2Fav).toBe(true, 'item not marked as favorite'); - - await apis.user.favorites.removeFavoriteById(file1Id); - await apis.user.favorites.removeFavoriteById(file2Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('favorite multiple items - some favorite and some unfavorite - [C280357]', async () => { - await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 6 }); - const isFile1Fav = await apis.user.favorites.isFavorite(file1Id); - const isFile2Fav = await apis.user.favorites.isFavorite(file3Id); - expect(isFile1Fav).toBe(true, 'item not marked as favorite'); - expect(isFile2Fav).toBe(true, 'item not marked as favorite'); - - await apis.user.favorites.removeFavoriteById(file1Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('unfavorite multiple items - [C280356]', async () => { - await dataTable.selectMultipleItems([ file3Fav, file4Fav ]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 3 }); - const isFile1Fav = await apis.user.favorites.isFavorite(file3Id); - const isFile2Fav = await apis.user.favorites.isFavorite(file4Id); - expect(isFile1Fav).toBe(false, 'item marked as favorite'); - expect(isFile2Fav).toBe(false, 'item marked as favorite'); - - await apis.user.favorites.addFavoriteById('file', file3Id); - await apis.user.favorites.addFavoriteById('file', file4Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); + expect(await apis.user.favorites.isFavoriteWithRetry(folderSiteId, { expect: true })).toBe(true, `${folderSite} not marked as favorite`); }); - describe('on Shared Files', () => { - beforeAll(async (done) => { - await page.refresh(); - done(); - }); + it('Favorite a file - [C280342]', async () => { + await page.dataTable.doubleClickOnRowByName(folderSite); + await dataTable.selectItem(fileSiteNotFav1); + await toolbar.clickMoreActionsFavorite(); - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickSharedFilesAndWait(); - done(); - }); - - it('favorite a file - [C280362]', async () => { - await dataTable.selectItem(file1NotFav); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 6 }); - const isFavorite = await apis.user.favorites.isFavorite(file1Id); - expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`); - - await apis.user.favorites.removeFavoriteById(file1Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('unfavorite an item - [C280363]', async () => { - await dataTable.selectItem(file3Fav); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 4 }); - const isFavorite = await apis.user.favorites.isFavorite(file3Id); - expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`); - - await apis.user.favorites.addFavoriteById('file', file3Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('favorite multiple items - all unfavorite - [C280365]', async () => { - await dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 7 }); - const isFile1Fav = await apis.user.favorites.isFavorite(file1Id); - const isFile2Fav = await apis.user.favorites.isFavorite(file2Id); - expect(isFile1Fav).toBe(true, 'item not marked as favorite'); - expect(isFile2Fav).toBe(true, 'item not marked as favorite'); - - await apis.user.favorites.removeFavoriteById(file1Id); - await apis.user.favorites.removeFavoriteById(file2Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('favorite multiple items - some favorite and some unfavorite - [C280367]', async () => { - await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 6 }); - const isFile1Fav = await apis.user.favorites.isFavorite(file1Id); - const isFile2Fav = await apis.user.favorites.isFavorite(file3Id); - expect(isFile1Fav).toBe(true, 'item not marked as favorite'); - expect(isFile2Fav).toBe(true, 'item not marked as favorite'); - - await apis.user.favorites.removeFavoriteById(file1Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('unfavorite multiple items - [C280366]', async () => { - await dataTable.selectMultipleItems([ file3Fav, file4Fav ]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 3 }); - const isFile1Fav = await apis.user.favorites.isFavorite(file3Id); - const isFile2Fav = await apis.user.favorites.isFavorite(file4Id); - expect(isFile1Fav).toBe(false, 'item marked as favorite'); - expect(isFile2Fav).toBe(false, 'item marked as favorite'); - - await apis.user.favorites.addFavoriteById('file', file3Id); - await apis.user.favorites.addFavoriteById('file', file4Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); + expect(await apis.user.favorites.isFavoriteWithRetry(fileSiteNotFav1Id, { expect: true })).toBe(true, `${fileSiteNotFav1} not marked as favorite`); }); - describe('on Favorites', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.refresh(); - await page.clickFavoritesAndWait(); - done(); - }); + it('Unfavorite an item - [C280343]', async () => { + await page.dataTable.doubleClickOnRowByName(folderSite); + await dataTable.selectItem(fileSiteFav1); + await toolbar.clickMoreActionsFavorite(); - it('unfavorite an item - [C280368]', async () => { - await dataTable.selectItem(file3Fav); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 4 }); - const isFavorite = await apis.user.favorites.isFavorite(file3Id); - expect(isFavorite).toBe(false, 'item is marked as favorite'); - expect(await dataTable.getRowByName(file3Fav).isPresent()).toBe(false, 'item still displayed'); - - await apis.user.favorites.addFavoriteById('file', file3Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('unfavorite multiple items - [C280374]', async () => { - await dataTable.selectMultipleItems([ file3Fav, file4Fav ]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 3 }); - const isFavorite3 = await apis.user.favorites.isFavorite(file3Id); - const isFavorite4 = await apis.user.favorites.isFavorite(file4Id); - expect(isFavorite3).toBe(false, 'file3 marked as favorite'); - expect(isFavorite4).toBe(false, 'file4 marked as favorite'); - expect(await dataTable.getRowByName(file3Fav).isPresent()).toBe(false, 'file3 still displayed'); - expect(await dataTable.getRowByName(file4Fav).isPresent()).toBe(false, 'file4 still displayed'); - - await apis.user.favorites.addFavoriteById('file', file3Id); - await apis.user.favorites.addFavoriteById('file', file4Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('Favorite action has full star icon for items marked as favorite - [C280371]', async () => { - await dataTable.selectItem(file3Fav); - await toolbar.openMoreMenu(); - expect(await toolbar.menu.getItemIconText('Favorite')).toEqual('star'); - }); + expect(await apis.user.favorites.isFavoriteWithRetry(fileSiteFav1Id, { expect: false })).toBe(false, `${fileSiteFav1} is marked as favorite`); }); - describe ('on File Libraries', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickFileLibrariesAndWait(); - await page.dataTable.doubleClickOnRowByName(siteName); - await page.dataTable.waitForHeader(); - done(); - }); + it('Favorite multiple items - all unfavorite - [C280345]', async () => { + await page.dataTable.doubleClickOnRowByName(folderSite); + await dataTable.selectMultipleItems([ fileSiteNotFav2, fileSiteNotFav3 ]); + await toolbar.clickMoreActionsFavorite(); - it('Favorite a folder - [C280391]', async () => { - await dataTable.selectItem(folderSite); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 6 }); - const isFavorite = await apis.user.favorites.isFavorite(folderSiteId); - expect(isFavorite).toBe(true, `${folderSite} not marked as favorite`); - await apis.user.favorites.removeFavoriteById(folderSiteId); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('Favorite a file - [C280342]', async () => { - await page.dataTable.doubleClickOnRowByName(folderSite); - await dataTable.selectItem(fileSiteNotFav1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 6 }); - const isFavorite = await apis.user.favorites.isFavorite(fileSiteNotFav1Id); - expect(isFavorite).toBe(true, `${fileSiteNotFav1} not marked as favorite`); - await apis.user.favorites.removeFavoriteById(fileSiteNotFav1Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('Unfavorite an item - [C280343]', async () => { - await page.dataTable.doubleClickOnRowByName(folderSite); - await dataTable.selectItem(fileSiteFav1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 4 }); - const isFavorite = await apis.user.favorites.isFavorite(fileSiteFav1Id); - expect(isFavorite).toBe(false, `${fileSiteFav1} is marked as favorite`); - await apis.user.favorites.addFavoriteById('file', fileSiteFav1Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('Favorite multiple items - all unfavorite - [C280345]', async () => { - await page.dataTable.doubleClickOnRowByName(folderSite); - await dataTable.selectMultipleItems([ fileSiteNotFav1, fileSiteNotFav2 ]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 7 }); - - const isFile1Fav = await apis.user.favorites.isFavorite(fileSiteNotFav1Id); - const isFile2Fav = await apis.user.favorites.isFavorite(fileSiteNotFav2Id); - expect(isFile1Fav).toBe(true, 'item not marked as favorite'); - expect(isFile2Fav).toBe(true, 'item not marked as favorite'); - await apis.user.favorites.removeFavoriteById(fileSiteNotFav1Id); - await apis.user.favorites.removeFavoriteById(fileSiteNotFav2Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('Unfavorite multiple items - [C280346]', async () => { - await page.dataTable.doubleClickOnRowByName(folderSite); - await dataTable.selectMultipleItems([ fileSiteFav1, fileSiteFav2 ]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 3 }); - const isFile1Fav = await apis.user.favorites.isFavorite(fileSiteFav1Id); - const isFile2Fav = await apis.user.favorites.isFavorite(fileSiteFav2Id); - expect(isFile1Fav).toBe(false, 'item marked as favorite'); - expect(isFile2Fav).toBe(false, 'item marked as favorite'); - await apis.user.favorites.addFavoriteById('file', fileSiteFav1Id); - await apis.user.favorites.addFavoriteById('file', fileSiteFav2Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); - - it('Favorite multiple items - some favorite and some unfavorite - [C280347]', async () => { - await page.dataTable.doubleClickOnRowByName(folderSite); - await dataTable.selectMultipleItems([ fileSiteNotFav1, fileSiteFav1 ]); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - await apis.user.favorites.waitForApi({ expect: 6 }); - - const isFile1Fav = await apis.user.favorites.isFavorite(fileSiteNotFav1Id); - const isFile2Fav = await apis.user.favorites.isFavorite(fileSiteFav1); - expect(isFile1Fav).toBe(true, 'item not marked as favorite'); - expect(isFile2Fav).toBe(true, 'item not marked as favorite'); - await apis.user.favorites.removeFavoriteById(fileSiteNotFav1Id); - await apis.user.favorites.waitForApi({ expect: 5 }); - }); + expect(await apis.user.favorites.isFavoriteWithRetry(fileSiteNotFav2Id, { expect: true })).toBe(true, 'item not marked as favorite'); + expect(await apis.user.favorites.isFavoriteWithRetry(fileSiteNotFav3Id, { expect: true })).toBe(true, 'item not marked as favorite'); }); - describe('on a library', () => { - const adminSite1 = `adminSite1-${Utils.random()}`; - const adminSite2 = `adminSite2-${Utils.random()}`; - const adminSite3 = `adminSite3-${Utils.random()}`; + it('Unfavorite multiple items - [C280346]', async () => { + await page.dataTable.doubleClickOnRowByName(folderSite); + await dataTable.selectMultipleItems([ fileSiteFav2, fileSiteFav3 ]); + await toolbar.clickMoreActionsFavorite(); - beforeAll(async (done) => { - await apis.admin.sites.createSite(adminSite1); - await apis.admin.sites.createSite(adminSite2); - await apis.admin.sites.createSite(adminSite3); - await apis.admin.sites.addSiteMember(adminSite1, username, SITE_ROLES.SITE_CONSUMER.ROLE); - await apis.admin.sites.addSiteMember(adminSite2, username, SITE_ROLES.SITE_CONSUMER.ROLE); - await apis.admin.sites.addSiteMember(adminSite3, username, SITE_ROLES.SITE_CONSUMER.ROLE); - - await apis.user.favorites.addFavoriteById('site', adminSite2); - await apis.user.favorites.addFavoriteById('site', adminSite3); - done(); - }); - - beforeEach(async (done) => { - await Utils.pressEscape(); - done(); - }); - - afterAll(async (done) => { - await apis.admin.sites.deleteSite(adminSite1); - await apis.admin.sites.deleteSite(adminSite2); - await apis.admin.sites.deleteSite(adminSite3); - done(); - }); - - it('Mark a library as favorite - [C289974]', async () => { - await page.goToMyLibraries(); - await dataTable.selectItem(adminSite1); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - expect(await apis.user.favorites.isFavoriteWithRetry(adminSite1, { expect: true })).toBe(true, `${adminSite1} not favorite`); - }); - - it('Remove a library from favorites - on My Libraries - [C289975]', async () => { - await page.goToMyLibraries(); - await dataTable.selectItem(adminSite2); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - expect(await apis.user.favorites.isFavoriteWithRetry(adminSite2, { expect: false })).toBe(false, `${adminSite2} still favorite`); - }); - - it('Remove a library from favorites - on Favorite Libraries - [C289976]', async () => { - await page.goToFavoriteLibraries(); - await dataTable.selectItem(adminSite3); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); - expect(await dataTable.getRowByName(adminSite3).isPresent()).toBe(false, `${adminSite3} is displayed`); - expect(await apis.user.favorites.isFavoriteWithRetry(adminSite3, { expect: false })).toBe(false, `${adminSite3} still favorite`); - }); + expect(await apis.user.favorites.isFavoriteWithRetry(fileSiteFav2Id, { expect: false })).toBe(false, 'item marked as favorite'); + expect(await apis.user.favorites.isFavoriteWithRetry(fileSiteFav3Id, { expect: false })).toBe(false, 'item marked as favorite'); }); + + it('Favorite multiple items - some favorite and some unfavorite - [C280347]', async () => { + await page.dataTable.doubleClickOnRowByName(folderSite); + await dataTable.selectMultipleItems([ fileSiteNotFav4, fileSiteFav4 ]); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(fileSiteNotFav4Id, { expect: true })).toBe(true, 'item not marked as favorite'); + expect(await apis.user.favorites.isFavoriteWithRetry(fileSiteFav4Id, { expect: true })).toBe(true, 'item not marked as favorite'); + }); + }); + + describe('on a library', () => { + const adminSite1 = `adminSite1-${Utils.random()}`; + const adminSite2 = `adminSite2-${Utils.random()}`; + const adminSite3 = `adminSite3-${Utils.random()}`; + + beforeAll(async (done) => { + await apis.admin.sites.createSite(adminSite1); + await apis.admin.sites.createSite(adminSite2); + await apis.admin.sites.createSite(adminSite3); + await apis.admin.sites.addSiteMember(adminSite1, username, SITE_ROLES.SITE_CONSUMER.ROLE); + await apis.admin.sites.addSiteMember(adminSite2, username, SITE_ROLES.SITE_CONSUMER.ROLE); + await apis.admin.sites.addSiteMember(adminSite3, username, SITE_ROLES.SITE_CONSUMER.ROLE); + + await apis.user.favorites.addFavoriteById('site', adminSite2); + await apis.user.favorites.addFavoriteById('site', adminSite3); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + afterAll(async (done) => { + await apis.admin.sites.deleteSite(adminSite1); + await apis.admin.sites.deleteSite(adminSite2); + await apis.admin.sites.deleteSite(adminSite3); + done(); + }); + + it('Mark a library as favorite - [C289974]', async () => { + await page.goToMyLibraries(); + await dataTable.selectItem(adminSite1); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(adminSite1, { expect: true })).toBe(true, `${adminSite1} not favorite`); + }); + + it('Remove a library from favorites - on My Libraries - [C289975]', async () => { + await page.goToMyLibraries(); + await dataTable.selectItem(adminSite2); + await toolbar.clickMoreActionsFavorite(); + + expect(await apis.user.favorites.isFavoriteWithRetry(adminSite2, { expect: false })).toBe(false, `${adminSite2} still favorite`); + }); + + it('Remove a library from favorites - on Favorite Libraries - [C289976]', async () => { + await page.goToFavoriteLibraries(); + await dataTable.selectItem(adminSite3); + await toolbar.clickMoreActionsFavorite(); + + expect(await dataTable.isItemPresent(adminSite3)).toBe(false, `${adminSite3} is displayed`); + expect(await apis.user.favorites.isFavoriteWithRetry(adminSite3, { expect: false })).toBe(false, `${adminSite3} still favorite`); + }); + }); }); diff --git a/e2e/suites/actions/new-menu.test.ts b/e2e/suites/actions/new-menu.test.ts index 5ea766fe4..e9764eb35 100755 --- a/e2e/suites/actions/new-menu.test.ts +++ b/e2e/suites/actions/new-menu.test.ts @@ -70,44 +70,40 @@ describe('New menu', () => { await page.clickPersonalFiles(); await sidenav.openNewMenu(); - expect(await sidenav.menu.isMenuItemPresent('Create folder')).toBe(true, 'Create Folder option not present'); - expect(await sidenav.menu.isMenuItemPresent('Create Library')).toBe(true, 'Create Library option not present'); - expect(await sidenav.menu.isMenuItemPresent('Upload file')).toBe(true, 'Upload File option not present'); - expect(await sidenav.menu.isMenuItemPresent('Upload folder')).toBe(true, 'Upload Folder option not present'); + expect(await sidenav.menu.isCreateFolderPresent()).toBe(true, 'Create Folder option not present'); + expect(await sidenav.menu.isCreateLibraryPresent()).toBe(true, 'Create Library option not present'); + expect(await sidenav.menu.isUploadFilePresent()).toBe(true, 'Upload File option not present'); + expect(await sidenav.menu.isUploadFolderPresent()).toBe(true, 'Upload Folder option not present'); - expect(await sidenav.menu.getItemByLabel('Create Library').isEnabled()).toBe(true, 'Create Library is not enabled'); + expect(await sidenav.menu.isCreateLibraryEnabled()).toBe(true, 'Create Library is not enabled'); }); it('Create folder is enabled when having enough permissions - Personal Files - [C216339]', async () => { await page.clickPersonalFiles(); await page.sidenav.openNewMenu(); - const isEnabled = await sidenav.menu.getItemByLabel('Create folder').isEnabled(); - expect(isEnabled).toBe(true, 'Create folder is not enabled'); + expect(await sidenav.menu.isCreateFolderEnabled()).toBe(true, 'Create folder is not enabled'); }); it('Create folder is enabled when having enough permissions - File Libraries - [C280393]', async () => { await page.clickFileLibraries(); await page.dataTable.doubleClickOnRowByName(siteUser); await page.sidenav.openNewMenu(); - const isEnabled = await sidenav.menu.getItemByLabel('Create folder').isEnabled(); - expect(isEnabled).toBe(true, 'Create folder is not enabled'); + expect(await sidenav.menu.isCreateFolderEnabled()).toBe(true, 'Create folder is not enabled'); }); it('Create folder is disabled when not enough permissions - [C280397]', async () => { await page.clickFileLibraries(); await dataTable.doubleClickOnRowByName(siteAdmin); await sidenav.openNewMenu(); - const isEnabled = await sidenav.menu.getItemByLabel('Create folder').isEnabled(); - expect(isEnabled).toBe(false, 'Create folder is not disabled'); + expect(await sidenav.menu.isCreateFolderEnabled()).toBe(false, 'Create folder is not disabled'); }); it('Upload File option is enabled when having enough permissions - on Personal Files - [C217145]', async () => { await page.clickPersonalFiles(); await sidenav.openNewMenu(); - const isEnabled = await sidenav.menu.getItemByLabel('Upload file').isEnabled(); - expect(isEnabled).toBe(true, 'Upload file is not enabled in Personal Files'); + expect(await sidenav.menu.isUploadFileEnabled()).toBe(true, 'Upload file is not enabled in Personal Files'); }); it('Upload File option is enabled when having permissions - on File Libraries - [C290142]', async () => { @@ -115,8 +111,7 @@ describe('New menu', () => { await dataTable.doubleClickOnRowByName(siteUser); await sidenav.openNewMenu(); - const isEnabled = await sidenav.menu.getItemByLabel('Upload file').isEnabled(); - expect(isEnabled).toBe(true, 'Upload file is not enabled in File Libraries'); + expect(await sidenav.menu.isUploadFileEnabled()).toBe(true, 'Upload file is not enabled in File Libraries'); }); it('Upload File option is disabled when user cannot create content in that location - [C217146]', async () => { @@ -124,16 +119,14 @@ describe('New menu', () => { await dataTable.doubleClickOnRowByName(siteAdmin); await sidenav.openNewMenu(); - const isEnabled = await sidenav.menu.getItemByLabel('Upload file').isEnabled(); - expect(isEnabled).toBe(false, 'Upload file is not disabled'); + expect(await sidenav.menu.isUploadFileEnabled()).toBe(false, 'Upload file is not disabled'); }); it('Upload Folder option is enabled when having enough permissions - on Personal Files - [C213196]', async () => { await page.clickPersonalFiles(); await sidenav.openNewMenu(); - const isEnabled = await sidenav.menu.getItemByLabel('Upload folder').isEnabled(); - expect(isEnabled).toBe(true, 'Upload folder is not enabled in Personal Files'); + expect(await sidenav.menu.isUploadFolderEnabled()).toBe(true, 'Upload folder is not enabled in Personal Files'); }); it('Upload Folder option is enabled when having permissions - on File Libraries - [C290146]', async () => { @@ -141,8 +134,7 @@ describe('New menu', () => { await dataTable.doubleClickOnRowByName(siteUser); await sidenav.openNewMenu(); - const isEnabled = await sidenav.menu.getItemByLabel('Upload folder').isEnabled(); - expect(isEnabled).toBe(true, 'Upload folder is not enabled in File Libraries'); + expect(await sidenav.menu.isUploadFolderEnabled()).toBe(true, 'Upload folder is not enabled in File Libraries'); }); it('Upload Folder option is disabled when user cannot create content in that location - [C213193]', async () => { @@ -150,8 +142,7 @@ describe('New menu', () => { await dataTable.doubleClickOnRowByName(siteAdmin); await sidenav.openNewMenu(); - const isEnabled = await sidenav.menu.getItemByLabel('Upload folder').isEnabled(); - expect(isEnabled).toBe(false, 'Upload folder is not disabled'); + expect(await sidenav.menu.isUploadFolderEnabled()).toBe(false, 'Upload folder is not disabled'); }); it('Create folder enabled button tooltip - [C216342]', async () => { diff --git a/e2e/suites/actions/permanently-delete.test.ts b/e2e/suites/actions/permanently-delete.test.ts index 68427f3af..f42ea1d5f 100755 --- a/e2e/suites/actions/permanently-delete.test.ts +++ b/e2e/suites/actions/permanently-delete.test.ts @@ -79,59 +79,55 @@ describe('Permanently delete from Trash', () => { it('delete a file - [C217091]', async () => { await dataTable.selectItem(file1); - await toolbar.getButtonByTitleAttribute('Permanently delete').click(); + await toolbar.clickPermanentlyDelete(); await page.waitForDialog(); - await confirmDialog.clickButton('Delete'); - const text = await page.getSnackBarMessage(); + await confirmDialog.clickDelete(); - expect(text).toEqual(`${file1} deleted`); - expect(await dataTable.getRowByName(file1).isPresent()).toBe(false, 'Item was not deleted'); + expect(await page.getSnackBarMessage()).toEqual(`${file1} deleted`); + expect(await dataTable.isItemPresent(file1)).toBe(false, 'Item was not deleted'); }); it('delete a folder - [C280416]', async () => { await dataTable.selectItem(folder1); - await toolbar.getButtonByTitleAttribute('Permanently delete').click(); + await toolbar.clickPermanentlyDelete(); await page.waitForDialog(); - await confirmDialog.clickButton('Delete'); - const text = await page.getSnackBarMessage(); + await confirmDialog.clickDelete(); - expect(text).toEqual(`${folder1} deleted`); - expect(await dataTable.getRowByName(folder1).isPresent()).toBe(false, 'Item was not deleted'); + expect(await page.getSnackBarMessage()).toEqual(`${folder1} deleted`); + expect(await dataTable.isItemPresent(folder1)).toBe(false, 'Item was not deleted'); }); it('delete a library - [C290103]', async () => { await dataTable.selectItem(site); - await toolbar.getButtonByTitleAttribute('Permanently delete').click(); + await toolbar.clickPermanentlyDelete(); await page.waitForDialog(); - await confirmDialog.clickButton('Delete'); - const text = await page.getSnackBarMessage(); + await confirmDialog.clickDelete(); - expect(text).toEqual(`${site} deleted`); - expect(await dataTable.getRowByName(site).isPresent()).toBe(false, `${site} was not deleted`); + expect(await page.getSnackBarMessage()).toEqual(`${site} deleted`); + expect(await dataTable.isItemPresent(site)).toBe(false, `${site} was not deleted`); }); it('delete multiple items - [C280417]', async () => { await dataTable.selectMultipleItems([ file2, folder2 ]); - await toolbar.getButtonByTitleAttribute('Permanently delete').click(); + await toolbar.clickPermanentlyDelete(); await page.waitForDialog(); - await confirmDialog.clickButton('Delete'); - const text = await page.getSnackBarMessage(); + await confirmDialog.clickDelete(); - expect(text).toEqual(`2 items deleted`); - expect(await dataTable.getRowByName(file2).isPresent()).toBe(false, 'Item was not deleted'); - expect(await dataTable.getRowByName(folder2).isPresent()).toBe(false, 'Item was not deleted'); + expect(await page.getSnackBarMessage()).toEqual(`2 items deleted`); + expect(await dataTable.isItemPresent(file2)).toBe(false, 'Item was not deleted'); + expect(await dataTable.isItemPresent(folder2)).toBe(false, 'Item was not deleted'); }); it('Confirmation dialog UI - [C269113]', async () => { await dataTable.selectItem(file3); - await toolbar.getButtonByTitleAttribute('Permanently delete').click(); + await toolbar.clickPermanentlyDelete(); await page.waitForDialog(); expect(await confirmDialog.isDialogOpen()).toBe(true, 'Confirm delete dialog not open'); expect(await confirmDialog.getTitle()).toContain('Delete from trash'); expect(await confirmDialog.getText()).toContain('This will permanently remove the selected item(s)'); - expect(await confirmDialog.isButtonEnabled('Delete')).toBe(true, 'DELETE button is not enabled'); - expect(await confirmDialog.isButtonEnabled('Keep')).toBe(true, 'KEEP button is not enabled'); + expect(await confirmDialog.isDeleteEnabled()).toBe(true, 'DELETE button is not enabled'); + expect(await confirmDialog.isKeepEnabled()).toBe(true, 'KEEP button is not enabled'); await Utils.pressEscape(); await dataTable.clearSelection(); @@ -139,11 +135,11 @@ describe('Permanently delete from Trash', () => { it('Keep action cancels the deletion - [C269115]', async () => { await dataTable.selectItem(file3); - await toolbar.getButtonByTitleAttribute('Permanently delete').click(); + await toolbar.clickPermanentlyDelete(); await page.waitForDialog(); - expect(await confirmDialog.isButtonEnabled('Keep')).toBe(true, 'KEEP button is not enabled'); - await confirmDialog.clickButton('Keep'); - expect(await dataTable.getRowByName(file3).isPresent()).toBe(true, 'Item was deleted'); + expect(await confirmDialog.isKeepEnabled()).toBe(true, 'KEEP button is not enabled'); + await confirmDialog.clickKeep(); + expect(await dataTable.isItemPresent(file3)).toBe(true, 'Item was deleted'); }); }); diff --git a/e2e/suites/actions/restore.test.ts b/e2e/suites/actions/restore.test.ts index 7d4499c19..94b9c0a55 100755 --- a/e2e/suites/actions/restore.test.ts +++ b/e2e/suites/actions/restore.test.ts @@ -81,59 +81,59 @@ describe('Restore from Trash', () => { it('restore file - [C217177]', async () => { await dataTable.selectItem(file); - await toolbar.getButtonByTitleAttribute('Restore').click(); + await toolbar.clickRestore(); const text = await page.getSnackBarMessage(); expect(text).toContain(`${file} restored`); expect(text).toContain(`View`); - expect(await dataTable.getRowByName(file).isPresent()).toBe(false, 'Item was not removed from list'); + expect(await dataTable.isItemPresent(file)).toBe(false, 'Item was not removed from list'); await page.clickPersonalFilesAndWait(); - expect(await page.dataTable.getRowByName(file).isPresent()).toBe(true, 'Item not displayed in list'); + expect(await page.dataTable.isItemPresent(file)).toBe(true, 'Item not displayed in list'); await apis.user.nodes.deleteNodeById(fileId, false); }); it('restore folder - [C280438]', async () => { await dataTable.selectItem(folder); - await toolbar.getButtonByTitleAttribute('Restore').click(); + await toolbar.clickRestore(); const text = await page.getSnackBarMessage(); expect(text).toContain(`${folder} restored`); expect(text).toContain(`View`); - expect(await dataTable.getRowByName(folder).isPresent()).toBe(false, 'Item was not removed from list'); + expect(await dataTable.isItemPresent(folder)).toBe(false, 'Item was not removed from list'); await page.clickPersonalFilesAndWait(); - expect(await page.dataTable.getRowByName(folder).isPresent()).toBe(true, 'Item not displayed in list'); + expect(await page.dataTable.isItemPresent(folder)).toBe(true, 'Item not displayed in list'); await apis.user.nodes.deleteNodeById(folderId, false); }); it('restore library - [C290104]', async () => { await dataTable.selectItem(site); - await toolbar.getButtonByTitleAttribute('Restore').click(); + await toolbar.clickRestore(); const text = await page.getSnackBarMessage(); expect(text).toContain(`${site} restored`); expect(text).toContain(`View`); - expect(await dataTable.getRowByName(site).isPresent()).toBe(false, `${site} was not removed from list`); + expect(await dataTable.isItemPresent(site)).toBe(false, `${site} was not removed from list`); await page.clickFileLibrariesAndWait(); - expect(await page.dataTable.getRowByName(site).isPresent()).toBe(true, `${site} not displayed in list`); + expect(await page.dataTable.isItemPresent(site)).toBe(true, `${site} not displayed in list`); }); it('restore multiple items - [C217182]', async () => { await dataTable.selectMultipleItems([file, folder]); - await toolbar.getButtonByTitleAttribute('Restore').click(); + await toolbar.clickRestore(); const text = await page.getSnackBarMessage(); expect(text).toContain(`Restore successful`); expect(text).not.toContain(`View`); - expect(await dataTable.getRowByName(file).isPresent()).toBe(false, 'Item was not removed from list'); - expect(await dataTable.getRowByName(folder).isPresent()).toBe(false, 'Item was not removed from list'); + expect(await dataTable.isItemPresent(file)).toBe(false, 'Item was not removed from list'); + expect(await dataTable.isItemPresent(folder)).toBe(false, 'Item was not removed from list'); await page.clickPersonalFilesAndWait(); - expect(await page.dataTable.getRowByName(file).isPresent()).toBe(true, 'Item not displayed in list'); - expect(await page.dataTable.getRowByName(folder).isPresent()).toBe(true, 'Item not displayed in list'); + expect(await page.dataTable.isItemPresent(file)).toBe(true, 'Item not displayed in list'); + expect(await page.dataTable.isItemPresent(folder)).toBe(true, 'Item not displayed in list'); await apis.user.nodes.deleteNodesById([fileId, folderId], false); }); it('View from notification - [C217181]', async () => { await dataTable.selectItem(file); - await toolbar.getButtonByTitleAttribute('Restore').click(); + await toolbar.clickRestore(); await page.clickSnackBarAction(); await page.dataTable.waitForHeader(); expect(await page.sidenav.isActive('Personal Files')).toBe(true, 'Personal Files sidebar link not active'); @@ -184,17 +184,15 @@ describe('Restore from Trash', () => { it('Restore a file when another file with same name exists on the restore location - [C217178]', async () => { await page.clickTrashAndWait(); await dataTable.selectItem(file1); - await toolbar.getButtonByTitleAttribute('Restore').click(); - const text = await page.getSnackBarMessage(); - expect(text).toEqual(`Can't restore, ${file1} already exists`); + await toolbar.clickRestore(); + expect(await page.getSnackBarMessage()).toEqual(`Can't restore, ${file1} already exists`); }); it('Restore a file when original location no longer exists - [C217179]', async () => { await page.clickTrashAndWait(); await dataTable.selectItem(file2); - await toolbar.getButtonByTitleAttribute('Restore').click(); - const text = await page.getSnackBarMessage(); - expect(text).toEqual(`Can't restore ${file2}, the original location no longer exists`); + await toolbar.clickRestore(); + expect(await page.getSnackBarMessage()).toEqual(`Can't restore ${file2}, the original location no longer exists`); }); }); @@ -254,16 +252,14 @@ describe('Restore from Trash', () => { it('one failure - [C217183]', async () => { await dataTable.selectMultipleItems([file1, file2]); - await toolbar.getButtonByTitleAttribute('Restore').click(); - const text = await page.getSnackBarMessage(); - expect(text).toEqual(`Can't restore ${file1}, the original location no longer exists`); + await toolbar.clickRestore(); + expect(await page.getSnackBarMessage()).toEqual(`Can't restore ${file1}, the original location no longer exists`); }); it('multiple failures - [C217184]', async () => { await dataTable.selectMultipleItems([file3, file4, file5]); - await toolbar.getButtonByTitleAttribute('Restore').click(); - const text = await page.getSnackBarMessage(); - expect(text).toEqual('2 items not restored because of issues with the restore location'); + await toolbar.clickRestore(); + expect(await page.getSnackBarMessage()).toEqual('2 items not restored because of issues with the restore location'); }); }); }); diff --git a/e2e/suites/actions/share-file.test.ts b/e2e/suites/actions/share-file.test.ts index 607ee4eec..1cec0703c 100755 --- a/e2e/suites/actions/share-file.test.ts +++ b/e2e/suites/actions/share-file.test.ts @@ -120,7 +120,7 @@ describe('Share a file', () => { it('Share dialog default values - [C286327]', async () => { await dataTable.selectItem(file1); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.getTitle()).toEqual(`Share ${file1}`); @@ -131,38 +131,38 @@ describe('Share a file', () => { expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked'); expect(await shareDialog.getLabels().get(1).getText()).toEqual('Expires on'); expect(await shareDialog.isExpireToggleEnabled()).toBe(false, 'Expire toggle is checked'); - expect(await shareDialog.closeButton.isEnabled()).toBe(true, 'Close button is not enabled'); + expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled'); }); it('Close dialog - [C286328]', async () => { await dataTable.selectItem(file2); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); - expect(await shareDialog.closeButton.isEnabled()).toBe(true, 'Close button is not enabled'); + expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled'); await shareDialog.clickClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog is open'); }); it('Share a file - [C286329]', async () => { await dataTable.selectItem(file3); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await Utils.pressEscape(); - const sharedId = await apis.user.nodes.getNodeProperty(file3Id, 'qshare:sharedId'); + const sharedId = await apis.user.nodes.getSharedId(file3Id); expect(await apis.user.nodes.isFileShared(file3Id)).toBe(true, `${file3} is not shared`); expect(url).toContain(sharedId); // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file3).isPresent()).toBe(true, `${file3} is not in the Shared files list`); + // expect(await dataTable.isItemPresent(file3)).toBe(true, `${file3} is not in the Shared files list`); }); it('Copy shared file URL - [C286330]', async () => { await dataTable.selectItem(file4); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); expect(url).toContain('/preview/s/'); @@ -179,7 +179,7 @@ describe('Share a file', () => { it('Share a file with expiration date - [C286332]', async () => { await dataTable.selectItem(file5); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); await shareDialog.clickExpirationToggle(); @@ -193,17 +193,17 @@ describe('Share a file', () => { expect(new Date(inputDate)).toEqual(new Date(setDate)); - const expireDateProperty = await apis.user.nodes.getNodeProperty(file5Id, 'qshare:expiryDate'); + const expireDateProperty = await apis.user.nodes.getSharedExpiryDate(file5Id); expect(Utils.formatDate(expireDateProperty)).toEqual(Utils.formatDate(inputDate)); }); it('Expire date is displayed correctly - [C286337]', async () => { await dataTable.selectItem(file6); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); - const expireProperty = await apis.user.nodes.getNodeProperty(file6Id, 'qshare:expiryDate'); + const expireProperty = await apis.user.nodes.getSharedExpiryDate(file6Id); expect(expireProperty).toEqual(expiryDate); expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expiration is not checked'); expect(Utils.formatDate(await shareDialog.getExpireDate())).toEqual(Utils.formatDate(expiryDate)); @@ -211,7 +211,7 @@ describe('Share a file', () => { it('Disable the share link expiration - [C286333]', async () => { await dataTable.selectItem(file7); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expiration is not checked'); @@ -222,12 +222,12 @@ describe('Share a file', () => { expect(await shareDialog.getExpireDate()).toBe('', 'Expire date input is not empty'); await shareDialog.clickClose(); - expect(await apis.user.nodes.getNodeProperty(file7Id, 'qshare:expiryDate')).toBe(undefined, `${file7} link still has expiration`); + expect(await apis.user.nodes.getSharedExpiryDate(file7Id)).toBe(undefined, `${file7} link still has expiration`); }); it('Shared file URL is not changed when Share dialog is closed and opened again - [C286335]', async () => { await dataTable.selectItem(file8); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url1 = await shareDialog.getLinkUrl(); await shareDialog.clickClose(); @@ -235,7 +235,7 @@ describe('Share a file', () => { await page.dataTable.clearSelection(); await dataTable.selectItem(file8); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url2 = await shareDialog.getLinkUrl(); @@ -244,18 +244,18 @@ describe('Share a file', () => { it('Share a file from the context menu - [C286345]', async () => { await dataTable.rightClickOnItem(file9); - await contextMenu.clickShareAction(); + await contextMenu.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await Utils.pressEscape(); - const sharedId = await apis.user.nodes.getNodeProperty(file9Id, 'qshare:sharedId'); + const sharedId = await apis.user.nodes.getSharedId(file9Id); expect(await apis.user.nodes.isFileShared(file9Id)).toBe(true, `${file9} is not shared`); expect(url).toContain(sharedId); // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file9).isPresent()).toBe(true, `${file9} is not in the Shared files list`); + // expect(await dataTable.isItemPresent(file9)).toBe(true, `${file9} is not in the Shared files list`); }); }); @@ -316,7 +316,7 @@ describe('Share a file', () => { it('Share dialog default values - [C286639]', async () => { await dataTable.selectItem(file1); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.getTitle()).toEqual(`Share ${file1}`); @@ -327,38 +327,38 @@ describe('Share a file', () => { expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked'); expect(await shareDialog.getLabels().get(1).getText()).toEqual('Expires on'); expect(await shareDialog.isExpireToggleEnabled()).toBe(false, 'Expire toggle is checked'); - expect(await shareDialog.closeButton.isEnabled()).toBe(true, 'Close button is not enabled'); + expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled'); }); it('Close dialog - [C286640]', async () => { await dataTable.selectItem(file2); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); - expect(await shareDialog.closeButton.isEnabled()).toBe(true, 'Close button is not enabled'); + expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled'); await shareDialog.clickClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog is open'); }); it('Share a file - [C286641]', async () => { await dataTable.selectItem(file3); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await Utils.pressEscape(); - const sharedId = await apis.user.nodes.getNodeProperty(file3Id, 'qshare:sharedId'); + const sharedId = await apis.user.nodes.getSharedId(file3Id); expect(await apis.user.nodes.isFileShared(file3Id)).toBe(true, `${file3} is not shared`); expect(url).toContain(sharedId); // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file3).isPresent()).toBe(true, `${file3} is not in the Shared files list`); + // expect(await dataTable.isItemPresent(file3)).toBe(true, `${file3} is not in the Shared files list`); }); it('Copy shared file URL - [C286642]', async () => { await dataTable.selectItem(file4); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); expect(url).toContain('/preview/s/'); @@ -375,7 +375,7 @@ describe('Share a file', () => { it('Share a file with expiration date - [C286643]', async () => { await dataTable.selectItem(file5); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); await shareDialog.clickExpirationToggle(); @@ -389,17 +389,17 @@ describe('Share a file', () => { expect(new Date(inputDate)).toEqual(new Date(setDate)); - const expireDateProperty = await apis.user.nodes.getNodeProperty(file5Id, 'qshare:expiryDate'); + const expireDateProperty = await apis.user.nodes.getSharedExpiryDate(file5Id); expect(Utils.formatDate(expireDateProperty)).toEqual(Utils.formatDate(inputDate)); }); it('Expire date is displayed correctly - [C286644]', async () => { await dataTable.selectItem(file6); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); - const expireProperty = await apis.user.nodes.getNodeProperty(file6Id, 'qshare:expiryDate'); + const expireProperty = await apis.user.nodes.getSharedExpiryDate(file6Id); expect(expireProperty).toEqual(expiryDate); expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expiration is not checked'); expect(Utils.formatDate(await shareDialog.getExpireDate())).toEqual(Utils.formatDate(expiryDate)); @@ -407,7 +407,7 @@ describe('Share a file', () => { it('Disable the share link expiration - [C286645]', async () => { await dataTable.selectItem(file7); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expiration is not checked'); @@ -418,12 +418,12 @@ describe('Share a file', () => { expect(await shareDialog.getExpireDate()).toBe('', 'Expire date input is not empty'); await shareDialog.clickClose(); - expect(await apis.user.nodes.getNodeProperty(file7Id, 'qshare:expiryDate')).toBe(undefined, `${file7} link still has expiration`); + expect(await apis.user.nodes.getSharedExpiryDate(file7Id)).toBe(undefined, `${file7} link still has expiration`); }); it('Shared file URL is not changed when Share dialog is closed and opened again - [C286646]', async () => { await dataTable.selectItem(file8); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url1 = await shareDialog.getLinkUrl(); await shareDialog.clickClose(); @@ -431,7 +431,7 @@ describe('Share a file', () => { await page.dataTable.clearSelection(); await dataTable.selectItem(file8); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url2 = await shareDialog.getLinkUrl(); @@ -440,18 +440,18 @@ describe('Share a file', () => { it('Share a file from the context menu - [C286647]', async () => { await dataTable.rightClickOnItem(file9); - await contextMenu.clickShareAction(); + await contextMenu.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await Utils.pressEscape(); - const sharedId = await apis.user.nodes.getNodeProperty(file9Id, 'qshare:sharedId'); + const sharedId = await apis.user.nodes.getSharedId(file9Id); expect(await apis.user.nodes.isFileShared(file9Id)).toBe(true, `${file9} is not shared`); expect(url).toContain(sharedId); // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file9).isPresent()).toBe(true, `${file9} is not in the Shared files list`); + // expect(await dataTable.isItemPresent(file9)).toBe(true, `${file9} is not in the Shared files list`); }); }); @@ -510,7 +510,7 @@ describe('Share a file', () => { it('Share dialog default values - [C286657]', async () => { await dataTable.selectItem(file1); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.getTitle()).toEqual(`Share ${file1}`); @@ -521,38 +521,38 @@ describe('Share a file', () => { expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked'); expect(await shareDialog.getLabels().get(1).getText()).toEqual('Expires on'); expect(await shareDialog.isExpireToggleEnabled()).toBe(false, 'Expire toggle is checked'); - expect(await shareDialog.closeButton.isEnabled()).toBe(true, 'Close button is not enabled'); + expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled'); }); it('Close dialog - [C286658]', async () => { await dataTable.selectItem(file2); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); - expect(await shareDialog.closeButton.isEnabled()).toBe(true, 'Close button is not enabled'); + expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled'); await shareDialog.clickClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog is open'); }); it('Share a file - [C286659]', async () => { await dataTable.selectItem(file3); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await Utils.pressEscape(); - const sharedId = await apis.user.nodes.getNodeProperty(file3Id, 'qshare:sharedId'); + const sharedId = await apis.user.nodes.getSharedId(file3Id); expect(await apis.user.nodes.isFileShared(file3Id)).toBe(true, `${file3} is not shared`); expect(url).toContain(sharedId); // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file3).isPresent()).toBe(true, `${file3} is not in the Shared files list`); + // expect(await dataTable.isItemPresent(file3)).toBe(true, `${file3} is not in the Shared files list`); }); it('Copy shared file URL - [C286660]', async () => { await dataTable.selectItem(file4); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); expect(url).toContain('/preview/s/'); @@ -569,7 +569,7 @@ describe('Share a file', () => { it('Share a file with expiration date - [C286661]', async () => { await dataTable.selectItem(file5); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); await shareDialog.clickExpirationToggle(); @@ -583,17 +583,17 @@ describe('Share a file', () => { expect(new Date(inputDate)).toEqual(new Date(setDate)); - const expireDateProperty = await apis.user.nodes.getNodeProperty(file5Id, 'qshare:expiryDate'); + const expireDateProperty = await apis.user.nodes.getSharedExpiryDate(file5Id); expect(Utils.formatDate(expireDateProperty)).toEqual(Utils.formatDate(inputDate)); }); it('Expire date is displayed correctly - [C286662]', async () => { await dataTable.selectItem(file6); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); - const expireProperty = await apis.user.nodes.getNodeProperty(file6Id, 'qshare:expiryDate'); + const expireProperty = await apis.user.nodes.getSharedExpiryDate(file6Id); expect(expireProperty).toEqual(expiryDate); expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expiration is not checked'); expect(Utils.formatDate(await shareDialog.getExpireDate())).toEqual(Utils.formatDate(expiryDate)); @@ -601,7 +601,7 @@ describe('Share a file', () => { it('Disable the share link expiration - [C286663]', async () => { await dataTable.selectItem(file7); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expiration is not checked'); @@ -612,12 +612,12 @@ describe('Share a file', () => { expect(await shareDialog.getExpireDate()).toBe('', 'Expire date input is not empty'); await shareDialog.clickClose(); - expect(await apis.user.nodes.getNodeProperty(file7Id, 'qshare:expiryDate')).toBe(undefined, `${file7} link still has expiration`); + expect(await apis.user.nodes.getSharedExpiryDate(file7Id)).toBe(undefined, `${file7} link still has expiration`); }); it('Shared file URL is not changed when Share dialog is closed and opened again - [C286664]', async () => { await dataTable.selectItem(file8); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url1 = await shareDialog.getLinkUrl(); await shareDialog.clickClose(); @@ -625,7 +625,7 @@ describe('Share a file', () => { await page.dataTable.clearSelection(); await dataTable.selectItem(file8); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url2 = await shareDialog.getLinkUrl(); @@ -634,18 +634,18 @@ describe('Share a file', () => { it('Share a file from the context menu - [C286665]', async () => { await dataTable.rightClickOnItem(file9); - await contextMenu.clickShareAction(); + await contextMenu.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await Utils.pressEscape(); - const sharedId = await apis.user.nodes.getNodeProperty(file9Id, 'qshare:sharedId'); + const sharedId = await apis.user.nodes.getSharedId(file9Id); expect(await apis.user.nodes.isFileShared(file9Id)).toBe(true, `${file9} is not shared`); expect(url).toContain(sharedId); // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file9).isPresent()).toBe(true, `${file9} is not in the Shared files list`); + // expect(await dataTable.isItemPresent(file9)).toBe(true, `${file9} is not in the Shared files list`); }); }); @@ -704,7 +704,7 @@ describe('Share a file', () => { it('Share dialog default values - [C286648]', async () => { await dataTable.selectItem(file1); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.getTitle()).toEqual(`Share ${file1}`); @@ -715,22 +715,22 @@ describe('Share a file', () => { expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked'); expect(await shareDialog.getLabels().get(1).getText()).toEqual('Expires on'); expect(await shareDialog.isExpireToggleEnabled()).toBe(false, 'Expire toggle is checked'); - expect(await shareDialog.closeButton.isEnabled()).toBe(true, 'Close button is not enabled'); + expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled'); }); it('Close dialog - [C286649]', async () => { await dataTable.selectItem(file2); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); - expect(await shareDialog.closeButton.isEnabled()).toBe(true, 'Close button is not enabled'); + expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled'); await shareDialog.clickClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog is open'); }); it('Copy shared file URL - [C286651]', async () => { await dataTable.selectItem(file3); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); expect(url).toContain('/preview/s/'); @@ -747,10 +747,10 @@ describe('Share a file', () => { it('Expire date is displayed correctly - [C286653]', async () => { await dataTable.selectItem(file4); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); - const expireProperty = await apis.user.nodes.getNodeProperty(file4Id, 'qshare:expiryDate'); + const expireProperty = await apis.user.nodes.getSharedExpiryDate(file4Id); expect(expireProperty).toEqual(expiryDate); expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expiration is not checked'); expect(Utils.formatDate(await shareDialog.getExpireDate())).toEqual(Utils.formatDate(expiryDate)); @@ -758,7 +758,7 @@ describe('Share a file', () => { it('Disable the share link expiration - [C286654]', async () => { await dataTable.selectItem(file5); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expiration is not checked'); @@ -769,12 +769,12 @@ describe('Share a file', () => { expect(await shareDialog.getExpireDate()).toBe('', 'Expire date input is not empty'); await shareDialog.clickClose(); - expect(await apis.user.nodes.getNodeProperty(file5Id, 'qshare:expiryDate')).toBe(undefined, `${file5} link still has expiration`); + expect(await apis.user.nodes.getSharedExpiryDate(file5Id)).toBe(undefined, `${file5} link still has expiration`); }); it('Shared file URL is not changed when Share dialog is closed and opened again - [C286655]', async () => { await dataTable.selectItem(file6); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url1 = await shareDialog.getLinkUrl(); await shareDialog.clickClose(); @@ -782,7 +782,7 @@ describe('Share a file', () => { await page.dataTable.clearSelection(); await dataTable.selectItem(file6); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url2 = await shareDialog.getLinkUrl(); @@ -791,7 +791,7 @@ describe('Share a file', () => { it('Open Share dialog from context menu - [C286656]', async () => { await dataTable.rightClickOnItem(file7); - await contextMenu.clickShareEditAction(); + await contextMenu.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.getTitle()).toEqual(`Share ${file7}`); @@ -802,11 +802,10 @@ describe('Share a file', () => { expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked'); expect(await shareDialog.getLabels().get(1).getText()).toEqual('Expires on'); expect(await shareDialog.isExpireToggleEnabled()).toBe(false, 'Expire toggle is checked'); - expect(await shareDialog.closeButton.isEnabled()).toBe(true, 'Close button is not enabled'); + expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled'); }); }); - // TODO: enable when ACA-1886 is done describe('from Favorites', () => { const file1 = `file1-${Utils.random()}.txt`; let file1Id; @@ -873,7 +872,7 @@ describe('Share a file', () => { it('Share dialog default values - [C286666]', async () => { await dataTable.selectItem(file1); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.getTitle()).toEqual(`Share ${file1}`); @@ -884,38 +883,38 @@ describe('Share a file', () => { expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked'); expect(await shareDialog.getLabels().get(1).getText()).toEqual('Expires on'); expect(await shareDialog.isExpireToggleEnabled()).toBe(false, 'Expire toggle is checked'); - expect(await shareDialog.closeButton.isEnabled()).toBe(true, 'Close button is not enabled'); + expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled'); }); it('Close dialog - [C286667]', async () => { await dataTable.selectItem(file2); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); - expect(await shareDialog.closeButton.isEnabled()).toBe(true, 'Close button is not enabled'); + expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled'); await shareDialog.clickClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog is open'); }); it('Share a file - [C286668]', async () => { await dataTable.selectItem(file3); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await Utils.pressEscape(); - const sharedId = await apis.user.nodes.getNodeProperty(file3Id, 'qshare:sharedId'); + const sharedId = await apis.user.nodes.getSharedId(file3Id); expect(await apis.user.nodes.isFileShared(file3Id)).toBe(true, `${file3} is not shared`); expect(url).toContain(sharedId); // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file3).isPresent()).toBe(true, `${file3} is not in the Shared files list`); + // expect(await dataTable.isItemPresent(file3)).toBe(true, `${file3} is not in the Shared files list`); }); it('Copy shared file URL - [C286669]', async () => { await dataTable.selectItem(file4); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); expect(url).toContain('/preview/s/'); @@ -932,7 +931,7 @@ describe('Share a file', () => { it('Share a file with expiration date - [C286670]', async () => { await dataTable.selectItem(file5); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); await shareDialog.clickExpirationToggle(); @@ -946,17 +945,17 @@ describe('Share a file', () => { expect(new Date(inputDate)).toEqual(new Date(setDate)); - const expireDateProperty = await apis.user.nodes.getNodeProperty(file5Id, 'qshare:expiryDate'); + const expireDateProperty = await apis.user.nodes.getSharedExpiryDate(file5Id); expect(Utils.formatDate(expireDateProperty)).toEqual(Utils.formatDate(inputDate)); }); it('Expire date is displayed correctly - [C286671]', async () => { await dataTable.selectItem(file6); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); - const expireProperty = await apis.user.nodes.getNodeProperty(file6Id, 'qshare:expiryDate'); + const expireProperty = await apis.user.nodes.getSharedExpiryDate(file6Id); expect(expireProperty).toEqual(expiryDate); expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expiration is not checked'); expect(Utils.formatDate(await shareDialog.getExpireDate())).toEqual(Utils.formatDate(expiryDate)); @@ -964,7 +963,7 @@ describe('Share a file', () => { it('Disable the share link expiration - [C286672]', async () => { await dataTable.selectItem(file7); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expiration is not checked'); @@ -975,12 +974,12 @@ describe('Share a file', () => { expect(await shareDialog.getExpireDate()).toBe('', 'Expire date input is not empty'); await shareDialog.clickClose(); - expect(await apis.user.nodes.getNodeProperty(file7Id, 'qshare:expiryDate')).toBe(undefined, `${file7} link still has expiration`); + expect(await apis.user.nodes.getSharedExpiryDate(file7Id)).toBe(undefined, `${file7} link still has expiration`); }); it('Shared file URL is not changed when Share dialog is closed and opened again - [C286673]', async () => { await dataTable.selectItem(file8); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url1 = await shareDialog.getLinkUrl(); await shareDialog.clickClose(); @@ -988,7 +987,7 @@ describe('Share a file', () => { await page.dataTable.clearSelection(); await dataTable.selectItem(file8); - await toolbar.clickShareButton(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url2 = await shareDialog.getLinkUrl(); @@ -997,18 +996,18 @@ describe('Share a file', () => { it('Share a file from the context menu - [C286674]', async () => { await dataTable.rightClickOnItem(file9); - await contextMenu.clickMenuItem('Share'); + await contextMenu.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await Utils.pressEscape(); - const sharedId = await apis.user.nodes.getNodeProperty(file9Id, 'qshare:sharedId'); + const sharedId = await apis.user.nodes.getSharedId(file9Id); expect(await apis.user.nodes.isFileShared(file9Id)).toBe(true, `${file9} is not shared`); expect(url).toContain(sharedId); // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file9).isPresent()).toBe(true, `${file9} is not in the Shared files list`); + // expect(await dataTable.isItemPresent(file9)).toBe(true, `${file9} is not in the Shared files list`); }); }); diff --git a/e2e/suites/actions/single-click.test.ts b/e2e/suites/actions/single-click.test.ts index 6e53f78f2..6a3d9008d 100755 --- a/e2e/suites/actions/single-click.test.ts +++ b/e2e/suites/actions/single-click.test.ts @@ -129,7 +129,7 @@ describe('Single click on item name', () => { await dataTable.clickNameLink(siteName); expect(await breadcrumb.getCurrentItemName()).toBe(siteName); - expect(await dataTable.getRowByName(fileSite).isPresent()).toBe(true, `${fileSite} not displayed`); + expect(await dataTable.isItemPresent(fileSite)).toBe(true, `${fileSite} not displayed`); }); }); diff --git a/e2e/suites/actions/special-permissions-available-actions.test.ts b/e2e/suites/actions/special-permissions-available-actions.test.ts index 72816829b..8955e6721 100755 --- a/e2e/suites/actions/special-permissions-available-actions.test.ts +++ b/e2e/suites/actions/special-permissions-available-actions.test.ts @@ -114,43 +114,43 @@ describe('Granular permissions available actions : ', () => { await dataTable.doubleClickOnRowByName(siteName); await dataTable.waitForHeader(); await dataTable.selectMultipleItems([file1, file2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed for selected files`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for selected files`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for selected files`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); await toolbar.closeMoreMenu(); }); it('on Shared Files - [C280477]', async () => { await page.clickSharedFilesAndWait(); await dataTable.selectMultipleItems([file1, file2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed for selected files`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for selected files`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for selected files`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); await toolbar.closeMoreMenu(); }); it('on Favorites - [C280478]', async () => { await page.clickFavoritesAndWait(); await dataTable.selectMultipleItems([file1, file2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed for selected files`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for selected files`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for selected files`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); // TODO: enable when ACA-1737 is done - // expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); - // expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + // expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for selected files`); + // expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); await toolbar.closeMoreMenu(); }); }); @@ -166,48 +166,48 @@ describe('Granular permissions available actions : ', () => { await dataTable.doubleClickOnRowByName(siteName); await dataTable.waitForHeader(); await dataTable.selectItem(file1); - expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${file1}`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${file1}`); - expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${file1}`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${file1}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${file1}`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${file1}`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for ${file1}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${file1}`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${file1}`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${file1}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${file1}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${file1}`); + expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for ${file1}`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`); await toolbar.closeMoreMenu(); }); it('on Shared Files - [C280456]', async () => { await page.clickSharedFilesAndWait(); await page.dataTable.selectItem(file1); - expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${file1}`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${file1}`); - expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${file1}`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${file1}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${file1}`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${file1}`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for ${file1}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${file1}`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${file1}`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${file1}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${file1}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${file1}`); + expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for ${file1}`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`); await toolbar.closeMoreMenu(); }); it('on Favorites - [C213121]', async () => { await page.clickFavoritesAndWait(); await dataTable.selectItem(file1); - expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${file1}`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${file1}`); - expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${file1}`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${file1}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${file1}`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${file1}`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for ${file1}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${file1}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${file1}`); // TODO: enable when ACA-1737 is done - // expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${file1}`); - // expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${file1}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${file1}`); + // expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for ${file1}`); + // expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`); await toolbar.closeMoreMenu(); }); }); @@ -223,33 +223,33 @@ describe('Granular permissions available actions : ', () => { await dataTable.doubleClickOnRowByName(siteName); await dataTable.waitForHeader(); await dataTable.selectItem(folder1); - expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for ${folder1}`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${folder1}`); - expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${folder1}`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${folder1}`); + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed for ${folder1}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${folder1}`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${folder1}`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for ${folder1}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folder1}`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${folder1}`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${folder1}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folder1}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folder1}`); + expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for ${folder1}`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${folder1}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folder1}`); await toolbar.closeMoreMenu(); }); it('on Favorites - [C286266]', async () => { await page.clickFavoritesAndWait(); await dataTable.selectItem(folder1); - expect(await toolbar.isButtonPresent('View')).toBe(false, `View is not displayed for ${folder1}`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${folder1}`); - expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${folder1}`); + expect(await toolbar.isViewPresent()).toBe(false, `View is not displayed for ${folder1}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${folder1}`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${folder1}`); // TODO: enable when ACA-1737 is done - // expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${folder1}`); + // expect(await toolbar.isEditButtonPresent()).toBe(false, `Edit is displayed for ${folder1}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folder1}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folder1}`); // TODO: enable when ACA-1737 is done - // expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${folder1}`); - // expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${folder1}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folder1}`); + // expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for ${folder1}`); + // expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${folder1}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folder1}`); await toolbar.closeMoreMenu(); }); }); @@ -266,43 +266,43 @@ describe('Granular permissions available actions : ', () => { await dataTable.doubleClickOnRowByName(siteName); await dataTable.waitForHeader(); await dataTable.selectMultipleItems([file1, file2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); await toolbar.closeMoreMenu(); }); it('on Shared Files - [C286284]', async () => { await page.clickSharedFilesAndWait(); await dataTable.selectMultipleItems([file1, file2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed for selected files`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for selected files`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for selected files`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); await toolbar.closeMoreMenu(); }); it('on Favorites - [C286285]', async () => { await page.clickFavoritesAndWait(); await dataTable.selectMultipleItems([file1, file2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed for selected files`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for selected files`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for selected files`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); // TODO: enable when ACA-1737 is done - // expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); - // expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + // expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for selected files`); + // expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); await toolbar.closeMoreMenu(); }); }); @@ -319,29 +319,29 @@ describe('Granular permissions available actions : ', () => { await dataTable.doubleClickOnRowByName(siteName); await dataTable.waitForHeader(); await dataTable.selectMultipleItems([folder1, folder2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); await toolbar.closeMoreMenu(); }); it('on Favorites - [C286286]', async () => { await page.clickFavoritesAndWait(); await dataTable.selectMultipleItems([folder1, folder2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed for selected files`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for selected files`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for selected files`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); // TODO: enable when ACA-1737 is done - // expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); - // expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + // expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for selected files`); + // expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); await toolbar.closeMoreMenu(); }); }); @@ -358,29 +358,29 @@ describe('Granular permissions available actions : ', () => { await dataTable.doubleClickOnRowByName(siteName); await dataTable.waitForHeader(); await dataTable.selectMultipleItems([file1, folder1]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); await toolbar.closeMoreMenu(); }); it('on Favorites - [C286287]', async () => { await page.clickFavoritesAndWait(); await dataTable.selectMultipleItems([file1, folder1]); - expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed for selected files`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for selected files`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for selected files`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); // TODO: enable when ACA-1737 is done - // expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); - // expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + // expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for selected files`); + // expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); await toolbar.closeMoreMenu(); }); }); @@ -396,52 +396,52 @@ describe('Granular permissions available actions : ', () => { await dataTable.doubleClickOnRowByName(siteName); await dataTable.waitForHeader(); await dataTable.rightClickOnItem(file1); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${file1}`); + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${file1}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${file1}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${file1}`); + expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`); + expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${file1}`); + expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${file1}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${file1}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(false, `Permissions is displayed for ${file1}`); + expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${file1}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${file1}`); }); it('on Shared Files - [C286264]', async () => { await page.clickSharedFilesAndWait(); await dataTable.rightClickOnItem(file1); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${file1}`); + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${file1}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${file1}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${file1}`); + expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`); + expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${file1}`); // TODO: enable this when the action is properly implemented: ACA-92 - // expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${file1}`); + // expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${file1}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${file1}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(false, `Permissions is displayed for ${file1}`); + expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${file1}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${file1}`); }); it('on Favorites - [C286262]', async () => { await page.clickFavoritesAndWait(); await dataTable.rightClickOnItem(file1); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${file1}`); + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${file1}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${file1}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${file1}`); // TODO: enable when ACA-1737 is done - // expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${file1}`); - // expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions is not displayed for ${file1}`); + // expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`); + // expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${file1}`); + expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${file1}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${file1}`); // TODO: enable when ACA-1794 is fixed - // expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`); - expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${file1}`); + // expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${file1}`); + expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${file1}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${file1}`); }); }); @@ -456,34 +456,34 @@ describe('Granular permissions available actions : ', () => { await dataTable.doubleClickOnRowByName(siteName); await dataTable.waitForHeader(); await dataTable.rightClickOnItem(folder1); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not enabled for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is displayed for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(false, `Manage Versions displayed for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is displayed for ${folder1}`); + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${folder1}`); + expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${folder1}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folder1}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folder1}`); + expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed for ${folder1}`); + expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${folder1}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(false, `Permissions is displayed for ${folder1}`); + expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folder1}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions displayed for ${folder1}`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folder1}`); }); it('on Favorites - [C286263]', async () => { await page.clickFavoritesAndWait(); await dataTable.rightClickOnItem(folder1); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not enabled for ${folder1}`); + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${folder1}`); // enable when ACA-1737 is done - // expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folder1}`); + // expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${folder1}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folder1}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folder1}`); // TODO: enable when ACA-1737 is done - // expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${folder1}`); - // expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${folder1}`); + // expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed for ${folder1}`); + // expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${folder1}`); // TODO: enable when ACA-1794 is fixed - // expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is displayed for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(false, `Manage Versions is displayed for ${folder1}`); - expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is displayed for ${folder1}`); + // expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${folder1}`); + expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folder1}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${folder1}`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folder1}`); }); }); @@ -500,40 +500,40 @@ describe('Granular permissions available actions : ', () => { await dataTable.waitForHeader(); await dataTable.selectMultipleItems([file1, file2]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed`); + expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(false, `Permissions is displayed`); }); it('on Shared Files - [C286283]', async () => { await page.clickSharedFilesAndWait(); await dataTable.selectMultipleItems([file1, file2]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed`); + expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(false, `Permissions is displayed`); }); it('on Favorites - [C286280]', async () => { await page.clickFavoritesAndWait(); await dataTable.selectMultipleItems([file1, file2]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); // TODO: enable when ACA-1737 is done - // expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - // expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`); + // expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed`); + // expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(false, `Permissions is displayed`); }); }); @@ -550,27 +550,27 @@ describe('Granular permissions available actions : ', () => { await dataTable.waitForHeader(); await dataTable.selectMultipleItems([folder1, folder2]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed`); + expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(false, `Permissions is displayed`); }); it('on Favorites - [C286281]', async () => { await page.clickFavoritesAndWait(); await dataTable.selectMultipleItems([folder1, folder2]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); // TODO: enable when ACA-1737 is done - // expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - // expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`); + // expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed`); + // expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(false, `Permissions is displayed`); }); }); @@ -587,27 +587,27 @@ describe('Granular permissions available actions : ', () => { await dataTable.waitForHeader(); await dataTable.selectMultipleItems([file1, folder1]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed`); + expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(false, `Permissions is displayed`); }); it('on Favorites - [C286282]', async () => { await page.clickFavoritesAndWait(); await dataTable.selectMultipleItems([file1, folder1]); await dataTable.rightClickOnMultipleSelection(); - expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); - expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed`); // TODO: enable when ACA-1737 is done - // expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - // expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`); + // expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed`); + // expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(false, `Permissions is displayed`); }); }); @@ -625,20 +625,20 @@ describe('Granular permissions available actions : ', () => { expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewerToolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); - expect(await viewerToolbar.isButtonPresent('View')).toBe(false, `View is displayed`); - expect(await viewerToolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed`); - expect(await viewerToolbar.isButtonPresent('Print')).toBe(true, `Print is not displayed`); - expect(await viewerToolbar.isButtonPresent('Activate full-screen mode')).toBe(true, `Full screen is not displayed`); - expect(await viewerToolbar.isShareEditButtonPresent()).toBe(true, 'Shared link settings is not displayed'); - expect(await viewerToolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed`); + expect(await viewerToolbar.isViewPresent()).toBe(false, `View is displayed`); + expect(await viewerToolbar.isDownloadPresent()).toBe(true, `Download is not displayed`); + expect(await viewerToolbar.isPrintPresent()).toBe(true, `Print is not displayed`); + expect(await viewerToolbar.isFullScreenPresent()).toBe(true, `Full screen is not displayed`); + expect(await viewerToolbar.isSharedLinkSettingsPresent()).toBe(true, 'Shared link settings is not displayed'); + expect(await viewerToolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed`); await viewerToolbar.openMoreMenu(); - expect(await viewerToolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await viewerToolbar.menu.isMenuItemPresent('Share')).toBe(false, `Share is displayed in More actions`); - expect(await viewerToolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await viewerToolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await viewerToolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - expect(await viewerToolbar.menu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage versions is displayed`); - expect(await viewerToolbar.menu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`); + expect(await viewerToolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await viewerToolbar.menu.isSharePresent()).toBe(false, `Share is displayed in More actions`); + expect(await viewerToolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`); + expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is displayed`); + expect(await viewerToolbar.menu.isManagePermissionsPresent()).toBe(false, `Permissions is displayed`); await toolbar.closeMoreMenu(); }); @@ -648,18 +648,18 @@ describe('Granular permissions available actions : ', () => { expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewerToolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); - expect(await viewerToolbar.isButtonPresent('View')).toBe(false, `View is displayed`); - expect(await viewerToolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed`); - expect(await viewerToolbar.isButtonPresent('Print')).toBe(true, `Print is not displayed`); - expect(await viewerToolbar.isButtonPresent('Activate full-screen mode')).toBe(true, `Full screen is not displayed`); - expect(await viewerToolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed`); + expect(await viewerToolbar.isViewPresent()).toBe(false, `View is displayed`); + expect(await viewerToolbar.isDownloadPresent()).toBe(true, `Download is not displayed`); + expect(await viewerToolbar.isPrintPresent()).toBe(true, `Print is not displayed`); + expect(await viewerToolbar.isFullScreenPresent()).toBe(true, `Full screen is not displayed`); + expect(await viewerToolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed`); await viewerToolbar.openMoreMenu(); - expect(await viewerToolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await viewerToolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await viewerToolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - expect(await viewerToolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - expect(await viewerToolbar.menu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage versions is displayed`); - expect(await viewerToolbar.menu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`); + expect(await viewerToolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await viewerToolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`); + expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`); + expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is displayed`); + expect(await viewerToolbar.menu.isManagePermissionsPresent()).toBe(false, `Permissions is displayed`); await toolbar.closeMoreMenu(); }); @@ -669,21 +669,21 @@ describe('Granular permissions available actions : ', () => { expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewerToolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); - expect(await viewerToolbar.isButtonPresent('View')).toBe(false, `View is displayed`); - expect(await viewerToolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed`); - expect(await viewerToolbar.isButtonPresent('Print')).toBe(true, `Print is not displayed`); - expect(await viewerToolbar.isButtonPresent('Activate full-screen mode')).toBe(true, `Full screen is not displayed`); - expect(await viewerToolbar.isShareEditButtonPresent()).toBe(true, 'Shared link settings is not displayed'); - expect(await viewerToolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed`); + expect(await viewerToolbar.isViewPresent()).toBe(false, `View is displayed`); + expect(await viewerToolbar.isDownloadPresent()).toBe(true, `Download is not displayed`); + expect(await viewerToolbar.isPrintPresent()).toBe(true, `Print is not displayed`); + expect(await viewerToolbar.isFullScreenPresent()).toBe(true, `Full screen is not displayed`); + expect(await viewerToolbar.isSharedLinkSettingsPresent()).toBe(true, 'Shared link settings is not displayed'); + expect(await viewerToolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed`); await viewerToolbar.openMoreMenu(); - expect(await viewerToolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await viewerToolbar.menu.isMenuItemPresent('Share')).toBe(false, `Share is displayed in More actions`); - expect(await viewerToolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); + expect(await viewerToolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await viewerToolbar.menu.isSharePresent()).toBe(false, `Share is displayed in More actions`); + expect(await viewerToolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`); // TODO: enable when ACA-1737 is done - // expect(await viewerToolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); - // expect(await viewerToolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); - expect(await viewerToolbar.menu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage versions is displayed`); - expect(await viewerToolbar.menu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`); + // expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`); + // expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`); + expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is displayed`); + expect(await viewerToolbar.menu.isManagePermissionsPresent()).toBe(false, `Permissions is displayed`); await toolbar.closeMoreMenu(); }); }); diff --git a/e2e/suites/actions/toolbar-multiple-selection.test.ts b/e2e/suites/actions/toolbar-multiple-selection.test.ts index 3773204e6..0d484be50 100755 --- a/e2e/suites/actions/toolbar-multiple-selection.test.ts +++ b/e2e/suites/actions/toolbar-multiple-selection.test.ts @@ -144,40 +144,40 @@ describe('Toolbar actions - multiple selection : ', () => { it('correct actions appear when multiple files are selected - [C217112]', async () => { await dataTable.selectMultipleItems([file1, file2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); await toolbar.closeMoreMenu(); }); it('correct actions appear when multiple folders are selected - [C280459]', async () => { await dataTable.selectMultipleItems([folder1, folder2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); await toolbar.closeMoreMenu(); }); it('correct actions appear when both files and folders are selected - [C280460]', async () => { await dataTable.selectMultipleItems([file1, file2, folder1, folder2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); await toolbar.closeMoreMenu(); }); }); @@ -194,38 +194,38 @@ describe('Toolbar actions - multiple selection : ', () => { it('correct actions appear when multiple files are selected - [C280461]', async () => { await dataTable.selectMultipleItems([file1InSite, file2InSite]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed for selected files'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed for selected files'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed for selected files'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); }); it('correct actions appear when multiple folders are selected - [C280462]', async () => { await dataTable.selectMultipleItems([folder1InSite, folder2InSite]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); }); it('correct actions appear when both files and folders are selected - [C280463]', async () => { await dataTable.selectMultipleItems([file1InSite, file2InSite, folder1InSite, folder2InSite]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); }); }); @@ -240,14 +240,14 @@ describe('Toolbar actions - multiple selection : ', () => { it('correct actions appear when multiple files are selected - [C280467]', async () => { await dataTable.selectMultipleItems([file1, file2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed for selected files'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed for selected files'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); }); }); @@ -261,14 +261,14 @@ describe('Toolbar actions - multiple selection : ', () => { it('correct actions appear when multiple files are selected - [C280468]', async () => { await dataTable.selectMultipleItems([file1, file2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); }); }); @@ -283,38 +283,38 @@ describe('Toolbar actions - multiple selection : ', () => { it('correct actions appear when multiple files are selected - [C280469]', async () => { await dataTable.selectMultipleItems([file1, file2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); }); it('correct actions appear when multiple folders are selected - [C280470]', async () => { await dataTable.selectMultipleItems([folder1, folder2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); }); it('correct actions appear when both files and folders are selected - [C280471]', async () => { await dataTable.selectMultipleItems([file1, file2, folder1, folder2]); - expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); - expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed for selected files'); + expect(await toolbar.isEditPresent()).toBe(false, 'Edit is displayed'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for selected files`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); }); }); diff --git a/e2e/suites/actions/toolbar-single-selection.test.ts b/e2e/suites/actions/toolbar-single-selection.test.ts index 607b01c92..6cd5704b6 100755 --- a/e2e/suites/actions/toolbar-single-selection.test.ts +++ b/e2e/suites/actions/toolbar-single-selection.test.ts @@ -128,28 +128,28 @@ describe('Toolbar actions - single selection : ', () => { it('correct actions appear when a file is selected - [C213122]', async () => { await dataTable.selectItem(fileUser); expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileUser}`); - expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileUser}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileUser}`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for ${fileUser}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileUser}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`); await toolbar.closeMoreMenu(); }); it('correct actions appear when a folder is selected - [C213123]', async () => { await dataTable.selectItem(folderUser); expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${folderUser}`); - expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for ${folderUser}`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`); - expect(await toolbar.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`); + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed for ${folderUser}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not enabled for ${folderUser}`); + expect(await toolbar.isEditPresent()).toBe(true, `Edit is not displayed for ${folderUser}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderUser}`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folderUser}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${folderUser}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${folderUser}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folderUser}`); await toolbar.closeMoreMenu(); }); }); @@ -171,28 +171,28 @@ describe('Toolbar actions - single selection : ', () => { it('correct actions appear when a file is selected - [C280440]', async () => { await dataTable.selectItem(fileInSite); expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileInSite}`); - expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileInSite}`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileInSite}`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileInSite}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileInSite}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileInSite}`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for ${fileInSite}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileInSite}`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileInSite}`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileInSite}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileInSite}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileInSite}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileInSite}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileInSite}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileInSite}`); await toolbar.closeMoreMenu(); }); it('correct actions appear when a folder is selected - [C280441]', async () => { await dataTable.selectItem(folderInSite); expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${folderInSite}`); - expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for ${folderInSite}`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderInSite}`); - expect(await toolbar.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderInSite}`); + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed for ${folderInSite}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not enabled for ${folderInSite}`); + expect(await toolbar.isEditPresent()).toBe(true, `Edit is not displayed for ${folderInSite}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderInSite}`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderInSite}`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderInSite}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderInSite}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folderInSite}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${folderInSite}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${folderInSite}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folderInSite}`); await toolbar.closeMoreMenu(); }); }); @@ -208,44 +208,44 @@ describe('Toolbar actions - single selection : ', () => { await page.goToMyLibraries(); await dataTable.selectItem(siteName); expect(await toolbar.isEmpty()).toBe(false, 'toolbar not displayed'); - expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${siteName}`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${siteName}`); expect(await toolbar.isButtonPresent('Leave library')).toBe(true, `Leave is not displayed for ${siteName}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${siteName}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${siteName}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${siteName}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${siteName}`); }); it('Available actions when a library is selected - Favorite Libraries - user is a member - [C289892]', async () => { await page.goToFavoriteLibraries(); await dataTable.selectItem(siteName); expect(await toolbar.isEmpty()).toBe(false, 'toolbar not displayed'); - expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${siteName}`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${siteName}`); expect(await toolbar.isButtonPresent('Leave library')).toBe(true, `Leave is not displayed for ${siteName}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${siteName}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${siteName}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${siteName}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${siteName}`); }); it('Available actions when a library is selected - Favorite Libraries - user is not a member - [C290090]', async () => { await page.goToFavoriteLibraries(); await dataTable.selectItem(adminPublic); expect(await toolbar.isEmpty()).toBe(false, 'toolbar not displayed'); - expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${adminPublic}`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${adminPublic}`); expect(await toolbar.isButtonPresent('Join')).toBe(true, `Join is not displayed for ${adminPublic}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${adminPublic}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${adminPublic}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${adminPublic}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${adminPublic}`); }); it('Available actions when a library is selected - Favorite Libraries - user requested to join - [C290091]', async () => { await page.goToFavoriteLibraries(); await dataTable.selectItem(adminModerated); expect(await toolbar.isEmpty()).toBe(false, 'toolbar not displayed'); - expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${adminModerated}`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${adminModerated}`); expect(await toolbar.isButtonPresent('Cancel join request')).toBe(true, `Cancel join is not displayed for ${adminModerated}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${adminModerated}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${adminModerated}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${adminModerated}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${adminModerated}`); }); }); @@ -264,15 +264,15 @@ describe('Toolbar actions - single selection : ', () => { it('correct actions appear when a file is selected - [C286265]', async () => { await page.dataTable.selectItem(fileUser); expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileUser}`); - expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); - expect(await toolbar.isShareEditButtonPresent()).toBe(true, `Shared link settings is not displayed for ${fileUser}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileUser}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileUser}`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for ${fileUser}`); + expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed for ${fileUser}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileUser}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`); await toolbar.closeMoreMenu(); }); }); @@ -292,14 +292,14 @@ describe('Toolbar actions - single selection : ', () => { it('correct actions appear when a file is selected - [C280448]', async () => { await dataTable.selectItem(fileUser); expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileUser}`); - expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileUser}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileUser}`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for ${fileUser}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileUser}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`); await toolbar.closeMoreMenu(); }); }); @@ -319,28 +319,28 @@ describe('Toolbar actions - single selection : ', () => { it('correct actions appear when a file is selected - [C280450]', async () => { await dataTable.selectItem(fileUser); expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileUser}`); - expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); - expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileUser}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileUser}`); + expect(await toolbar.isEditPresent()).toBe(false, `Edit is displayed for ${fileUser}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileUser}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`); await toolbar.closeMoreMenu(); }); it('correct actions appear when a folder is selected - [C280451]', async () => { await dataTable.selectItem(folderUser); expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${folderUser}`); - expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for ${folderUser}`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`); - expect(await toolbar.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`); + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed for ${folderUser}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not enabled for ${folderUser}`); + expect(await toolbar.isEditPresent()).toBe(true, `Edit is not displayed for ${folderUser}`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderUser}`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folderUser}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${folderUser}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${folderUser}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folderUser}`); await toolbar.closeMoreMenu(); }); }); diff --git a/e2e/suites/actions/unshare-file.test.ts b/e2e/suites/actions/unshare-file.test.ts index 34e6781cf..23b342c4b 100755 --- a/e2e/suites/actions/unshare-file.test.ts +++ b/e2e/suites/actions/unshare-file.test.ts @@ -106,7 +106,7 @@ describe('Unshare a file', () => { it('Unshare dialog UI - [C286339]', async () => { await dataTable.selectItem(file1); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked'); @@ -115,18 +115,18 @@ describe('Unshare a file', () => { expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open'); expect(await confirmDialog.getTitle()).toContain('Remove this shared link'); expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared'); - expect(await confirmDialog.isButtonEnabled('Remove')).toBe(true, 'REMOVE button is not enabled'); - expect(await confirmDialog.isButtonEnabled('Cancel')).toBe(true, 'CANCEL button is not enabled'); + expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled'); + expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled'); }); it('Unshare a file - [C286340]', async () => { await dataTable.selectItem(file2); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Remove'); + await confirmDialog.clickRemove(); await confirmDialog.waitForDialogToClose(); await shareDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog open'); @@ -134,7 +134,7 @@ describe('Unshare a file', () => { // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file2).isPresent()).toBe(false, `${file2} is in the Shared files list`); + // expect(await dataTable.isItemPresent(file2)).toBe(false, `${file2} is in the Shared files list`); await browser.get(url); expect(await viewer.isViewerOpened()).toBe(true, 'viewer is not open'); @@ -145,13 +145,13 @@ describe('Unshare a file', () => { it('Cancel the Unshare action - [C286341]', async () => { await dataTable.selectItem(file3); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const urlBefore = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Cancel'); + await confirmDialog.clickCancel(); await confirmDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(true, 'Share dialog not open'); expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle is off'); @@ -162,12 +162,12 @@ describe('Unshare a file', () => { it('Unshare a file from the context menu - [C286359]', async () => { await dataTable.rightClickOnItem(file4); - await contextMenu.clickShareEditAction(); + await contextMenu.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Remove'); + await confirmDialog.clickRemove(); await confirmDialog.waitForDialogToClose(); await shareDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog open'); @@ -175,7 +175,7 @@ describe('Unshare a file', () => { // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file4).isPresent()).toBe(false, `${file4} is in the Shared files list`); + // expect(await dataTable.isItemPresent(file4)).toBe(false, `${file4} is in the Shared files list`); await browser.get(url); expect(await viewer.isViewerOpened()).toBe(true, 'viewer is not open'); @@ -235,7 +235,7 @@ describe('Unshare a file', () => { it('Unshare dialog UI - [C286679]', async () => { await dataTable.selectItem(file1); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked'); @@ -244,18 +244,18 @@ describe('Unshare a file', () => { expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open'); expect(await confirmDialog.getTitle()).toContain('Remove this shared link'); expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared'); - expect(await confirmDialog.isButtonEnabled('Remove')).toBe(true, 'REMOVE button is not enabled'); - expect(await confirmDialog.isButtonEnabled('Cancel')).toBe(true, 'CANCEL button is not enabled'); + expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled'); + expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled'); }); it('Unshare a file - [C286680]', async () => { await dataTable.selectItem(file2); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Remove'); + await confirmDialog.clickRemove(); await confirmDialog.waitForDialogToClose(); await shareDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog open'); @@ -263,7 +263,7 @@ describe('Unshare a file', () => { // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file2).isPresent()).toBe(false, `${file2} is in the Shared files list`); + // expect(await dataTable.isItemPresent(file2)).toBe(false, `${file2} is in the Shared files list`); await browser.get(url); expect(await viewer.isViewerOpened()).toBe(true, 'viewer is not open'); @@ -274,13 +274,13 @@ describe('Unshare a file', () => { it('Cancel the Unshare action - [C286681]', async () => { await dataTable.selectItem(file3); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const urlBefore = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Cancel'); + await confirmDialog.clickCancel(); await confirmDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(true, 'Share dialog not open'); expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle is off'); @@ -291,12 +291,12 @@ describe('Unshare a file', () => { it('Unshare a file from the context menu - [C286683]', async () => { await dataTable.rightClickOnItem(file4); - await contextMenu.clickShareEditAction(); + await contextMenu.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Remove'); + await confirmDialog.clickRemove(); await confirmDialog.waitForDialogToClose(); await shareDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog open'); @@ -304,7 +304,7 @@ describe('Unshare a file', () => { // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file4).isPresent()).toBe(false, `${file4} is in the Shared files list`); + // expect(await dataTable.isItemPresent(file4)).toBe(false, `${file4} is in the Shared files list`); await browser.get(url); expect(await viewer.isViewerOpened()).toBe(true, 'viewer is not open'); @@ -356,7 +356,7 @@ describe('Unshare a file', () => { it('Unshare dialog UI - [C286689]', async () => { await dataTable.selectItem(file1); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked'); @@ -365,18 +365,18 @@ describe('Unshare a file', () => { expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open'); expect(await confirmDialog.getTitle()).toContain('Remove this shared link'); expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared'); - expect(await confirmDialog.isButtonEnabled('Remove')).toBe(true, 'REMOVE button is not enabled'); - expect(await confirmDialog.isButtonEnabled('Cancel')).toBe(true, 'CANCEL button is not enabled'); + expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled'); + expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled'); }); it('Unshare a file - [C286690]', async () => { await dataTable.selectItem(file2); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Remove'); + await confirmDialog.clickRemove(); await confirmDialog.waitForDialogToClose(); await shareDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog open'); @@ -384,7 +384,7 @@ describe('Unshare a file', () => { // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file2).isPresent()).toBe(false, `${file2} is in the Shared files list`); + // expect(await dataTable.isItemPresent(file2)).toBe(false, `${file2} is in the Shared files list`); await browser.get(url); expect(await viewer.isViewerOpened()).toBe(true, 'viewer is not open'); @@ -395,13 +395,13 @@ describe('Unshare a file', () => { it('Cancel the Unshare action - [C286691]', async () => { await dataTable.selectItem(file3); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const urlBefore = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Cancel'); + await confirmDialog.clickCancel(); await confirmDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(true, 'Share dialog not open'); expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle is off'); @@ -412,12 +412,12 @@ describe('Unshare a file', () => { it('Unshare a file from the context menu - [C286693]', async () => { await dataTable.rightClickOnItem(file4); - await contextMenu.clickShareEditAction(); + await contextMenu.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Remove'); + await confirmDialog.clickRemove(); await confirmDialog.waitForDialogToClose(); await shareDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog open'); @@ -425,7 +425,7 @@ describe('Unshare a file', () => { // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file4).isPresent()).toBe(false, `${file4} is in the Shared files list`); + // expect(await dataTable.isItemPresent(file4)).toBe(false, `${file4} is in the Shared files list`); await browser.get(url); expect(await viewer.isViewerOpened()).toBe(true, 'viewer is not open'); @@ -477,7 +477,7 @@ describe('Unshare a file', () => { it('Unshare dialog UI - [C286684]', async () => { await dataTable.selectItem(file1); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked'); @@ -486,25 +486,25 @@ describe('Unshare a file', () => { expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open'); expect(await confirmDialog.getTitle()).toContain('Remove this shared link'); expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared'); - expect(await confirmDialog.isButtonEnabled('Remove')).toBe(true, 'REMOVE button is not enabled'); - expect(await confirmDialog.isButtonEnabled('Cancel')).toBe(true, 'CANCEL button is not enabled'); + expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled'); + expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled'); }); it('Unshare a file - [C286685]', async () => { await dataTable.selectItem(file2); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Remove'); + await confirmDialog.clickRemove(); await confirmDialog.waitForDialogToClose(); await shareDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog open'); expect(await apis.user.nodes.isFileShared(file2Id)).toBe(false, `${file2} is shared`); // TODO: disable check cause api is slow to update - // expect(await dataTable.getRowByName(file2).isPresent()).toBe(false, `${file2} is in the Shared files list`); + // expect(await dataTable.isItemPresent(file2)).toBe(false, `${file2} is in the Shared files list`); await browser.get(url); expect(await viewer.isViewerOpened()).toBe(true, 'viewer is not open'); @@ -515,13 +515,13 @@ describe('Unshare a file', () => { it('Cancel the Unshare action - [C286686]', async () => { await dataTable.selectItem(file3); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const urlBefore = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Cancel'); + await confirmDialog.clickCancel(); await confirmDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(true, 'Share dialog not open'); expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle is off'); @@ -532,19 +532,19 @@ describe('Unshare a file', () => { it('Unshare a file from the context menu - [C286688]', async () => { await dataTable.rightClickOnItem(file4); - await contextMenu.clickShareEditAction(); + await contextMenu.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Remove'); + await confirmDialog.clickRemove(); await confirmDialog.waitForDialogToClose(); await shareDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog open'); expect(await apis.user.nodes.isFileShared(file4Id)).toBe(false, `${file4} is shared`); // TODO: disable check cause api is slow to update - // expect(await dataTable.getRowByName(file4).isPresent()).toBe(false, `${file4} is in the Shared files list`); + // expect(await dataTable.isItemPresent(file4)).toBe(false, `${file4} is in the Shared files list`); await browser.get(url); expect(await viewer.isViewerOpened()).toBe(true, 'viewer is not open'); @@ -604,8 +604,8 @@ describe('Unshare a file', () => { it('Unshare dialog UI - [C286694]', async () => { await dataTable.selectItem(file1); // TODO: remove workaround for favorites - // await toolbar.clickShareEditButton(); - await toolbar.clickShareButton(); + // await toolbar.clickSharedLinkSettings(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked'); @@ -614,20 +614,20 @@ describe('Unshare a file', () => { expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open'); expect(await confirmDialog.getTitle()).toContain('Remove this shared link'); expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared'); - expect(await confirmDialog.isButtonEnabled('Remove')).toBe(true, 'REMOVE button is not enabled'); - expect(await confirmDialog.isButtonEnabled('Cancel')).toBe(true, 'CANCEL button is not enabled'); + expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled'); + expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled'); }); it('Unshare a file - [C286695]', async () => { await dataTable.selectItem(file2); // TODO: remove workaround for favorites - // await toolbar.clickShareEditButton(); - await toolbar.clickShareButton(); + // await toolbar.clickSharedLinkSettings(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Remove'); + await confirmDialog.clickRemove(); await confirmDialog.waitForDialogToClose(); await shareDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog open'); @@ -635,7 +635,7 @@ describe('Unshare a file', () => { // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file2).isPresent()).toBe(false, `${file2} is in the Shared files list`); + // expect(await dataTable.isItemPresent(file2)).toBe(false, `${file2} is in the Shared files list`); await browser.get(url); expect(await viewer.isViewerOpened()).toBe(true, 'viewer is not open'); @@ -647,14 +647,14 @@ describe('Unshare a file', () => { it('Cancel the Unshare action - [C286696]', async () => { await dataTable.selectItem(file3); // TODO: remove workaround for favorites - // await toolbar.clickShareEditButton(); - await toolbar.clickShareButton(); + // await toolbar.clickSharedLinkSettings(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); const urlBefore = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Cancel'); + await confirmDialog.clickCancel(); await confirmDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(true, 'Share dialog not open'); expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle is off'); @@ -666,13 +666,13 @@ describe('Unshare a file', () => { it('Unshare a file from the context menu - [C286698]', async () => { await dataTable.rightClickOnItem(file4); // TODO: remove workaround for favorites - // await toolbar.clickShareEditButton(); - await contextMenu.clickShareAction(); + // await toolbar.clickSharedLinkSettings(); + await contextMenu.clickShare(); await shareDialog.waitForDialogToOpen(); const url = await shareDialog.getLinkUrl(); await shareDialog.clickShareToggle(); - await confirmDialog.clickButton('Remove'); + await confirmDialog.clickRemove(); await confirmDialog.waitForDialogToClose(); await shareDialog.waitForDialogToClose(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Share dialog open'); @@ -680,7 +680,7 @@ describe('Unshare a file', () => { // TODO: disable check cause api is slow to update // await page.clickSharedFiles(); - // expect(await dataTable.getRowByName(file4).isPresent()).toBe(false, `${file4} is in the Shared files list`); + // expect(await dataTable.isItemPresent(file4)).toBe(false, `${file4} is in the Shared files list`); await browser.get(url); expect(await viewer.isViewerOpened()).toBe(true, 'viewer is not open'); @@ -737,7 +737,7 @@ describe('Unshare a file', () => { await dataTable.doubleClickOnRowByName(sitePrivate); await dataTable.waitForHeader(); await dataTable.selectItem(file1); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle enabled for consumer'); @@ -748,7 +748,7 @@ describe('Unshare a file', () => { await dataTable.doubleClickOnRowByName(sitePrivate); await dataTable.waitForHeader(); await dataTable.selectItem(file2); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle enabled for consumer'); @@ -757,7 +757,7 @@ describe('Unshare a file', () => { it('on Shared Files - file shared by other user - [C286687]', async () => { await page.clickSharedFilesAndWait(); await dataTable.selectItem(file1); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle enabled for consumer'); @@ -766,7 +766,7 @@ describe('Unshare a file', () => { it('on Shared Files - file shared by the user - [C286702]', async () => { await page.clickSharedFilesAndWait(); await dataTable.selectItem(file1); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle enabled for consumer'); @@ -776,8 +776,8 @@ describe('Unshare a file', () => { await page.clickFavoritesAndWait(); await dataTable.selectItem(file1); // TODO: remove workaround for favorites - // await toolbar.clickShareEditButton(); - await toolbar.clickShareButton(); + // await toolbar.clickSharedLinkSettings(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle enabled for consumer'); @@ -787,8 +787,8 @@ describe('Unshare a file', () => { await page.clickFavoritesAndWait(); await dataTable.selectItem(file1); // TODO: remove workaround for favorites - // await toolbar.clickShareEditButton(); - await toolbar.clickShareButton(); + // await toolbar.clickSharedLinkSettings(); + await toolbar.clickShare(); await shareDialog.waitForDialogToOpen(); expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle enabled for consumer'); diff --git a/e2e/suites/application/general.test.ts b/e2e/suites/application/general.test.ts index f1ffc6c76..7466acfe8 100644 --- a/e2e/suites/application/general.test.ts +++ b/e2e/suites/application/general.test.ts @@ -61,8 +61,7 @@ describe('General', () => { await createDialog.clickCreate(); - const message = await page.getSnackBarMessage(); - expect(message).toEqual('The action was unsuccessful. Try again or contact your IT Team.'); + expect(await page.getSnackBarMessage()).toEqual('The action was unsuccessful. Try again or contact your IT Team.'); expect(await browser.getTitle()).toContain('Sign in'); diff --git a/e2e/suites/authentication/login.test.ts b/e2e/suites/authentication/login.test.ts index 85b280eef..737d83f8c 100755 --- a/e2e/suites/authentication/login.test.ts +++ b/e2e/suites/authentication/login.test.ts @@ -34,6 +34,7 @@ import { navigate } from '../../utilities/browser-utils'; describe('Login', () => { const peopleApi = new RepoClient().people; const loginPage = new LoginPage(); + const { login } = loginPage; /* cspell:disable-next-line */ const testUser = `user-${Utils.random()}@alfness`; @@ -82,18 +83,18 @@ describe('Login', () => { }); it('login page layout - [C213089]', async () => { - expect(await loginPage.login.usernameInput.isEnabled()).toBe(true, 'username input is not enabled'); - expect(await loginPage.login.passwordInput.isEnabled()).toBe(true, 'password input is not enabled'); - expect(await loginPage.login.submitButton.isEnabled()).toBe(false, 'SIGN IN button is enabled'); - expect(await loginPage.login.getPasswordVisibility()).toBe(false, 'Password is not hidden by default'); + expect(await login.isUsernameEnabled()).toBe(true, 'username input is not enabled'); + expect(await login.isPasswordEnabled()).toBe(true, 'password input is not enabled'); + expect(await login.isSubmitEnabled()).toBe(false, 'SIGN IN button is enabled'); + expect(await login.isPasswordHidden()).toBe(true, 'Password is not hidden by default'); }); it('change password visibility - [C213091]', async () => { - await loginPage.login.enterPassword('some password'); - expect(await loginPage.login.isPasswordShown()).toBe(false, 'password is visible'); - await loginPage.login.passwordVisibility.click(); - expect(await loginPage.login.getPasswordVisibility()).toBe(true, 'Password visibility not changed'); - expect(await loginPage.login.isPasswordShown()).toBe(true, 'password is not visible'); + await login.enterPassword('some password'); + expect(await login.isPasswordDisplayed()).toBe(false, 'password is visible'); + await login.clickPasswordVisibility(); + expect(await login.isPasswordHidden()).toBe(false, 'Password visibility not changed'); + expect(await login.isPasswordDisplayed()).toBe(true, 'password is not visible'); }); }); diff --git a/e2e/suites/authentication/logout.test.ts b/e2e/suites/authentication/logout.test.ts index e0bef04bb..4436e609b 100755 --- a/e2e/suites/authentication/logout.test.ts +++ b/e2e/suites/authentication/logout.test.ts @@ -49,7 +49,7 @@ describe('Logout', () => { it('Sign out option is available - [C213143]', async () => { await page.header.userInfo.openMenu(); - expect(await page.header.userInfo.menu.isMenuItemPresent('Sign out')).toBe(true, 'Sign out option not displayed'); + expect(await page.header.isSignOutDisplayed()).toBe(true, 'Sign out option not displayed'); }); it('redirects to Login page on sign out - [C213144]', async () => { diff --git a/e2e/suites/extensions/ext-info-drawer.test.ts b/e2e/suites/extensions/ext-info-drawer.test.ts index b8c88a517..6783597b7 100755 --- a/e2e/suites/extensions/ext-info-drawer.test.ts +++ b/e2e/suites/extensions/ext-info-drawer.test.ts @@ -94,7 +94,7 @@ describe('Extensions - Info Drawer', () => { it('Add a new tab with icon and title - [C284646]', async () => { await page.dataTable.selectItem(file); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); const val = await infoDrawer.getTabTitle(custom_tab.order); @@ -104,7 +104,7 @@ describe('Extensions - Info Drawer', () => { it('Remove existing tab - [C284647]', async () => { await page.dataTable.selectItem(file); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); expect(await infoDrawer.isTabPresent(comments_tab.title)).toBe(false, `${comments_tab.title} tab should not be present!`); @@ -112,7 +112,7 @@ describe('Extensions - Info Drawer', () => { it('Change tab title - [C284648]', async () => { await page.dataTable.selectItem(file); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); expect(await infoDrawer.isTabPresent(properties_tab.title)).toBe(true, `${properties_tab.title} tab is not present`); @@ -121,7 +121,7 @@ describe('Extensions - Info Drawer', () => { it('Tab with icon and no title - [C284649]', async () => { await page.dataTable.selectItem(file); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); expect(await infoDrawer.isTabPresent(no_title_tab.title)).toBe(true, `${no_title_tab.title} tab is not present`); @@ -130,7 +130,7 @@ describe('Extensions - Info Drawer', () => { it('Insert new component in tab - [C284651]', async () => { await page.dataTable.selectItem(file); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); expect(await infoDrawer.isTabDisplayed(custom_tab.title)).toBe(true, `${custom_tab.title} tab is not displayed`); @@ -150,7 +150,7 @@ describe('Extensions - Info Drawer', () => { it('Remove all tabs - [C284650]', async () => { await page.dataTable.selectItem(file); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); expect(await infoDrawer.isEmpty()).toBe(true, 'Info Drawer is not empty'); diff --git a/e2e/suites/extensions/ext-metadata.test.ts b/e2e/suites/extensions/ext-metadata.test.ts index 7f73656d5..cbf11fcb2 100644 --- a/e2e/suites/extensions/ext-metadata.test.ts +++ b/e2e/suites/extensions/ext-metadata.test.ts @@ -83,7 +83,7 @@ describe('Extensions - Metadata presets', () => { await page.refresh(); await page.dataTable.selectItem(file); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); await infoDrawer.clickTab(properties_tab.title); diff --git a/e2e/suites/extensions/ext-viewer.test.ts b/e2e/suites/extensions/ext-viewer.test.ts index d1b66929f..dadd5c7b8 100755 --- a/e2e/suites/extensions/ext-viewer.test.ts +++ b/e2e/suites/extensions/ext-viewer.test.ts @@ -141,7 +141,7 @@ describe('Extensions - Viewer', () => { await page.dataTable.doubleClickOnRowByName(pdfFile.file_name); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - expect(await toolbar.isButtonPresent('Print')).toBe(false, 'Print button is still displayed'); + expect(await toolbar.isPrintPresent()).toBe(false, 'Print button is still displayed'); }); }); @@ -169,7 +169,7 @@ describe('Extensions - Viewer', () => { expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Permissions')).toBe(false, 'Action is still displayed'); + expect(await toolbar.menu.isManagePermissionsPresent()).toBe(false, 'Action is still displayed'); }); }); }); diff --git a/e2e/suites/info-drawer/library-properties.test.ts b/e2e/suites/info-drawer/library-properties.test.ts index 63a7de6f3..5ac7a28dd 100755 --- a/e2e/suites/info-drawer/library-properties.test.ts +++ b/e2e/suites/info-drawer/library-properties.test.ts @@ -96,14 +96,14 @@ describe('Library properties', () => { afterEach(async done => { if (await infoDrawer.isOpen()) { - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); } done(); }); it('Info drawer opens for a library - [C289336]', async () => { await dataTable.selectItem(site.name); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); expect(await infoDrawer.getHeaderTitle()).toEqual('Details'); @@ -123,7 +123,7 @@ describe('Library properties', () => { it('Editable properties - [C289338]', async () => { await dataTable.selectItem(site.name); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); expect(await infoDrawer.isButtonEnabled('Edit')).toBe(true, 'Edit action is not enabled'); @@ -142,7 +142,7 @@ describe('Library properties', () => { it('Edit site details - [C289339]', async () => { await dataTable.selectItem(siteForUpdate.name); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); expect(await infoDrawer.isButtonEnabled('Edit')).toBe(true, 'Edit action is not enabled'); @@ -156,7 +156,7 @@ describe('Library properties', () => { await infoDrawer.clickButton('Update'); expect(await page.getSnackBarMessage()).toEqual('Library properties updated'); - expect(await dataTable.getRowByName(siteUpdated.name).isPresent()).toBe(true, 'New site name not displayed in the list'); + expect(await dataTable.isItemPresent(siteUpdated.name)).toBe(true, 'New site name not displayed in the list'); expect(await infoDrawer.isOpen()).toBe(false, 'Info drawer still open'); expect((await apis.user.sites.getSite(siteForUpdate.id)).entry.title).toEqual(siteUpdated.name); @@ -169,7 +169,7 @@ describe('Library properties', () => { const newDesc = `new desc ${Utils.random}`; await dataTable.selectItem(site.name); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); expect(await infoDrawer.isButtonEnabled('Edit')).toBe(true, 'Edit action is not enabled'); @@ -181,8 +181,8 @@ describe('Library properties', () => { await infoDrawer.clickButton('Cancel'); - expect(await dataTable.getRowByName(newName).isPresent()).toBe(false, 'New site name is displayed in the list'); - expect(await dataTable.getRowByName(site.name).isPresent()).toBe(true, 'Original site name not displayed in the list'); + expect(await dataTable.isItemPresent(newName)).toBe(false, 'New site name is displayed in the list'); + expect(await dataTable.isItemPresent(site.name)).toBe(true, 'Original site name not displayed in the list'); expect(await infoDrawer.isOpen()).toBe(true, 'Info drawer not open'); }); @@ -190,7 +190,7 @@ describe('Library properties', () => { await apis.user.queries.waitForApi(site.name, { expect: 1 }); await dataTable.selectItem(siteDup); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); await infoDrawer.clickButton('Edit'); @@ -201,7 +201,7 @@ describe('Library properties', () => { it('Site name too long - [C289342]', async () => { await dataTable.selectItem(site.name); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); await infoDrawer.clickButton('Edit'); @@ -214,7 +214,7 @@ describe('Library properties', () => { it('Site description too long - [C289343]', async () => { await dataTable.selectItem(site.name); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); await infoDrawer.clickButton('Edit'); @@ -236,7 +236,7 @@ describe('Library properties', () => { await page.clickFileLibrariesAndWait(); await dataTable.selectItem(site.name); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); expect(await infoDrawer.isButtonDisplayed('Edit')).toBe(false, 'Edit action is displayed'); }); @@ -246,7 +246,7 @@ describe('Library properties', () => { await page.clickFileLibrariesAndWait(); await dataTable.selectItem(site.name); - await page.toolbar.getButtonByTitleAttribute('View details').click(); + await page.toolbar.clickViewDetails(); await infoDrawer.waitForInfoDrawerToOpen(); await infoDrawer.clickButton('Edit'); diff --git a/e2e/suites/list-views/favorites.test.ts b/e2e/suites/list-views/favorites.test.ts index d210203e3..56245dcce 100755 --- a/e2e/suites/list-views/favorites.test.ts +++ b/e2e/suites/list-views/favorites.test.ts @@ -98,17 +98,17 @@ describe('Favorites', () => { it('displays the favorite files and folders - [C213226]', async () => { expect(await dataTable.countRows()).toEqual(4, 'Incorrect number of items displayed'); - expect(await dataTable.getRowByName(fileName1).isPresent()).toBe(true, `${fileName1} not displayed`); - expect(await dataTable.getRowByName(fileName2).isPresent()).toBe(true, `${fileName2} not displayed`); - expect(await dataTable.getRowByName(favFolderName).isPresent()).toBe(true, `${favFolderName} not displayed`); + expect(await dataTable.isItemPresent(fileName1)).toBe(true, `${fileName1} not displayed`); + expect(await dataTable.isItemPresent(fileName2)).toBe(true, `${fileName2} not displayed`); + expect(await dataTable.isItemPresent(favFolderName)).toBe(true, `${favFolderName} not displayed`); }); it(`deleted favorite file does not appear - [C213228]`, async () => { - expect(await dataTable.getRowByName(fileName3).isPresent()).not.toBe(true, `${fileName3} is displayed`); + expect(await dataTable.isItemPresent(fileName3)).not.toBe(true, `${fileName3} is displayed`); }); it(`file is displayed after it is restored from Trashcan - [C213229]`, async () => { - expect(await dataTable.getRowByName(fileName4).isPresent()).toBe(true, `${fileName4} not displayed`); + expect(await dataTable.isItemPresent(fileName4)).toBe(true, `${fileName4} not displayed`); }); it('Location column displays the parent folder of the files - [C213231]', async () => { @@ -118,9 +118,9 @@ describe('Favorites', () => { }); it('Location column displays a tooltip with the entire path of the file - [C213671]', async () => { - expect(await dataTable.getItemLocationTileAttr(fileName1)).toEqual(`File Libraries/${siteName}`); - expect(await dataTable.getItemLocationTileAttr(fileName2)).toEqual(`Personal Files/${parentFolder}`); - expect(await dataTable.getItemLocationTileAttr(favFolderName)).toEqual('Personal Files'); + expect(await dataTable.getItemLocationTooltip(fileName1)).toEqual(`File Libraries/${siteName}`); + expect(await dataTable.getItemLocationTooltip(fileName2)).toEqual(`Personal Files/${parentFolder}`); + expect(await dataTable.getItemLocationTooltip(favFolderName)).toEqual('Personal Files'); }); it('Location column redirect - item in user Home - [C213650]', async () => { diff --git a/e2e/suites/list-views/file-libraries.test.ts b/e2e/suites/list-views/file-libraries.test.ts index 5de73cc6e..97be64c47 100755 --- a/e2e/suites/list-views/file-libraries.test.ts +++ b/e2e/suites/list-views/file-libraries.test.ts @@ -119,7 +119,7 @@ describe('File Libraries', () => { const sitesCount = await dataTable.countRows(); expect(sitesCount).toEqual(10, 'Incorrect number of sites displayed'); - expect(await dataTable.getRowByName(adminSite5).isPresent()).toBe(false, `${adminSite5} should not appear in the list`); + expect(await dataTable.isItemPresent(adminSite5)).toBe(false, `${adminSite5} should not appear in the list`); }); it('Library visibility is correctly displayed - [C289905]', async () => { @@ -206,7 +206,7 @@ describe('File Libraries', () => { const sitesCount = await dataTable.countRows(); expect(sitesCount).toEqual(9, 'Incorrect number of sites displayed'); - expect(await dataTable.getRowByName(adminSite6).isPresent()).toBe(false, `${adminSite6} should not appear`); + expect(await dataTable.isItemPresent(adminSite6)).toBe(false, `${adminSite6} should not appear`); }); it('Library visibility is correctly displayed - [C289906]', async () => { diff --git a/e2e/suites/list-views/personal-files.test.ts b/e2e/suites/list-views/personal-files.test.ts index 7bb075211..42a78427f 100755 --- a/e2e/suites/list-views/personal-files.test.ts +++ b/e2e/suites/list-views/personal-files.test.ts @@ -79,8 +79,8 @@ describe('Personal Files', () => { }); it('has Data Dictionary and created content - [C213241]', async () => { - expect(await dataTable.getRowByName('Data Dictionary').isPresent()).toBe(true, 'Data Dictionary not displayed'); - expect(await dataTable.getRowByName(adminFolder).isPresent()).toBe(true, 'admin folder not displayed'); + expect(await dataTable.isItemPresent('Data Dictionary')).toBe(true, 'Data Dictionary not displayed'); + expect(await dataTable.isItemPresent(adminFolder)).toBe(true, 'admin folder not displayed'); }); }); @@ -111,7 +111,7 @@ describe('Personal Files', () => { }); it('has user created content - [C213242]', async () => { - expect(await dataTable.getRowByName(userFolder).isPresent()).toBe(true, 'user folder not displayed'); + expect(await dataTable.isItemPresent(userFolder)).toBe(true, 'user folder not displayed'); }); it('navigates to folder - [C213244]', async () => { @@ -121,7 +121,7 @@ describe('Personal Files', () => { await dataTable.waitForHeader(); expect(await browser.getCurrentUrl()).toContain(nodeId, 'Node ID is not in the URL'); - expect(await dataTable.getRowByName(userFile).isPresent()).toBe(true, 'user file is missing'); + expect(await dataTable.isItemPresent(userFile)).toBe(true, 'user file is missing'); }); it('redirects to Personal Files on clicking the link from sidebar - [C213245]', async () => { diff --git a/e2e/suites/list-views/recent-files.test.ts b/e2e/suites/list-views/recent-files.test.ts index 44de6ae22..76b72f8f2 100755 --- a/e2e/suites/list-views/recent-files.test.ts +++ b/e2e/suites/list-views/recent-files.test.ts @@ -98,13 +98,13 @@ describe('Recent Files', () => { it('displays the files added by the current user in the last 30 days - [C213170]', async () => { expect(await dataTable.countRows()).toEqual(3, 'Incorrect number of files displayed'); - expect(await dataTable.getRowByName(fileName1).isPresent()).toBe(true, `${fileName1} not displayed`); - expect(await dataTable.getRowByName(fileName2).isPresent()).toBe(true, `${fileName2} not displayed`); - expect(await dataTable.getRowByName(fileSite).isPresent()).toBe(true, `${fileSite} not displayed`); + expect(await dataTable.isItemPresent(fileName1)).toBe(true, `${fileName1} not displayed`); + expect(await dataTable.isItemPresent(fileName2)).toBe(true, `${fileName2} not displayed`); + expect(await dataTable.isItemPresent(fileSite)).toBe(true, `${fileSite} not displayed`); }); it(`file not displayed if it's been deleted - [C213174]`, async () => { - expect(await dataTable.getRowByName(fileName3).isPresent()).not.toBe(true, `${fileName3} is displayed`); + expect(await dataTable.isItemPresent(fileName3)).not.toBe(true, `${fileName3} is displayed`); }); it('Location column displays the parent folder of the file - [C213175]', async () => { @@ -114,9 +114,9 @@ describe('Recent Files', () => { }); it('Location column displays a tooltip with the entire path of the file - [C213177]', async () => { - expect(await dataTable.getItemLocationTileAttr(fileName1)).toEqual(`Personal Files/${folderName}`); - expect(await dataTable.getItemLocationTileAttr(fileName2)).toEqual('Personal Files'); - expect(await dataTable.getItemLocationTileAttr(fileSite)).toEqual(`File Libraries/${siteName}/${folderSite}`); + expect(await dataTable.getItemLocationTooltip(fileName1)).toEqual(`Personal Files/${folderName}`); + expect(await dataTable.getItemLocationTooltip(fileName2)).toEqual('Personal Files'); + expect(await dataTable.getItemLocationTooltip(fileSite)).toEqual(`File Libraries/${siteName}/${folderSite}`); }); it('Location column redirect - file in user Home - [C213176]', async () => { diff --git a/e2e/suites/list-views/shared-files.test.ts b/e2e/suites/list-views/shared-files.test.ts index 94896fe2b..aef7f3c23 100755 --- a/e2e/suites/list-views/shared-files.test.ts +++ b/e2e/suites/list-views/shared-files.test.ts @@ -101,20 +101,20 @@ describe('Shared Files', () => { }); it('displays the files shared by everyone - [C213114]', async () => { - expect(await dataTable.getRowByName(fileAdmin).isPresent()).toBe(true, `${fileAdmin} not displayed`); - expect(await dataTable.getRowByName(file1User).isPresent()).toBe(true, `${file1User} not displayed`); + expect(await dataTable.isItemPresent(fileAdmin)).toBe(true, `${fileAdmin} not displayed`); + expect(await dataTable.isItemPresent(file1User)).toBe(true, `${file1User} not displayed`); }); it(`file not displayed if it's been deleted - [C213117]`, async () => { - expect(await dataTable.getRowByName(file2User).isPresent()).toBe(false, `${file2User} is displayed`); + expect(await dataTable.isItemPresent(file2User)).toBe(false, `${file2User} is displayed`); }); it('unshared file is not displayed - [C213118]', async () => { - expect(await dataTable.getRowByName(file3User).isPresent()).toBe(false, `${file3User} is displayed`); + expect(await dataTable.isItemPresent(file3User)).toBe(false, `${file3User} is displayed`); }); it('Location column displays the parent folder of the file - [C213665]', async () => { - expect(await dataTable.getItemLocationTileAttr(file4User)).toEqual('Personal Files'); + expect(await dataTable.getItemLocationTooltip(file4User)).toEqual('Personal Files'); expect(await dataTable.getItemLocation(fileAdmin)).toEqual(siteName); expect(await dataTable.getItemLocation(file1User)).toEqual(folderUser); }); @@ -135,7 +135,7 @@ describe('Shared Files', () => { }); it('Location column displays a tooltip with the entire path of the file - [C213667]', async () => { - expect(await dataTable.getItemLocationTileAttr(fileAdmin)).toEqual(`File Libraries/${siteName}`); - expect(await dataTable.getItemLocationTileAttr(file1User)).toEqual(`Personal Files/${folderUser}`); + expect(await dataTable.getItemLocationTooltip(fileAdmin)).toEqual(`File Libraries/${siteName}`); + expect(await dataTable.getItemLocationTooltip(file1User)).toEqual(`Personal Files/${folderUser}`); }); }); diff --git a/e2e/suites/list-views/trash.test.ts b/e2e/suites/list-views/trash.test.ts index 8ad7a4437..a03c8d12e 100755 --- a/e2e/suites/list-views/trash.test.ts +++ b/e2e/suites/list-views/trash.test.ts @@ -114,11 +114,11 @@ describe('Trash', () => { it('displays the files and folders deleted by everyone - [C280493]', async () => { expect(await dataTable.countRows()).toEqual(8, 'Incorrect number of deleted items displayed'); - expect(await dataTable.getRowByName(fileAdmin).isPresent()).toBe(true, `${fileAdmin} not displayed`); - expect(await dataTable.getRowByName(folderAdmin).isPresent()).toBe(true, `${folderAdmin} not displayed`); - expect(await dataTable.getRowByName(fileUser).isPresent()).toBe(true, `${fileUser} not displayed`); - expect(await dataTable.getRowByName(folderUser).isPresent()).toBe(true, `${folderUser} not displayed`); - expect(await dataTable.getRowByName(fileSite).isPresent()).toBe(true, `${fileSite} not displayed`); + expect(await dataTable.isItemPresent(fileAdmin)).toBe(true, `${fileAdmin} not displayed`); + expect(await dataTable.isItemPresent(folderAdmin)).toBe(true, `${folderAdmin} not displayed`); + expect(await dataTable.isItemPresent(fileUser)).toBe(true, `${fileUser} not displayed`); + expect(await dataTable.isItemPresent(folderUser)).toBe(true, `${folderUser} not displayed`); + expect(await dataTable.isItemPresent(fileSite)).toBe(true, `${fileSite} not displayed`); }); }); @@ -147,10 +147,10 @@ describe('Trash', () => { it('displays the files and folders deleted by the user - [C213218]', async () => { expect(await dataTable.countRows()).toEqual(6, 'Incorrect number of deleted items displayed'); - expect(await dataTable.getRowByName(fileSite).isPresent()).toBe(true, `${fileSite} not displayed`); - expect(await dataTable.getRowByName(fileUser).isPresent()).toBe(true, `${fileUser} not displayed`); - expect(await dataTable.getRowByName(folderUser).isPresent()).toBe(true, `${folderUser} not displayed`); - expect(await dataTable.getRowByName(fileAdmin).isPresent()).toBe(false, `${fileAdmin} is displayed`); + expect(await dataTable.isItemPresent(fileSite)).toBe(true, `${fileSite} not displayed`); + expect(await dataTable.isItemPresent(fileUser)).toBe(true, `${fileUser} not displayed`); + expect(await dataTable.isItemPresent(folderUser)).toBe(true, `${folderUser} not displayed`); + expect(await dataTable.isItemPresent(fileAdmin)).toBe(false, `${fileAdmin} is displayed`); }); it('default sorting column - [C213219]', async () => { @@ -165,9 +165,9 @@ describe('Trash', () => { }); it('Location column displays a tooltip with the entire path of the file - [C280499]', async () => { - expect(await dataTable.getItemLocationTileAttr(fileInFolder)).toEqual(`Personal Files/${folderNotDeleted}`); - expect(await dataTable.getItemLocationTileAttr(fileUser)).toEqual('Personal Files'); - expect(await dataTable.getItemLocationTileAttr(fileSite)).toEqual(`File Libraries/${siteName}`); + expect(await dataTable.getItemLocationTooltip(fileInFolder)).toEqual(`Personal Files/${folderNotDeleted}`); + expect(await dataTable.getItemLocationTooltip(fileUser)).toEqual('Personal Files'); + expect(await dataTable.getItemLocationTooltip(fileSite)).toEqual(`File Libraries/${siteName}`); }); it('Location column is empty if parent folder no longer exists - [C280500]', async () => { diff --git a/e2e/suites/pagination/pag-favorites.test.ts b/e2e/suites/pagination/pag-favorites.test.ts index 5eb438bfe..9affc12ea 100755 --- a/e2e/suites/pagination/pag-favorites.test.ts +++ b/e2e/suites/pagination/pag-favorites.test.ts @@ -126,7 +126,7 @@ describe('Pagination on multiple pages on Favorites', () => { expect(await pagination.getText(pagination.currentPage)).toContain('Page 3'); expect(await pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); expect(await pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - expect(await dataTable.getRowByName('file-40').isPresent()).toBe(true, 'File not found on page'); + expect(await dataTable.isItemPresent('file-40')).toBe(true, 'File not found on page'); await pagination.resetToDefaultPageNumber(); }); @@ -135,7 +135,7 @@ describe('Pagination on multiple pages on Favorites', () => { await pagination.nextButton.click(); await dataTable.waitForHeader(); expect(await pagination.range.getText()).toContain('26-50 of 101'); - expect(await dataTable.getRowByName('file-70').isPresent()).toBe(true, 'File not found on page'); + expect(await dataTable.isItemPresent('file-70')).toBe(true, 'File not found on page'); await pagination.resetToDefaultPageNumber(); await pagination.openCurrentPageMenu(); @@ -144,7 +144,7 @@ describe('Pagination on multiple pages on Favorites', () => { await pagination.previousButton.click(); await dataTable.waitForHeader(); expect(await pagination.range.getText()).toContain('1-25 of 101'); - expect(await dataTable.getRowByName('file-88').isPresent()).toBe(true, 'File not found on page'); + expect(await dataTable.isItemPresent('file-88')).toBe(true, 'File not found on page'); await pagination.resetToDefaultPageNumber(); }); diff --git a/e2e/suites/pagination/pag-file-libraries.test.ts b/e2e/suites/pagination/pag-file-libraries.test.ts index 014633014..d92190d23 100755 --- a/e2e/suites/pagination/pag-file-libraries.test.ts +++ b/e2e/suites/pagination/pag-file-libraries.test.ts @@ -121,7 +121,7 @@ describe('Pagination on multiple pages on File Libraries', () => { expect(await pagination.currentPage.getText()).toContain('Page 3'); expect(await pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); expect(await pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - expect(await dataTable.getRowByName('site-60').isPresent()).toBe(true, 'Site-60 not found on page'); + expect(await dataTable.isItemPresent('site-60')).toBe(true, 'Site-60 not found on page'); await pagination.resetToDefaultPageNumber(); }); @@ -130,7 +130,7 @@ describe('Pagination on multiple pages on File Libraries', () => { await pagination.clickNext(); await dataTable.waitForHeader(); expect(await pagination.range.getText()).toContain('26-50 of 101'); - expect(await dataTable.getRowByName('site-31').isPresent()).toBe(true, 'Site-31 not found on page'); + expect(await dataTable.isItemPresent('site-31')).toBe(true, 'Site-31 not found on page'); await pagination.resetToDefaultPageNumber(); await pagination.openCurrentPageMenu(); @@ -139,7 +139,7 @@ describe('Pagination on multiple pages on File Libraries', () => { await pagination.previousButton.click(); await dataTable.waitForHeader(); expect(await pagination.range.getText()).toContain('1-25 of 101'); - expect(await dataTable.getRowByName('site-12').isPresent()).toBe(true, 'Site-12 not found on page'); + expect(await dataTable.isItemPresent('site-12')).toBe(true, 'Site-12 not found on page'); await pagination.resetToDefaultPageNumber(); }); diff --git a/e2e/suites/pagination/pag-personal-files.test.ts b/e2e/suites/pagination/pag-personal-files.test.ts index 488783b17..783b4eb43 100755 --- a/e2e/suites/pagination/pag-personal-files.test.ts +++ b/e2e/suites/pagination/pag-personal-files.test.ts @@ -123,7 +123,7 @@ describe('Pagination on multiple pages on Personal Files', () => { expect(await pagination.currentPage.getText()).toContain('Page 3'); expect(await pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); expect(await pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - expect(await dataTable.getRowByName('file-60').isPresent()).toBe(true, 'File not found on page'); + expect(await dataTable.isItemPresent('file-60')).toBe(true, 'File not found on page'); await pagination.resetToDefaultPageNumber(); }); @@ -132,7 +132,7 @@ describe('Pagination on multiple pages on Personal Files', () => { await pagination.clickNext(); await dataTable.waitForHeader(); expect(await pagination.range.getText()).toContain('26-50 of 101'); - expect(await dataTable.getRowByName('file-31').isPresent()).toBe(true, 'file-31 not found on page'); + expect(await dataTable.isItemPresent('file-31')).toBe(true, 'file-31 not found on page'); await pagination.resetToDefaultPageNumber(); await pagination.openCurrentPageMenu(); @@ -141,7 +141,7 @@ describe('Pagination on multiple pages on Personal Files', () => { await pagination.previousButton.click(); await dataTable.waitForHeader(); expect(await pagination.range.getText()).toContain('1-25 of 101'); - expect(await dataTable.getRowByName('file-12').isPresent()).toBe(true, 'file-12 not found on page'); + expect(await dataTable.isItemPresent('file-12')).toBe(true, 'file-12 not found on page'); await pagination.resetToDefaultPageNumber(); }); diff --git a/e2e/suites/pagination/pag-recent-files.test.ts b/e2e/suites/pagination/pag-recent-files.test.ts index cd09fad93..56b62c29e 100755 --- a/e2e/suites/pagination/pag-recent-files.test.ts +++ b/e2e/suites/pagination/pag-recent-files.test.ts @@ -123,7 +123,7 @@ describe('Pagination on multiple pages on Recent Files', () => { expect(await pagination.currentPage.getText()).toContain('Page 3'); expect(await pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); expect(await pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - expect(await dataTable.getRowByName('file-40').isPresent()).toBe(true, 'File not found on page'); + expect(await dataTable.isItemPresent('file-40')).toBe(true, 'File not found on page'); await pagination.resetToDefaultPageNumber(); }); @@ -132,7 +132,7 @@ describe('Pagination on multiple pages on Recent Files', () => { await pagination.nextButton.click(); await dataTable.waitForHeader(); expect(await pagination.range.getText()).toContain('26-50 of 101'); - expect(await dataTable.getRowByName('file-70').isPresent()).toBe(true, 'File not found on page'); + expect(await dataTable.isItemPresent('file-70')).toBe(true, 'File not found on page'); await pagination.resetToDefaultPageNumber(); await pagination.openCurrentPageMenu(); @@ -141,7 +141,7 @@ describe('Pagination on multiple pages on Recent Files', () => { await pagination.previousButton.click(); await dataTable.waitForHeader(); expect(pagination.range.getText()).toContain('1-25 of 101'); - expect(dataTable.getRowByName('file-88').isPresent()).toBe(true, 'File not found on page'); + expect(dataTable.isItemPresent('file-88')).toBe(true, 'File not found on page'); await pagination.resetToDefaultPageNumber(); }); diff --git a/e2e/suites/pagination/pag-shared-files.test.ts b/e2e/suites/pagination/pag-shared-files.test.ts index 7d4597590..50e914657 100755 --- a/e2e/suites/pagination/pag-shared-files.test.ts +++ b/e2e/suites/pagination/pag-shared-files.test.ts @@ -127,7 +127,7 @@ describe('Pagination on multiple pages on Shared Files', () => { expect(await pagination.currentPage.getText()).toContain('Page 3'); expect(await pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); expect(await pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - expect(await dataTable.getRowByName('file-40').isPresent()).toBe(true, 'File not found on page'); + expect(await dataTable.isItemPresent('file-40')).toBe(true, 'File not found on page'); await pagination.resetToDefaultPageNumber(); }); @@ -136,7 +136,7 @@ describe('Pagination on multiple pages on Shared Files', () => { await pagination.nextButton.click(); await dataTable.waitForHeader(); expect(await pagination.range.getText()).toContain('26-50 of 101'); - expect(await dataTable.getRowByName('file-70').isPresent()).toBe(true, 'File not found on page'); + expect(await dataTable.isItemPresent('file-70')).toBe(true, 'File not found on page'); await pagination.resetToDefaultPageNumber(); await pagination.openCurrentPageMenu(); @@ -145,7 +145,7 @@ describe('Pagination on multiple pages on Shared Files', () => { await pagination.previousButton.click(); await dataTable.waitForHeader(); expect(await pagination.range.getText()).toContain('1-25 of 101'); - expect(await dataTable.getRowByName('file-88').isPresent()).toBe(true, 'File not found on page'); + expect(await dataTable.isItemPresent('file-88')).toBe(true, 'File not found on page'); await pagination.resetToDefaultPageNumber(); }); diff --git a/e2e/suites/pagination/pag-trash.test.ts b/e2e/suites/pagination/pag-trash.test.ts index 93abb03fb..fc337c688 100755 --- a/e2e/suites/pagination/pag-trash.test.ts +++ b/e2e/suites/pagination/pag-trash.test.ts @@ -122,7 +122,7 @@ describe('Pagination on multiple pages on Trash', () => { expect(await pagination.currentPage.getText()).toContain('Page 3'); expect(await pagination.previousButton.isEnabled()).toBe(true, 'Previous button is not enabled'); expect(await pagination.nextButton.isEnabled()).toBe(true, 'Next button is not enabled'); - expect(await dataTable.getRowByName('file-40').isPresent()).toBe(true, 'File not found on page'); + expect(await dataTable.isItemPresent('file-40')).toBe(true, 'File not found on page'); await pagination.resetToDefaultPageNumber(); }); @@ -131,7 +131,7 @@ describe('Pagination on multiple pages on Trash', () => { await pagination.nextButton.click(); await dataTable.waitForHeader(); expect(pagination.range.getText()).toContain('26-50 of 101'); - expect(dataTable.getRowByName('file-70').isPresent()).toBe(true, 'File not found on page'); + expect(dataTable.isItemPresent('file-70')).toBe(true, 'File not found on page'); await pagination.resetToDefaultPageNumber(); await pagination.openCurrentPageMenu(); @@ -140,7 +140,7 @@ describe('Pagination on multiple pages on Trash', () => { await pagination.previousButton.click(); await dataTable.waitForHeader(); expect(await pagination.range.getText()).toContain('1-25 of 101'); - expect(await dataTable.getRowByName('file-88').isPresent()).toBe(true, 'File not found on page'); + expect(await dataTable.isItemPresent('file-88')).toBe(true, 'File not found on page'); await pagination.resetToDefaultPageNumber(); }); diff --git a/e2e/suites/search/search-results-libraries.test.ts b/e2e/suites/search/search-results-libraries.test.ts index e54d49c88..aead99846 100644 --- a/e2e/suites/search/search-results-libraries.test.ts +++ b/e2e/suites/search/search-results-libraries.test.ts @@ -127,10 +127,10 @@ describe('Search results - libraries', () => { await searchInput.searchFor(site1.name); await dataTable.waitForBody(); - expect(await dataTable.getRowByName(site1.name).isPresent()).toBe(true, `${site1.name} not displayed`); - expect(await dataTable.getRowByName(site2.name).isPresent()).toBe(false, `${site2.name} displayed`); - expect(await dataTable.getRowByName(site3.name).isPresent()).toBe(false, `${site3.name} displayed`); - expect(await dataTable.getRowByName(site4.name).isPresent()).toBe(false, `${site4.name} displayed`); + expect(await dataTable.isItemPresent(site1.name)).toBe(true, `${site1.name} not displayed`); + expect(await dataTable.isItemPresent(site2.name)).toBe(false, `${site2.name} displayed`); + expect(await dataTable.isItemPresent(site3.name)).toBe(false, `${site3.name} displayed`); + expect(await dataTable.isItemPresent(site4.name)).toBe(false, `${site4.name} displayed`); }); it('Search library - partial name match - [C290013]', async () => { @@ -139,10 +139,10 @@ describe('Search results - libraries', () => { await searchInput.searchFor('lib'); await dataTable.waitForBody(); - expect(await dataTable.getRowByName(site1.name).isPresent()).toBe(true, `${site1.name} not displayed`); - expect(await dataTable.getRowByName(site2.name).isPresent()).toBe(false, `${site2.name} displayed`); - expect(await dataTable.getRowByName(site3.name).isPresent()).toBe(true, `${site3.name} not displayed`); - expect(await dataTable.getRowByName(site4.name).isPresent()).toBe(false, `${site4.name} displayed`); + expect(await dataTable.isItemPresent(site1.name)).toBe(true, `${site1.name} not displayed`); + expect(await dataTable.isItemPresent(site2.name)).toBe(false, `${site2.name} displayed`); + expect(await dataTable.isItemPresent(site3.name)).toBe(true, `${site3.name} not displayed`); + expect(await dataTable.isItemPresent(site4.name)).toBe(false, `${site4.name} displayed`); }); it('Search library - description match - [C290014]', async () => { @@ -151,10 +151,10 @@ describe('Search results - libraries', () => { await searchInput.searchFor(site4.description); await dataTable.waitForBody(); - expect(await dataTable.getRowByName(site1.name).isPresent()).toBe(false, `${site1.name} displayed`); - expect(await dataTable.getRowByName(site2.name).isPresent()).toBe(false, `${site2.name} displayed`); - expect(await dataTable.getRowByName(site3.name).isPresent()).toBe(false, `${site3.name} displayed`); - expect(await dataTable.getRowByName(site4.name).isPresent()).toBe(true, `${site4.name} not displayed`); + expect(await dataTable.isItemPresent(site1.name)).toBe(false, `${site1.name} displayed`); + expect(await dataTable.isItemPresent(site2.name)).toBe(false, `${site2.name} displayed`); + expect(await dataTable.isItemPresent(site3.name)).toBe(false, `${site3.name} displayed`); + expect(await dataTable.isItemPresent(site4.name)).toBe(true, `${site4.name} not displayed`); }); it('Results page title - [C290015]', async () => { @@ -239,7 +239,7 @@ describe('Search results - libraries', () => { await searchInput.searchFor('admin-site'); await dataTable.waitForBody(); - expect(await dataTable.getRowByName(adminPrivate).isPresent()).toBe(false, `${adminPrivate} is displayed`); + expect(await dataTable.isItemPresent(adminPrivate)).toBe(false, `${adminPrivate} is displayed`); }); it('Search libraries with special characters - [C290028]', async () => { @@ -248,7 +248,7 @@ describe('Search results - libraries', () => { await searchInput.searchFor(siteRussian.name); await dataTable.waitForBody(); - expect(await dataTable.getRowByName(siteRussian.name).isPresent()).toBe(true, `${siteRussian.name} not displayed`); + expect(await dataTable.isItemPresent(siteRussian.name)).toBe(true, `${siteRussian.name} not displayed`); }); }); diff --git a/e2e/suites/search/search-results.test.ts b/e2e/suites/search/search-results.test.ts index bae09fb1b..c6024b6ae 100644 --- a/e2e/suites/search/search-results.test.ts +++ b/e2e/suites/search/search-results.test.ts @@ -78,42 +78,42 @@ describe('Search results', () => { await searchInput.searchFor('test'); await dataTable.waitForBody(); - expect(await dataTable.getRowByName(file).isPresent()).toBe(true, `${file} not displayed`); - expect(await dataTable.getRowByName(folder).isPresent()).toBe(false, `${folder} is displayed`); - expect(await dataTable.getRowByName(site).isPresent()).toBe(false, `${site} is displayed`); + expect(await dataTable.isItemPresent(file)).toBe(true, `${file} not displayed`); + expect(await dataTable.isItemPresent(folder)).toBe(false, `${folder} is displayed`); + expect(await dataTable.isItemPresent(site)).toBe(false, `${site} is displayed`); }); it('Only folders are returned when Folders option is the only one checked - [C290006]', async () => { await searchInput.clickSearchButton(); await searchInput.checkOnlyFolders(); await searchInput.searchFor('test'); - await dataTable.waitForBody(); + await page.waitForResults(); - expect(await dataTable.getRowByName(file).isPresent()).toBe(false, `${file} is displayed`); - expect(await dataTable.getRowByName(folder).isPresent()).toBe(true, `${folder} not displayed`); - expect(await dataTable.getRowByName(site).isPresent()).toBe(false, `${site} is displayed`); + expect(await dataTable.isItemPresent(file)).toBe(false, `${file} is displayed`); + expect(await dataTable.isItemPresent(folder)).toBe(true, `${folder} not displayed`); + expect(await dataTable.isItemPresent(site)).toBe(false, `${site} is displayed`); }); it('Files and folders are returned when both Files and Folders options are checked - [C290007]', async () => { await searchInput.clickSearchButton(); await searchInput.checkFilesAndFolders(); await searchInput.searchFor('test'); - await dataTable.waitForBody(); + await page.waitForResults(); - expect(await dataTable.getRowByName(file).isPresent()).toBe(true, `${file} not displayed`); - expect(await dataTable.getRowByName(folder).isPresent()).toBe(true, `${folder} not displayed`); - expect(await dataTable.getRowByName(site).isPresent()).toBe(false, `${site} is displayed`); + expect(await dataTable.isItemPresent(file)).toBe(true, `${file} not displayed`); + expect(await dataTable.isItemPresent(folder)).toBe(true, `${folder} not displayed`); + expect(await dataTable.isItemPresent(site)).toBe(false, `${site} is displayed`); }); it('Only libraries are returned when Libraries option is checked - [C290008]', async () => { await searchInput.clickSearchButton(); await searchInput.checkLibraries(); await searchInput.searchFor('test'); - await dataTable.waitForBody(); + await page.waitForResults(); - expect(await dataTable.getRowByName(file).isPresent()).toBe(false, `${file} is displayed`); - expect(await dataTable.getRowByName(folder).isPresent()).toBe(false, `${folder} is displayed`); - expect(await dataTable.getRowByName(site).isPresent()).toBe(true, `${site} not displayed`); + expect(await dataTable.isItemPresent(file)).toBe(false, `${file} is displayed`); + expect(await dataTable.isItemPresent(folder)).toBe(false, `${folder} is displayed`); + expect(await dataTable.isItemPresent(site)).toBe(true, `${site} not displayed`); }); }); diff --git a/e2e/suites/viewer/viewer-actions.test.ts b/e2e/suites/viewer/viewer-actions.test.ts index 1274f8653..5f55ceeb3 100755 --- a/e2e/suites/viewer/viewer-actions.test.ts +++ b/e2e/suites/viewer/viewer-actions.test.ts @@ -103,19 +103,19 @@ describe('Viewer actions', () => { expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await toolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); - expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed`); - expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed`); - expect(await toolbar.isButtonPresent('Print')).toBe(true, `Print is not displayed`); - expect(await toolbar.isButtonPresent('Activate full-screen mode')).toBe(true, `Full screen is not displayed`); - expect(await toolbar.isShareButtonPresent()).toBe(true, `Share is not displayed`); - expect(await toolbar.isButtonPresent('View details')).toBe(true, `view details is not displayed`); + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed`); + expect(await toolbar.isPrintPresent()).toBe(true, `Print is not displayed`); + expect(await toolbar.isFullScreenPresent()).toBe(true, `Full screen is not displayed`); + expect(await toolbar.isSharePresent()).toBe(true, `Share is not displayed`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `view details is not displayed`); await toolbar.openMoreMenu(); - expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); - expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); - expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`); - expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`); - expect(await toolbar.menu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage versions is not displayed`); - expect(await toolbar.menu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + expect(await toolbar.menu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); await toolbar.closeMoreMenu(); }); @@ -123,7 +123,7 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxPersonalFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.clickButton('Download'); + await toolbar.clickDownload(); expect(await Utils.fileExistsOnOS(docxPersonalFiles)).toBe(true, 'File not found in download location'); }); @@ -131,18 +131,17 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxPersonalFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Copy'); + await toolbar.clickMoreActionsCopy(); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await copyMoveDialog.selectLocation('Personal Files'); - await copyMoveDialog.chooseDestination(destination); + await copyMoveDialog.selectDestination(destination); await copyMoveDialog.clickCopy(); expect(await page.getSnackBarMessage()).toContain('Copied 1 item'); await viewer.clickClose(); - expect(await dataTable.getRowByName(docxPersonalFiles).isPresent()).toBe(true, 'Item is not in the list'); + expect(await dataTable.isItemPresent(docxPersonalFiles)).toBe(true, 'Item is not in the list'); await page.clickPersonalFilesAndWait(); await dataTable.doubleClickOnRowByName(destination); - expect(await dataTable.getRowByName(docxPersonalFiles).isPresent()).toBe(true, 'Item is not present in destination'); + expect(await dataTable.isItemPresent(docxPersonalFiles)).toBe(true, 'Item is not present in destination'); await apis.user.nodes.deleteNodeChildren(destinationId); done(); @@ -152,43 +151,40 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(xlsxPersonalFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Move'); + await toolbar.clickMoreActionsMove(); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await copyMoveDialog.selectLocation('Personal Files'); - await copyMoveDialog.chooseDestination(destination); + await copyMoveDialog.selectDestination(destination); await copyMoveDialog.clickMove(); expect(await page.getSnackBarMessage()).toContain('Moved 1 item'); await viewer.clickClose(); - expect(await dataTable.getRowByName(xlsxPersonalFiles).isPresent()).toBe(false, 'Item was not moved'); + expect(await dataTable.isItemPresent(xlsxPersonalFiles)).toBe(false, 'Item was not moved'); await page.clickPersonalFilesAndWait(); await dataTable.doubleClickOnRowByName(destination); - expect(await dataTable.getRowByName(xlsxPersonalFiles).isPresent()).toBe(true, 'Item is not present in destination'); + expect(await dataTable.isItemPresent(xlsxPersonalFiles)).toBe(true, 'Item is not present in destination'); }); it('Favorite action - [C268132]', async () => { await dataTable.doubleClickOnRowByName(docxPersonalFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); + await toolbar.clickMoreActionsFavorite(); await viewer.clickClose(); await page.clickFavoritesAndWait(); expect(await apis.user.favorites.isFavorite(docxFileId)).toBe(true, 'Item is not favorite'); - expect(await dataTable.getRowByName(docxPersonalFiles).isPresent()).toBe(true, 'Item is not present in Favorites list'); + expect(await dataTable.isItemPresent(docxPersonalFiles)).toBe(true, 'Item is not present in Favorites list'); }); it('Delete action - [C268133]', async () => { await dataTable.doubleClickOnRowByName(pdfPersonalFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await toolbar.clickMoreActionsDelete(); expect(await page.getSnackBarMessage()).toContain(`${pdfPersonalFiles} deleted`); expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened'); await Utils.pressEscape(); await page.clickTrashAndWait(); - expect(await dataTable.getRowByName(pdfPersonalFiles).isPresent()).toBe(true, 'Item is not present in Trash'); + expect(await dataTable.isItemPresent(pdfPersonalFiles)).toBe(true, 'Item is not present in Trash'); }); it('Full screen action - [C279282]', async () => { @@ -196,7 +192,7 @@ describe('Viewer actions', () => { expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); await Utils.getBrowserLog(); - await toolbar.clickButton('Activate full-screen mode'); + await toolbar.clickFullScreen(); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is closed after pressing Full screen'); const browserLogAfter = await Utils.getBrowserLog(); @@ -207,7 +203,7 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxPersonalFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.clickShareButton(); + await toolbar.clickShare(); expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await shareDialog.clickClose(); }); @@ -216,8 +212,7 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxPersonalFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Manage Versions'); + await toolbar.clickMoreActionsManageVersions(); expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await manageVersionsDialog.clickClose(); }); @@ -227,7 +222,7 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxPersonalFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.clickShareButton(); + await toolbar.clickShare(); expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await Utils.pressEscape(); expect(await shareDialog.isDialogOpen()).toBe(false, 'Dialog is still open'); @@ -278,7 +273,7 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxLibraries); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.clickButton('Download'); + await toolbar.clickDownload(); expect(await Utils.fileExistsOnOS(docxLibraries)).toBe(true, 'File not found in download location'); }); @@ -286,18 +281,17 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxLibraries); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Copy'); + await toolbar.clickMoreActionsCopy(); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await copyMoveDialog.selectLocation('Personal Files'); - await copyMoveDialog.chooseDestination(destination); + await copyMoveDialog.selectDestination(destination); await copyMoveDialog.clickCopy(); expect(await page.getSnackBarMessage()).toContain('Copied 1 item'); await viewer.clickClose(); - expect(await dataTable.getRowByName(docxLibraries).isPresent()).toBe(true, 'Item is not in the list'); + expect(await dataTable.isItemPresent(docxLibraries)).toBe(true, 'Item is not in the list'); await page.clickPersonalFilesAndWait(); await dataTable.doubleClickOnRowByName(destination); - expect(await dataTable.getRowByName(docxLibraries).isPresent()).toBe(true, 'Item is not present in destination'); + expect(await dataTable.isItemPresent(docxLibraries)).toBe(true, 'Item is not present in destination'); await apis.user.nodes.deleteNodeChildren(destinationId); done(); @@ -307,50 +301,47 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(xlsxLibraries); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Move'); + await toolbar.clickMoreActionsMove(); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await copyMoveDialog.selectLocation('Personal Files'); - await copyMoveDialog.chooseDestination(destination); + await copyMoveDialog.selectDestination(destination); await copyMoveDialog.clickMove(); expect(await page.getSnackBarMessage()).toContain('Moved 1 item'); await viewer.clickClose(); - expect(await dataTable.getRowByName(xlsxLibraries).isPresent()).toBe(false, 'Item was not moved'); + expect(await dataTable.isItemPresent(xlsxLibraries)).toBe(false, 'Item was not moved'); await page.clickPersonalFilesAndWait(); await dataTable.doubleClickOnRowByName(destination); - expect(await dataTable.getRowByName(xlsxLibraries).isPresent()).toBe(true, 'Item is not present in destination'); + expect(await dataTable.isItemPresent(xlsxLibraries)).toBe(true, 'Item is not present in destination'); }); it('Favorite action - [C286372]', async () => { await dataTable.doubleClickOnRowByName(docxLibraries); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); + await toolbar.clickMoreActionsFavorite(); await viewer.clickClose(); await page.clickFavoritesAndWait(); expect(await apis.user.favorites.isFavorite(docxFileId)).toBe(true, `${docxLibraries} is not favorite`); - expect(await dataTable.getRowByName(docxLibraries).isPresent()).toBe(true, `${docxLibraries} is not present in Favorites list`); + expect(await dataTable.isItemPresent(docxLibraries)).toBe(true, `${docxLibraries} is not present in Favorites list`); }); it('Delete action - [C286373]', async () => { await dataTable.doubleClickOnRowByName(pdfLibraries); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await toolbar.clickMoreActionsDelete(); expect(await page.getSnackBarMessage()).toContain(`${pdfLibraries} deleted`); expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened'); await Utils.pressEscape(); await page.clickTrashAndWait(); - expect(await dataTable.getRowByName(pdfLibraries).isPresent()).toBe(true, 'Item is not present in Trash'); + expect(await dataTable.isItemPresent(pdfLibraries)).toBe(true, 'Item is not present in Trash'); }); it('Share action - [C286374]', async () => { await dataTable.doubleClickOnRowByName(docxLibraries); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.clickShareButton(); + await toolbar.clickShare(); expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await shareDialog.clickClose(); }); @@ -359,8 +350,7 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxLibraries); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Manage Versions'); + await toolbar.clickMoreActionsManageVersions(); expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await manageVersionsDialog.clickClose(); }); @@ -409,7 +399,7 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxRecentFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.clickButton('Download'); + await toolbar.clickDownload(); expect(await Utils.fileExistsOnOS(docxRecentFiles)).toBe(true, 'File not found in download location'); }); @@ -417,18 +407,17 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxRecentFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Copy'); + await toolbar.clickMoreActionsCopy(); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await copyMoveDialog.selectLocation('Personal Files'); - await copyMoveDialog.chooseDestination(destination); + await copyMoveDialog.selectDestination(destination); await copyMoveDialog.clickCopy(); expect(await page.getSnackBarMessage()).toContain('Copied 1 item'); await viewer.clickClose(); - expect(await dataTable.getRowByName(docxRecentFiles).isPresent()).toBe(true, 'Item is not in the list'); + expect(await dataTable.isItemPresent(docxRecentFiles)).toBe(true, 'Item is not in the list'); await page.clickPersonalFilesAndWait(); await dataTable.doubleClickOnRowByName(destination); - expect(await dataTable.getRowByName(docxRecentFiles).isPresent()).toBe(true, 'Item is not present in destination'); + expect(await dataTable.isItemPresent(docxRecentFiles)).toBe(true, 'Item is not present in destination'); await apis.user.nodes.deleteNodeChildren(destinationId); done(); @@ -438,51 +427,48 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(xlsxRecentFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Move'); + await toolbar.clickMoreActionsMove(); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await copyMoveDialog.selectLocation('Personal Files'); - await copyMoveDialog.chooseDestination(destination); + await copyMoveDialog.selectDestination(destination); await copyMoveDialog.clickMove(); expect(await page.getSnackBarMessage()).toContain('Moved 1 item'); await viewer.clickClose(); - expect(await dataTable.getRowByName(xlsxRecentFiles).isPresent()).toBe(true, 'Item is not in the list'); - expect(await dataTable.getItemLocationTileAttr(xlsxRecentFiles)).toContain(destination, 'Item was not moved'); + expect(await dataTable.isItemPresent(xlsxRecentFiles)).toBe(true, 'Item is not in the list'); + expect(await dataTable.getItemLocationTooltip(xlsxRecentFiles)).toContain(destination, 'Item was not moved'); await page.clickPersonalFilesAndWait(); await dataTable.doubleClickOnRowByName(destination); - expect(await dataTable.getRowByName(xlsxRecentFiles).isPresent()).toBe(true, 'Item is not present in destination'); + expect(await dataTable.isItemPresent(xlsxRecentFiles)).toBe(true, 'Item is not present in destination'); }); it('Favorite action - [C286386]', async () => { await dataTable.doubleClickOnRowByName(docxRecentFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); + await toolbar.clickMoreActionsFavorite(); await viewer.clickClose(); await page.clickFavoritesAndWait(); expect(await apis.user.favorites.isFavorite(docxFileId)).toBe(true, 'Item is not favorite'); - expect(await dataTable.getRowByName(docxRecentFiles).isPresent()).toBe(true, 'Item is not present in Favorites list'); + expect(await dataTable.isItemPresent(docxRecentFiles)).toBe(true, 'Item is not present in Favorites list'); }); it('Delete action - [C286387]', async () => { await dataTable.doubleClickOnRowByName(pdfRecentFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await toolbar.clickMoreActionsDelete(); expect(await page.getSnackBarMessage()).toContain(`${pdfRecentFiles} deleted`); expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened'); await Utils.pressEscape(); await page.clickTrashAndWait(); - expect(await dataTable.getRowByName(pdfRecentFiles).isPresent()).toBe(true, 'Item is not present in Trash'); + expect(await dataTable.isItemPresent(pdfRecentFiles)).toBe(true, 'Item is not present in Trash'); }); it('Share action - [C286388]', async () => { await dataTable.doubleClickOnRowByName(docxRecentFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.clickShareButton(); + await toolbar.clickShare(); expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await shareDialog.clickClose(); }); @@ -491,8 +477,7 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxRecentFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Manage Versions'); + await toolbar.clickMoreActionsManageVersions(); expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await manageVersionsDialog.clickClose(); }); @@ -541,7 +526,7 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxSharedFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.clickButton('Download'); + await toolbar.clickDownload(); expect(await Utils.fileExistsOnOS(docxSharedFiles)).toBe(true, 'File not found in download location'); }); @@ -549,18 +534,17 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxSharedFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Copy'); + await toolbar.clickMoreActionsCopy(); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await copyMoveDialog.selectLocation('Personal Files'); - await copyMoveDialog.chooseDestination(destination); + await copyMoveDialog.selectDestination(destination); await copyMoveDialog.clickCopy(); expect(await page.getSnackBarMessage()).toContain('Copied 1 item'); await viewer.clickClose(); - expect(await dataTable.getRowByName(docxSharedFiles).isPresent()).toBe(true, 'Item is not in the list'); + expect(await dataTable.isItemPresent(docxSharedFiles)).toBe(true, 'Item is not in the list'); await page.clickPersonalFilesAndWait(); await dataTable.doubleClickOnRowByName(destination); - expect(await dataTable.getRowByName(docxSharedFiles).isPresent()).toBe(true, 'Item is not present in destination'); + expect(await dataTable.isItemPresent(docxSharedFiles)).toBe(true, 'Item is not present in destination'); await apis.user.nodes.deleteNodeChildren(destinationId); done(); @@ -570,51 +554,48 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(xlsxSharedFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Move'); + await toolbar.clickMoreActionsMove(); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await copyMoveDialog.selectLocation('Personal Files'); - await copyMoveDialog.chooseDestination(destination); + await copyMoveDialog.selectDestination(destination); await copyMoveDialog.clickMove(); expect(await page.getSnackBarMessage()).toContain('Moved 1 item'); await viewer.clickClose(); - expect(await dataTable.getRowByName(xlsxSharedFiles).isPresent()).toBe(true, 'Item is not in the list'); - expect(await dataTable.getItemLocationTileAttr(xlsxSharedFiles)).toContain(destination, 'Item was not moved'); + expect(await dataTable.isItemPresent(xlsxSharedFiles)).toBe(true, 'Item is not in the list'); + expect(await dataTable.getItemLocationTooltip(xlsxSharedFiles)).toContain(destination, 'Item was not moved'); await page.clickPersonalFilesAndWait(); await dataTable.doubleClickOnRowByName(destination); - expect(await dataTable.getRowByName(xlsxSharedFiles).isPresent()).toBe(true, 'Item is not present in destination'); + expect(await dataTable.isItemPresent(xlsxSharedFiles)).toBe(true, 'Item is not present in destination'); }); it('Favorite action - [C286379]', async () => { await dataTable.doubleClickOnRowByName(docxSharedFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); + await toolbar.clickMoreActionsFavorite(); await viewer.clickClose(); await page.clickFavoritesAndWait(); expect(await apis.user.favorites.isFavorite(docxFileId)).toBe(true, 'Item is not favorite'); - expect(await dataTable.getRowByName(docxSharedFiles).isPresent()).toBe(true, 'Item is not present in Favorites list'); + expect(await dataTable.isItemPresent(docxSharedFiles)).toBe(true, 'Item is not present in Favorites list'); }); it('Delete action - [C286380]', async () => { await dataTable.doubleClickOnRowByName(pdfSharedFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await toolbar.clickMoreActionsDelete(); expect(await page.getSnackBarMessage()).toContain(`${pdfSharedFiles} deleted`); expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened'); await Utils.pressEscape(); await page.clickTrashAndWait(); - expect(await dataTable.getRowByName(pdfSharedFiles).isPresent()).toBe(true, 'Item is not present in Trash'); + expect(await dataTable.isItemPresent(pdfSharedFiles)).toBe(true, 'Item is not present in Trash'); }); it('Share action - [C286381]', async () => { await dataTable.doubleClickOnRowByName(docxSharedFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.clickShareEditButton(); + await toolbar.clickSharedLinkSettings(); expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await shareDialog.clickClose(); }); @@ -623,8 +604,7 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxSharedFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Manage Versions'); + await toolbar.clickMoreActionsManageVersions(); expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await manageVersionsDialog.clickClose(); }); @@ -675,7 +655,7 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxFavorites); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.clickButton('Download'); + await toolbar.clickDownload(); expect(await Utils.fileExistsOnOS(docxFavorites)).toBe(true, 'File not found in download location'); }); @@ -683,18 +663,17 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxFavorites); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Copy'); + await toolbar.clickMoreActionsCopy(); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await copyMoveDialog.selectLocation('Personal Files'); - await copyMoveDialog.chooseDestination(destination); + await copyMoveDialog.selectDestination(destination); await copyMoveDialog.clickCopy(); expect(await page.getSnackBarMessage()).toContain('Copied 1 item'); await viewer.clickClose(); - expect(await dataTable.getRowByName(docxFavorites).isPresent()).toBe(true, 'Item is not in the list'); + expect(await dataTable.isItemPresent(docxFavorites)).toBe(true, 'Item is not in the list'); await page.clickPersonalFilesAndWait(); await dataTable.doubleClickOnRowByName(destination); - expect(await dataTable.getRowByName(docxFavorites).isPresent()).toBe(true, 'Item is not present in destination'); + expect(await dataTable.isItemPresent(docxFavorites)).toBe(true, 'Item is not present in destination'); await apis.user.nodes.deleteNodeChildren(destinationId); done(); @@ -704,51 +683,48 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(xlsxFavorites); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Move'); + await toolbar.clickMoreActionsMove(); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await copyMoveDialog.selectLocation('Personal Files'); - await copyMoveDialog.chooseDestination(destination); + await copyMoveDialog.selectDestination(destination); await copyMoveDialog.clickMove(); expect(await page.getSnackBarMessage()).toContain('Moved 1 item'); await viewer.clickClose(); - expect(await dataTable.getRowByName(xlsxFavorites).isPresent()).toBe(true, 'Item is not in the list'); - expect(await dataTable.getItemLocationTileAttr(xlsxFavorites)).toContain(destination, 'Item was not moved'); + expect(await dataTable.isItemPresent(xlsxFavorites)).toBe(true, 'Item is not in the list'); + expect(await dataTable.getItemLocationTooltip(xlsxFavorites)).toContain(destination, 'Item was not moved'); await page.clickPersonalFilesAndWait(); await dataTable.doubleClickOnRowByName(destination); - expect(await dataTable.getRowByName(xlsxFavorites).isPresent()).toBe(true, 'Item is not present in destination'); + expect(await dataTable.isItemPresent(xlsxFavorites)).toBe(true, 'Item is not present in destination'); }); it('Favorite action - [C286393]', async () => { await dataTable.doubleClickOnRowByName(xlsxFavorites); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Favorite'); + await toolbar.clickMoreActionsFavorite(); await viewer.clickClose(); await page.clickFavoritesAndWait(); expect(await apis.user.favorites.isFavorite(xlsxFileId)).toBe(false, 'Item is still favorite'); - expect(await dataTable.getRowByName(xlsxFavorites).isPresent()).toBe(false, 'Item is still present in Favorites list'); + expect(await dataTable.isItemPresent(xlsxFavorites)).toBe(false, 'Item is still present in Favorites list'); }); it('Delete action - [C286394]', async () => { await dataTable.doubleClickOnRowByName(pdfFavorites); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Delete'); + await toolbar.clickMoreActionsDelete(); expect(await page.getSnackBarMessage()).toContain(`${pdfFavorites} deleted`); expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened'); await Utils.pressEscape(); await page.clickTrashAndWait(); - expect(await dataTable.getRowByName(pdfFavorites).isPresent()).toBe(true, 'Item is not present in Trash'); + expect(await dataTable.isItemPresent(pdfFavorites)).toBe(true, 'Item is not present in Trash'); }); it('Share action - [C286395]', async () => { await dataTable.doubleClickOnRowByName(docxFavorites); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.clickShareButton(); + await toolbar.clickShare(); expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await shareDialog.clickClose(); }); @@ -757,8 +733,7 @@ describe('Viewer actions', () => { await dataTable.doubleClickOnRowByName(docxFavorites); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - await toolbar.openMoreMenu(); - await toolbar.menu.clickMenuItem('Manage Versions'); + await toolbar.clickMoreActionsManageVersions(); expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); await manageVersionsDialog.clickClose(); }); diff --git a/e2e/utilities/repo-client/apis/favorites/favorites-api.ts b/e2e/utilities/repo-client/apis/favorites/favorites-api.ts index f4fb0d1ad..2c5239a50 100755 --- a/e2e/utilities/repo-client/apis/favorites/favorites-api.ts +++ b/e2e/utilities/repo-client/apis/favorites/favorites-api.ts @@ -61,11 +61,14 @@ export class FavoritesApi extends RepoApi { } } }; - return await this.alfrescoJsApi.core.favoritesApi.addFavorite('-me-', data); + try { + return await this.alfrescoJsApi.core.favoritesApi.addFavorite('-me-', data); + } catch (error) { + // console.log('--- add favorite by id catch '); + } } async addFavoritesByIds(nodeType: 'file' | 'folder' | 'site', ids: string[]) { - await this.apiAuth(); return await ids.reduce(async (previous, current) => { await previous; await this.addFavoriteById(nodeType, current); @@ -107,13 +110,19 @@ export class FavoritesApi extends RepoApi { async removeFavoriteById(nodeId: string) { await this.apiAuth(); - return await this.alfrescoJsApi.core.peopleApi.removeFavoriteSite('-me-', nodeId); + try { + return await this.alfrescoJsApi.core.peopleApi.removeFavoriteSite('-me-', nodeId); + } catch (error) { + // console.log('--- remove favorite by id catch '); + } } - async removeFavorite(api: RepoClient, name: string) { - const nodeId = (await api.nodes.getNodeByPath(name)).entry.id; - return await this.removeFavoriteById(nodeId); - } + async removeFavoritesByIds(ids: string[]) { + return await ids.reduce(async (previous, current) => { + await previous; + await this.removeFavoriteById(current); + }, Promise.resolve()); + } async waitForApi(data) { try { diff --git a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts index 9a60adc78..9f04bd18f 100755 --- a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts +++ b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts @@ -59,13 +59,26 @@ export class NodesApi extends RepoApi { return ''; } + + async getSharedId(nodeId: string) { + return await this.getNodeProperty(nodeId, 'qshare:sharedId'); + } + + async getSharedExpiryDate(nodeId: string) { + return await this.getNodeProperty(nodeId, 'qshare:expiryDate'); + } + async isFileShared(nodeId: string) { - return (await this.getNodeProperty(nodeId, 'qshare:sharedId')) !== ''; + return (await this.getSharedId(nodeId)) !== ''; } async deleteNodeById(id: string, permanent: boolean = true) { await this.apiAuth(); - return await this.alfrescoJsApi.core.nodesApi.deleteNode(id, { permanent }); + try { + return await this.alfrescoJsApi.core.nodesApi.deleteNode(id, { permanent }); + } catch (error) { + console.log('------ deleteNodeById failed '); + } } async deleteNodeByPath(path: string, permanent: boolean = true) { diff --git a/src/assets/app.extensions.json b/src/assets/app.extensions.json index f135738b5..b84cc1d13 100644 --- a/src/assets/app.extensions.json +++ b/src/assets/app.extensions.json @@ -730,7 +730,7 @@ } }, { - "id": "app.context.leaveLibrary", + "id": "app.context.menu.leaveLibrary", "order": 703, "title": "APP.ACTIONS.LEAVE", "icon": "not_interested", @@ -783,7 +783,7 @@ } }, { - "id": "app.toolbar.deleteLibrary", + "id": "app.context.menu.deleteLibrary", "order": 901, "title": "APP.ACTIONS.DELETE", "icon": "delete",