diff --git a/e2e/components/menu/menu.ts b/e2e/components/menu/menu.ts index ed0ed7bf3..3afdd87c3 100755 --- a/e2e/components/menu/menu.ts +++ b/e2e/components/menu/menu.ts @@ -37,7 +37,9 @@ export class Menu extends Component { submenu: 'app-context-menu-item .mat-menu-item', - editFolder: `app.context.menu.editFolder` + editFolder: `app.context.menu.editFolder`, + editOffline: `.mat-menu-item[title='Edit offline']`, + cancelEditing: `.mat-menu-item[title='Cancel editing']` }; items: ElementArrayFinder = this.component.all(by.css(Menu.selectors.item)); @@ -45,27 +47,29 @@ 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.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.id(Menu.selectors.editFolder)); - 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')); + cancelEditingAction: ElementFinder = this.component.element(by.css(Menu.selectors.cancelEditing)); 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')); + copyAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Copy')); createFolderAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Create folder')); createLibraryAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Create Library')); + deleteAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Delete')); + downloadAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Download')); + editFolderAction: ElementFinder = this.component.element(by.id(Menu.selectors.editFolder)); + editOfflineAction: ElementFinder = this.component.element(by.css(Menu.selectors.editOffline)); + favoriteAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Favorite')); + joinAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Join')); + leaveAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Leave')); + managePermissionsAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Permissions')); + manageVersionsAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Manage Versions')); + moveAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Move')); + permanentDeleteAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Permanently delete')); + restoreAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Restore')); + shareAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Share')); + shareEditAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Shared link settings')); uploadFileAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Upload file')); uploadFolderAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Upload folder')); + viewAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'View')); + viewDetailsAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'View details')); constructor(ancestor?: ElementFinder) { super(Menu.selectors.root, ancestor); @@ -212,8 +216,16 @@ export class Menu extends Component { return await this.downloadAction.isPresent(); } - async isEditPresent() { - return await this.editAction.isPresent(); + async isEditFolderPresent() { + return await this.editFolderAction.isPresent(); + } + + async isEditOfflinePresent() { + return await this.editOfflineAction.isPresent(); + } + + async isCancelEditingPresent() { + return await this.cancelEditingAction.isPresent(); } async isCopyPresent() { diff --git a/e2e/components/search/search-input.ts b/e2e/components/search/search-input.ts index 0698fa11a..42f9ad947 100755 --- a/e2e/components/search/search-input.ts +++ b/e2e/components/search/search-input.ts @@ -74,14 +74,17 @@ export class SearchInput extends Component { } async clickFilesOption() { + await browser.wait(EC.elementToBeClickable(this.searchFilesOption), BROWSER_WAIT_TIMEOUT, '--- timeout waiting for Files to be clickable'); return await this.searchFilesOption.click(); } async clickFoldersOption() { + await browser.wait(EC.elementToBeClickable(this.searchFoldersOption), BROWSER_WAIT_TIMEOUT, '--- timeout waiting for Folders to be clickable'); return await this.searchFoldersOption.click(); } async clickLibrariesOption() { + await browser.wait(EC.elementToBeClickable(this.searchLibrariesOption), BROWSER_WAIT_TIMEOUT, '--- timeout waiting for Libraries to be clickable'); return await this.searchLibrariesOption.click(); } diff --git a/e2e/components/toolbar/toolbar.ts b/e2e/components/toolbar/toolbar.ts index 44a669962..2fecb66c4 100755 --- a/e2e/components/toolbar/toolbar.ts +++ b/e2e/components/toolbar/toolbar.ts @@ -37,7 +37,7 @@ export class Toolbar extends Component { 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']`, + editFolder: 'app.toolbar.editFolder', viewDetails: `.mat-icon-button[title='View details']`, print: `.mat-icon-button[title='Print']`, fullScreen: `.mat-icon-button[title='Activate full-screen mode']`, @@ -53,7 +53,7 @@ export class Toolbar extends Component { 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)); + editFolderButton: ElementFinder = this.component.element(by.id(Toolbar.selectors.editFolder)); 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)); @@ -108,15 +108,6 @@ export class Toolbar extends Component { await btn.click(); } - async clickShare() { - const btn = this.shareButton; - await btn.click(); - } - - async clickSharedLinkSettings() { - const btn = this.shareEditButton; - await btn.click(); - } async isSharedLinkSettingsPresent() { return await browser.isElementPresent(this.shareEditButton); @@ -134,8 +125,16 @@ export class Toolbar extends Component { return await browser.isElementPresent(this.downloadButton); } - async isEditPresent() { - return await browser.isElementPresent(this.editButton); + async isPermanentlyDeletePresent() { + return await browser.isElementPresent(this.permanentlyDeleteButton); + } + + async isRestorePresent() { + return await browser.isElementPresent(this.restoreButton); + } + + async isEditFolderPresent() { + return await browser.isElementPresent(this.editFolderButton); } async isViewDetailsPresent() { @@ -151,12 +150,22 @@ export class Toolbar extends Component { } + async clickShare() { + const btn = this.shareButton; + await btn.click(); + } + + async clickSharedLinkSettings() { + const btn = this.shareEditButton; + await btn.click(); + } + async clickView() { return await this.viewButton.click(); } - async clickEdit() { - return await this.editButton.click(); + async clickEditFolder() { + return await this.editFolderButton.click(); } async clickViewDetails() { diff --git a/e2e/suites/actions/context-menu-multiple-selection.test.ts b/e2e/suites/actions/context-menu-multiple-selection.test.ts index c818ef337..7684136db 100755 --- a/e2e/suites/actions/context-menu-multiple-selection.test.ts +++ b/e2e/suites/actions/context-menu-multiple-selection.test.ts @@ -31,8 +31,12 @@ import { Utils } from '../../utilities/utils'; describe('Context menu actions - multiple selection : ', () => { const username = `user-${Utils.random()}`; + const parent = `parent=${Utils.random()}`; let parentId; + const file1 = `my-file1-${Utils.random()}.txt`; let file1Id; const file2 = `my-file2-${Utils.random()}.txt`; let file2Id; + const fileLocked1 = `my-fileLocked1-${Utils.random()}.txt`; let fileLocked1Id; + const fileLocked2 = `my-fileLocked2-${Utils.random()}.txt`; let fileLocked2Id; const folder1 = `my-folder1-${Utils.random()}`; let folder1Id; const folder2 = `my-folder2-${Utils.random()}`; let folder2Id; @@ -45,6 +49,8 @@ describe('Context menu actions - multiple selection : ', () => { const siteName = `site-${Utils.random()}`; const file1Site = `my-inSite-file1-${Utils.random()}.txt`; const file2Site = `my-inSite-file2-${Utils.random()}.txt`; + const fileLocked1Site = `my-inSite-fileLocked1-${Utils.random()}.txt`; let fileLocked1SiteId; + const fileLocked2Site = `my-inSite-fileLocked2-${Utils.random()}.txt`; let fileLocked2SiteId; const folder1Site = `my-inSite-folder1-${Utils.random()}`; const folder2Site = `my-inSite-folder2-${Utils.random()}`; @@ -62,10 +68,17 @@ describe('Context menu actions - multiple selection : ', () => { beforeAll(async (done) => { await apis.admin.people.createUser({ username }); - 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; - folder2Id = (await apis.user.nodes.createFolder(folder2)).entry.id; + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; + + file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id; + file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id; + folder1Id = (await apis.user.nodes.createFolder(folder1, parentId)).entry.id; + folder2Id = (await apis.user.nodes.createFolder(folder2, parentId)).entry.id; + + fileLocked1Id = (await apis.user.nodes.createFile(fileLocked1, parentId)).entry.id; + fileLocked2Id = (await apis.user.nodes.createFile(fileLocked2, parentId)).entry.id; + await apis.user.nodes.lockFile(fileLocked1Id); + await apis.user.nodes.lockFile(fileLocked2Id); await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC); const docLibId = await apis.user.sites.getDocLibId(siteName); @@ -73,13 +86,17 @@ describe('Context menu actions - multiple selection : ', () => { await apis.user.nodes.createFile(file2Site, docLibId); await apis.user.nodes.createFolder(folder1Site, docLibId); await apis.user.nodes.createFolder(folder2Site, docLibId); + fileLocked1SiteId = (await apis.user.nodes.createFile(fileLocked1Site, docLibId)).entry.id; + fileLocked2SiteId = (await apis.user.nodes.createFile(fileLocked2Site, docLibId)).entry.id; + await apis.user.nodes.lockFile(fileLocked1SiteId); + await apis.user.nodes.lockFile(fileLocked2SiteId); - await apis.user.shared.shareFilesByIds([ file1Id, file2Id ]); - await apis.user.shared.waitForApi({ expect: 2 }); + await apis.user.shared.shareFilesByIds([ file1Id, file2Id, fileLocked1Id, fileLocked2Id ]); + await apis.user.shared.waitForApi({ expect: 4 }); - await apis.user.favorites.addFavoritesByIds('file', [ file1Id, file2Id ]); + await apis.user.favorites.addFavoritesByIds('file', [ file1Id, file2Id, fileLocked1Id, fileLocked2Id ]); await apis.user.favorites.addFavoritesByIds('folder', [ folder1Id, folder2Id ]); - await apis.user.favorites.waitForApi({ expect: 4 + 1 }); + await apis.user.favorites.waitForApi({ expect: 6 + 1 }); fileInTrash1Id = (await apis.user.nodes.createFile(fileInTrash1)).entry.id; fileInTrash2Id = (await apis.user.nodes.createFile(fileInTrash2)).entry.id; @@ -92,7 +109,7 @@ describe('Context menu actions - multiple selection : ', () => { }); afterAll(async (done) => { - await apis.user.nodes.deleteNodesById([ file1Id, file2Id, folder1Id, folder2Id ]); + await apis.user.nodes.deleteNodeById(parentId); await apis.user.sites.deleteSite(siteName); await apis.user.trashcan.emptyTrash(); done(); @@ -102,7 +119,12 @@ describe('Context menu actions - multiple selection : ', () => { beforeEach(async (done) => { await Utils.pressEscape(); await page.clickPersonalFilesAndWait(); - await dataTable.clearSelection(); + await dataTable.doubleClickOnRowByName(parent); + done(); + }); + + afterAll(async (done) => { + await Utils.pressEscape(); done(); }); @@ -119,7 +141,7 @@ describe('Context menu actions - multiple selection : ', () => { 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.isEditPresent()).toBe(false, `Edit is displayed for ${file1}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder 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`); @@ -130,7 +152,13 @@ describe('Context menu actions - multiple selection : ', () => { beforeEach(async (done) => { await Utils.pressEscape(); await page.clickPersonalFilesAndWait(); - await dataTable.clearSelection(); + await dataTable.doubleClickOnRowByName(parent); + await dataTable.waitForBody(); + done(); + }); + + afterAll(async (done) => { + await Utils.pressEscape(); done(); }); @@ -138,41 +166,62 @@ describe('Context menu actions - multiple selection : ', () => { await dataTable.selectMultipleItems([file1, file2]); await dataTable.rightClickOnMultipleSelection(); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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(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`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + }); + + it('correct actions appear when multiple locked files are selected - []', async () => { + await dataTable.selectMultipleItems([fileLocked1, fileLocked2]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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(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.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); }); it('correct actions appear when multiple folders are selected - [C280632]', async () => { await dataTable.selectMultipleItems([folder1, folder2]); await dataTable.rightClickOnMultipleSelection(); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isEditFolderPresent()).toBe(false, 'Edit folder 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`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isEditFolderPresent()).toBe(false, 'Edit folder 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`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); }); }); @@ -185,46 +234,73 @@ describe('Context menu actions - multiple selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('correct actions appear when multiple files are selected - [C280641]', async () => { await dataTable.selectMultipleItems([ file1Site, file2Site ]); await dataTable.rightClickOnMultipleSelection(); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isEditFolderPresent()).toBe(false, 'Edit folder 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`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + }); + + it('correct actions appear when multiple locked files are selected - []', async () => { + await dataTable.selectMultipleItems([ fileLocked1Site, fileLocked2Site ]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditFolderPresent()).toBe(false, 'Edit folder 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.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); }); it('correct actions appear when multiple folders are selected - [C280574]', async () => { await dataTable.selectMultipleItems([ folder1Site, folder2Site ]); await dataTable.rightClickOnMultipleSelection(); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isEditFolderPresent()).toBe(false, 'Edit folder 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`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isEditFolderPresent()).toBe(false, 'Edit folder 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`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); }); }); @@ -236,18 +312,41 @@ describe('Context menu actions - multiple selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('correct actions appear when multiple files are selected - [C280648]', async () => { await dataTable.selectMultipleItems([ file1, file2 ]); await dataTable.rightClickOnMultipleSelection(); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isEditFolderPresent()).toBe(false, 'Edit folder 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`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is not displayed`); + }); + + it('correct actions appear when multiple locked files are selected - []', async () => { + await dataTable.selectMultipleItems([ fileLocked1, fileLocked2 ]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditFolderPresent()).toBe(false, 'Edit folder 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.isManageVersionsPresent()).toBe(false, `Manage versions is not displayed`); }); }); @@ -259,18 +358,41 @@ describe('Context menu actions - multiple selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('correct actions appear when multiple files are selected - [C280652]', async () => { await dataTable.selectMultipleItems([ file1, file2 ]); await dataTable.rightClickOnMultipleSelection(); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isEditFolderPresent()).toBe(false, 'Edit folder 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`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + }); + + it('correct actions appear when multiple locked files are selected - []', async () => { + await dataTable.selectMultipleItems([ fileLocked1, fileLocked2 ]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditFolderPresent()).toBe(false, 'Edit folder 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.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); }); }); @@ -282,49 +404,73 @@ describe('Context menu actions - multiple selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('correct actions appear when multiple files are selected - [C280656]', async () => { await dataTable.selectMultipleItems([ file1, file2 ]); await dataTable.rightClickOnMultipleSelection(); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isEditFolderPresent()).toBe(false, 'Edit folder 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.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + }); + + it('correct actions appear when multiple locked files are selected - []', async () => { + await dataTable.selectMultipleItems([ fileLocked1, fileLocked2 ]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditFolderPresent()).toBe(false, 'Edit folder 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.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); }); it('correct actions appear when multiple folders are selected - [C280664]', async () => { await dataTable.selectMultipleItems([ folder1, folder2 ]); await dataTable.rightClickOnMultipleSelection(); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isEditFolderPresent()).toBe(false, 'Edit folder 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.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isEditFolderPresent()).toBe(false, 'Edit folder 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.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); }); }); @@ -336,6 +482,11 @@ describe('Context menu actions - multiple selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('correct actions appear when multiple files are selected - [C286273]', async () => { await dataTable.selectMultipleItems([ fileInTrash1, fileInTrash2 ]); await dataTable.rightClickOnMultipleSelection(); @@ -344,11 +495,14 @@ describe('Context menu actions - multiple selection : ', () => { 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.isEditFolderPresent()).toBe(false, 'Edit folder 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`); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); }); it('correct actions appear when multiple folders are selected - [C286274]', async () => { @@ -359,11 +513,14 @@ describe('Context menu actions - multiple selection : ', () => { 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.isEditFolderPresent()).toBe(false, 'Edit folder 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`); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); }); it('correct actions appear when both files and folders are selected - [C286275]', async () => { @@ -374,11 +531,14 @@ describe('Context menu actions - multiple selection : ', () => { 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.isEditFolderPresent()).toBe(false, 'Edit folder 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`); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); }); }); @@ -389,6 +549,11 @@ describe('Context menu actions - multiple selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('correct actions appear when multiple files are selected - [C291831]', async () => { await searchInput.clickSearchButton(); await searchInput.checkOnlyFiles(); @@ -396,14 +561,35 @@ describe('Context menu actions - multiple selection : ', () => { await dataTable.selectMultipleItems([ file1Site, file2Site ]); await dataTable.rightClickOnMultipleSelection(); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isEditFolderPresent()).toBe(false, 'Edit folder is 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(true, `Permissions is not displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + }); + + it('correct actions appear when multiple locked files are selected - []', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchForTextAndCloseSearchOptions('my-inSite-file'); + await dataTable.selectMultipleItems([ fileLocked1Site, fileLocked2Site ]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); + expect(await contextMenu.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await contextMenu.isEditFolderPresent()).toBe(false, 'Edit folder is 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.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); }); it('correct actions appear when multiple folders are selected - [C291832]', async () => { @@ -413,14 +599,16 @@ describe('Context menu actions - multiple selection : ', () => { await dataTable.selectMultipleItems([ folder1Site, folder2Site ]); await dataTable.rightClickOnMultipleSelection(); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isEditFolderPresent()).toBe(false, 'Edit folder is 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(true, `Permissions is not displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); }); it('correct actions appear when both files and folders are selected - [C291833]', async () => { @@ -430,14 +618,16 @@ describe('Context menu actions - multiple selection : ', () => { await dataTable.selectMultipleItems([ file1Site, file2Site, folder1Site, folder2Site ]); await dataTable.rightClickOnMultipleSelection(); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isEditFolderPresent()).toBe(false, 'Edit folder is 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(true, `Permissions is not displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions 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 df8eb9b42..b20e5b0be 100755 --- a/e2e/suites/actions/context-menu-single-selection.test.ts +++ b/e2e/suites/actions/context-menu-single-selection.test.ts @@ -35,9 +35,11 @@ describe('Context menu actions - single selection : ', () => { const folderUser = `folderUser-${Utils.random()}`; let folderUserId; const fileInTrash = `fileForDelete-${Utils.random()}.txt`; let fileInTrashId; const folderInTrash = `folderForDelete-${Utils.random()}`; let folderInTrashId; + const fileLocked = `fileLocked-${Utils.random()}.txt`; let fileLockedId; const siteName = `userSite-${Utils.random()}`; const fileSiteUser = `fileUser-${Utils.random()}.txt`; + const fileLockedInSite = `file-locked-site-${Utils.random()}.txt`; let fileLockedInSiteId; const folderSiteUser = `folderUser-${Utils.random()}`; const adminPublic = `admin-public-${Utils.random()}`; @@ -61,10 +63,15 @@ describe('Context menu actions - single selection : ', () => { fileUserId = (await apis.user.nodes.createFile(fileUser)).entry.id; folderUserId = (await apis.user.nodes.createFolder(folderUser)).entry.id; + fileLockedId = (await apis.user.nodes.createFile(fileLocked)).entry.id; + await apis.user.nodes.lockFile(fileLockedId); + await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC); const docLibId = await apis.user.sites.getDocLibId(siteName); await apis.user.nodes.createFile(fileSiteUser, docLibId); + fileLockedInSiteId = (await apis.user.nodes.createFile(fileLockedInSite, docLibId)).entry.id; await apis.user.nodes.createFolder(folderSiteUser, docLibId); + await apis.user.nodes.lockFile(fileLockedInSiteId); fileInTrashId = (await apis.user.nodes.createFiles([fileInTrash])).entry.id; folderInTrashId = (await apis.user.nodes.createFolders([ folderInTrash ])).entry.id; @@ -72,11 +79,13 @@ describe('Context menu actions - single selection : ', () => { await apis.user.nodes.deleteNodeById(folderInTrashId, false); await apis.user.shared.shareFileById(fileUserId); - await apis.user.shared.waitForApi({ expect: 1 }); + await apis.user.shared.shareFileById(fileLockedId); + await apis.user.shared.waitForApi({ expect: 2 }); await apis.user.favorites.addFavoriteById('file', fileUserId); + await apis.user.favorites.addFavoriteById('file', fileLockedId); await apis.user.favorites.addFavoriteById('folder', folderUserId); - await apis.user.favorites.waitForApi({ expect: 3 }); + await apis.user.favorites.waitForApi({ expect: 4 }); await apis.admin.sites.createSite(adminPublic); await apis.admin.sites.createSite(adminModerated, SITE_VISIBILITY.MODERATED); @@ -109,6 +118,11 @@ describe('Context menu actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('Row is marked with a check circle icon on direct right click - [C286252]', async () => { await dataTable.rightClickOnItem(fileUser); @@ -133,7 +147,7 @@ describe('Context menu actions - single selection : ', () => { await dataTable.rightClickOnItem(folderUser); expect(await dataTable.hasContextMenu()).toBe(true, `Context menu is not displayed for ${folderUser}`); - expect(await contextMenu.isEditPresent()).toBe(true, `Edit is not displayed for ${folderUser}`); + expect(await contextMenu.isEditFolderPresent()).toBe(true, `Edit folder 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`); }); @@ -142,7 +156,9 @@ describe('Context menu actions - single selection : ', () => { 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'); }); }); @@ -155,9 +171,16 @@ describe('Context menu actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('Context menu has the correct actions for a file - [C280615]', async () => { await dataTable.rightClickOnItem(fileUser); + expect(await contextMenu.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed for ${fileUser}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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}`); @@ -167,15 +190,33 @@ describe('Context menu actions - single selection : ', () => { 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.isEditFolderPresent()).toBe(false, `Edit folder 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 locked file - []', async () => { + await dataTable.rightClickOnItem(fileLocked); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed for ${fileLocked}`); + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`); + expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileLocked}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${fileLocked}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileLocked}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileLocked}`); + }); + it('Context menu has the correct actions for a folder - [C280616]', async () => { await dataTable.rightClickOnItem(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.isEditFolderPresent()).toBe(true, `Edit folder 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}`); @@ -184,6 +225,8 @@ describe('Context menu actions - single selection : ', () => { 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}`); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderUser}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folderUser}`); }); }); @@ -196,9 +239,16 @@ describe('Context menu actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('Context menu has the correct actions for a file - [C280594]', async () => { await dataTable.rightClickOnItem(fileSiteUser); + expect(await contextMenu.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed for ${fileSiteUser}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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}`); @@ -208,15 +258,33 @@ describe('Context menu actions - single selection : ', () => { 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.isEditFolderPresent()).toBe(false, `Edit folder 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 locked file - []', async () => { + await dataTable.rightClickOnItem(fileLockedInSite); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is not displayed for ${fileLockedInSite}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(true, `Cancel editing is displayed for ${fileLockedInSite}`); + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLockedInSite}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${fileLockedInSite}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLockedInSite}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLockedInSite}`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLockedInSite}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLockedInSite}`); + expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileLockedInSite}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileLockedInSite}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileLockedInSite}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLockedInSite}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileLockedInSite}`); + }); + it('Context menu has the correct actions for a folder - [C280595]', async () => { await dataTable.rightClickOnItem(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.isEditFolderPresent()).toBe(true, `Edit folder 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}`); @@ -225,6 +293,8 @@ describe('Context menu actions - single selection : ', () => { 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}`); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderSiteUser}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folderSiteUser}`); }); }); @@ -235,6 +305,11 @@ describe('Context menu actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('Available actions for a library - My Libraries - [C290080]', async () => { await page.goToMyLibrariesAndWait(); await dataTable.rightClickOnItem(siteName); @@ -319,9 +394,17 @@ describe('Context menu actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('Context menu has the correct actions for a file - [C280601]', async () => { await dataTable.rightClickOnItem(fileUser); + // TODO: change expect to true when ACA-2173 is done + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileUser}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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}`); @@ -331,9 +414,28 @@ describe('Context menu actions - single selection : ', () => { 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.isEditFolderPresent()).toBe(false, `Edit folder 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 locked file - []', async () => { + await dataTable.rightClickOnItem(fileLocked); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + // TODO: change expect to true when ACA-2173 is done + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${fileLocked}`); + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`); + expect(await contextMenu.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed for ${fileLocked}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileLocked}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileLocked}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileLocked}`); + }); }); describe('on Recent Files', () => { @@ -343,9 +445,16 @@ describe('Context menu actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('Context menu has the correct actions for a file - [C280622]', async () => { await dataTable.rightClickOnItem(fileUser); + expect(await contextMenu.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed for ${fileUser}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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}`); @@ -355,9 +464,27 @@ describe('Context menu actions - single selection : ', () => { 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.isEditFolderPresent()).toBe(false, `Edit folder 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 locked file - []', async () => { + await dataTable.rightClickOnItem(fileLocked); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed for ${fileLocked}`); + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`); + expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileLocked}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileLocked}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileLocked}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileLocked}`); + }); }); describe('on Favorites', () => { @@ -367,9 +494,17 @@ describe('Context menu actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('Context menu has the correct actions for a file - [C280608]', async () => { await dataTable.rightClickOnItem(fileUser); + // TODO: change expect to true when ACA-2174 is done + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileUser}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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}`); @@ -378,26 +513,42 @@ describe('Context menu actions - single selection : ', () => { 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.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileUser}`); - expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${fileUser}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder 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 locked file - []', async () => { + await dataTable.rightClickOnItem(fileLocked); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + // TODO: change expect to true when ACA-2174 is done + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${fileLocked}`); + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`); + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`); + expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileLocked}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${fileLocked}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileLocked}`); + }); + it('Context menu has the correct actions for a folder - [C280609]', async () => { await dataTable.rightClickOnItem(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.isEditFolderPresent()).toBe(true, `Edit folder 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.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}`); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderUser}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folderUser}`); }); }); @@ -408,11 +559,15 @@ describe('Context menu actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('Context menu has the correct actions for a file - [C286258]', async () => { await dataTable.rightClickOnItem(fileInTrash); - expect(await contextMenu.isPermanentDeletePresent()) - .toBe(true, `Permanently delete is not displayed for ${fileInTrash}`); + expect(await contextMenu.isPermanentDeletePresent()).toBe(true, `Permanently delete is not displayed for ${fileInTrash}`); expect(await contextMenu.isRestorePresent()).toBe(true, `Restore is not displayed for ${fileInTrash}`); expect(await contextMenu.isDownloadPresent()).toBe(false, `Download is displayed for ${fileInTrash}`); expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${fileInTrash}`); @@ -421,17 +576,17 @@ describe('Context menu actions - single selection : ', () => { expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed for ${fileInTrash}`); expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${fileInTrash}`); expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${fileInTrash}`); - expect(await contextMenu.isManageVersionsPresent()) - .toBe(false, `Manage Versions is displayed for ${fileInTrash}`); - expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${fileInTrash}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${fileInTrash}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileInTrash}`); expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileInTrash}`); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileInTrash}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${fileInTrash}`); }); it('Context menu has the correct actions for a folder - [C286259]', async () => { await dataTable.rightClickOnItem(folderInTrash); - expect(await contextMenu.isPermanentDeletePresent()) - .toBe(true, `Permanently delete is not displayed for ${folderInTrash}`); + expect(await contextMenu.isPermanentDeletePresent()).toBe(true, `Permanently delete is not displayed for ${folderInTrash}`); expect(await contextMenu.isRestorePresent()).toBe(true, `Restore is not displayed for ${folderInTrash}`); expect(await contextMenu.isDownloadPresent()).toBe(false, `Download is displayed for ${folderInTrash}`); expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folderInTrash}`); @@ -440,10 +595,10 @@ describe('Context menu actions - single selection : ', () => { expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed for ${folderInTrash}`); expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${folderInTrash}`); expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folderInTrash}`); - expect(await contextMenu.isManageVersionsPresent()) - .toBe(false, `Manage Versions is displayed for ${folderInTrash}`); - expect(await contextMenu.isEditPresent()).toBe(false, `Edit is displayed for ${folderInTrash}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${folderInTrash}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${folderInTrash}`); expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${folderInTrash}`); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderInTrash}`); }); }); @@ -454,12 +609,19 @@ describe('Context menu actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('Context menu has the correct actions for a file - [C291827]', async () => { await searchInput.clickSearchButton(); await searchInput.checkOnlyFiles(); await searchInput.searchForTextAndCloseSearchOptions(fileSiteUser); await dataTable.rightClickOnItem(fileSiteUser); + expect(await contextMenu.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed for ${fileSiteUser}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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}`); @@ -469,10 +631,31 @@ describe('Context menu actions - single selection : ', () => { 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.isEditFolderPresent()).toBe(false, `Edit folder 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 locked file - []', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchForTextAndCloseSearchOptions(fileLocked); + await dataTable.rightClickOnItem(fileLocked); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed for ${fileLocked}`); + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await contextMenu.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed for ${fileLocked}`); + expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${fileLocked}`); + expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileLocked}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileLocked}`); + expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileLocked}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileLocked}`); + }); + it('Context menu has the correct actions for a folder - [C291828]', async () => { await searchInput.clickSearchButton(); await searchInput.checkOnlyFolders(); @@ -480,7 +663,7 @@ describe('Context menu actions - single selection : ', () => { await dataTable.rightClickOnItem(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.isEditFolderPresent()).toBe(true, `Edit folder 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(false, `Move is displayed for ${folderSiteUser}`); @@ -489,6 +672,8 @@ describe('Context menu actions - single selection : ', () => { 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}`); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderSiteUser}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folderSiteUser}`); }); }); }); diff --git a/e2e/suites/actions/delete-undo-delete.test.ts b/e2e/suites/actions/delete-undo-delete.test.ts index 03f2be9e9..3c3f2b8dd 100755 --- a/e2e/suites/actions/delete-undo-delete.test.ts +++ b/e2e/suites/actions/delete-undo-delete.test.ts @@ -99,10 +99,10 @@ describe('Delete and undo delete', () => { fileLocked4Id = (await apis.user.nodes.createFile(fileLocked4, folder5Id)).entry.id; await apis.user.nodes.createFile(file2InFolder, folder6Id); - 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.nodes.lockFile(fileLocked1Id, 'FULL'); + await apis.user.nodes.lockFile(fileLocked2Id, 'FULL'); + await apis.user.nodes.lockFile(fileLocked3Id, 'FULL'); + await apis.user.nodes.lockFile(fileLocked4Id, 'FULL'); await loginPage.loginWith(username); @@ -364,10 +364,10 @@ describe('Delete and undo delete', () => { 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.nodes.lockFile(fileLocked1Id, 'FULL'); + await apis.user.nodes.lockFile(fileLocked2Id, 'FULL'); + await apis.user.nodes.lockFile(fileLocked3Id, 'FULL'); + await apis.user.nodes.lockFile(fileLocked4Id, 'FULL'); 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 ]); diff --git a/e2e/suites/actions/edit-folder.test.ts b/e2e/suites/actions/edit-folder.test.ts index 86f924357..df86932df 100755 --- a/e2e/suites/actions/edit-folder.test.ts +++ b/e2e/suites/actions/edit-folder.test.ts @@ -111,7 +111,7 @@ describe('Edit folder', () => { it('dialog UI defaults - [C216331]', async () => { await dataTable.doubleClickOnRowByName(parent); await dataTable.selectItem(folderName); - await toolbar.clickEdit(); + await toolbar.clickEditFolder(); expect(await editDialog.getTitle()).toEqual('Edit folder'); expect(await editDialog.getName()).toBe(folderName); @@ -130,7 +130,7 @@ describe('Edit folder', () => { it('properties are modified when pressing OK - [C216335]', async (done) => { await dataTable.selectItem(folderNameToEdit); - await toolbar.clickEdit(); + await toolbar.clickEditFolder(); await editDialog.waitForDialogToOpen(); await editDialog.enterDescription(folderDescriptionEdited); await editDialog.enterName(folderNameEdited); @@ -146,7 +146,7 @@ describe('Edit folder', () => { it('with empty folder name - [C216332]', async () => { await dataTable.selectItem(folderName); - await toolbar.clickEdit(); + await toolbar.clickEditFolder(); await editDialog.deleteNameWithBackspace(); expect(await editDialog.isUpdateButtonEnabled()).toBe(false, 'upload button is not enabled'); @@ -157,7 +157,7 @@ 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 toolbar.clickEdit(); + await toolbar.clickEditFolder(); for (const name of namesWithSpecialChars) { await editDialog.enterName(name); @@ -168,7 +168,7 @@ describe('Edit folder', () => { it('with name ending with a dot - [C216334]', async () => { await dataTable.selectItem(folderName); - await toolbar.clickEdit(); + await toolbar.clickEditFolder(); await editDialog.waitForDialogToOpen(); await editDialog.nameInput.sendKeys('.'); @@ -178,7 +178,7 @@ describe('Edit folder', () => { it('Cancel button - [C216336]', async () => { await dataTable.selectItem(folderName); - await toolbar.clickEdit(); + await toolbar.clickEditFolder(); await editDialog.waitForDialogToOpen(); await editDialog.clickCancel(); @@ -187,7 +187,7 @@ describe('Edit folder', () => { it('with duplicate folder name - [C216337]', async () => { await dataTable.selectItem(folderName); - await toolbar.clickEdit(); + await toolbar.clickEditFolder(); await editDialog.waitForDialogToOpen(); await editDialog.enterName(duplicateFolderName); await editDialog.clickUpdate(); @@ -198,7 +198,7 @@ describe('Edit folder', () => { it('trim ending spaces - [C216338]', async () => { await dataTable.selectItem(folderName); - await toolbar.clickEdit(); + await toolbar.clickEditFolder(); await editDialog.nameInput.sendKeys(' '); await editDialog.clickUpdate(); await editDialog.waitForDialogToClose(); @@ -216,7 +216,7 @@ describe('Edit folder', () => { it('properties are modified when pressing OK - [C280384]', async (done) => { await dataTable.selectItem(folderFavoriteToEdit); - await toolbar.clickEdit(); + await toolbar.clickEditFolder(); await editDialog.waitForDialogToOpen(); await editDialog.enterDescription(folderDescriptionEdited); await editDialog.enterName(folderNameEdited); @@ -232,7 +232,7 @@ describe('Edit folder', () => { it('with duplicate folder name - [C280386]', async () => { await dataTable.selectItem(folderFavorite); - await toolbar.clickEdit(); + await toolbar.clickEditFolder(); await editDialog.waitForDialogToOpen(); await editDialog.enterName(folderFavoriteDuplicate); await editDialog.clickUpdate(); @@ -251,7 +251,7 @@ describe('Edit folder', () => { it('properties are modified when pressing OK - [C280509]', async (done) => { await dataTable.selectItem(folderSiteToEdit); - await toolbar.clickEdit(); + await toolbar.clickEditFolder(); await editDialog.waitForDialogToOpen(); await editDialog.enterDescription(folderDescriptionEdited); await editDialog.enterName(folderNameEdited); @@ -267,7 +267,7 @@ describe('Edit folder', () => { it('with duplicate folder name - [C280511]', async () => { await dataTable.selectItem(folderSite); - await toolbar.clickEdit(); + await toolbar.clickEditFolder(); await editDialog.waitForDialogToOpen(); await editDialog.enterName(duplicateFolderSite); await editDialog.clickUpdate(); diff --git a/e2e/suites/actions/special-permissions-available-actions.test.ts b/e2e/suites/actions/special-permissions-available-actions.test.ts index 082a36609..242dee3d0 100755 --- a/e2e/suites/actions/special-permissions-available-actions.test.ts +++ b/e2e/suites/actions/special-permissions-available-actions.test.ts @@ -32,6 +32,8 @@ import { Viewer } from '../../components/viewer/viewer'; describe('Granular permissions available actions : ', () => { const userConsumer = `consumer-${Utils.random()}`; const userManager = `manager-${Utils.random()}`; + const userCollaborator = `collaborator-${Utils.random()}`; + const userDemoted = `demoted-${Utils.random()}`; const siteName = `site-private-${Utils.random()}`; const file1 = `my-file1-${Utils.random()}.txt`; @@ -40,6 +42,8 @@ describe('Granular permissions available actions : ', () => { let file2Id; const file3 = `my-file3-${Utils.random()}.txt`; let file3Id; + const fileLocked = `my-file-locked-${Utils.random()}.txt`; + let fileLockedId; const folder1 = `my-folder1-${Utils.random()}`; let folder1Id; @@ -52,7 +56,8 @@ describe('Granular permissions available actions : ', () => { const apis = { admin: new RepoClient(), userConsumer: new RepoClient(userConsumer, userConsumer), - userManager: new RepoClient(userManager, userManager) + userCollaborator: new RepoClient(userCollaborator, userCollaborator), + userDemoted: new RepoClient(userDemoted, userDemoted) }; const loginPage = new LoginPage(); @@ -67,6 +72,8 @@ describe('Granular permissions available actions : ', () => { beforeAll(async (done) => { await apis.admin.people.createUser({ username: userConsumer }); await apis.admin.people.createUser({ username: userManager }); + await apis.admin.people.createUser({ username: userCollaborator }); + await apis.admin.people.createUser({ username: userDemoted }); await apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE); const docLibId = await apis.admin.sites.getDocLibId(siteName); @@ -81,6 +88,14 @@ describe('Granular permissions available actions : ', () => { await apis.admin.sites.addSiteMember(siteName, userManager, SITE_ROLES.SITE_MANAGER.ROLE); await apis.admin.sites.addSiteMember(siteName, userConsumer, SITE_ROLES.SITE_CONSUMER.ROLE); + await apis.admin.sites.addSiteMember(siteName, userCollaborator, SITE_ROLES.SITE_COLLABORATOR.ROLE); + await apis.admin.sites.addSiteMember(siteName, userDemoted, SITE_ROLES.SITE_MANAGER.ROLE); + + fileLockedId = (await apis.admin.nodes.createFile(fileLocked, docLibId)).entry.id; + await apis.userDemoted.nodes.lockFile(fileLockedId); + await apis.userDemoted.favorites.addFavoriteById('file', fileLockedId); + await apis.userDemoted.shared.shareFileById(fileLockedId); + await apis.admin.sites.updateSiteMember(siteName, userDemoted, SITE_ROLES.SITE_CONSUMER.ROLE); await apis.admin.nodes.setGranularPermission(file3Id, false, userConsumer, SITE_ROLES.SITE_MANAGER.ROLE); @@ -88,13 +103,15 @@ describe('Granular permissions available actions : ', () => { await apis.userConsumer.shared.shareFileById(file2Id); await apis.userConsumer.shared.shareFileById(docxFileId); await apis.userConsumer.shared.shareFileById(file3Id); - await apis.userConsumer.shared.waitForApi({ expect: 4 }); + await apis.userConsumer.shared.waitForApi({ expect: 5 }); await apis.userConsumer.favorites.addFavoritesByIds('file', [file1Id, file2Id, file3Id, docxFileId]); await apis.userConsumer.favorites.addFavoritesByIds('folder', [folder1Id, folder2Id]); await apis.userConsumer.favorites.waitForApi({ expect: 6 }); - await loginPage.loginWith(userConsumer); + await apis.userCollaborator.favorites.addFavoritesByIds('file', [file1Id, docxFileId]); + await apis.userCollaborator.favorites.waitForApi({ expect: 2 }); + done(); }); @@ -103,139 +120,1181 @@ describe('Granular permissions available actions : ', () => { done(); }); - describe('toolbar displays correct actions when selecting multiple files with different granular permissions', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickPersonalFiles(); + describe('Consumer', () => { + beforeAll(async (done) => { + await loginPage.loginWith(userConsumer); done(); }); - it('on File Libraries - [C280476]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - await dataTable.selectMultipleItems([file1, file2]); + describe('toolbar displays correct actions when selecting multiple files with different granular permissions', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); - 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.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(); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('on File Libraries - [C280476]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.selectMultipleItems([file1, file2]); + + 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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for selected files`); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for selected files`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for selected files`); + + await toolbar.closeMoreMenu(); + }); + + it('on Shared Files - [C280477]', async () => { + await page.clickSharedFilesAndWait(); + await dataTable.selectMultipleItems([file1, file2]); + + 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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for selected files`); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for selected files`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for selected files`); + + await toolbar.closeMoreMenu(); + }); + + it('on Favorites - [C280478]', async () => { + await page.clickFavoritesAndWait(); + await dataTable.selectMultipleItems([file1, file2]); + + 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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for selected files`); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for selected files`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed for selected files`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for selected files`); + + await toolbar.closeMoreMenu(); + }); + + it('on Search Results - [C291823]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchForTextAndCloseSearchOptions('my-file'); + await dataTable.selectMultipleItems([file1, file2]); + + 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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for selected files`); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for selected files`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for selected files`); + + await toolbar.closeMoreMenu(); + }); }); - it('on Shared Files - [C280477]', async () => { - await page.clickSharedFilesAndWait(); - await dataTable.selectMultipleItems([file1, file2]); + describe('toolbar actions appear correctly for a file', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); - 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.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(); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('on File Libraries - [C280455]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.selectItem(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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`); + expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${file1}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions 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.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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`); + expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${file1}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${file1}`); + + await toolbar.closeMoreMenu(); + }); + + it('on Favorites - [C213121]', async () => { + await page.clickFavoritesAndWait(); + await dataTable.selectItem(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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`); + // TODO: replace with isSharedLinkSettingsPresent when ACA-2175 is done + expect(await toolbar.isSharePresent()).toBe(true, `Share is not displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${file1}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${file1}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${file1}`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed for ${file1}`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed for ${file1}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${file1}`); + + await toolbar.closeMoreMenu(); + }); + + it('on Search Results - [C291818]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchForTextAndCloseSearchOptions(file1); + await dataTable.selectItem(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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`); + expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${file1}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${file1}`); + + await toolbar.closeMoreMenu(); + }); }); - it('on Favorites - [C280478]', async () => { - await page.clickFavoritesAndWait(); - await dataTable.selectMultipleItems([file1, file2]); + describe('toolbar actions appear correctly for a folder', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); - 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.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); - // TODO: enable when ACA-1737 is done - // 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(); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('on File Libraries - [C280444]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.selectItem(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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${folder1}`); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folder1}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folder1}`); + + await toolbar.closeMoreMenu(); + }); + + it('on Favorites - [C286266]', async () => { + await page.clickFavoritesAndWait(); + await dataTable.selectItem(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: change expect to false when ACA-1737 is done + expect(await toolbar.isEditFolderPresent()).toBe(true, `Edit folder is displayed for ${folder1}`); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folder1}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folder1}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folder1}`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed for ${folder1}`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed for ${folder1}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folder1}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folder1}`); + + await toolbar.closeMoreMenu(); + }); + + it('on Search Results - [C291819]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFolders(); + await searchInput.searchForTextAndCloseSearchOptions(folder1); + await dataTable.selectItem(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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${folder1}`); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folder1}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folder1}`); + + await toolbar.closeMoreMenu(); + }); }); - it('on Search Results - [C291823]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchForTextAndCloseSearchOptions('my-file'); - await dataTable.selectMultipleItems([file1, file2]); + describe('toolbar actions appear correctly for multiple selection of files', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); - 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.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(); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('on File Libraries - [C280464]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.selectMultipleItems([file1, file2]); + + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('on Shared Files - [C286284]', async () => { + await page.clickSharedFilesAndWait(); + await dataTable.selectMultipleItems([file1, file2]); + + 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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for selected files`); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + 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`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('on Favorites - [C286285]', async () => { + await page.clickFavoritesAndWait(); + await dataTable.selectMultipleItems([file1, file2]); + + 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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for selected files`); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed for selected files`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed for selected files`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('on Search Results - [C291824]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchForTextAndCloseSearchOptions('my-file'); + await dataTable.selectMultipleItems([file1, file2]); + + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + }); + + describe('toolbar actions appear correctly for multiple selection of folders', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); + + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('on File Libraries - [C280465]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.selectMultipleItems([folder1, folder2]); + + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('on Favorites - [C286286]', async () => { + await page.clickFavoritesAndWait(); + await dataTable.selectMultipleItems([folder1, folder2]); + + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed`); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('on Search Results - [C291825]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFolders(); + await searchInput.searchForTextAndCloseSearchOptions('my-folder'); + await dataTable.selectMultipleItems([folder1, folder2]); + + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + }); + + describe('toolbar actions appear correctly for when both files and folders are selected', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); + + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('on File Libraries - [C280466]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.selectMultipleItems([file1, folder1]); + + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('on Favorites - [C286287]', async () => { + await page.clickFavoritesAndWait(); + await dataTable.selectMultipleItems([file1, folder1]); + + expect(await toolbar.isViewPresent()).toBe(false, `View is displayed`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed`); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('on Search Results - [C291826]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkFilesAndFolders(); + await searchInput.searchForTextAndCloseSearchOptions('my-f'); + await dataTable.selectMultipleItems([file1, folder1]); + + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + }); + + describe('context menu actions are correct for a file', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); + + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('on File Libraries - [C280599]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.rightClickOnItem(file1); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${file1}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${file1}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${file1}`); + expect(await contextMenu.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`); + }); + + it('on Shared Files - [C286264]', async () => { + await page.clickSharedFilesAndWait(); + await dataTable.rightClickOnItem(file1); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${file1}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed for ${file1}`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${file1}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${file1}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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}`); + // TODO: change expect to false when ACA-1737 is done + expect(await contextMenu.isMovePresent()).toBe(true, `Move is displayed for ${file1}`); + // TODO: change expect to false when ACA-1737 is done + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is displayed for ${file1}`); + // TODO: replace with isSharedLinkSettingsPresent when ACA-2175 is done + expect(await toolbar.isSharePresent()).toBe(true, `Share is not displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${file1}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${file1}`); + }); + + it('on Search Results - [C291829]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchForTextAndCloseSearchOptions(file1); + await dataTable.rightClickOnItem(file1); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${file1}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${file1}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`); + expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${file1}`); + }); + }); + + describe('context menu actions are correct for a folder', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); + + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('on File Libraries - [C280600]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.rightClickOnItem(folder1); + + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${folder1}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder 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.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}`); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folder1}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folder1}`); + }); + + it('on Favorites - [C286263]', async () => { + await page.clickFavoritesAndWait(); + await dataTable.rightClickOnItem(folder1); + + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${folder1}`); + // TODO: change expect to false when ACA-1737 is done + expect(await contextMenu.isEditFolderPresent()).toBe(true, `Edit folder 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: change expect to false when ACA-1737 is done + expect(await contextMenu.isMovePresent()).toBe(true, `Move is displayed for ${folder1}`); + // TODO: change expect to false when ACA-1737 is done + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is 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}`); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folder1}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folder1}`); + }); + + it('on Search Results - [C291830]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFolders(); + await searchInput.searchForTextAndCloseSearchOptions(folder1); + await dataTable.rightClickOnItem(folder1); + + expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${folder1}`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder 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.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}`); + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folder1}`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folder1}`); + }); + }); + + describe('context menu actions are correct for multiple selection of files', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); + + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('on File Libraries - [C280647]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.selectMultipleItems([file1, file2]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`); + }); + + it('on Shared Files - [C286283]', async () => { + await page.clickSharedFilesAndWait(); + await dataTable.selectMultipleItems([file1, file2]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`); + }); + + it('on Favorites - [C286280]', async () => { + await page.clickFavoritesAndWait(); + await dataTable.selectMultipleItems([file1, file2]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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`); + // TODO: change expect to false when ACA-1737 is done + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is displayed`); + // TODO: change expect to false when ACA-1737 is done + expect(await contextMenu.isMovePresent()).toBe(true, `Move is displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`); + }); + + it('on Search Results - [C291834]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchForTextAndCloseSearchOptions('my-file'); + await dataTable.selectMultipleItems([file1, file2]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`); + }); + }); + + describe('context menu actions are correct for multiple selection of folders', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); + + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('on File Libraries - [C280666]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.selectMultipleItems([folder1, folder2]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder 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.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`); + }); + + it('on Favorites - [C286281]', async () => { + await page.clickFavoritesAndWait(); + await dataTable.selectMultipleItems([folder1, folder2]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder 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`); + // TODO: change expect to false when ACA-1737 is done + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is displayed`); + // TODO: change expect to false when ACA-1737 is done + expect(await contextMenu.isMovePresent()).toBe(true, `Move is displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`); + }); + + it('on Search Results - [C291835]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFolders(); + await searchInput.searchForTextAndCloseSearchOptions('my-folder'); + await dataTable.selectMultipleItems([folder1, folder2]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder 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.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`); + }); + }); + + describe('context menu actions are correct when both files and folders are selected', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); + + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('on File Libraries - [C280669]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.selectMultipleItems([file1, folder1]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`); + }); + + it('on Favorites - [C286282]', async () => { + await page.clickFavoritesAndWait(); + await dataTable.selectMultipleItems([file1, folder1]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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`); + // TODO: change expect to false when ACA-1737 is done + expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is displayed`); + // TODO: change expect to false when ACA-1737 is done + expect(await contextMenu.isMovePresent()).toBe(true, `Move is displayed`); + expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`); + expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`); + }); + + it('on Search Results - [C291836]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkFilesAndFolders(); + await searchInput.searchForTextAndCloseSearchOptions('my-f'); + await dataTable.selectMultipleItems([file1, folder1]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing 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.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); + expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`); + }); + }); + + describe('toolbar actions appear correctly in the viewer', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); + + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('file from File Libraries - [C268128]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.doubleClickOnRowByName(docxFile); + await viewer.waitForViewerToOpen(); + + 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing 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 not displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('file from Shared Files - [C286310]', async () => { + await page.clickSharedFilesAndWait(); + await dataTable.doubleClickOnRowByName(docxFile); + await viewer.waitForViewerToOpen(); + + 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing 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 not displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('file from Favorites - [C286311]', async () => { + await page.clickFavoritesAndWait(); + await dataTable.doubleClickOnRowByName(docxFile); + await viewer.waitForViewerToOpen(); + + 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing 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`); + // TODO: change expect to false when ACA-1737 is done + expect(await viewerToolbar.menu.isMovePresent()).toBe(true, `Move is displayed`); + // TODO: change expect to false when ACA-1737 is done + expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed`); + expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + + await toolbar.closeMoreMenu(); + }); }); }); - describe('toolbar actions appear correctly for a file - consumer', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickPersonalFiles(); + describe('Collaborator', () => { + beforeAll(async (done) => { + await loginPage.loginWith(userCollaborator); done(); }); - it('on File Libraries - [C280455]', async () => { + it('on File Libraries - []', async () => { await page.clickFileLibrariesAndWait(); await dataTable.doubleClickOnRowByName(siteName); await dataTable.waitForHeader(); await dataTable.selectItem(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}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`); + expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`); await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed for ${file1}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + await toolbar.closeMoreMenu(); }); - it('on Shared Files - [C280456]', async () => { + it('on Shared Files - []', async () => { await page.clickSharedFilesAndWait(); await page.dataTable.selectItem(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}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`); + expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`); + await toolbar.openMoreMenu(); + // TODO: change expect to true when ACA-2173 is done + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${file1}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + await toolbar.closeMoreMenu(); }); - it('on Favorites - [C213121]', async () => { + it('on Favorites - []', async () => { await page.clickFavoritesAndWait(); await dataTable.selectItem(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}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`); + // TODO: replace with isSharedLinkSettingsPresent when ACA-2175 is done + expect(await toolbar.isSharePresent()).toBe(true, `Share is not displayed`); + await toolbar.openMoreMenu(); + + // TODO: change expect to true when ACA-2174 is done + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is not displayed for ${file1}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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.isDeletePresent()).toBe(false, `Delete is displayed for ${file1}`); - // expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed for ${file1}`); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed for ${file1}`); expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + await toolbar.closeMoreMenu(); }); - it('on Search Results - [C291818]', async () => { + it('on Search Results - []', async () => { await searchInput.clickSearchButton(); await searchInput.checkOnlyFiles(); await searchInput.searchForTextAndCloseSearchOptions(file1); @@ -244,657 +1303,321 @@ describe('Granular permissions available actions : ', () => { 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}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`); + expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`); await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed for ${file1}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + await toolbar.closeMoreMenu(); }); + + describe('in the viewer', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); + + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('file opened from File Libraries - []', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.doubleClickOnRowByName(docxFile); + await viewer.waitForViewerToOpen(); + + 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.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed`); + expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing 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 not displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + + it('file opened from Shared Files - []', async () => { + await page.clickSharedFilesAndWait(); + await dataTable.doubleClickOnRowByName(docxFile); + await viewer.waitForViewerToOpen(); + + 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.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed`); + expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing 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 not displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + + it('file opened from Favorites - []', async () => { + await page.clickFavoritesAndWait(); + await dataTable.doubleClickOnRowByName(docxFile); + await viewer.waitForViewerToOpen(); + + 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.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed`); + expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing 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`); + // TODO: change expect to false when ACA-1737 is done + expect(await viewerToolbar.menu.isMovePresent()).toBe(true, `Move is displayed`); + // TODO: change expect to false when ACA-1737 is done + expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed`); + expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + }); }); - describe('toolbar actions appear correctly for a folder - consumer', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickPersonalFiles(); + describe('File locked - lock owner : ', () => { + beforeAll(async (done) => { + await loginPage.loginWith(userDemoted); done(); }); - it('on File Libraries - [C280444]', async () => { + it('on File Libraries - []', async () => { await page.clickFileLibrariesAndWait(); await dataTable.doubleClickOnRowByName(siteName); await dataTable.waitForHeader(); - await dataTable.selectItem(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 dataTable.selectItem(fileLocked); + + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${fileLocked}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`); await toolbar.openMoreMenu(); - 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}`); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for ${fileLocked}`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${fileLocked}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); + await toolbar.closeMoreMenu(); }); - it('on Favorites - [C286266]', async () => { - await page.clickFavoritesAndWait(); - await dataTable.selectItem(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.isEditButtonPresent()).toBe(false, `Edit is displayed for ${folder1}`); - await toolbar.openMoreMenu(); - expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folder1}`); - // TODO: enable when ACA-1737 is done - // 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 Search Results - [C291819]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFolders(); - await searchInput.searchForTextAndCloseSearchOptions(folder1); - await dataTable.selectItem(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.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(); - }); - }); - - describe('toolbar actions appear correctly for multiple selection of files - consumer', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickPersonalFiles(); - done(); - }); - - it('on File Libraries - [C280464]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - await dataTable.selectMultipleItems([file1, file2]); - 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.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 () => { + it('on Shared Files - []', async () => { await page.clickSharedFilesAndWait(); - await dataTable.selectMultipleItems([file1, file2]); - 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 page.dataTable.selectItem(fileLocked); + + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${fileLocked}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`); + await toolbar.openMoreMenu(); - 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`); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + // TODO: change expect to true when ACA-2173 is done + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for ${fileLocked}`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${fileLocked}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); + await toolbar.closeMoreMenu(); }); - it('on Favorites - [C286285]', async () => { + it('on Favorites - []', async () => { await page.clickFavoritesAndWait(); - await dataTable.selectMultipleItems([file1, file2]); - 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 dataTable.selectItem(fileLocked); + + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${fileLocked}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + // TODO: replace with isSharedLinkSettingsPresent when ACA-2175 is done + expect(await toolbar.isSharePresent()).toBe(true, `Share is not displayed`); + await toolbar.openMoreMenu(); - 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.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`); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + // TODO: change expect to true when ACA-2174 is fixed + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + // TODO: change expect to false when ACA-1737 is fixed + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed for ${fileLocked}`); + // TODO: change expect to false when ACA-1737 is fixed + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed for ${fileLocked}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); + await toolbar.closeMoreMenu(); }); - it('on Search Results - [C291824]', async () => { + it('on Search Results - []', async () => { await searchInput.clickSearchButton(); await searchInput.checkOnlyFiles(); - await searchInput.searchForTextAndCloseSearchOptions('my-file'); - await dataTable.selectMultipleItems([file1, file2]); + await searchInput.searchForTextAndCloseSearchOptions(fileLocked); + await dataTable.selectItem(fileLocked); + + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${fileLocked}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings 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.isEditPresent()).toBe(false, 'Edit is displayed'); await toolbar.openMoreMenu(); - 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(); - }); - }); - describe('toolbar actions appear correctly for multiple selection of folders - consumer', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickPersonalFiles(); - done(); - }); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for ${fileLocked}`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${fileLocked}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); - it('on File Libraries - [C280465]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - await dataTable.selectMultipleItems([folder1, folder2]); - 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.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.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.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); - // TODO: enable when ACA-1737 is done - // 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(); - }); + describe('in the viewer', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await dataTable.clearSelection(); + await page.clickPersonalFiles(); + done(); + }); - it('on Search Results - [C291825]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFolders(); - await searchInput.searchForTextAndCloseSearchOptions('my-folder'); - await dataTable.selectMultipleItems([folder1, folder2]); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); - 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.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('file opened from File Libraries - []', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.doubleClickOnRowByName(fileLocked); + await viewer.waitForViewerToOpen(); - describe('toolbar actions appear correctly for when both files and folders are selected - consumer', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickPersonalFiles(); - done(); - }); + 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`); - it('on File Libraries - [C280466]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - await dataTable.selectMultipleItems([file1, folder1]); - 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.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(); - }); + await viewerToolbar.openMoreMenu(); - it('on Favorites - [C286287]', async () => { - await page.clickFavoritesAndWait(); - await dataTable.selectMultipleItems([file1, folder1]); - 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.isCopyPresent()).toBe(true, `Copy is not displayed for selected files`); - // TODO: enable when ACA-1737 is done - // 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(); - }); + expect(await viewerToolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing 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`); + 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 not displayed`); - it('on Search Results - [C291826]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkFilesAndFolders(); - await searchInput.searchForTextAndCloseSearchOptions('my-f'); - await dataTable.selectMultipleItems([file1, folder1]); + await viewerToolbar.closeMoreMenu(); + }); - 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.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('file opened from Shared Files - []', async () => { + await page.clickSharedFilesAndWait(); + await dataTable.doubleClickOnRowByName(fileLocked); + await viewer.waitForViewerToOpen(); - describe('context menu actions are correct for a file - consumer', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickPersonalFiles(); - done(); - }); + 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`); - it('on File Libraries - [C280599]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - await dataTable.rightClickOnItem(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}`); - }); + await viewerToolbar.openMoreMenu(); - it('on Shared Files - [C286264]', async () => { - await page.clickSharedFilesAndWait(); - await dataTable.rightClickOnItem(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.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}`); - }); + expect(await viewerToolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing 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`); + 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 not displayed`); - it('on Favorites - [C286262]', async () => { - await page.clickFavoritesAndWait(); - await dataTable.rightClickOnItem(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.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.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}`); - }); + await viewerToolbar.closeMoreMenu(); + }); - it('on Search Results - [C291829]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchForTextAndCloseSearchOptions(file1); - await dataTable.rightClickOnItem(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('file opened from Favorites - []', async () => { + await page.clickFavoritesAndWait(); + await dataTable.doubleClickOnRowByName(fileLocked); + await viewer.waitForViewerToOpen(); - describe('context menu actions are correct for a folder - consumer', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickPersonalFiles(); - done(); - }); + expect(await viewerToolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); + 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`); - it('on File Libraries - [C280600]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - await dataTable.rightClickOnItem(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}`); - }); + await viewerToolbar.openMoreMenu(); - it('on Favorites - [C286263]', async () => { - await page.clickFavoritesAndWait(); - await dataTable.rightClickOnItem(folder1); - expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${folder1}`); - // enable when ACA-1737 is done - // 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.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.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}`); - }); + expect(await viewerToolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing 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: change expect to false when ACA-1737 is done + expect(await viewerToolbar.menu.isMovePresent()).toBe(true, `Move is displayed`); + // TODO: change expect to false when ACA-1737 is done + expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is displayed`); + expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); - it('on Search Results - [C291830]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFolders(); - await searchInput.searchForTextAndCloseSearchOptions(folder1); - await dataTable.rightClickOnItem(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}`); - }); - }); - - describe('context menu actions are correct for multiple selection of files - consumer', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickPersonalFiles(); - done(); - }); - - it('on File Libraries - [C280647]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - await dataTable.selectMultipleItems([file1, file2]); - await dataTable.rightClickOnMultipleSelection(); - 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.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.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.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 Search Results - [C291834]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchForTextAndCloseSearchOptions('my-file'); - await dataTable.selectMultipleItems([file1, file2]); - await dataTable.rightClickOnMultipleSelection(); - - 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`); - }); - }); - - describe('context menu actions are correct for multiple selection of folders - consumer', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickPersonalFiles(); - done(); - }); - - it('on File Libraries - [C280666]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - await dataTable.selectMultipleItems([folder1, folder2]); - await dataTable.rightClickOnMultipleSelection(); - 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.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.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 Search Results - [C291835]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFolders(); - await searchInput.searchForTextAndCloseSearchOptions('my-folder'); - await dataTable.selectMultipleItems([folder1, folder2]); - await dataTable.rightClickOnMultipleSelection(); - - 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`); - }); - }); - - describe('context menu actions are correct when both files and folders are selected - consumer', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickPersonalFiles(); - done(); - }); - - it('on File Libraries - [C280669]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - await dataTable.selectMultipleItems([file1, folder1]); - await dataTable.rightClickOnMultipleSelection(); - 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.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.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 Search Results - [C291836]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkFilesAndFolders(); - await searchInput.searchForTextAndCloseSearchOptions('my-f'); - await dataTable.selectMultipleItems([file1, folder1]); - await dataTable.rightClickOnMultipleSelection(); - - 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`); - }); - }); - - describe('toolbar actions appear correctly in the viewer - consumer', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickPersonalFiles(); - done(); - }); - - it('file from File Libraries - [C268128]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - await dataTable.doubleClickOnRowByName(docxFile); - expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - - expect(await viewerToolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); - 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.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(); - }); - - it('file from Shared Files - [C286310]', async () => { - await page.clickSharedFilesAndWait(); - await dataTable.doubleClickOnRowByName(docxFile); - expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - - expect(await viewerToolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); - 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.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(); - }); - - it('file from Favorites - [C286311]', async () => { - await page.clickFavoritesAndWait(); - await dataTable.doubleClickOnRowByName(docxFile); - expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); - - expect(await viewerToolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); - 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.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.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(); + await viewerToolbar.closeMoreMenu(); + }); }); }); }); diff --git a/e2e/suites/actions/toolbar-multiple-selection.test.ts b/e2e/suites/actions/toolbar-multiple-selection.test.ts index 496932676..28120420d 100755 --- a/e2e/suites/actions/toolbar-multiple-selection.test.ts +++ b/e2e/suites/actions/toolbar-multiple-selection.test.ts @@ -32,30 +32,29 @@ import { Utils } from '../../utilities/utils'; describe('Toolbar actions - multiple selection : ', () => { const username = `user-${Utils.random()}`; - const file1 = `my-file1-${Utils.random()}.txt`; - let file1Id; - const file2 = `my-file2-${Utils.random()}.txt`; - let file2Id; + const parent = `parent-${Utils.random()}`; let parentId; - const folder1 = `my-folder1-${Utils.random()}`; - let folder1Id; - const folder2 = `my-folder2-${Utils.random()}`; - let folder2Id; + const file1 = `my-file1-${Utils.random()}.txt`; let file1Id; + const file2 = `my-file2-${Utils.random()}.txt`; let file2Id; - const fileForDelete1 = `file-${Utils.random()}.txt`; - let fileForDelete1Id; - const fileForDelete2 = `file-${Utils.random()}.txt`; - let fileForDelete2Id; - const folderForDelete1 = `folder-${Utils.random()}`; - let folderForDelete1Id; - const folderForDelete2 = `folder-${Utils.random()}`; - let folderForDelete2Id; + const folder1 = `my-folder1-${Utils.random()}`; let folder1Id; + const folder2 = `my-folder2-${Utils.random()}`; let folder2Id; + + const fileForDelete1 = `file-${Utils.random()}.txt`; let fileForDelete1Id; + const fileForDelete2 = `file-${Utils.random()}.txt`; let fileForDelete2Id; + const folderForDelete1 = `folder-${Utils.random()}`; let folderForDelete1Id; + const folderForDelete2 = `folder-${Utils.random()}`; let folderForDelete2Id; const siteName = `site-${Utils.random()}`; const file1InSite = `my-fileInSite1-${Utils.random()}.txt`; const file2InSite = `my-fileInSite2-${Utils.random()}.txt`; const folder1InSite = `my-folderInSite1-${Utils.random()}`; const folder2InSite = `my-folderInSite2-${Utils.random()}`; + const fileLocked1InSite = `my-fileLockedInSite1-${Utils.random()}.txt`; let fileLocked1InSiteId; + const fileLocked2InSite = `my-fileLockedInSite2-${Utils.random()}.txt`; let fileLocked2InSiteId; + + const fileLocked1 = `my-fileLocked1-${Utils.random()}.txt`; let fileLocked1Id; + const fileLocked2 = `my-fileLocked2-${Utils.random()}.txt`; let fileLocked2Id; const apis = { admin: new RepoClient(), @@ -71,21 +70,27 @@ describe('Toolbar actions - multiple selection : ', () => { beforeAll(async (done) => { await apis.admin.people.createUser({ username }); - file1Id = (await apis.user.nodes.createFiles([file1])).entry.id; - file2Id = (await apis.user.nodes.createFiles([file2])).entry.id; - folder1Id = (await apis.user.nodes.createFolders([folder1])).entry.id; - folder2Id = (await apis.user.nodes.createFolders([folder2])).entry.id; - fileForDelete1Id = (await apis.user.nodes.createFiles([fileForDelete1])).entry.id; - fileForDelete2Id = (await apis.user.nodes.createFiles([fileForDelete2])).entry.id; - folderForDelete1Id = (await apis.user.nodes.createFolders([folderForDelete1])).entry.id; - folderForDelete2Id = (await apis.user.nodes.createFolders([folderForDelete2])).entry.id; + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; - await apis.user.shared.shareFilesByIds([file1Id, file2Id]); - await apis.user.shared.waitForApi({ expect: 2 }); + file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id; + file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id; + folder1Id = (await apis.user.nodes.createFolder(folder1, parentId)).entry.id; + folder2Id = (await apis.user.nodes.createFolder(folder2, parentId)).entry.id; + fileForDelete1Id = (await apis.user.nodes.createFile(fileForDelete1, parentId)).entry.id; + fileForDelete2Id = (await apis.user.nodes.createFile(fileForDelete2, parentId)).entry.id; + folderForDelete1Id = (await apis.user.nodes.createFolder(folderForDelete1, parentId)).entry.id; + folderForDelete2Id = (await apis.user.nodes.createFolder(folderForDelete2, parentId)).entry.id; + fileLocked1Id = (await apis.user.nodes.createFile(fileLocked1, parentId)).entry.id; + fileLocked2Id = (await apis.user.nodes.createFile(fileLocked2, parentId)).entry.id; + await apis.user.nodes.lockFile(fileLocked1Id); + await apis.user.nodes.lockFile(fileLocked2Id); - await apis.user.favorites.addFavoritesByIds('file', [file1Id, file2Id]); + await apis.user.shared.shareFilesByIds([file1Id, file2Id, fileLocked1Id, fileLocked2Id]); + await apis.user.shared.waitForApi({ expect: 4 }); + + await apis.user.favorites.addFavoritesByIds('file', [file1Id, file2Id, fileLocked1Id, fileLocked2Id]); await apis.user.favorites.addFavoritesByIds('folder', [folder1Id, folder2Id]); - await apis.user.favorites.waitForApi({ expect: 4 }); + await apis.user.favorites.waitForApi({ expect: 6 }); await apis.user.nodes.deleteNodesById([fileForDelete1Id, fileForDelete2Id, folderForDelete1Id, folderForDelete2Id], false); await apis.user.trashcan.waitForApi({ expect: 4 }); @@ -96,7 +101,13 @@ describe('Toolbar actions - multiple selection : ', () => { await apis.user.nodes.createFile(file2InSite, docLibId); await apis.user.nodes.createFolder(folder1InSite, docLibId); await apis.user.nodes.createFolder(folder2InSite, docLibId); - await apis.user.search.waitForApi(username, { expect: 4 }); + fileLocked1InSiteId = (await apis.user.nodes.createFile(fileLocked1InSite, docLibId)).entry.id; + fileLocked2InSiteId = (await apis.user.nodes.createFile(fileLocked2InSite, docLibId)).entry.id; + + await apis.user.nodes.lockFile(fileLocked1InSiteId); + await apis.user.nodes.lockFile(fileLocked2InSiteId); + + await apis.user.search.waitForApi(username, { expect: 6 }); await loginPage.loginWith(username); done(); @@ -104,7 +115,7 @@ describe('Toolbar actions - multiple selection : ', () => { afterAll(async (done) => { await Promise.all([ - apis.user.nodes.deleteNodesById([file1Id, file2Id, folder1Id, folder2Id]), + apis.user.nodes.deleteNodeById(parentId), apis.user.trashcan.emptyTrash(), apis.user.sites.deleteSite(siteName) ]); @@ -116,13 +127,23 @@ describe('Toolbar actions - multiple selection : ', () => { await Utils.pressEscape(); await dataTable.clearSelection(); await page.clickPersonalFilesAndWait(); + await dataTable.doubleClickOnRowByName(parent); + await dataTable.waitForBody(); + done(); + }); + + afterAll(async (done) => { + await Utils.pressEscape(); done(); }); it('Unselect items with single click - [C280458]', async () => { await dataTable.selectMultipleItems([file1, file2, folder1, folder2]); + expect(await dataTable.countSelectedRows()).toEqual(4, 'incorrect selected rows number'); + await dataTable.selectItem(file1); + expect(await dataTable.countSelectedRows()).toEqual(1, 'incorrect selected rows number'); }); @@ -133,7 +154,9 @@ describe('Toolbar actions - multiple selection : ', () => { await dataTable.selectItem(folder1); await dataTable.selectItem(folder2); await browser.actions().sendKeys(protractor.Key.NULL).perform(); + expect(await dataTable.countSelectedRows()).toEqual(4, 'incorrect selected rows number'); + await browser.actions().sendKeys(protractor.Key.COMMAND).perform(); await dataTable.selectItem(file1); await dataTable.selectItem(file2); @@ -144,40 +167,81 @@ describe('Toolbar actions - multiple selection : ', () => { it('correct actions appear when multiple files are selected - [C217112]', async () => { await dataTable.selectMultipleItems([file1, file2]); + 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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('correct actions appear when multiple locked files are selected - []', async () => { + await dataTable.selectMultipleItems([fileLocked1, fileLocked2]); + + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + + await toolbar.openMoreMenu(); + + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + await toolbar.closeMoreMenu(); }); it('correct actions appear when multiple folders are selected - [C280459]', async () => { await dataTable.selectMultipleItems([folder1, folder2]); + 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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + 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.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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + await toolbar.closeMoreMenu(); }); }); @@ -191,42 +255,88 @@ describe('Toolbar actions - multiple selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('correct actions appear when multiple files are selected - [C280461]', async () => { await dataTable.selectMultipleItems([file1InSite, file2InSite]); + 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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed for selected files'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('correct actions appear when multiple locked files are selected - []', async () => { + await dataTable.selectMultipleItems([fileLocked1InSite, fileLocked2InSite]); + + 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.isEditFolderPresent()).toBe(false, 'Edit folder is displayed for selected files'); + + await toolbar.openMoreMenu(); + + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + await toolbar.closeMoreMenu(); }); it('correct actions appear when multiple folders are selected - [C280462]', async () => { await dataTable.selectMultipleItems([folder1InSite, folder2InSite]); + 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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + await toolbar.closeMoreMenu(); }); it('correct actions appear when both files and folders are selected - [C280463]', async () => { await dataTable.selectMultipleItems([file1InSite, file2InSite, folder1InSite, folder2InSite]); + 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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + await toolbar.closeMoreMenu(); }); }); @@ -239,16 +349,48 @@ describe('Toolbar actions - multiple selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('correct actions appear when multiple files are selected - [C280467]', async () => { await dataTable.selectMultipleItems([file1, file2]); + 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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed for selected files'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('correct actions appear when multiple locked files are selected - []', async () => { + await dataTable.selectMultipleItems([fileLocked1, fileLocked2]); + + 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.isEditFolderPresent()).toBe(false, 'Edit folder is displayed for selected files'); + + await toolbar.openMoreMenu(); + + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + await toolbar.closeMoreMenu(); }); }); @@ -261,16 +403,48 @@ describe('Toolbar actions - multiple selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('correct actions appear when multiple files are selected - [C280468]', async () => { await dataTable.selectMultipleItems([file1, file2]); + 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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('correct actions appear when multiple locked files are selected - []', async () => { + await dataTable.selectMultipleItems([fileLocked1, fileLocked2]); + + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + + await toolbar.openMoreMenu(); + + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + await toolbar.closeMoreMenu(); }); }); @@ -283,42 +457,88 @@ describe('Toolbar actions - multiple selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('correct actions appear when multiple files are selected - [C280469]', async () => { await dataTable.selectMultipleItems([file1, file2]); + 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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('correct actions appear when multiple locked files are selected - []', async () => { + await dataTable.selectMultipleItems([fileLocked1, fileLocked2]); + + expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed'); + expect(await toolbar.isDownloadPresent()).toBe(true, 'Download is not displayed'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + + await toolbar.openMoreMenu(); + + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + await toolbar.closeMoreMenu(); }); it('correct actions appear when multiple folders are selected - [C280470]', async () => { await dataTable.selectMultipleItems([folder1, folder2]); + 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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + await toolbar.closeMoreMenu(); }); it('correct actions appear when both files and folders are selected - [C280471]', async () => { await dataTable.selectMultipleItems([file1, file2, folder1, folder2]); + 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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + await toolbar.closeMoreMenu(); }); }); @@ -329,20 +549,28 @@ describe('Toolbar actions - multiple selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('correct actions appear when multiple files are selected - [C280472]', async () => { await dataTable.selectMultipleItems([fileForDelete1, fileForDelete2]); + expect(await toolbar.isButtonPresent('Permanently delete')).toBe(true, 'Permanently delete is displayed'); expect(await toolbar.isButtonPresent('Restore')).toBe(true, 'Restore is not displayed'); }); it('correct actions appear when multiple folders are selected - [C280473]', async () => { await dataTable.selectMultipleItems([folderForDelete1, folderForDelete2]); + expect(await toolbar.isButtonPresent('Permanently delete')).toBe(true, 'Permanently delete is displayed'); expect(await toolbar.isButtonPresent('Restore')).toBe(true, 'Restore is not displayed'); }); it('correct actions appear when both files and folders are selected - [C280474]', async () => { await dataTable.selectMultipleItems([fileForDelete1, fileForDelete2, folderForDelete1, folderForDelete2]); + expect(await toolbar.isButtonPresent('Permanently delete')).toBe(true, 'Permanently delete is displayed'); expect(await toolbar.isButtonPresent('Restore')).toBe(true, 'Restore is not displayed'); }); @@ -355,6 +583,11 @@ describe('Toolbar actions - multiple selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('correct actions appear when multiple files are selected - [C291820]', async () => { await searchInput.clickSearchButton(); await searchInput.checkOnlyFiles(); @@ -363,12 +596,41 @@ describe('Toolbar actions - multiple selection : ', () => { 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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed for selected files'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('correct actions appear when multiple locked files are selected - []', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchForTextAndCloseSearchOptions('my-fileLockedInSite'); + await dataTable.selectMultipleItems([fileLocked1InSite, fileLocked2InSite]); + + 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.isEditFolderPresent()).toBe(false, 'Edit folder is displayed for selected files'); + + await toolbar.openMoreMenu(); + + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + await toolbar.closeMoreMenu(); }); @@ -380,12 +642,18 @@ describe('Toolbar actions - multiple selection : ', () => { 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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + await toolbar.closeMoreMenu(); }); @@ -397,12 +665,18 @@ describe('Toolbar actions - multiple selection : ', () => { 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'); + expect(await toolbar.isEditFolderPresent()).toBe(false, 'Edit folder is displayed'); + await toolbar.openMoreMenu(); + 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`); + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); + await toolbar.closeMoreMenu(); }); }); diff --git a/e2e/suites/actions/toolbar-single-selection.test.ts b/e2e/suites/actions/toolbar-single-selection.test.ts index 57f10ba3f..7386e3dde 100755 --- a/e2e/suites/actions/toolbar-single-selection.test.ts +++ b/e2e/suites/actions/toolbar-single-selection.test.ts @@ -35,9 +35,11 @@ describe('Toolbar actions - single selection : ', () => { const folderUser = `folderUser-${Utils.random()}`; let folderUserId; const fileForDelete = `fileForDelete-${Utils.random()}.txt`; let fileForDeleteId; const folderForDelete = `folderForDelete-${Utils.random()}`; let folderForDeleteId; + const fileLocked = `fileLocked-${Utils.random()}.txt`; let fileLockedId; const siteName = `site-${Utils.random()}`; const fileInSite = `file-site-${Utils.random()}.txt`; + const fileLockedInSite = `file-locked-site-${Utils.random()}.txt`; let fileLockedInSiteId; const folderInSite = `folder-site-${Utils.random()}`; const adminPublic = `admin-public-${Utils.random()}`; @@ -61,19 +63,27 @@ describe('Toolbar actions - single selection : ', () => { fileForDeleteId = (await apis.user.nodes.createFile(fileForDelete)).entry.id; folderForDeleteId = (await apis.user.nodes.createFolder(folderForDelete)).entry.id; folderUserId = (await apis.user.nodes.createFolder(folderUser)).entry.id; + fileLockedId = (await apis.user.nodes.createFile(fileLocked)).entry.id; await apis.user.shared.shareFileById(fileUserId); - await apis.user.shared.waitForApi({ expect: 1 }); + await apis.user.shared.shareFileById(fileLockedId); + await apis.user.shared.waitForApi({ expect: 2 }); await apis.user.favorites.addFavoriteById('file', fileUserId); await apis.user.favorites.addFavoriteById('folder', folderUserId); - await apis.user.favorites.waitForApi({ expect: 2 }); + await apis.user.favorites.addFavoriteById('file', fileLockedId); + await apis.user.favorites.waitForApi({ expect: 3 }); + + await apis.user.nodes.lockFile(fileLockedId); await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE); const docLibId = await apis.user.sites.getDocLibId(siteName); await apis.user.nodes.createFile(fileInSite, docLibId); + fileLockedInSiteId = (await apis.user.nodes.createFile(fileLockedInSite, docLibId)).entry.id; await apis.user.nodes.createFolder(folderInSite, docLibId); + await apis.user.nodes.lockFile(fileLockedInSiteId); + await apis.user.nodes.deleteNodeById(fileForDeleteId, false); await apis.user.nodes.deleteNodeById(folderForDeleteId, false); @@ -109,8 +119,14 @@ describe('Toolbar actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('selected row is marked with a check circle icon - [C213134]', async () => { await dataTable.selectItem(fileUser); + expect(await dataTable.hasCheckMarkIcon(fileUser)).toBe(true, 'check mark missing'); }); @@ -120,29 +136,64 @@ 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.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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileUser}`); + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed for ${fileUser}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`); + + await toolbar.closeMoreMenu(); + }); + + it('correct actions appear when a locked file is selected - []', async () => { + await dataTable.selectItem(fileLocked); + + expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileLocked}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`); + 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.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}`); + expect(await toolbar.isEditFolderPresent()).toBe(true, `Edit folder is not displayed for ${folderUser}`); + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderUser}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folderUser}`); + await toolbar.closeMoreMenu(); }); }); @@ -156,35 +207,75 @@ describe('Toolbar actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('actions are not displayed when no item is selected - [C280439]', async () => { expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); }); 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.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}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileInSite}`); + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed for ${fileInSite}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileInSite}`); + + await toolbar.closeMoreMenu(); + }); + + it('correct actions appear when a locked file is selected - []', async () => { + await dataTable.selectItem(fileLockedInSite); + + expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileLockedInSite}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLockedInSite}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLockedInSite}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLockedInSite}`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLockedInSite}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed for ${fileLockedInSite}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLockedInSite}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLockedInSite}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLockedInSite}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLockedInSite}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLockedInSite}`); + 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.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}`); + expect(await toolbar.isEditFolderPresent()).toBe(true, `Edit folder is not displayed for ${folderInSite}`); + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderInSite}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folderInSite}`); + await toolbar.closeMoreMenu(); }); }); @@ -196,6 +287,7 @@ describe('Toolbar actions - single selection : ', () => { }); afterAll(async (done) => { + await Utils.pressEscape(); await page.clickPersonalFiles(); done(); }); @@ -203,48 +295,64 @@ describe('Toolbar actions - single selection : ', () => { it('Available actions for a library - My Libraries - [C213135]', async () => { await page.goToMyLibrariesAndWait(); await dataTable.selectItem(siteName); + expect(await toolbar.isEmpty()).toBe(false, 'toolbar not displayed'); 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.isDeletePresent()).toBe(true, `Delete is not displayed for ${siteName}`); expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${siteName}`); + await toolbar.closeMoreMenu(); }); it('Available actions for a library - Favorite Libraries - user is a member - [C289892]', async () => { await page.goToFavoriteLibrariesAndWait(); await dataTable.selectItem(siteName); + expect(await toolbar.isEmpty()).toBe(false, 'toolbar not displayed'); 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.isDeletePresent()).toBe(true, `Delete is not displayed for ${siteName}`); expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${siteName}`); + await toolbar.closeMoreMenu(); }); it('Available actions for a library - Favorite Libraries - user is not a member - [C290090]', async () => { await page.goToFavoriteLibrariesAndWait(); await dataTable.selectItem(adminPublic); + expect(await toolbar.isEmpty()).toBe(false, 'toolbar not displayed'); 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.isDeletePresent()).toBe(true, `Delete is not displayed for ${adminPublic}`); expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${adminPublic}`); + await toolbar.closeMoreMenu(); }); it('Available actions for a moderated library - Favorite Libraries - user requested to join - [C290091]', async () => { await page.goToFavoriteLibrariesAndWait(); await dataTable.selectItem(adminModerated); + expect(await toolbar.isEmpty()).toBe(false, 'toolbar not displayed'); 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.isDeletePresent()).toBe(true, `Delete is not displayed for ${adminModerated}`); expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${adminModerated}`); + await toolbar.closeMoreMenu(); }); @@ -257,9 +365,12 @@ describe('Toolbar actions - single selection : ', () => { expect(await toolbar.isEmpty()).toBe(false, 'toolbar not displayed'); 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.isDeletePresent()).toBe(true, `Delete is not displayed for ${siteName}`); expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${siteName}`); + await toolbar.closeMoreMenu(); }); @@ -272,9 +383,12 @@ describe('Toolbar actions - single selection : ', () => { expect(await toolbar.isEmpty()).toBe(false, 'toolbar not displayed'); 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.isDeletePresent()).toBe(true, `Delete is not displayed for ${adminPublic}`); expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${adminPublic}`); + await toolbar.closeMoreMenu(); }); @@ -287,9 +401,12 @@ describe('Toolbar actions - single selection : ', () => { expect(await toolbar.isEmpty()).toBe(false, 'toolbar not displayed'); 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.isDeletePresent()).toBe(true, `Delete is not displayed for ${adminModerated}`); expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${adminModerated}`); + await toolbar.closeMoreMenu(); }); }); @@ -301,22 +418,58 @@ describe('Toolbar actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('actions are not displayed when no item is selected - [C280445]', async () => { expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); }); 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.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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileUser}`); expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed for ${fileUser}`); + await toolbar.openMoreMenu(); + + // TODO: change expect to true when ACA-2173 is done + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileUser}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`); + + await toolbar.closeMoreMenu(); + }); + + it('correct actions appear when a locked file is selected - []', async () => { + await page.dataTable.selectItem(fileLocked); + + expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileLocked}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed for ${fileLocked}`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + // TODO: change expect to true when ACA-2173 is done + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${fileLocked}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`); + await toolbar.closeMoreMenu(); }); }); @@ -328,21 +481,54 @@ describe('Toolbar actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('actions are not displayed when no item is selected - [C280447]', async () => { expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); }); 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.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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileUser}`); + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed for ${fileUser}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`); + + await toolbar.closeMoreMenu(); + }); + + it('correct actions appear when a locked file is selected - []', async () => { + await dataTable.selectItem(fileLocked); + + expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileLocked}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`); + await toolbar.closeMoreMenu(); }); }); @@ -354,35 +540,77 @@ describe('Toolbar actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('actions are not displayed when no item is selected - [C280449]', async () => { expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); }); 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.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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileUser}`); + await toolbar.openMoreMenu(); + + // TODO: change expect to true when ACA-2174 is done + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileUser}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`); + + await toolbar.closeMoreMenu(); + }); + + it('correct actions appear when a locked file is selected - []', async () => { + await dataTable.selectItem(fileLocked); + + expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileLocked}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + // TODO: change expect to true when ACA-2174 is done + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${fileLocked}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`); + 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.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}`); + expect(await toolbar.isEditFolderPresent()).toBe(true, `Edit folder is not displayed for ${folderUser}`); + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderUser}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folderUser}`); + await toolbar.closeMoreMenu(); }); }); @@ -394,22 +622,29 @@ describe('Toolbar actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('actions are not displayed when no item is selected - [C280452]', async () => { expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); }); it('correct actions appear when a file is selected - [C280453]', async () => { await dataTable.selectItem(fileForDelete); + expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileForDelete}`); - expect(await toolbar.isButtonPresent('Permanently delete')).toBe(true, `Permanently delete is not displayed for file`); - expect(await toolbar.isButtonPresent('Restore')).toBe(true, `Restore is not displayed for file`); + expect(await toolbar.isPermanentlyDeletePresent()).toBe(true, `Permanently delete is not displayed for file`); + expect(await toolbar.isRestorePresent()).toBe(true, `Restore is not displayed for file`); }); it('correct actions appear when a folder is selected - [C280454]', async () => { await dataTable.selectItem(folderForDelete); + expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${folderForDelete}`); - expect(await toolbar.isButtonPresent('Permanently delete')).toBe(true, `Permanently delete is displayed for folder`); - expect(await toolbar.isButtonPresent('Restore')).toBe(true, `Restore is not enabled for folder`); + expect(await toolbar.isPermanentlyDeletePresent()).toBe(true, `Permanently delete is displayed for folder`); + expect(await toolbar.isRestorePresent()).toBe(true, `Restore is not displayed for folder`); }); }); @@ -420,6 +655,11 @@ describe('Toolbar actions - single selection : ', () => { done(); }); + afterAll(async (done) => { + await Utils.pressEscape(); + done(); + }); + it('actions are not displayed when no item is selected - [C291815]', async () => { await searchInput.clickSearchButton(); await searchInput.checkFilesAndFolders(); @@ -437,12 +677,42 @@ describe('Toolbar actions - single selection : ', () => { expect(await toolbar.isEmpty()).toBe(false, `actions 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.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileUser}`); + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed for ${fileUser}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${fileUser}`); expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileUser}`); expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for ${fileUser}`); expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${fileUser}`); expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`); + + await toolbar.closeMoreMenu(); + }); + + it('correct actions appear when a locked file is selected - []', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchForTextAndCloseSearchOptions(fileLocked); + await dataTable.selectItem(fileLocked); + + expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileLocked}`); + expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`); + expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`); + expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for ${fileLocked}`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${fileLocked}`); + expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`); + await toolbar.closeMoreMenu(); }); @@ -455,12 +725,18 @@ describe('Toolbar actions - single selection : ', () => { expect(await toolbar.isEmpty()).toBe(false, `actions 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}`); + expect(await toolbar.isEditFolderPresent()).toBe(true, `Edit folder is not displayed for ${folderUser}`); + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderUser}`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folderUser}`); expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folderUser}`); expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for ${folderUser}`); expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${folderUser}`); expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folderUser}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folderUser}`); + await toolbar.closeMoreMenu(); }); }); diff --git a/e2e/suites/list-views/tooltips.test.ts b/e2e/suites/list-views/tooltips.test.ts index c9ae1105b..421e7a6f6 100755 --- a/e2e/suites/list-views/tooltips.test.ts +++ b/e2e/suites/list-views/tooltips.test.ts @@ -166,7 +166,7 @@ describe('File / folder tooltips', () => { }); // disabled until ACA-518 is done - xdescribe('on Shared Files', () => { + describe('on Shared Files', () => { beforeAll(async (done) => { await apis.user.shared.waitForApi({ expect: 8 }); await page.clickSharedFilesAndWait(); diff --git a/e2e/suites/viewer/viewer-actions.test.ts b/e2e/suites/viewer/viewer-actions.test.ts index 40fb5bacd..43145adb2 100755 --- a/e2e/suites/viewer/viewer-actions.test.ts +++ b/e2e/suites/viewer/viewer-actions.test.ts @@ -58,11 +58,12 @@ describe('Viewer actions', () => { done(); }); - describe('on Personal Files', () => { + describe('file opened from Personal Files', () => { const parent = `parentPF-${Utils.random()}`; let parentId; const destination = `destPF-${Utils.random()}`; let destinationId; const docxPersonalFiles = `docxPF-${Utils.random()}.docx`; let docxFileId; + const docxLockedPersonalFiles = `docxLockedPF-${Utils.random()}.docx`; let docxLockedId; const xlsxPersonalFiles = `xlsxPF-${Utils.random()}.xlsx`; const pdfPersonalFiles = `pdfPF-${Utils.random()}.pdf`; @@ -70,9 +71,12 @@ describe('Viewer actions', () => { parentId = (await apis.user.nodes.createFolder(parent)).entry.id; destinationId = (await apis.user.nodes.createFolder(destination)).entry.id; docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxPersonalFiles)).entry.id; + docxLockedId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxLockedPersonalFiles)).entry.id; await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxPersonalFiles); await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfPersonalFiles); + await apis.user.nodes.lockFile(docxLockedId); + await loginPage.loginWith(username); done(); }); @@ -98,7 +102,7 @@ describe('Viewer actions', () => { it('Correct actions appear in the viewer toolbar - [C282025]', async () => { await dataTable.doubleClickOnRowByName(docxPersonalFiles); - expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); + await viewer.waitForViewerToOpen(); expect(await toolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); expect(await toolbar.isViewPresent()).toBe(false, `View is displayed`); @@ -107,13 +111,42 @@ describe('Viewer actions', () => { 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.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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(); + }); + + it('Correct actions appear in the viewer toolbar for a locked file - []', async () => { + await dataTable.doubleClickOnRowByName(docxLockedPersonalFiles); + await viewer.waitForViewerToOpen(); + + expect(await toolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); + 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing 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`); + await toolbar.closeMoreMenu(); }); @@ -215,7 +248,7 @@ describe('Viewer actions', () => { await manageVersionsDialog.clickClose(); }); - // TODO: enable this once bug is fixed + // TODO: disabled until ACA-2176 is done xit('Pressing ESC in the viewer closes only the action dialog - [C286314]', async () => { await dataTable.doubleClickOnRowByName(docxPersonalFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); @@ -228,11 +261,12 @@ describe('Viewer actions', () => { }); }); - describe('on File Libraries', () => { + describe('file opened from File Libraries', () => { const siteName = `site-${Utils.random()}`; const destination = `destFL-${Utils.random()}`; let destinationId; const docxLibraries = `docxFL-${Utils.random()}.docx`; let docxFileId; + const docxLockedLibraries = `docxLockedFL-${Utils.random()}.docx`; let docxLockedId; const xlsxLibraries = `xlsxFL-${Utils.random()}.xlsx`; const pdfLibraries = `pdfFL-${Utils.random()}.pdf`; @@ -241,6 +275,8 @@ describe('Viewer actions', () => { const docLibId = await apis.user.sites.getDocLibId(siteName); destinationId = (await apis.user.nodes.createFolder(destination)).entry.id; docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, docLibId, docxLibraries)).entry.id; + docxLockedId = (await apis.user.upload.uploadFileWithRename(docxFile, docLibId, docxLockedLibraries)).entry.id; + await apis.user.nodes.lockFile(docxLockedId); await apis.user.upload.uploadFileWithRename(xlsxFileForMove, docLibId, xlsxLibraries); await apis.user.upload.uploadFileWithRename(pdfFileForDelete, docLibId, pdfLibraries); @@ -267,6 +303,56 @@ describe('Viewer actions', () => { done(); }); + it('Correct actions appear in the viewer toolbar - []', async () => { + await dataTable.doubleClickOnRowByName(docxLibraries); + await viewer.waitForViewerToOpen(); + + expect(await toolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); + 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.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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`); + + await toolbar.closeMoreMenu(); + }); + + it('Correct actions appear in the viewer toolbar for a locked file - []', async () => { + await dataTable.doubleClickOnRowByName(docxLockedLibraries); + await viewer.waitForViewerToOpen(); + + expect(await toolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); + 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing 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`); + + await toolbar.closeMoreMenu(); + }); + it('Download action - [C286369]', async () => { await dataTable.doubleClickOnRowByName(docxLibraries); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); @@ -354,11 +440,12 @@ describe('Viewer actions', () => { }); }); - describe('on Recent Files', () => { + describe('file opened from Recent Files', () => { const parent = `parentRF-${Utils.random()}`; let parentId; const destination = `destRF-${Utils.random()}`; let destinationId; const docxRecentFiles = `docxRF-${Utils.random()}.docx`; let docxFileId; + const docxLockedRecentFiles = `docxLockedRF-${Utils.random()}.docx`; let docxLockedId; const xlsxRecentFiles = `xlsxRF-${Utils.random()}.xlsx`; const pdfRecentFiles = `pdfRF-${Utils.random()}.pdf`; @@ -367,10 +454,12 @@ describe('Viewer actions', () => { parentId = (await apis.user.nodes.createFolder(parent)).entry.id; destinationId = (await apis.user.nodes.createFolder(destination)).entry.id; docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxRecentFiles)).entry.id; + docxLockedId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxLockedRecentFiles)).entry.id; + await apis.user.nodes.lockFile(docxLockedId); await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxRecentFiles); await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfRecentFiles); - await apis.user.search.waitForApi(username, {expect: 3}); + await apis.user.search.waitForApi(username, {expect: 4}); await loginPage.loginWith(username); done(); @@ -393,6 +482,56 @@ describe('Viewer actions', () => { done(); }); + it('Correct actions appear in the viewer toolbar - []', async () => { + await dataTable.doubleClickOnRowByName(docxRecentFiles); + await viewer.waitForViewerToOpen(); + + expect(await toolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); + 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.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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`); + + await toolbar.closeMoreMenu(); + }); + + it('Correct actions appear in the viewer toolbar for a locked file - []', async () => { + await dataTable.doubleClickOnRowByName(docxLockedRecentFiles); + await viewer.waitForViewerToOpen(); + + expect(await toolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); + 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing 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`); + + await toolbar.closeMoreMenu(); + }); + it('Download action - [C286383]', async () => { await dataTable.doubleClickOnRowByName(docxRecentFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); @@ -481,11 +620,12 @@ describe('Viewer actions', () => { }); }); - describe('on Shared Files', () => { + describe('file opened from Shared Files', () => { const parent = `parentSF-${Utils.random()}`; let parentId; const destination = `destSF-${Utils.random()}`; let destinationId; const docxSharedFiles = `docxSF-${Utils.random()}.docx`; let docxFileId; + const docxLockedSharedFiles = `docxLockedSF-${Utils.random()}.docx`; let docxLockedId; const xlsxSharedFiles = `xlsxSF-${Utils.random()}.xlsx`; let xlsxFileId; const pdfSharedFiles = `pdfSF-${Utils.random()}.pdf`; let pdfFileId; @@ -493,11 +633,13 @@ describe('Viewer actions', () => { parentId = (await apis.user.nodes.createFolder(parent)).entry.id; destinationId = (await apis.user.nodes.createFolder(destination)).entry.id; docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxSharedFiles)).entry.id; + docxLockedId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxLockedSharedFiles)).entry.id; xlsxFileId = (await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxSharedFiles)).entry.id; pdfFileId = (await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfSharedFiles)).entry.id; + await apis.user.nodes.lockFile(docxLockedId); - await apis.user.shared.shareFilesByIds([docxFileId, xlsxFileId, pdfFileId]) - await apis.user.shared.waitForApi({expect: 3}); + await apis.user.shared.shareFilesByIds([docxFileId, docxLockedId, xlsxFileId, pdfFileId]) + await apis.user.shared.waitForApi({expect: 4}); await loginPage.loginWith(username); done(); @@ -520,6 +662,56 @@ describe('Viewer actions', () => { done(); }); + it('Correct actions appear in the viewer toolbar - []', async () => { + await dataTable.doubleClickOnRowByName(docxSharedFiles); + await viewer.waitForViewerToOpen(); + + expect(await toolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); + 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.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `view details is not displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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`); + + await toolbar.closeMoreMenu(); + }); + + it('Correct actions appear in the viewer toolbar for a locked file - []', async () => { + await dataTable.doubleClickOnRowByName(docxLockedSharedFiles); + await viewer.waitForViewerToOpen(); + + expect(await toolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); + 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.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`); + expect(await toolbar.isViewDetailsPresent()).toBe(true, `view details is not displayed`); + + await toolbar.openMoreMenu(); + + expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing 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`); + + await toolbar.closeMoreMenu(); + }); + it('Download action - [C286376]', async () => { await dataTable.doubleClickOnRowByName(docxSharedFiles); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); @@ -608,13 +800,14 @@ describe('Viewer actions', () => { }); }); - describe('on Favorites', () => { + describe('file opened from Favorites', () => { const parent = `parentFav-${Utils.random()}`; let parentId; const destination = `destFav-${Utils.random()}`; let destinationId; const docxFavorites = `docxFav-${Utils.random()}.docx`; let docxFileId; + const docxLockedFavorites = `docxLockedFav-${Utils.random()}.docx`; let docxLockedId; const xlsxFavorites = `xlsxFav-${Utils.random()}.xlsx`; let xlsxFileId; const pdfFavorites = `pdfFav-${Utils.random()}.pdf`; let pdfFileId; @@ -622,11 +815,13 @@ describe('Viewer actions', () => { parentId = (await apis.user.nodes.createFolder(parent)).entry.id; destinationId = (await apis.user.nodes.createFolder(destination)).entry.id; docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxFavorites)).entry.id; + docxLockedId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxLockedFavorites)).entry.id; xlsxFileId = (await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxFavorites)).entry.id; pdfFileId = (await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfFavorites)).entry.id; + await apis.user.nodes.lockFile(docxLockedId); - await apis.user.favorites.addFavoritesByIds('file', [docxFileId, xlsxFileId, pdfFileId]) - await apis.user.favorites.waitForApi({expect: 3}); + await apis.user.favorites.addFavoritesByIds('file', [docxFileId, docxLockedId, xlsxFileId, pdfFileId]) + await apis.user.favorites.waitForApi({expect: 4}); await loginPage.loginWith(username); done(); @@ -649,6 +844,56 @@ describe('Viewer actions', () => { done(); }); + it('Correct actions appear in the viewer toolbar - []', async () => { + await dataTable.doubleClickOnRowByName(docxFavorites); + await viewer.waitForViewerToOpen(); + + expect(await toolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); + 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.isEditOfflinePresent()).toBe(true, `Edit offline is not displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is 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`); + + await toolbar.closeMoreMenu(); + }); + + it('Correct actions appear in the viewer toolbar for a locked file - []', async () => { + await dataTable.doubleClickOnRowByName(docxLockedFavorites); + await viewer.waitForViewerToOpen(); + + expect(await toolbar.isEmpty()).toBe(false, `viewer toolbar is empty`); + 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await toolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing 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`); + + await toolbar.closeMoreMenu(); + }); + it('Download action - [C286390]', async () => { await dataTable.doubleClickOnRowByName(docxFavorites); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); diff --git a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts index 63304ea7a..cc6bb1786 100755 --- a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts +++ b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts @@ -207,10 +207,11 @@ export class NodesApi extends RepoApi { } // lock node - async lockFile(nodeId: string, lockType: string = 'FULL') { + async lockFile(nodeId: string, lockType: string = 'ALLOW_OWNER_CHANGES') { const data = { type: lockType }; + await this.apiAuth(); return await this.nodesApi.lockNode(nodeId, data ); } diff --git a/src/app/extensions/core.extensions.module.ts b/src/app/extensions/core.extensions.module.ts index 885715d12..4ea8e960d 100644 --- a/src/app/extensions/core.extensions.module.ts +++ b/src/app/extensions/core.extensions.module.ts @@ -147,6 +147,8 @@ export class CoreExtensionsModule { 'app.navigation.isSearchResults': nav.isSearchResults, 'app.navigation.isNotSearchResults': nav.isNotSearchResults, 'app.navigation.isPreview': nav.isPreview, + 'app.navigation.isSharedPreview': nav.isSharedPreview, + 'app.navigation.isFavoritesPreview': nav.isFavoritesPreview, 'repository.isQuickShareEnabled': repository.hasQuickShareEnabled }); diff --git a/src/app/extensions/evaluators/app.evaluators.ts b/src/app/extensions/evaluators/app.evaluators.ts index 00ae64f59..89a6f532b 100644 --- a/src/app/extensions/evaluators/app.evaluators.ts +++ b/src/app/extensions/evaluators/app.evaluators.ts @@ -335,8 +335,8 @@ export function canUnlockFile( ): boolean { const { file } = context.selection; return ( - (isWriteLocked(context, ...args) && - context.permissions.check(file.entry, ['delete'])) || - isUserWriteLockOwner(context, ...args) + isWriteLocked(context, ...args) && + (context.permissions.check(file.entry, ['delete']) || + isUserWriteLockOwner(context, ...args)) ); } diff --git a/src/app/extensions/evaluators/navigation.evaluators.ts b/src/app/extensions/evaluators/navigation.evaluators.ts index 23ce69a2b..5657e7b26 100644 --- a/src/app/extensions/evaluators/navigation.evaluators.ts +++ b/src/app/extensions/evaluators/navigation.evaluators.ts @@ -140,3 +140,23 @@ export function isPreview( const { url } = context.navigation; return url && url.includes('/preview/'); } + +export function isSharedPreview( + context: RuleContext, + ...args: RuleParameter[] +): boolean { + const { url } = context.navigation; + console.log( + '===== isSharedPreview: ', + url && url.startsWith('/shared/preview/') + ); + return url && url.startsWith('/shared/preview/'); +} + +export function isFavoritesPreview( + context: RuleContext, + ...args: RuleParameter[] +): boolean { + const { url } = context.navigation; + return url && url.startsWith('/favorites/preview/'); +} diff --git a/src/assets/app.extensions.json b/src/assets/app.extensions.json index 97c142fdc..8b9e83629 100644 --- a/src/assets/app.extensions.json +++ b/src/assets/app.extensions.json @@ -231,6 +231,22 @@ "parameters": [ { "type": "rule", "value": "app.selection.file" }, { "type": "rule", "value": "app.navigation.isNotTrashcan" }, + { + "type": "rule", + "value": "core.some", + "parameters": [ + { "type": "rule", "value": "app.navigation.isNotFavorites" }, + { "type": "rule", "value": "app.navigation.isFavoritesPreview" } + ] + }, + { + "type": "rule", + "value": "core.some", + "parameters": [ + { "type": "rule", "value": "app.navigation.isNotSharedFiles" }, + { "type": "rule", "value": "app.navigation.isSharedPreview" } + ] + }, { "type": "rule", "value": "core.some",