diff --git a/.travis.yml b/.travis.yml index 89ff290a3..a768059ad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -33,10 +33,10 @@ jobs: - npm run test:ci - bash <(curl -s https://codecov.io/bash) -X gcov - stage: e2e - name: Test Suite appNavigation - script: npm run build.e2e && SUITE="--suite authentication,listViews,navigation,application,pagination" npm run e2e:docker - - name: Test Suite search&actionsAvailable - script: npm run build.e2e && SUITE="--suite search,actionsAvailable" npm run e2e:docker + name: Test Suite appNavigation&search + script: npm run build.e2e && SUITE="--suite authentication,listViews,navigation,application,pagination,search" npm run e2e:docker + - name: Test Suite actionsAvailable + script: npm run build.e2e && SUITE="--suite actionsAvailable" npm run e2e:docker - name: Test Suite addRemoveContent script: npm run build.e2e && SUITE="--suite addRemoveContent" npm run e2e:docker - name: Test Suite manageContent diff --git a/e2e/components/data-table/data-table.ts b/e2e/components/data-table/data-table.ts index 6f5d73a2d..7917cf83b 100755 --- a/e2e/components/data-table/data-table.ts +++ b/e2e/components/data-table/data-table.ts @@ -235,20 +235,29 @@ export class DataTable extends Component { const item = this.getRowFirstCell(name, location); await Utils.waitUntilElementClickable(item); await browser.actions().mouseMove(item).perform(); - await browser.actions().click().click().perform(); + await browser.actions().doubleClick().perform(); } catch (error) { console.log('--- catch: doubleClickOnRowByName', error); } } async selectItem(name: string, location: string = '') { - try{ - const item = this.getRowFirstCell(name, location); - await item.click(); + const isSelected = await this.hasCheckMarkIcon(name, location); + if (!isSelected) { + try { + const item = this.getRowFirstCell(name, location); + await item.click(); - } catch (e) { - console.log('--- select item catch : ', e); + } catch (e) { + console.log('--- select item catch : ', e); + } } + + } + + async clickItem(name: string, location: string = '') { + const item = this.getRowFirstCell(name, location); + await item.click(); } async clickNameLink(itemName: string) { diff --git a/e2e/components/menu/menu.ts b/e2e/components/menu/menu.ts index 71880de0a..6dabbd736 100755 --- a/e2e/components/menu/menu.ts +++ b/e2e/components/menu/menu.ts @@ -127,6 +127,13 @@ export class Menu extends Component { return await this.items.count(); } + async getMenuItems(): Promise { + return this.items.map(async (elem) => { + const text = await elem.element(by.css('span')).getText(); + return text; + }); + } + async clickNthItem(nth: number) { try { const elem = this.getNthItem(nth); diff --git a/e2e/components/toolbar/toolbar.ts b/e2e/components/toolbar/toolbar.ts index e350ac34c..1e52b0c76 100755 --- a/e2e/components/toolbar/toolbar.ts +++ b/e2e/components/toolbar/toolbar.ts @@ -43,7 +43,7 @@ export class Toolbar extends Component { print: `.mat-icon-button[title='Print']`, fullScreen: `.mat-icon-button[title='Activate full-screen mode']`, joinLibrary: `.mat-icon-button[title='Join']`, - leaveLibrary: `.mat-icon-button[title='Leave library']`, + leaveLibrary: `.mat-icon-button[title='Leave Library']`, permanentlyDelete: `.mat-icon-button[title='Permanently Delete']`, restore: `.mat-icon-button[title='Restore']` }; @@ -77,6 +77,12 @@ export class Toolbar extends Component { return await this.buttons.count(); } + async getButtons(): Promise { + return this.buttons.map(async elem => { + return await elem.getAttribute('title'); + }); + } + async isButtonPresent(title: string) { const elem = this.component.element(by.css(`${Toolbar.selectors.button}[title="${title}"]`)); return await elem.isPresent(); diff --git a/e2e/suites/actions-available/context-menu-multiple-selection.test.ts b/e2e/suites/actions-available/context-menu-multiple-selection.test.ts deleted file mode 100755 index 7b974bc8b..000000000 --- a/e2e/suites/actions-available/context-menu-multiple-selection.test.ts +++ /dev/null @@ -1,656 +0,0 @@ -/*! - * @license - * Alfresco Example Content Application - * - * Copyright (C) 2005 - 2019 Alfresco Software Limited - * - * This file is part of the Alfresco Example Content Application. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is - * provided under the following open source license terms: - * - * The Alfresco Example Content Application is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * The Alfresco Example Content Application is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - */ - -import { LoginPage, BrowsingPage, SearchResultsPage } from '../../pages/pages'; -import { SITE_VISIBILITY } from '../../configs'; -import { RepoClient } from '../../utilities/repo-client/repo-client'; -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; - - const fileInTrash1 = `deletedFile1-${Utils.random()}.txt`; let fileInTrash1Id; - const fileInTrash2 = `deletedFile2-${Utils.random()}.txt`; let fileInTrash2Id; - const folderInTrash1 = `deletedFolder1-${Utils.random()}`; let folderInTrash1Id; - const folderInTrash2 = `deletedFolder2-${Utils.random()}`; let folderInTrash2Id; - - 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()}`; - - const apis = { - admin: new RepoClient(), - user: new RepoClient(username, username) - }; - - const loginPage = new LoginPage(); - const page = new BrowsingPage(); - const { dataTable } = page; - const contextMenu = dataTable.menu; - const searchResultsPage = new SearchResultsPage(); - const { searchInput } = searchResultsPage.header; - - beforeAll(async (done) => { - await apis.admin.people.createUser({ username }); - 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); - await apis.user.nodes.createFile(file1Site, docLibId); - 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, 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: 6 + 1 }); - - fileInTrash1Id = (await apis.user.nodes.createFile(fileInTrash1)).entry.id; - fileInTrash2Id = (await apis.user.nodes.createFile(fileInTrash2)).entry.id; - folderInTrash1Id = (await apis.user.nodes.createFolder(folderInTrash1)).entry.id; - folderInTrash2Id = (await apis.user.nodes.createFolder(folderInTrash2)).entry.id; - await apis.user.nodes.deleteNodesById([ fileInTrash1Id, fileInTrash2Id, folderInTrash1Id, folderInTrash2Id ], false); - - await loginPage.loginWith(username); - done(); - }); - - afterAll(async (done) => { - await apis.user.nodes.deleteNodeById(parentId); - await apis.user.sites.deleteSite(siteName); - await apis.user.trashcan.emptyTrash(); - done(); - }); - - describe('Generic tests', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickPersonalFilesAndWait(); - await dataTable.doubleClickOnRowByName(parent); - done(); - }); - - afterAll(async (done) => { - await Utils.pressEscape(); - done(); - }); - - it('Context menu appears on right click on a multiple selection of items - [C286268]', async () => { - await dataTable.selectMultipleItems([ file1, file2 ]); - await dataTable.rightClickOnMultipleSelection(); - - expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - }); - - it('Context menu appears when right clicking on a single item while having multiple items selected - [C286269]', async () => { - await dataTable.selectMultipleItems([ file2, folder1 ]); - await dataTable.rightClickOnItem(file1); - - expect(await dataTable.hasContextMenu()).toBe(true, `Context menu is not displayed for ${file1}`); - expect(await dataTable.countSelectedRows()).toEqual(1, 'incorrect number of selected rows'); - expect(await contextMenu.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`); - }); - }); - - describe('on Personal Files', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickPersonalFilesAndWait(); - await dataTable.doubleClickOnRowByName(parent); - await dataTable.waitForBody(); - done(); - }); - - afterAll(async (done) => { - await Utils.pressEscape(); - done(); - }); - - it('correct actions appear when multiple files are selected - [C280661]', 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.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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - - it('correct actions appear when multiple locked files are selected - [C297627]', 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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - }); - - describe('on File Libraries', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.goToMyLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - 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.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`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - - it('correct actions appear when multiple locked files are selected - [C297628]', 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`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.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`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.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`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - }); - - describe('on Shared Files', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickSharedFilesAndWait(); - await dataTable.clearSelection(); - 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is not displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - - it('correct actions appear when multiple locked files are selected - [C297629]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is not displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - }); - - describe('on Recent Files', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickRecentFilesAndWait(); - await dataTable.clearSelection(); - 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - - it('correct actions appear when multiple locked files are selected - [C297630]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - }); - - describe('on Favorites', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickFavoritesAndWait(); - await dataTable.clearSelection(); - 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - - it('correct actions appear when multiple locked files are selected - [C297631]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - }); - - describe('on Trash', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickTrashAndWait(); - await dataTable.clearSelection(); - 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(); - - expect(await contextMenu.isPermanentDeletePresent()).toBe(true, 'Permanently delete is not displayed'); - expect(await contextMenu.isRestorePresent()).toBe(true, 'Restore is not displayed'); - expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); - expect(await contextMenu.isDownloadPresent()).toBe(false, 'Download is displayed'); - expect(await contextMenu.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`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - - it('correct actions appear when multiple folders are selected - [C286274]', async () => { - await dataTable.selectMultipleItems([ folderInTrash1, folderInTrash2 ]); - await dataTable.rightClickOnMultipleSelection(); - - expect(await contextMenu.isPermanentDeletePresent()).toBe(true, 'Permanently delete is not displayed'); - expect(await contextMenu.isRestorePresent()).toBe(true, 'Restore is not displayed'); - expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); - expect(await contextMenu.isDownloadPresent()).toBe(false, 'Download is displayed'); - expect(await contextMenu.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`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - - it('correct actions appear when both files and folders are selected - [C286275]', async () => { - await dataTable.selectMultipleItems([ fileInTrash1, fileInTrash2, folderInTrash1, folderInTrash2 ]); - await dataTable.rightClickOnMultipleSelection(); - - expect(await contextMenu.isPermanentDeletePresent()).toBe(true, 'Permanently delete is not displayed'); - expect(await contextMenu.isRestorePresent()).toBe(true, 'Restore is not displayed'); - expect(await contextMenu.isViewPresent()).toBe(false, 'View is displayed'); - expect(await contextMenu.isDownloadPresent()).toBe(false, 'Download is displayed'); - expect(await contextMenu.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`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - }); - - describe('on Search Results', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickPersonalFilesAndWait(); - 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(); - await searchInput.searchFor('my-inSite-file'); - 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.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.isToggleFavoritePresent()).toBe(true, `Toggle favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - - it('correct actions appear when multiple locked files are selected - [C297632]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor('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.isToggleFavoritePresent()).toBe(true, `Toggle favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - - it('correct actions appear when multiple folders are selected - [C291832]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFolders(); - await searchInput.searchFor('my-inSite-folder'); - 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.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.isToggleFavoritePresent()).toBe(true, `Toggle favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - - it('correct actions appear when both files and folders are selected - [C291833]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkFilesAndFolders(); - await searchInput.searchFor('my-inSite-f'); - 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.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.isToggleFavoritePresent()).toBe(true, `Toggle favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - }); - }); -}); diff --git a/e2e/suites/actions-available/context-menu-single-selection.test.ts b/e2e/suites/actions-available/context-menu-single-selection.test.ts deleted file mode 100755 index 84a2091b7..000000000 --- a/e2e/suites/actions-available/context-menu-single-selection.test.ts +++ /dev/null @@ -1,697 +0,0 @@ -/*! - * @license - * Alfresco Example Content Application - * - * Copyright (C) 2005 - 2019 Alfresco Software Limited - * - * This file is part of the Alfresco Example Content Application. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is - * provided under the following open source license terms: - * - * The Alfresco Example Content Application is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * The Alfresco Example Content Application is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - */ - -import { LoginPage, BrowsingPage, SearchResultsPage } from '../../pages/pages'; -import { SITE_VISIBILITY } from '../../configs'; -import { RepoClient } from '../../utilities/repo-client/repo-client'; -import { Utils } from '../../utilities/utils'; - -describe('Context menu actions - single selection : ', () => { - const username = `user-${Utils.random()}`; - - const fileUser = `fileUser-${Utils.random()}.txt`; let fileUserId; - 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()}`; - const adminModerated = `admin-moderated-${Utils.random()}`; - - const apis = { - admin: new RepoClient(), - user: new RepoClient(username, username) - }; - - const loginPage = new LoginPage(); - const page = new BrowsingPage(); - const { dataTable } = page; - const contextMenu = dataTable.menu; - const searchResultsPage = new SearchResultsPage(); - const { searchInput } = searchResultsPage.header; - - beforeAll(async (done) => { - await apis.admin.people.createUser({ username }); - - 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; - await apis.user.nodes.deleteNodeById(fileInTrashId, false); - await apis.user.nodes.deleteNodeById(folderInTrashId, false); - - await apis.user.shared.shareFileById(fileUserId); - 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: 4 }); - - await apis.admin.sites.createSite(adminPublic); - await apis.admin.sites.createSite(adminModerated, SITE_VISIBILITY.MODERATED); - await apis.user.favorites.addFavoriteById('site', adminPublic); - await apis.user.favorites.addFavoriteById('site', adminModerated); - await apis.user.sites.requestToJoin(adminModerated); - - await apis.user.queries.waitForSites(siteName, { expect: 1 }); - await apis.user.queries.waitForSites(adminPublic, { expect: 1 }); - await apis.user.queries.waitForSites(adminModerated, { expect: 1 }); - - await loginPage.loginWith(username); - done(); - }); - - afterAll(async (done) => { - await apis.user.nodes.deleteNodeById(fileUserId); - await apis.user.nodes.deleteNodeById(folderUserId); - await apis.user.sites.deleteSite(siteName); - await apis.admin.sites.deleteSite(adminPublic); - await apis.admin.sites.deleteSite(adminModerated); - await apis.user.trashcan.emptyTrash(); - done(); - }); - - describe('Generic tests', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickPersonalFilesAndWait(); - 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); - - expect(await dataTable.hasCheckMarkIcon(fileUser)).toBe(true, 'check mark missing'); - }); - - it('Context menu appears on direct right click on an item - [C286253]', async () => { - await dataTable.rightClickOnItem(fileUser); - - expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - }); - - it('Context menu appears when selecting an item and then right clicking on it - [C286254]', async () => { - await dataTable.selectItem(fileUser); - await dataTable.rightClickOnItem(fileUser); - - expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - }); - - it('Context menu appears correctly when right clicking on another item - [C284666]', async () => { - await dataTable.selectItem(fileUser); - await dataTable.rightClickOnItem(folderUser); - - expect(await dataTable.hasContextMenu()).toBe(true, `Context menu is not displayed for ${folderUser}`); - expect(await contextMenu.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`); - }); - - it('Context menu closes when clicking away from it - [C280619]', async () => { - await dataTable.rightClickOnItem(fileUser); - - expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - - await page.sidenav.getActiveLink().click(); - - expect(await dataTable.hasContextMenu()).toBe(false, 'Context menu is displayed'); - }); - }); - - describe('on Personal Files', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickPersonalFilesAndWait(); - await dataTable.clearSelection(); - 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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileUser}`); - expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileUser}`); - expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`); - expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileUser}`); - expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${fileUser}`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileUser}`); - expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not 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 - [C297633]', 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.isRemoveFavoritePresent()).toBe(true, `Remove 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.isUploadNewVersionPresent()).toBe(true, `Upload new version 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.isEditFolderPresent()).toBe(true, `Edit folder is not displayed for ${folderUser}`); - expect(await contextMenu.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${folderUser}`); - expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folderUser}`); - expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${folderUser}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${folderUser}`); - expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${folderUser}`); - expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folderUser}`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${folderUser}`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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}`); - }); - }); - - describe('on File Libraries', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.goToMyLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - 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}`); - expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileSiteUser}`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version not displayed for ${fileSiteUser}`); - expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not 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 - [C297634]', 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.isUploadNewVersionPresent()).toBe(true, `Upload new version 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.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}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${folderSiteUser}`); - expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${folderSiteUser}`); - expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folderSiteUser}`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions displayed for ${folderSiteUser}`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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}`); - }); - }); - - describe('on a library', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - 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); - - expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - expect(await contextMenu.isLeaveLibraryPresent()).toBe(true, `Leave is not displayed for ${siteName}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${siteName}`); - expect(await contextMenu.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed for ${siteName}`); - }); - - it('Available actions for a library - Favorite Libraries - user is a member - [C290081]', async () => { - await page.goToFavoriteLibrariesAndWait(); - await dataTable.rightClickOnItem(siteName); - - expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - expect(await contextMenu.isLeaveLibraryPresent()).toBe(true, `Leave is not displayed for ${siteName}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${siteName}`); - expect(await contextMenu.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed for ${siteName}`); - }); - - it('Available actions for a library - Favorite Libraries - user is not a member - [C290082]', async () => { - await page.goToFavoriteLibrariesAndWait(); - await dataTable.rightClickOnItem(adminPublic); - - expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - expect(await contextMenu.isJoinLibraryPresent()).toBe(true, `Join is not displayed for ${adminPublic}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${adminPublic}`); - expect(await contextMenu.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed for ${adminPublic}`); - }); - - it('Available actions for a moderated library - Favorite Libraries - user requested to join - [C290089]', async () => { - await page.goToFavoriteLibrariesAndWait(); - await dataTable.rightClickOnItem(adminModerated); - - expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - expect(await contextMenu.isCancelJoinPresent()).toBe(true, `Cancel join is not displayed for ${adminModerated}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${adminModerated}`); - expect(await contextMenu.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed for ${adminModerated}`); - }); - - it('Available actions for a library - Search Results - user is a member - [C291812]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkLibraries(); - await searchInput.searchFor(siteName); - await dataTable.rightClickOnItem(siteName); - - expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - expect(await contextMenu.isLeaveLibraryPresent()).toBe(true, `Leave is not displayed for ${siteName}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${siteName}`); - expect(await contextMenu.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed for ${siteName}`); - }); - - it('Available actions for a library - Search Results - user is not a member - [C291813]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkLibraries(); - await searchInput.searchFor(adminPublic); - await dataTable.rightClickOnItem(adminPublic); - - expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - expect(await contextMenu.isJoinLibraryPresent()).toBe(true, `Join is not displayed for ${adminPublic}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${adminPublic}`); - expect(await contextMenu.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed for ${adminPublic}`); - }); - - it('Available actions for a moderated library - Search Results - user requested to join - [C291814]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkLibraries(); - await searchInput.searchFor(adminModerated); - await dataTable.rightClickOnItem(adminModerated); - - expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); - expect(await contextMenu.isCancelJoinPresent()).toBe(true, `Cancel join is not displayed for ${adminModerated}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${adminModerated}`); - expect(await contextMenu.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed for ${adminModerated}`); - }); - }); - - describe('on Shared Files', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickSharedFilesAndWait(); - 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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed for ${fileUser}`); - expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileUser}`); - expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`); - expect(await contextMenu.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed for ${fileUser}`); - expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileUser}`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version not displayed for ${fileUser}`); - expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not 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 - [C297635]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle 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.isUploadNewVersionPresent()).toBe(true, `Upload new version 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', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickRecentFilesAndWait(); - 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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed for ${fileUser}`); - expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileUser}`); - expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`); - expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileUser}`); - expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileUser}`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version not displayed for ${fileUser}`); - expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not 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 - [C297636]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle 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.isUploadNewVersionPresent()).toBe(true, `Upload new version 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', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickFavoritesAndWait(); - 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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed for ${fileUser}`); - expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileUser}`); - expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`); - expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileUser}`); - expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${fileUser}`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not 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 - [C297637]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle 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.isUploadNewVersionPresent()).toBe(true, `Upload new version 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.isEditFolderPresent()).toBe(true, `Edit folder is not displayed for ${folderUser}`); - expect(await contextMenu.isToggleRemoveFavoritePresent()).toBe(true, `Toggle favorite is not displayed for ${folderUser}`); - expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${folderUser}`); - expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed for ${folderUser}`); - expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${folderUser}`); - expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folderUser}`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${folderUser}`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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}`); - }); - }); - - describe('on Trash', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickTrashAndWait(); - 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.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}`); - expect(await contextMenu.isFavoritePresent()).toBe(false, `Favorite is displayed for ${fileInTrash}`); - expect(await contextMenu.isCopyPresent()).toBe(false, `Copy is displayed for ${fileInTrash}`); - 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.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.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}`); - expect(await contextMenu.isFavoritePresent()).toBe(false, `Favorite is displayed for ${folderInTrash}`); - expect(await contextMenu.isCopyPresent()).toBe(false, `Copy is displayed for ${folderInTrash}`); - 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.isUploadNewVersionPresent()).toBe(false, `Upload new version 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}`); - }); - }); - - describe('on Search Results', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickPersonalFilesAndWait(); - 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.searchFor(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.isToggleFavoritePresent()).toBe(true, `Toggle favorite is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed for ${fileSiteUser}`); - expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${fileSiteUser}`); - expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileSiteUser}`); - expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileSiteUser}`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version not displayed for ${fileSiteUser}`); - expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not 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 - [C297638]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor(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.isToggleRemoveFavoritePresent()).toBe(true, `Toggle 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.isUploadNewVersionPresent()).toBe(true, `Upload new version 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(); - await searchInput.searchFor(folderSiteUser); - await dataTable.rightClickOnItem(folderSiteUser); - - expect(await contextMenu.isDownloadPresent()).toBe(true, `Download is not displayed for ${folderSiteUser}`); - expect(await contextMenu.isEditFolderPresent()).toBe(true, `Edit folder is not displayed for ${folderSiteUser}`); - expect(await contextMenu.isToggleFavoritePresent()).toBe(true, `Toggle 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}`); - expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${folderSiteUser}`); - expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${folderSiteUser}`); - expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folderSiteUser}`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions displayed for ${folderSiteUser}`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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-available/files-folders/favorites.test.ts b/e2e/suites/actions-available/files-folders/favorites.test.ts new file mode 100755 index 000000000..2351ed679 --- /dev/null +++ b/e2e/suites/actions-available/files-folders/favorites.test.ts @@ -0,0 +1,182 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage } from '../../../pages/pages'; +import { FILES } from '../../../configs'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import * as data from './test-data-files-folders'; +import * as testUtil from '../test-util'; + +describe('File/folder actions : on Favorites : ', () => { + + const random = Utils.random(); + + const username = `user-${random}`; + + const parent = `parent-${random}`; let parentId; + + let fileDocxFavId, fileFavId, fileDocxSharedFavId, fileSharedFavId, fileFavLockedId, fileSharedFavLockedId; + let folderFavId, folderFav2Id; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username }); + + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; + + fileDocxFavId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxFav.name)).entry.id; + fileFavId = (await apis.user.nodes.createFile(data.fileFav.name, parentId)).entry.id; + fileDocxSharedFavId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxSharedFav.name)).entry.id; + fileSharedFavId = (await apis.user.nodes.createFile(data.fileSharedFav.name, parentId)).entry.id; + fileFavLockedId = (await apis.user.nodes.createFile(data.fileFavLocked.name, parentId)).entry.id; + fileSharedFavLockedId = (await apis.user.nodes.createFile(data.fileSharedFavLocked.name, parentId)).entry.id; + + folderFavId = (await apis.user.nodes.createFolder(data.folderFav.name, parentId)).entry.id; + folderFav2Id = (await apis.user.nodes.createFolder(data.folderFav2.name, parentId)).entry.id; + await apis.user.favorites.addFavoriteById('folder', folderFavId); + await apis.user.favorites.addFavoriteById('folder', folderFav2Id); + + await apis.user.shared.shareFilesByIds([ + fileDocxSharedFavId, + fileSharedFavId, + fileSharedFavLockedId + ]); + + await apis.user.favorites.addFavoritesByIds('file', [ + fileDocxFavId, + fileFavId, + fileDocxSharedFavId, + fileSharedFavId, + fileFavLockedId, + fileSharedFavLockedId + ]); + + await apis.user.nodes.lockFile(fileFavLockedId); + await apis.user.nodes.lockFile(fileSharedFavLockedId); + + await apis.user.favorites.waitForApi({ expect: 8 }); + await apis.user.shared.waitForApi({ expect: 3 }); + + await loginPage.loginWith(username); + done(); + }); + + afterAll(async (done) => { + await apis.user.nodes.deleteNodeById(parentId); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickFavoritesAndWait(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + describe('on a file', () => { + + it('File Office, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxFav.name, data.fileDocxFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.favoritesToolbarMore); + await testUtil.checkContextMenu(data.fileDocxFav.name, data.fileDocxFav.favoritesContextMenu); + }); + + it('File favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFav.name, data.fileFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFav.name, data.fileFav.favoritesToolbarMore); + await testUtil.checkContextMenu(data.fileFav.name, data.fileFav.favoritesContextMenu); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxSharedFav.name, data.fileDocxSharedFav.favoritesToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.favoritesToolbarMore); + await testUtil.checkContextMenu(data.fileDocxSharedFav.name, data.fileDocxSharedFav.favoritesContextMenu); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFav.name, data.fileSharedFav.favoritesToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.favoritesToolbarMore); + await testUtil.checkContextMenu(data.fileSharedFav.name, data.fileSharedFav.favoritesContextMenu); + }); + + it('File favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFavLocked.name, data.fileFavLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.favoritesToolbarMore); + await testUtil.checkContextMenu(data.fileFavLocked.name, data.fileFavLocked.favoritesContextMenu); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFavLocked.name, data.fileSharedFavLocked.favoritesToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.favoritesToolbarMore); + await testUtil.checkContextMenu(data.fileSharedFavLocked.name, data.fileSharedFavLocked.favoritesContextMenu); + }); + }); + + describe('on a folder', () => { + it('Folder favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.folderFav.name, data.folderFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.folderFav.name, data.folderFav.favoritesToolbarMore); + await testUtil.checkContextMenu(data.folderFav.name, data.folderFav.favoritesContextMenu); + }); + }); + + describe('on multiple selection', () => { + it('multiple files - [C280656]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileDocxFav.name, data.fileDocxSharedFav.name ], data.multipleSelAllFav.favoritesContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileDocxFav.name, data.fileDocxSharedFav.name ], data.multipleSelAllFav.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileDocxFav.name, data.fileDocxSharedFav.name ], data.multipleSelAllFav.favoritesToolbarMore); + }); + + it('multiple locked files - [C297631]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileFavLocked.name, data.fileSharedFavLocked.name ], data.multipleSelAllFav.favoritesContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileFavLocked.name, data.fileSharedFavLocked.name ], data.multipleSelAllFav.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileFavLocked.name, data.fileSharedFavLocked.name ], data.multipleSelAllFav.favoritesToolbarMore); + }); + + it('multiple folders - [C280664]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.folderFav.name, data.folderFav2.name ], data.multipleSelAllFav.favoritesContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.folderFav.name, data.folderFav2.name ], data.multipleSelAllFav.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.folderFav.name, data.folderFav2.name ], data.multipleSelAllFav.favoritesToolbarMore); + }); + + it('both files and folders - [C280657]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileFav.name, data.folderFav.name ], data.multipleSelAllFav.favoritesContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileFav.name, data.folderFav.name ], data.multipleSelAllFav.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileFav.name, data.folderFav.name ], data.multipleSelAllFav.favoritesToolbarMore); + }); + }); +}); diff --git a/e2e/suites/actions-available/files-folders/personal.test.ts b/e2e/suites/actions-available/files-folders/personal.test.ts new file mode 100755 index 000000000..27eb29841 --- /dev/null +++ b/e2e/suites/actions-available/files-folders/personal.test.ts @@ -0,0 +1,244 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage } from '../../../pages/pages'; +import { FILES } from '../../../configs'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import * as data from './test-data-files-folders'; +import * as testUtil from '../test-util'; + +describe('File/folder actions : on Personal Files: ', () => { + + const random = Utils.random(); + + const username = `user-${random}`; + + const parent = `parent-${random}`; let parentId; + + let fileDocxFavId, fileFavId, fileDocxSharedId, fileDocxSharedFavId, fileSharedId, fileSharedFavId, fileLockedId, fileFavLockedId, fileSharedLockedId, fileSharedFavLockedId; + let folderFavId; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + const { dataTable } = page; + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username }); + + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; + + await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocx.name ); + fileDocxFavId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxFav.name)).entry.id; + await apis.user.nodes.createFile(data.file.name, parentId); + fileFavId = (await apis.user.nodes.createFile(data.fileFav.name, parentId)).entry.id; + fileDocxSharedId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxShared.name)).entry.id; + fileDocxSharedFavId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxSharedFav.name)).entry.id; + fileSharedId = (await apis.user.nodes.createFile(data.fileShared.name, parentId)).entry.id; + fileSharedFavId = (await apis.user.nodes.createFile(data.fileSharedFav.name, parentId)).entry.id; + fileLockedId = (await apis.user.nodes.createFile(data.fileLocked.name, parentId)).entry.id; + fileFavLockedId = (await apis.user.nodes.createFile(data.fileFavLocked.name, parentId)).entry.id; + fileSharedLockedId = (await apis.user.nodes.createFile(data.fileSharedLocked.name, parentId)).entry.id; + fileSharedFavLockedId = (await apis.user.nodes.createFile(data.fileSharedFavLocked.name, parentId)).entry.id; + + await apis.user.nodes.createFolder(data.folder.name, parentId); + folderFavId = (await apis.user.nodes.createFolder(data.folderFav.name, parentId)).entry.id; + await apis.user.favorites.addFavoriteById('folder', folderFavId); + + await apis.user.favorites.addFavoritesByIds('file', [ + fileDocxFavId, + fileFavId, + fileDocxSharedFavId, + fileSharedFavId, + fileFavLockedId, + fileSharedFavLockedId + ]); + + await apis.user.shared.shareFilesByIds([ + fileDocxSharedId, + fileDocxSharedFavId, + fileSharedId, + fileSharedFavId, + fileSharedLockedId, + fileSharedFavLockedId + ]); + + await apis.user.nodes.lockFile(fileLockedId); + await apis.user.nodes.lockFile(fileFavLockedId); + await apis.user.nodes.lockFile(fileSharedLockedId); + await apis.user.nodes.lockFile(fileSharedFavLockedId); + + await apis.user.favorites.waitForApi({ expect: 7 }); + await apis.user.shared.waitForApi({ expect: 6 }); + + await loginPage.loginWith(username); + done(); + }); + + afterAll(async (done) => { + await apis.user.nodes.deleteNodeById(parentId); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickPersonalFilesAndWait(); + await dataTable.doubleClickOnRowByName(parent); + await dataTable.waitForHeader(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + describe('on a file', () => { + + it('File Office - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocx.name, data.fileDocx.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocx.name, data.fileDocx.toolbarMore); + await testUtil.checkContextMenu(data.fileDocx.name, data.fileDocx.contextMenu); + }); + + it('File Office, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxFav.name, data.fileDocxFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.toolbarMore); + await testUtil.checkContextMenu(data.fileDocxFav.name, data.fileDocxFav.contextMenu); + }); + + it('File simple - []', async () => { + await testUtil.checkToolbarPrimary(data.file.name, data.file.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.file.name, data.file.toolbarMore); + await testUtil.checkContextMenu(data.file.name, data.file.contextMenu); + }); + + it('File favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFav.name, data.fileFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFav.name, data.fileFav.toolbarMore); + await testUtil.checkContextMenu(data.fileFav.name, data.fileFav.contextMenu); + }); + + it('File Office, shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxShared.name, data.fileDocxShared.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.toolbarMore); + await testUtil.checkContextMenu(data.fileDocxShared.name, data.fileDocxShared.contextMenu); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxSharedFav.name, data.fileDocxSharedFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.toolbarMore); + await testUtil.checkContextMenu(data.fileDocxSharedFav.name, data.fileDocxSharedFav.contextMenu); + }); + + it('File shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileShared.name, data.fileShared.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileShared.name, data.fileShared.toolbarMore); + await testUtil.checkContextMenu(data.fileShared.name, data.fileShared.contextMenu); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFav.name, data.fileSharedFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.toolbarMore); + await testUtil.checkContextMenu(data.fileSharedFav.name, data.fileSharedFav.contextMenu); + }); + + it('File locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileLocked.name, data.fileLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileLocked.name, data.fileLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileLocked.name, data.fileLocked.contextMenu); + }); + + it('File favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFavLocked.name, data.fileFavLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileFavLocked.name, data.fileFavLocked.contextMenu); + }); + + it('File shared, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedLocked.name, data.fileSharedLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileSharedLocked.name, data.fileSharedLocked.contextMenu); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFavLocked.name, data.fileSharedFavLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileSharedFavLocked.name, data.fileSharedFavLocked.contextMenu); + }); + }); + + describe('on a folder', () => { + + it('Folder not favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.folder.name, data.folder.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.folder.name, data.folder.toolbarMore); + await testUtil.checkContextMenu(data.folder.name, data.folder.contextMenu); + }); + + it('Folder favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.folderFav.name, data.folderFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.folderFav.name, data.folderFav.toolbarMore); + await testUtil.checkContextMenu(data.folderFav.name, data.folderFav.contextMenu); + }); + }); + + describe('on multiple selection', () => { + it('multiple files - [C217112]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileDocx.name, data.fileDocxSharedFav.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileDocx.name, data.fileDocxSharedFav.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileDocx.name, data.fileDocxSharedFav.name ], data.multipleSel.toolbarMore); + }); + + it('multiple files - all favorite - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileDocxFav.name, data.fileDocxSharedFav.name ], data.multipleSelAllFav.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileDocxFav.name, data.fileDocxSharedFav.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileDocxFav.name, data.fileDocxSharedFav.name ], data.multipleSelAllFav.toolbarMore); + }); + + it('multiple locked files - [C297619]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.toolbarMore); + }); + + it('multiple folders - [C280459]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.folderFav.name, data.folder.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.folderFav.name, data.folder.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.folderFav.name, data.folder.name ], data.multipleSel.toolbarMore); + }); + + it('both files and folders - [C280460]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.file.name, data.folder.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.file.name, data.folder.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.file.name, data.folder.name ], data.multipleSel.toolbarMore); + }); + }); +}); diff --git a/e2e/suites/actions-available/files-folders/recent.test.ts b/e2e/suites/actions-available/files-folders/recent.test.ts new file mode 100755 index 000000000..e6e13bbb5 --- /dev/null +++ b/e2e/suites/actions-available/files-folders/recent.test.ts @@ -0,0 +1,212 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage } from '../../../pages/pages'; +import { FILES } from '../../../configs'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import * as data from './test-data-files-folders'; +import * as testUtil from '../test-util'; + +describe('File actions : on Recent Files: ', () => { + + const random = Utils.random(); + + const username = `user-${random}`; + + const parent = `parent-${random}`; let parentId; + + let fileDocxFavId, fileFavId, fileDocxSharedId, fileDocxSharedFavId, fileSharedId, fileSharedFavId, fileLockedId, fileFavLockedId, fileSharedLockedId, fileSharedFavLockedId; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + const { dataTable } = page; + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username }); + + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; + + await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocx.name); + fileDocxFavId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxFav.name)).entry.id; + await apis.user.nodes.createFile(data.file.name, parentId); + fileFavId = (await apis.user.nodes.createFile(data.fileFav.name, parentId)).entry.id; + fileDocxSharedId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxShared.name)).entry.id; + fileDocxSharedFavId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxSharedFav.name)).entry.id; + fileSharedId = (await apis.user.nodes.createFile(data.fileShared.name, parentId)).entry.id; + fileSharedFavId = (await apis.user.nodes.createFile(data.fileSharedFav.name, parentId)).entry.id; + fileLockedId = (await apis.user.nodes.createFile(data.fileLocked.name, parentId)).entry.id; + fileFavLockedId = (await apis.user.nodes.createFile(data.fileFavLocked.name, parentId)).entry.id; + fileSharedLockedId = (await apis.user.nodes.createFile(data.fileSharedLocked.name, parentId)).entry.id; + fileSharedFavLockedId = (await apis.user.nodes.createFile(data.fileSharedFavLocked.name, parentId)).entry.id; + + await apis.user.favorites.addFavoritesByIds('file', [ + fileDocxFavId, + fileFavId, + fileDocxSharedFavId, + fileSharedFavId, + fileFavLockedId, + fileSharedFavLockedId + ]); + + await apis.user.shared.shareFilesByIds([ + fileDocxSharedId, + fileDocxSharedFavId, + fileSharedId, + fileSharedFavId, + fileSharedLockedId, + fileSharedFavLockedId + ]); + + await apis.user.nodes.lockFile(fileLockedId); + await apis.user.nodes.lockFile(fileFavLockedId); + await apis.user.nodes.lockFile(fileSharedLockedId); + await apis.user.nodes.lockFile(fileSharedFavLockedId); + + await apis.user.favorites.waitForApi({ expect: 6 }); + await apis.user.shared.waitForApi({ expect: 6 }); + await apis.user.search.waitForApi(username, { expect: 12 }); + + await loginPage.loginWith(username); + done(); + }); + + afterAll(async (done) => { + await apis.user.nodes.deleteNodeById(parentId); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickRecentFilesAndWait(); + await dataTable.waitForHeader(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + describe('on single selection', () => { + it('File Office - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocx.name, data.fileDocx.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocx.name, data.fileDocx.toolbarMore); + await testUtil.checkContextMenu(data.fileDocx.name, data.fileDocx.contextMenu); + }); + + it('File Office, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxFav.name, data.fileDocxFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.toolbarMore); + await testUtil.checkContextMenu(data.fileDocxFav.name, data.fileDocxFav.contextMenu); + }); + + it('File simple - []', async () => { + await testUtil.checkToolbarPrimary(data.file.name, data.file.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.file.name, data.file.toolbarMore); + await testUtil.checkContextMenu(data.file.name, data.file.contextMenu); + }); + + it('File favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFav.name, data.fileFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFav.name, data.fileFav.toolbarMore); + await testUtil.checkContextMenu(data.fileFav.name, data.fileFav.contextMenu); + }); + + it('File Office, shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxShared.name, data.fileDocxShared.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.toolbarMore); + await testUtil.checkContextMenu(data.fileDocxShared.name, data.fileDocxShared.contextMenu); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxSharedFav.name, data.fileDocxSharedFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.toolbarMore); + await testUtil.checkContextMenu(data.fileDocxSharedFav.name, data.fileDocxSharedFav.contextMenu); + }); + + it('File shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileShared.name, data.fileShared.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileShared.name, data.fileShared.toolbarMore); + await testUtil.checkContextMenu(data.fileShared.name, data.fileShared.contextMenu); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFav.name, data.fileSharedFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.toolbarMore); + await testUtil.checkContextMenu(data.fileSharedFav.name, data.fileSharedFav.contextMenu); + }); + + it('File locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileLocked.name, data.fileLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileLocked.name, data.fileLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileLocked.name, data.fileLocked.contextMenu); + }); + + it('File favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFavLocked.name, data.fileFavLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileFavLocked.name, data.fileFavLocked.contextMenu); + }); + + it('File shared, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedLocked.name, data.fileSharedLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileSharedLocked.name, data.fileSharedLocked.contextMenu); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFavLocked.name, data.fileSharedFavLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileSharedFavLocked.name, data.fileSharedFavLocked.contextMenu); + }); + }); + + describe('on multiple selection', () => { + it('multiple files - [C280468]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileDocxFav.name, data.fileLocked.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileDocxFav.name, data.fileLocked.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileDocxFav.name, data.fileLocked.name ], data.multipleSel.toolbarMore); + }); + + it('multiple files - all favorite - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileDocxFav.name, data.fileFav.name ], data.multipleSelAllFav.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileDocxFav.name, data.fileFav.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileDocxFav.name, data.fileFav.name ], data.multipleSelAllFav.toolbarMore); + }); + + it('multiple locked files - [C297624]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.toolbarMore); + }); + }); + +}); diff --git a/e2e/suites/actions-available/files-folders/search.test.ts b/e2e/suites/actions-available/files-folders/search.test.ts new file mode 100755 index 000000000..44ca36573 --- /dev/null +++ b/e2e/suites/actions-available/files-folders/search.test.ts @@ -0,0 +1,291 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage } from '../../../pages/pages'; +import { FILES } from '../../../configs'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import * as data from './test-data-files-folders'; +import * as testUtil from '../test-util'; + +describe('File/folder actions : on Search Results : ', () => { + + const random = Utils.random(); + + const username = `user-${random}`; + + const parent = `parent-${random}`; let parentId; + + let fileDocxFavId, fileFavId, fileDocxSharedId, fileDocxSharedFavId, fileSharedId, fileSharedFavId, fileLockedId, fileFavLockedId, fileSharedLockedId, fileSharedFavLockedId; + let folderFavId; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + const { searchInput } = page.header; + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username }); + + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; + + await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocx.name ); + fileDocxFavId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxFav.name)).entry.id; + await apis.user.nodes.createFile(data.file.name, parentId); + fileFavId = (await apis.user.nodes.createFile(data.fileFav.name, parentId)).entry.id; + fileDocxSharedId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxShared.name)).entry.id; + fileDocxSharedFavId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxSharedFav.name)).entry.id; + fileSharedId = (await apis.user.nodes.createFile(data.fileShared.name, parentId)).entry.id; + fileSharedFavId = (await apis.user.nodes.createFile(data.fileSharedFav.name, parentId)).entry.id; + fileLockedId = (await apis.user.nodes.createFile(data.fileLocked.name, parentId)).entry.id; + fileFavLockedId = (await apis.user.nodes.createFile(data.fileFavLocked.name, parentId)).entry.id; + fileSharedLockedId = (await apis.user.nodes.createFile(data.fileSharedLocked.name, parentId)).entry.id; + fileSharedFavLockedId = (await apis.user.nodes.createFile(data.fileSharedFavLocked.name, parentId)).entry.id; + + await apis.user.nodes.createFolder(data.folder.name, parentId); + folderFavId = (await apis.user.nodes.createFolder(data.folderFav.name, parentId)).entry.id; + await apis.user.favorites.addFavoriteById('folder', folderFavId); + + await apis.user.favorites.addFavoritesByIds('file', [ + fileDocxFavId, + fileFavId, + fileDocxSharedFavId, + fileSharedFavId, + fileFavLockedId, + fileSharedFavLockedId + ]); + + await apis.user.shared.shareFilesByIds([ + fileDocxSharedId, + fileDocxSharedFavId, + fileSharedId, + fileSharedFavId, + fileSharedLockedId, + fileSharedFavLockedId + ]); + + await apis.user.nodes.lockFile(fileLockedId); + await apis.user.nodes.lockFile(fileFavLockedId); + await apis.user.nodes.lockFile(fileSharedLockedId); + await apis.user.nodes.lockFile(fileSharedFavLockedId); + + await apis.user.favorites.waitForApi({ expect: 7 }); + await apis.user.shared.waitForApi({ expect: 6 }); + await apis.user.search.waitForApi(username, { expect: 12 }); + + await loginPage.loginWith(username); + done(); + }); + + afterAll(async (done) => { + await apis.user.nodes.deleteNodeById(parentId); + done(); + }); + + describe('on a file', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickPersonalFiles(); + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor('file-'); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('File Office - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocx.name, data.fileDocx.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocx.name, data.fileDocx.searchToolbarMore); + await testUtil.checkContextMenu(data.fileDocx.name, data.fileDocx.searchContextMenu); + }); + + it('File Office, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxFav.name, data.fileDocxFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.searchToolbarMore); + await testUtil.checkContextMenu(data.fileDocxFav.name, data.fileDocxFav.searchContextMenu); + }); + + it('File simple - []', async () => { + await testUtil.checkToolbarPrimary(data.file.name, data.file.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.file.name, data.file.searchToolbarMore); + await testUtil.checkContextMenu(data.file.name, data.file.searchContextMenu); + }); + + it('File favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFav.name, data.fileFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFav.name, data.fileFav.searchToolbarMore); + await testUtil.checkContextMenu(data.fileFav.name, data.fileFav.searchContextMenu); + }); + + it('File Office, shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxShared.name, data.fileDocxShared.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.searchToolbarMore); + await testUtil.checkContextMenu(data.fileDocxShared.name, data.fileDocxShared.searchContextMenu); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxSharedFav.name, data.fileDocxSharedFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.searchToolbarMore); + await testUtil.checkContextMenu(data.fileDocxSharedFav.name, data.fileDocxSharedFav.searchContextMenu); + }); + + it('File shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileShared.name, data.fileShared.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileShared.name, data.fileShared.searchToolbarMore); + await testUtil.checkContextMenu(data.fileShared.name, data.fileShared.searchContextMenu); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFav.name, data.fileSharedFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.searchToolbarMore); + await testUtil.checkContextMenu(data.fileSharedFav.name, data.fileSharedFav.searchContextMenu); + }); + + it('File locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileLocked.name, data.fileLocked.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileLocked.name, data.fileLocked.searchToolbarMore); + await testUtil.checkContextMenu(data.fileLocked.name, data.fileLocked.searchContextMenu); + }); + + it('File favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFavLocked.name, data.fileFavLocked.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.searchToolbarMore); + await testUtil.checkContextMenu(data.fileFavLocked.name, data.fileFavLocked.searchContextMenu); + }); + + it('File shared, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedLocked.name, data.fileSharedLocked.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.searchToolbarMore); + await testUtil.checkContextMenu(data.fileSharedLocked.name, data.fileSharedLocked.searchContextMenu); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFavLocked.name, data.fileSharedFavLocked.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.searchToolbarMore); + await testUtil.checkContextMenu(data.fileSharedFavLocked.name, data.fileSharedFavLocked.searchContextMenu); + }); + }); + + describe('on a folder', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickPersonalFiles(); + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFolders(); + await searchInput.searchFor('folder-'); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('Folder not favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.folder.name, data.folder.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.folder.name, data.folder.searchToolbarMore); + await testUtil.checkContextMenu(data.folder.name, data.folder.searchContextMenu); + }); + + it('Folder favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.folderFav.name, data.folderFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.folderFav.name, data.folderFav.searchToolbarMore); + await testUtil.checkContextMenu(data.folderFav.name, data.folderFav.searchContextMenu); + }); + }); + + describe('on multiple selection', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickPersonalFiles(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('multiple files - [C291820]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor('file-'); + + await testUtil.checkMultipleSelContextMenu([ data.file.name, data.fileDocxShared.name ], data.multipleSel.searchContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.file.name, data.fileDocxShared.name ], data.multipleSel.searchToolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.file.name, data.fileDocxShared.name ], data.multipleSel.searchToolbarMore); + }); + + it('multiple files - all favorite - []', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor('file-'); + + await testUtil.checkMultipleSelContextMenu([ data.fileDocxFav.name, data.fileSharedFav.name ], data.multipleSelAllFav.searchContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileDocxFav.name, data.fileSharedFav.name ], data.multipleSelAllFav.searchToolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileDocxFav.name, data.fileSharedFav.name ], data.multipleSelAllFav.searchToolbarMore); + }); + + it('multiple locked files - [C297626]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor('file-'); + + await testUtil.checkMultipleSelContextMenu([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.searchContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.searchToolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.searchToolbarMore); + }); + + it('multiple folders - [C291821]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFolders(); + await searchInput.searchFor('folder-'); + + await testUtil.checkMultipleSelContextMenu([ data.folder.name, data.folderFav.name ], data.multipleSel.searchContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.folder.name, data.folderFav.name ], data.multipleSel.searchToolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.folder.name, data.folderFav.name ], data.multipleSel.searchToolbarMore); + }); + + it('both files and folders - [C291822]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkFilesAndFolders(); + await searchInput.searchFor(`=${data.file.name} or =${data.folderFav.name}`); + + await testUtil.checkMultipleSelContextMenu([ data.file.name, data.folderFav.name ], data.multipleSel.searchContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.file.name, data.folderFav.name ], data.multipleSel.searchToolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.file.name, data.folderFav.name ], data.multipleSel.searchToolbarMore); + }); + }); +}); diff --git a/e2e/suites/actions-available/files-folders/shared.test.ts b/e2e/suites/actions-available/files-folders/shared.test.ts new file mode 100755 index 000000000..105e365f4 --- /dev/null +++ b/e2e/suites/actions-available/files-folders/shared.test.ts @@ -0,0 +1,162 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage } from '../../../pages/pages'; +import { FILES } from '../../../configs'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import * as data from './test-data-files-folders'; +import * as testUtil from '../test-util'; + +describe('File actions : on Shared Files : ', () => { + + const random = Utils.random(); + + const username = `user-${random}`; + + const parent = `parent-${random}`; let parentId; + + let fileDocxSharedId, fileDocxSharedFavId, fileSharedId, fileSharedFavId, fileSharedLockedId, fileSharedFavLockedId; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username }); + + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; + + fileDocxSharedId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxShared.name)).entry.id; + fileDocxSharedFavId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxSharedFav.name)).entry.id; + fileSharedId = (await apis.user.nodes.createFile(data.fileShared.name, parentId)).entry.id; + fileSharedFavId = (await apis.user.nodes.createFile(data.fileSharedFav.name, parentId)).entry.id; + fileSharedLockedId = (await apis.user.nodes.createFile(data.fileSharedLocked.name, parentId)).entry.id; + fileSharedFavLockedId = (await apis.user.nodes.createFile(data.fileSharedFavLocked.name, parentId)).entry.id; + + await apis.user.favorites.addFavoritesByIds('file', [ + fileDocxSharedFavId, + fileSharedFavId, + fileSharedFavLockedId + ]); + + await apis.user.shared.shareFilesByIds([ + fileDocxSharedId, + fileDocxSharedFavId, + fileSharedId, + fileSharedFavId, + fileSharedLockedId, + fileSharedFavLockedId + ]); + + await apis.user.nodes.lockFile(fileSharedLockedId); + await apis.user.nodes.lockFile(fileSharedFavLockedId); + + await apis.user.favorites.waitForApi({ expect: 3 }); + await apis.user.shared.waitForApi({ expect: 6 }); + + await loginPage.loginWith(username); + done(); + }); + + afterAll(async (done) => { + await apis.user.nodes.deleteNodeById(parentId); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickSharedFilesAndWait(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + describe('single selection', () => { + it('File Office, shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxShared.name, data.fileDocxShared.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.sharedToolbarMore); + await testUtil.checkContextMenu(data.fileDocxShared.name, data.fileDocxShared.sharedContextMenu); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxSharedFav.name, data.fileDocxSharedFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.sharedToolbarMore); + await testUtil.checkContextMenu(data.fileDocxSharedFav.name, data.fileDocxSharedFav.sharedContextMenu); + }); + + it('File shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileShared.name, data.fileShared.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileShared.name, data.fileShared.sharedToolbarMore); + await testUtil.checkContextMenu(data.fileShared.name, data.fileShared.sharedContextMenu); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFav.name, data.fileSharedFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.sharedToolbarMore); + await testUtil.checkContextMenu(data.fileSharedFav.name, data.fileSharedFav.sharedContextMenu); + }); + + it('File shared, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedLocked.name, data.fileSharedLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.sharedToolbarMore); + await testUtil.checkContextMenu(data.fileSharedLocked.name, data.fileSharedLocked.sharedContextMenu); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFavLocked.name, data.fileSharedFavLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.sharedToolbarMore); + await testUtil.checkContextMenu(data.fileSharedFavLocked.name, data.fileSharedFavLocked.sharedContextMenu); + }); + }); + + describe('multiple selection', () => { + it('multiple files - [C280467]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileShared.name, data.fileSharedFav.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileShared.name, data.fileSharedFav.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileShared.name, data.fileSharedFav.name ], data.multipleSel.toolbarMore); + }); + + it('multiple files - all favorite - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileSharedFav.name, data.fileSharedFavLocked.name ], data.multipleSelAllFav.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileSharedFav.name, data.fileSharedFavLocked.name ], data.multipleSelAllFav.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileSharedFav.name, data.fileSharedFavLocked.name ], data.multipleSelAllFav.toolbarMore); + }); + + it('multiple locked files - [C297623]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileSharedLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileSharedLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileSharedLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.toolbarMore); + }); + }); + +}); diff --git a/e2e/suites/actions-available/files-folders/test-data-files-folders.ts b/e2e/suites/actions-available/files-folders/test-data-files-folders.ts new file mode 100644 index 000000000..ea17c4986 --- /dev/null +++ b/e2e/suites/actions-available/files-folders/test-data-files-folders.ts @@ -0,0 +1,472 @@ +import { Utils } from '../../../utilities/utils'; + +export const trashActions = ['Permanently Delete', 'Restore']; + +// ----- files ----- + +const fileContextMenu = ['Share', 'Download', 'View', 'Edit Offline', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileSharedFavLockedContextMenu = ['Shared Link Settings', 'Download', 'View', 'Cancel Editing', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileToolbarPrimary = ['Share', 'Download', 'View', 'View Details', 'More Actions']; +const fileToolbarMore = ['Edit Offline', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileDocxToolbarMore = ['Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileDocxContextMenu = ['Share', 'Download', 'View', 'Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileSharedToolbarPrimary = ['Shared Link Settings', 'Download', 'View', 'View Details', 'More Actions']; +const fileFavLockedToolbarMore = ['Cancel Editing', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileDocxFavContextMenu = ['Share', 'Download', 'View', 'Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileDocxFavToolbarMore = ['Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileDocxSharedFavContextMenu = ['Shared Link Settings', 'Download', 'View', 'Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileDocxSharedContextMenu = ['Shared Link Settings', 'Download', 'View', 'Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileFavContextMenu = ['Share', 'Download', 'View', 'Edit Offline', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileFavToolbarMore = ['Edit Offline', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileSharedFavContextMenu = ['Shared Link Settings', 'Download', 'View', 'Edit Offline', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileSharedContextMenu = ['Shared Link Settings', 'Download', 'View', 'Edit Offline', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileFavLockedContextMenu = ['Share', 'Download', 'View', 'Cancel Editing', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileLockedContextMenu = ['Share', 'Download', 'View', 'Cancel Editing', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileLockedToolbarMore = ['Cancel Editing', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const fileSharedLockedContextMenu = ['Shared Link Settings', 'Download', 'View', 'Cancel Editing', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; + +// ---- VIEWER ---- + +const viewerSharedToolbarPrimary = ['Activate full-screen mode', 'Shared Link Settings', 'Download', 'Print', 'View Details', 'More Actions']; +const viewerToolbarPrimary = ['Activate full-screen mode', 'Share', 'Download', 'Print', 'View Details', 'More Actions']; +const viewerToolbarMore = ['Edit Offline', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const viewerFavToolbarMore = ['Edit Offline', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const viewerDocxToolbarMore = ['Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const viewerFavLockedToolbarMore = ['Cancel Editing', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const viewerDocxFavToolbarMore = ['Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +const viewerLockedToolbarMore = ['Cancel Editing', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; + + +// ---- FAVORITES workarounds ---- + +// TODO: add Edit Offline when ACA-2174 is fixed +// TODO: change 'Share' into 'Shared Link Settings' when ACA-2175 is done +// TODO: investigate why 'Edit in Microsoft Officeâ„¢' and 'Permissions' are not displayed and raise issue + +// TODO: change 'Share' into 'Shared Link Settings' when ACA-2175 is done +const favoritesSharedToolbarPrimary = ['Share', 'Download', 'View', 'View Details', 'More Actions']; +// TODO: add Edit Offline when ACA-2174 is fixed +// TODO: investigate why 'Edit in Microsoft Officeâ„¢' and 'Permissions' are not displayed and raise issue +const favoritesContextMenu = ['Share', 'Download', 'View', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions']; +// TODO: add Edit Offline when ACA-2174 is fixed +// TODO: investigate why 'Edit in Microsoft Officeâ„¢' and 'Permissions' are not displayed and raise issue +const favoritesToolbarMore = ['Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions']; +// TODO: add Edit Offline when ACA-2174 is fixed +// TODO: investigate why 'Edit in Microsoft Officeâ„¢' and 'Permissions' are not displayed and raise issue +// TODO: change 'Share' into 'Shared Link Settings' when ACA-2175 is done +const favoritesSharedContextMenu = ['Share', 'Download', 'View', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions']; + +// ---- SEARCH workarounds ---- + +const searchDocxContextMenu = ['Share', 'Download', 'View', 'Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchToolbarPrimary = ['Toggle search filter', 'Share', 'Download', 'View', 'View Details', 'More Actions']; +const searchSharedToolbarPrimary = ['Toggle search filter', 'Shared Link Settings', 'Download', 'View', 'View Details', 'More Actions']; +const searchFavLockedToolbarMore = ['Cancel Editing', 'Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchSharedFavLockedContextMenu = ['Shared Link Settings', 'Download', 'View', 'Cancel Editing', 'Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchDocxToolbarMore = ['Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchFavContextMenu = ['Share', 'Download', 'View', 'Edit Offline', 'Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchSharedLockedContextMenu = ['Shared Link Settings', 'Download', 'View', 'Cancel Editing', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchDocxFavContextMenu = ['Share', 'Download', 'View', 'Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchDocxFavToolbarMore = ['Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchSharedContextMenu = ['Shared Link Settings', 'Download', 'View', 'Edit Offline', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchToolbarMore = ['Edit Offline', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchDocxSharedFavContextMenu = ['Shared Link Settings', 'Download', 'View', 'Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchDocxSharedContextMenu = ['Shared Link Settings', 'Download', 'View', 'Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchFavToolbarMore = ['Edit Offline', 'Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchContextMenu = ['Share', 'Download', 'View', 'Edit Offline', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchFavLockedContextMenu = ['Share', 'Download', 'View', 'Cancel Editing', 'Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchLockedToolbarMore = ['Cancel Editing', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchLockedContextMenu = ['Share', 'Download', 'View', 'Cancel Editing', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchSharedFavContextMenu = ['Shared Link Settings', 'Download', 'View', 'Edit Offline', 'Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions', 'Permissions']; + +const searchViewerToolbarMore = ['Edit Offline', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchViewerFavToolbarMore = ['Edit Offline', 'Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchViewerDocxToolbarMore = ['Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchViewerFavLockedToolbarMore = ['Cancel Editing', 'Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchViewerDocxFavToolbarMore = ['Edit in Microsoft Officeâ„¢', 'Edit Offline', 'Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions', 'Permissions']; +const searchViewerLockedToolbarMore = ['Cancel Editing', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions']; + +// ---- SHARED workarounds ---- + +// TODO: add Edit Offline to expectedContextMenu when ACA-2173 is fixed +const sharedFilesDocxContextMenu = ['Shared Link Settings', 'Download', 'View', 'Edit in Microsoft Officeâ„¢', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +// TODO: add Edit Offline to expectedToolbarMore when ACA-2173 is fixed +const sharedFilesDocxToolbarMore = ['Edit in Microsoft Officeâ„¢', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +// TODO: add Edit Offline to expectedContextMenu when ACA-2173 is fixed +const sharedFilesDocxSharedFavContextMenu = ['Shared Link Settings', 'Download', 'View', 'Edit in Microsoft Officeâ„¢', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +// TODO: add Edit Offline to expectedToolbarMore when ACA-2173 is fixed +const sharedFilesDocxSharedFavToolbarMore = ['Edit in Microsoft Officeâ„¢', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +// TODO: add Cancel Editing to expectedContextMenu when ACA-2173 is fixed +const sharedFilesSharedContextMenu = ['Shared Link Settings', 'Download', 'View', 'Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +// TODO: add Cancel Editing to expectedToolbarMore when ACA-2173 is fixed +const sharedFilesSharedToolbarMore = ['Upload New Version', 'Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +// TODO: add Edit Offline to expectedToolbarMore when ACA-2173 is fixed +const sharedFilesFavSharedContextMenu = ['Shared Link Settings', 'Download', 'View', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; +// TODO: add Cancel Editing to expectedToolbarMore when ACA-2173 is fixed +const sharedFilesSharedFavToolbarMore = ['Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions', 'Permissions']; + + + + +export const fileDocx = { + name: `file-docx-${Utils.random()}.docx`, + description: 'file not shared, not fav, office, not locked', + + contextMenu: fileDocxContextMenu, + toolbarPrimary: fileToolbarPrimary, + toolbarMore: fileDocxToolbarMore, + viewerToolbarPrimary, + viewerToolbarMore: viewerDocxToolbarMore, + + searchContextMenu: searchDocxContextMenu, + searchToolbarPrimary, + searchToolbarMore: searchDocxToolbarMore, + searchViewerToolbarMore: searchViewerDocxToolbarMore +}; + +export const fileDocxFav = { + name: `file-docx-fav-${Utils.random()}.docx`, + description: 'file not shared, fav, office, not locked', + + contextMenu: fileDocxFavContextMenu, + toolbarPrimary: fileToolbarPrimary, + toolbarMore: fileDocxFavToolbarMore, + viewerToolbarPrimary, + viewerToolbarMore: viewerDocxFavToolbarMore, + + favoritesToolbarMore, + favoritesContextMenu, + + searchContextMenu: searchDocxFavContextMenu, + searchToolbarPrimary, + searchToolbarMore: searchDocxFavToolbarMore, + searchViewerToolbarMore: searchViewerDocxFavToolbarMore, +}; + +export const file = { + name: `file-${Utils.random()}.txt`, + description: 'file not shared, not fav, not office, not locked', + + contextMenu: fileContextMenu, + toolbarPrimary: fileToolbarPrimary, + toolbarMore: fileToolbarMore, + viewerToolbarPrimary, + viewerToolbarMore, + + searchViewerToolbarMore, + searchContextMenu, + searchToolbarPrimary, + searchToolbarMore +}; + +export const fileFav = { + name: `file-fav-${Utils.random()}.txt`, + description: 'file not shared, fav, not office, not locked', + + contextMenu: fileFavContextMenu, + toolbarPrimary: fileToolbarPrimary, + toolbarMore: fileFavToolbarMore, + viewerToolbarPrimary, + viewerToolbarMore: viewerFavToolbarMore, + + favoritesContextMenu, + favoritesToolbarMore, + + searchContextMenu: searchFavContextMenu, + searchToolbarPrimary, + searchToolbarMore: searchFavToolbarMore, + searchViewerToolbarMore: searchViewerFavToolbarMore +}; + +export const fileDocxShared = { + name: `file-docx-shared-${Utils.random()}.docx`, + description: 'file shared, not fav, office, not locked', + + contextMenu: fileDocxSharedContextMenu, + toolbarPrimary: fileSharedToolbarPrimary, + toolbarMore: fileDocxToolbarMore, + viewerToolbarPrimary: viewerSharedToolbarPrimary, + viewerToolbarMore: viewerDocxToolbarMore, + + searchContextMenu: searchDocxSharedContextMenu, + searchToolbarPrimary: searchSharedToolbarPrimary, + searchToolbarMore: searchDocxToolbarMore, + searchViewerToolbarMore: searchViewerDocxToolbarMore, + + sharedContextMenu: sharedFilesDocxContextMenu, + sharedToolbarMore: sharedFilesDocxToolbarMore +}; + +export const fileDocxSharedFav = { + name: `file-docx-shared-fav-${Utils.random()}.docx`, + description: 'file shared, fav, office, not locked', + + contextMenu: fileDocxSharedFavContextMenu, + toolbarPrimary: fileSharedToolbarPrimary, + toolbarMore: fileDocxFavToolbarMore, + viewerToolbarPrimary: viewerSharedToolbarPrimary, + viewerToolbarMore: viewerDocxFavToolbarMore, + + favoritesContextMenu: favoritesSharedContextMenu, + favoritesToolbarPrimary: favoritesSharedToolbarPrimary, + favoritesToolbarMore, + + searchContextMenu: searchDocxSharedFavContextMenu, + searchToolbarPrimary: searchSharedToolbarPrimary, + searchToolbarMore: searchDocxFavToolbarMore, + searchViewerToolbarMore: searchViewerDocxFavToolbarMore, + + sharedContextMenu: sharedFilesDocxSharedFavContextMenu, + sharedToolbarMore: sharedFilesDocxSharedFavToolbarMore +}; + +export const fileShared = { + name: `file-shared-${Utils.random()}.txt`, + description: 'file shared, not fav, not office, not locked', + + contextMenu: fileSharedContextMenu, + toolbarPrimary: fileSharedToolbarPrimary, + toolbarMore: fileToolbarMore, + viewerToolbarPrimary: viewerSharedToolbarPrimary, + viewerToolbarMore, + + searchContextMenu: searchSharedContextMenu, + searchToolbarPrimary: searchSharedToolbarPrimary, + searchToolbarMore, + searchViewerToolbarMore, + + sharedContextMenu: sharedFilesSharedContextMenu, + sharedToolbarMore: sharedFilesSharedToolbarMore +}; + +export const fileSharedFav = { + name: `file-shared-fav-${Utils.random()}.txt`, + description: 'file shared, fav, not office, not locked', + + contextMenu: fileSharedFavContextMenu, + toolbarPrimary: fileSharedToolbarPrimary, + toolbarMore: fileFavToolbarMore, + viewerToolbarPrimary: viewerSharedToolbarPrimary, + viewerToolbarMore: viewerFavToolbarMore, + + favoritesContextMenu: favoritesSharedContextMenu, + favoritesToolbarPrimary: favoritesSharedToolbarPrimary, + favoritesToolbarMore, + + searchContextMenu: searchSharedFavContextMenu, + searchToolbarPrimary: searchSharedToolbarPrimary, + searchToolbarMore: searchFavToolbarMore, + searchViewerToolbarMore: searchViewerFavToolbarMore, + + sharedContextMenu: sharedFilesFavSharedContextMenu, + sharedToolbarMore: sharedFilesSharedFavToolbarMore +}; + +export const fileLocked = { + name: `file-locked-${Utils.random()}.txt`, + description: 'file not shared, not fav, not office, locked', + + contextMenu: fileLockedContextMenu, + toolbarPrimary: fileToolbarPrimary, + toolbarMore: fileLockedToolbarMore, + viewerToolbarPrimary, + viewerToolbarMore: viewerLockedToolbarMore, + + searchContextMenu: searchLockedContextMenu, + searchToolbarPrimary, + searchToolbarMore: searchLockedToolbarMore, + searchViewerToolbarMore: searchViewerLockedToolbarMore +}; + +export const fileFavLocked = { + name: `file-fav-locked-${Utils.random()}.txt`, + description: 'file not shared, fav, not office, locked', + + contextMenu: fileFavLockedContextMenu, + toolbarPrimary: fileToolbarPrimary, + toolbarMore: fileFavLockedToolbarMore, + viewerToolbarPrimary, + viewerToolbarMore: viewerFavLockedToolbarMore, + + favoritesContextMenu, + favoritesToolbarMore, + + searchContextMenu: searchFavLockedContextMenu, + searchToolbarPrimary, + searchToolbarMore: searchFavLockedToolbarMore, + searchViewerToolbarMore: searchViewerFavLockedToolbarMore +}; + +export const fileSharedLocked = { + name: `file-shared-locked-${Utils.random()}.txt`, + description: 'file shared, not fav, not office, locked', + + contextMenu: fileSharedLockedContextMenu, + toolbarPrimary: fileSharedToolbarPrimary, + toolbarMore: fileLockedToolbarMore, + viewerToolbarPrimary: viewerSharedToolbarPrimary, + viewerToolbarMore: viewerLockedToolbarMore, + + searchContextMenu: searchSharedLockedContextMenu, + searchToolbarPrimary: searchSharedToolbarPrimary, + searchToolbarMore: searchLockedToolbarMore, + searchViewerToolbarMore: searchViewerLockedToolbarMore, + + sharedContextMenu: sharedFilesSharedContextMenu, + sharedToolbarMore: sharedFilesSharedToolbarMore +}; + +export const fileSharedFavLocked = { + name: `file-shared-fav-locked-${Utils.random()}.txt`, + description: 'file shared, fav, not office, locked', + + contextMenu: fileSharedFavLockedContextMenu, + toolbarPrimary: fileSharedToolbarPrimary, + toolbarMore: fileFavLockedToolbarMore, + viewerToolbarPrimary: viewerSharedToolbarPrimary, + viewerToolbarMore: viewerFavLockedToolbarMore, + + favoritesContextMenu: favoritesSharedContextMenu, + favoritesToolbarPrimary: favoritesSharedToolbarPrimary, + favoritesToolbarMore, + + searchContextMenu: searchSharedFavLockedContextMenu, + searchToolbarPrimary: searchSharedToolbarPrimary, + searchToolbarMore: searchFavLockedToolbarMore, + searchViewerToolbarMore: searchViewerFavLockedToolbarMore, + + sharedContextMenu: sharedFilesFavSharedContextMenu, + sharedToolbarMore: sharedFilesSharedFavToolbarMore +}; + +export const fileInTrash = { + name: `deleted-file-${Utils.random()}.txt`, + trashActions +}; + +export const file2InTrash = { + name: `deleted-file2-${Utils.random()}.txt`, + trashActions +}; + +export const folderInTrash = { + name: `deleted-folder-${Utils.random()}`, + trashActions +}; + +export const folder2InTrash = { + name: `deleted-folder2-${Utils.random()}`, + trashActions +}; + +// ---- folders --- + +const folderContextMenu = ['Download', 'Edit', 'Favorite', 'Move', 'Copy', 'Delete', 'Permissions']; +const folderFavContextMenu = ['Download', 'Edit', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Permissions']; +const folderToolbarPrimary = ['Download', 'View Details', 'More Actions']; +const folderToolbarMore = ['Edit', 'Favorite', 'Move', 'Copy', 'Delete', 'Permissions']; +const folderFavToolbarMore = ['Edit', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Permissions']; + +const favoritesFolderFavContextMenu = ['Download', 'Edit', 'Remove Favorite', 'Move', 'Copy', 'Delete']; +const favoritesFolderFavToolbarMore = ['Edit', 'Remove Favorite', 'Move', 'Copy', 'Delete']; + +const searchFolderContextMenu = ['Download', 'Edit', 'Favorite', 'Copy', 'Permissions']; +const searchFolderToolbarPrimary = ['Toggle search filter', 'Download', 'View Details', 'More Actions']; +const searchFolderToolbarMore = ['Edit', 'Favorite', 'Copy', 'Permissions']; +const searchFolderFavContextMenu = ['Download', 'Edit', 'Remove Favorite', 'Copy', 'Permissions']; +const searchFolderFavToolbarMore = ['Edit', 'Remove Favorite', 'Copy', 'Permissions']; + +export const folder = { + name: `folder-${Utils.random()}`, + description: 'folder not favorite', + + contextMenu: folderContextMenu, + toolbarPrimary: folderToolbarPrimary, + toolbarMore: folderToolbarMore, + + searchContextMenu: searchFolderContextMenu, + searchToolbarPrimary: searchFolderToolbarPrimary, + searchToolbarMore: searchFolderToolbarMore +}; + +export const folderFav = { + name: `folder-fav-${Utils.random()}`, + description: 'folder favorite', + + contextMenu: folderFavContextMenu, + toolbarPrimary: folderToolbarPrimary, + toolbarMore: folderFavToolbarMore, + + favoritesContextMenu: favoritesFolderFavContextMenu, + favoritesToolbarMore: favoritesFolderFavToolbarMore, + + searchContextMenu: searchFolderFavContextMenu, + searchToolbarPrimary: searchFolderToolbarPrimary, + searchToolbarMore: searchFolderFavToolbarMore +}; + +export const folderFav2 = { + name: `folder-fav-2-${Utils.random()}`, + description: 'folder favorite', + + contextMenu: folderFavContextMenu, + toolbarPrimary: folderToolbarPrimary, + toolbarMore: folderFavToolbarMore, + + favoritesContextMenu: favoritesFolderFavContextMenu, + favoritesToolbarMore: favoritesFolderFavToolbarMore, + + searchContextMenu: searchFolderFavContextMenu, + searchToolbarPrimary: searchFolderToolbarPrimary, + searchToolbarMore: searchFolderFavToolbarMore +}; + +// ---- multiple selection --- + + +// TODO: raise issue to remove 'Permissions' +const multipleSelContextMenu = ['Download', 'Favorite', 'Move', 'Copy', 'Delete', 'Permissions']; +// TODO: raise issue to remove 'Permissions' +const multipleSelAllFavContextMenu = ['Download', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Permissions']; +const multipleSelToolbarPrimary = ['Download', 'View Details', 'More Actions']; +// TODO: raise issue to remove 'Permissions' +const multipleSelToolbarMore = ['Favorite', 'Move', 'Copy', 'Delete', 'Permissions']; +// TODO: raise issue to remove 'Permissions' +const multipleSelAllFavToolbarMore = ['Remove Favorite', 'Move', 'Copy', 'Delete', 'Permissions']; + +const favoritesMultipleSelAllFavContextMenu = ['Download', 'Remove Favorite', 'Move', 'Copy', 'Delete']; +const favoritesMultipleSelAllFavToolbarMore = ['Remove Favorite', 'Move', 'Copy', 'Delete']; + +// TODO: raise issue to remove 'Permissions' +const searchMultipleSelContextMenu = ['Download', 'Favorite', 'Copy', 'Permissions']; +// TODO: raise issue to remove 'Permissions' +const searchMultipleSelAllFavContextMenu = ['Download', 'Remove Favorite', 'Copy', 'Permissions']; +const searchMultipleSelToolbarPrimary = ['Toggle search filter', 'Download', 'View Details', 'More Actions']; +// TODO: raise issue to remove 'Permissions' +const searchMultipleSelToolbarMore = ['Favorite', 'Copy', 'Permissions']; +// TODO: raise issue to remove 'Permissions' +const searchMultipleSelAllFavToolbarMore = ['Remove Favorite', 'Copy', 'Permissions']; + + +export const multipleSel = { + contextMenu: multipleSelContextMenu, + toolbarPrimary: multipleSelToolbarPrimary, + toolbarMore: multipleSelToolbarMore, + + searchContextMenu: searchMultipleSelContextMenu, + searchToolbarMore: searchMultipleSelToolbarMore, + searchToolbarPrimary: searchMultipleSelToolbarPrimary +} + +export const multipleSelAllFav = { + contextMenu: multipleSelAllFavContextMenu, + toolbarPrimary: multipleSelToolbarPrimary, + toolbarMore: multipleSelAllFavToolbarMore, + + favoritesContextMenu: favoritesMultipleSelAllFavContextMenu, + favoritesToolbarMore: favoritesMultipleSelAllFavToolbarMore, + + searchToolbarPrimary: searchMultipleSelToolbarPrimary, + searchContextMenu: searchMultipleSelAllFavContextMenu, + searchToolbarMore: searchMultipleSelAllFavToolbarMore +} diff --git a/e2e/suites/actions-available/files-folders/trash.test.ts b/e2e/suites/actions-available/files-folders/trash.test.ts new file mode 100755 index 000000000..af1e1e19d --- /dev/null +++ b/e2e/suites/actions-available/files-folders/trash.test.ts @@ -0,0 +1,106 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage } from '../../../pages/pages'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import * as data from './test-data-files-folders'; +import * as testUtil from '../test-util'; + +describe('File/folder actions : on Trash : ', () => { + + const username = `user-${Utils.random()}`; + + let fileInTrashId, file2InTrashId, folderInTrashId, folder2InTrashId; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username }); + + fileInTrashId = (await apis.user.nodes.createFile(data.fileInTrash.name)).entry.id; + file2InTrashId = (await apis.user.nodes.createFile(data.file2InTrash.name)).entry.id; + folderInTrashId = (await apis.user.nodes.createFolder(data.folderInTrash.name)).entry.id; + folder2InTrashId = (await apis.user.nodes.createFolder(data.folder2InTrash.name)).entry.id; + + await apis.user.nodes.deleteNodeById(fileInTrashId, false); + await apis.user.nodes.deleteNodeById(file2InTrashId, false); + await apis.user.nodes.deleteNodeById(folderInTrashId, false); + await apis.user.nodes.deleteNodeById(folder2InTrashId, false); + + await apis.user.trashcan.waitForApi({ expect: 4 }); + + await loginPage.loginWith(username); + done(); + }); + + afterAll(async (done) => { + await apis.user.trashcan.emptyTrash(); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickTrashAndWait(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('on a file - [C286258]', async () => { + await testUtil.checkToolbarPrimary(data.fileInTrash.name, data.fileInTrash.trashActions); + await testUtil.checkContextMenu(data.fileInTrash.name, data.fileInTrash.trashActions); + }); + + it('on a folder - [C286259]', async () => { + await testUtil.checkToolbarPrimary(data.folderInTrash.name, data.folderInTrash.trashActions); + await testUtil.checkContextMenu(data.folderInTrash.name, data.folderInTrash.trashActions); + }); + + it('multiple files - [C280472]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileInTrash.name, data.file2InTrash.name ], data.trashActions); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileInTrash.name, data.file2InTrash.name ], data.trashActions); + }); + + it('multiple folders - [C280473]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.folderInTrash.name, data.folder2InTrash.name ], data.trashActions); + await testUtil.checkMultipleSelToolbarPrimary([ data.folderInTrash.name, data.folder2InTrash.name ], data.trashActions); + }); + + it('both files and folders - [C280474]', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileInTrash.name, data.folderInTrash.name ], data.trashActions); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileInTrash.name, data.folderInTrash.name ], data.trashActions); + }); + +}); diff --git a/e2e/suites/actions-available/files-folders/viewer.test.ts b/e2e/suites/actions-available/files-folders/viewer.test.ts new file mode 100755 index 000000000..fbb575534 --- /dev/null +++ b/e2e/suites/actions-available/files-folders/viewer.test.ts @@ -0,0 +1,421 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage } from '../../../pages/pages'; +import { FILES } from '../../../configs'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import * as data from './test-data-files-folders'; +import * as testUtil from '../test-util'; + +describe('File/folder actions : in the viewer : ', () => { + + const random = Utils.random(); + + const username = `user-${random}`; + + const parent = `parent-${random}`; let parentId; + + let fileDocxFavId, fileFavId, fileDocxSharedId, fileDocxSharedFavId, fileSharedId, fileSharedFavId, fileLockedId, fileFavLockedId, fileSharedLockedId, fileSharedFavLockedId; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + const { dataTable } = page; + const { searchInput } = page.header; + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username }); + + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; + + await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocx.name ); + fileDocxFavId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxFav.name)).entry.id; + await apis.user.nodes.createFile(data.file.name, parentId); + fileFavId = (await apis.user.nodes.createFile(data.fileFav.name, parentId)).entry.id; + fileDocxSharedId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxShared.name)).entry.id; + fileDocxSharedFavId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentId, data.fileDocxSharedFav.name)).entry.id; + fileSharedId = (await apis.user.nodes.createFile(data.fileShared.name, parentId)).entry.id; + fileSharedFavId = (await apis.user.nodes.createFile(data.fileSharedFav.name, parentId)).entry.id; + fileLockedId = (await apis.user.nodes.createFile(data.fileLocked.name, parentId)).entry.id; + fileFavLockedId = (await apis.user.nodes.createFile(data.fileFavLocked.name, parentId)).entry.id; + fileSharedLockedId = (await apis.user.nodes.createFile(data.fileSharedLocked.name, parentId)).entry.id; + fileSharedFavLockedId = (await apis.user.nodes.createFile(data.fileSharedFavLocked.name, parentId)).entry.id; + + await apis.user.favorites.addFavoritesByIds('file', [ + fileDocxFavId, + fileFavId, + fileDocxSharedFavId, + fileSharedFavId, + fileFavLockedId, + fileSharedFavLockedId + ]); + + await apis.user.shared.shareFilesByIds([ + fileDocxSharedId, + fileDocxSharedFavId, + fileSharedId, + fileSharedFavId, + fileSharedLockedId, + fileSharedFavLockedId + ]); + + await apis.user.nodes.lockFile(fileLockedId); + await apis.user.nodes.lockFile(fileFavLockedId); + await apis.user.nodes.lockFile(fileSharedLockedId); + await apis.user.nodes.lockFile(fileSharedFavLockedId); + + await apis.user.favorites.waitForApi({ expect: 6 }); + await apis.user.shared.waitForApi({ expect: 6 }); + + await loginPage.loginWith(username); + done(); + }); + + afterAll(async (done) => { + await apis.user.nodes.deleteNodeById(parentId); + done(); + }); + + describe('file opened from Personal Files', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickPersonalFilesAndWait(); + await dataTable.doubleClickOnRowByName(parent); + await dataTable.waitForHeader(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('File Office - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocx.name, data.fileDocx.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocx.name, data.fileDocx.viewerToolbarMore); + }); + + it('File Office, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxFav.name, data.fileDocxFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.viewerToolbarMore); + }); + + it('File simple - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.file.name, data.file.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.file.name, data.file.viewerToolbarMore); + }); + + it('File favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileFav.name, data.fileFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFav.name, data.fileFav.viewerToolbarMore); + }); + + it('File Office, shared - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxShared.name, data.fileDocxShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.viewerToolbarMore); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarMore); + }); + + it('File shared - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileShared.name, data.fileShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileShared.name, data.fileShared.viewerToolbarMore); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarMore); + }); + + it('File locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileLocked.name, data.fileLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileLocked.name, data.fileLocked.viewerToolbarMore); + }); + + it('File favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileFavLocked.name, data.fileFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.viewerToolbarMore); + }); + + it('File shared, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedLocked.name, data.fileSharedLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.viewerToolbarMore); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarMore); + }); + }); + + describe('file opened from Recent Files', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickRecentFilesAndWait(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('File Office - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocx.name, data.fileDocx.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocx.name, data.fileDocx.viewerToolbarMore); + }); + + it('File Office, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxFav.name, data.fileDocxFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.viewerToolbarMore); + }); + + it('File simple - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.file.name, data.file.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.file.name, data.file.viewerToolbarMore); + }); + + it('File favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileFav.name, data.fileFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFav.name, data.fileFav.viewerToolbarMore); + }); + + it('File Office, shared - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxShared.name, data.fileDocxShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.viewerToolbarMore); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarMore); + }); + + it('File shared - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileShared.name, data.fileShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileShared.name, data.fileShared.viewerToolbarMore); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarMore); + }); + + it('File locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileLocked.name, data.fileLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileLocked.name, data.fileLocked.viewerToolbarMore); + }); + + it('File favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileFavLocked.name, data.fileFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.viewerToolbarMore); + }); + + it('File shared, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedLocked.name, data.fileSharedLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.viewerToolbarMore); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarMore); + }); + }); + + describe('file opened from Favorites', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickFavoritesAndWait(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('File Office, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxFav.name, data.fileDocxFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.viewerToolbarMore); + }); + + it('File favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileFav.name, data.fileFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFav.name, data.fileFav.viewerToolbarMore); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarMore); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarMore); + }); + + it('File favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileFavLocked.name, data.fileFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.viewerToolbarMore); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarMore); + }); + }); + + describe('file opened from Shared Files', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickSharedFilesAndWait(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('File Office, shared - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxShared.name, data.fileDocxShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.viewerToolbarMore); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarMore); + }); + + it('File shared - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileShared.name, data.fileShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileShared.name, data.fileShared.viewerToolbarMore); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarMore); + }); + + it('File shared, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedLocked.name, data.fileSharedLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.viewerToolbarMore); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarMore); + }); + }); + + describe('file opened from Search Results', () => { + + beforeAll(async (done) => { + await Utils.pressEscape(); + await page.clickPersonalFiles(); + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor('file-'); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('File Office - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocx.name, data.fileDocx.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocx.name, data.fileDocx.searchViewerToolbarMore); + }); + + it('File Office, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxFav.name, data.fileDocxFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.searchViewerToolbarMore); + }); + + it('File simple - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.file.name, data.file.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.file.name, data.file.searchViewerToolbarMore); + }); + + it('File favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileFav.name, data.fileFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFav.name, data.fileFav.searchViewerToolbarMore); + }); + + it('File Office, shared - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxShared.name, data.fileDocxShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.searchViewerToolbarMore); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.searchViewerToolbarMore); + }); + + it('File shared - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileShared.name, data.fileShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileShared.name, data.fileShared.searchViewerToolbarMore); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.searchViewerToolbarMore); + }); + + it('File locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileLocked.name, data.fileLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileLocked.name, data.fileLocked.searchViewerToolbarMore); + }); + + it('File favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileFavLocked.name, data.fileFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.searchViewerToolbarMore); + }); + + it('File shared, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedLocked.name, data.fileSharedLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.searchViewerToolbarMore); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.searchViewerToolbarMore); + }); + }); + +}); diff --git a/e2e/suites/actions-available/generic.test.ts b/e2e/suites/actions-available/generic.test.ts new file mode 100755 index 000000000..467b2d5c2 --- /dev/null +++ b/e2e/suites/actions-available/generic.test.ts @@ -0,0 +1,224 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { browser, protractor } from 'protractor'; +import { LoginPage, BrowsingPage } from '../../pages/pages'; +import { RepoClient } from '../../utilities/repo-client/repo-client'; +import { Utils } from '../../utilities/utils'; + + +describe('Generic tests : ', () => { + + const random = Utils.random(); + + const username = `user-${random}`; + + const parent = `parent-${random}`; let parentId; + + const file1 = `file1-${random}.txt`; + const file2 = `file2-${random}.txt`; + + const folder1 = `my-folder1-${Utils.random()}`; + const folder2 = `my-folder2-${Utils.random()}`; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + const { dataTable, toolbar } = page; + const { searchInput } = page.header; + const contextMenu = dataTable.menu; + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username }); + + parentId = (await apis.user.nodes.createFolder(parent)).entry.id; + await apis.user.nodes.createFile(file1, parentId); + await apis.user.nodes.createFile(file2, parentId); + + await apis.user.nodes.createFolder(folder1, parentId); + await apis.user.nodes.createFolder(folder2, parentId); + + await loginPage.loginWith(username); + done(); + }); + + afterAll(async (done) => { + await apis.user.nodes.deleteNodeById(parentId); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickPersonalFilesAndWait(); + await dataTable.doubleClickOnRowByName(parent); + await dataTable.waitForHeader(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('selected row is marked with a check circle icon - [C213134]', async () => { + await dataTable.selectItem(file1); + expect(await dataTable.hasCheckMarkIcon(file1)).toBe(true, 'check mark missing'); + }); + + it('Row is marked with a check circle icon on direct right click - [C286252]', async () => { + await dataTable.rightClickOnItem(file2); + expect(await dataTable.hasCheckMarkIcon(file2)).toBe(true, 'check mark missing'); + }); + + it('Context menu appears on direct right click on an item - [C286253]', async () => { + await dataTable.rightClickOnItem(file1); + expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); + }); + + it('Context menu appears when selecting an item and then right clicking on it - [C286254]', async () => { + await dataTable.selectItem(file2); + await dataTable.rightClickOnItem(file2); + expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); + }); + + it('Context menu appears correctly when right clicking on another item - [C284666]', async () => { + await dataTable.selectItem(file1); + await dataTable.rightClickOnItem(file2); + expect(await dataTable.hasContextMenu()).toBe(true, `Context menu is not displayed`); + expect(await dataTable.hasCheckMarkIcon(file2)).toBe(true, `${file2} is not selected`); + expect(await dataTable.hasCheckMarkIcon(file1)).toBe(false, `${file1} is not selected`); + }); + + it('Context menu closes when clicking away from it - [C280619]', async () => { + await dataTable.rightClickOnItem(file1); + expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); + await page.breadcrumb.getCurrentItem().click(); + expect(await dataTable.hasContextMenu()).toBe(false, 'Context menu is displayed'); + }); + + describe('Actions are not displayed when no item is selected', () => { + it('on Personal Files - [C213120]', async () => { + await page.clickPersonalFilesAndWait(); + await dataTable.clearSelection(); + expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); + }); + + it('on Trash - [C280452]', async () => { + await page.clickTrash(); + await dataTable.clearSelection(); + expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); + }); + + it('on Favorites - [C280449]', async () => { + await page.clickFavorites(); + await dataTable.clearSelection(); + expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); + }); + + it('on Recent Files - [C280447]', async () => { + await page.clickRecentFilesAndWait(); + await dataTable.clearSelection(); + expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); + }); + + it('on Shared Files - [C280445]', async () => { + await page.clickSharedFiles(); + await dataTable.clearSelection(); + expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); + }); + + it('on My Libraries - [C280439]', async () => { + await page.goToMyLibraries(); + await dataTable.clearSelection(); + expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); + }); + + it('on Favorite Libraries - [C280439]', async () => { + await page.goToFavoriteLibraries(); + await dataTable.clearSelection(); + expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); + }); + + it('on Search Results - [C291815]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkFilesAndFolders(); + await searchInput.searchFor('*'); + + expect(await toolbar.isToggleSearchFiltersPresent()).toBe(true, `Search filter toggle is not displayed`); + expect(await toolbar.numberOfAvailableActions()).toBe(1, `more than 1 action is present`); + }); + }); + + it('Context menu appears on right click on a multiple selection of items - [C286268]', async () => { + await dataTable.selectMultipleItems([ file1, file2 ]); + await dataTable.rightClickOnMultipleSelection(); + + expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed'); + }); + + it('Context menu appears when right clicking on a single item while having multiple items selected - [C286269]', async () => { + await dataTable.selectMultipleItems([ file2, folder1 ]); + await dataTable.rightClickOnItem(file1); + + expect(await dataTable.hasContextMenu()).toBe(true, `Context menu is not displayed for ${file1}`); + expect(await dataTable.countSelectedRows()).toEqual(1, 'incorrect number of selected rows'); + expect(await contextMenu.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`); + }); + + 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.clickItem(file1); + + expect(await dataTable.countSelectedRows()).toEqual(1, 'incorrect selected rows number'); + }); + + it('Select / unselect items by CMD+click - [C217110]', async () => { + await browser.actions().sendKeys(protractor.Key.COMMAND).perform(); + await dataTable.clickItem(file1); + await dataTable.clickItem(file2); + await dataTable.clickItem(folder1); + await dataTable.clickItem(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.clickItem(file1); + await dataTable.clickItem(file2); + await browser.actions().sendKeys(protractor.Key.NULL).perform(); + + expect(await dataTable.countSelectedRows()).toEqual(2, 'incorrect selected rows number'); + }); +}); diff --git a/e2e/suites/actions-available/libraries/library.test.ts b/e2e/suites/actions-available/libraries/library.test.ts new file mode 100755 index 000000000..5d2ad5fe4 --- /dev/null +++ b/e2e/suites/actions-available/libraries/library.test.ts @@ -0,0 +1,328 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage, SearchResultsPage } from '../../../pages/pages'; +import { SITE_VISIBILITY } from '../../../configs'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import * as data from './test-data-libraries'; +import * as testUtil from '../test-util'; + +describe('Library actions : ', () => { + const username = `user-${Utils.random()}`; + + const apis = { + admin: new RepoClient(), + user: new RepoClient(username, username) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + const searchResultsPage = new SearchResultsPage(); + const { searchInput } = searchResultsPage.header; + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username }); + + await apis.user.sites.createSite(data.publicUserMemberFav.name); + await apis.user.sites.createSite(data.privateUserMemberFav.name, SITE_VISIBILITY.PRIVATE); + await apis.user.sites.createSite(data.moderatedUserMemberFav.name, SITE_VISIBILITY.MODERATED); + + const publicUserMemberNotFavId = (await apis.user.sites.createSite(data.publicUserMemberNotFav.name)).entry.guid; + const privateUserMemberNotFavId = (await apis.user.sites.createSite(data.privateUserMemberNotFav.name, SITE_VISIBILITY.PRIVATE)).entry.guid; + const moderatedUserMemberNotFavId = (await apis.user.sites.createSite(data.moderatedUserMemberNotFav.name, SITE_VISIBILITY.MODERATED)).entry.guid; + + await apis.admin.sites.createSite(data.publicNotMemberFav.name); + await apis.admin.sites.createSite(data.moderatedNotMemberFav.name, SITE_VISIBILITY.MODERATED); + + await apis.admin.sites.createSite(data.publicNotMemberNotFav.name); + await apis.admin.sites.createSite(data.moderatedNotMemberNotFav.name, SITE_VISIBILITY.MODERATED); + + await apis.admin.sites.createSite(data.moderatedRequestedJoinFav.name, SITE_VISIBILITY.MODERATED); + await apis.admin.sites.createSite(data.moderatedRequestedJoinNotFav.name, SITE_VISIBILITY.MODERATED); + + await apis.user.sites.createSite(data.siteInTrash.name, SITE_VISIBILITY.PUBLIC); + await apis.user.sites.createSite(data.site2InTrash.name, SITE_VISIBILITY.PUBLIC); + + await apis.user.sites.waitForApi({ expect: 8 }); + await apis.admin.sites.waitForApi({ expect: 6 }); + + await apis.user.favorites.removeFavoriteById(publicUserMemberNotFavId); + await apis.user.favorites.removeFavoriteById(privateUserMemberNotFavId); + await apis.user.favorites.removeFavoriteById(moderatedUserMemberNotFavId); + + await apis.user.favorites.addFavoriteById('site', data.publicNotMemberFav.name); + await apis.user.favorites.addFavoriteById('site', data.moderatedNotMemberFav.name); + await apis.user.favorites.addFavoriteById('site', data.moderatedRequestedJoinFav.name); + + await apis.user.sites.requestToJoin(data.moderatedRequestedJoinFav.name); + await apis.user.sites.requestToJoin(data.moderatedRequestedJoinNotFav.name); + + await apis.user.queries.waitForSites('site-', { expect: 13 }); + + await apis.user.sites.deleteSite(data.siteInTrash.name, false); + await apis.user.sites.deleteSite(data.site2InTrash.name, false); + + await apis.user.trashcan.waitForApi({ expect: 2 }); + + await loginPage.loginWith(username); + done(); + }); + + afterAll(async (done) => { + await Promise.all([ + apis.user.sites.deleteSites([ + data.publicUserMemberFav.name, + data.privateUserMemberFav.name, + data.moderatedUserMemberFav.name, + data.publicUserMemberNotFav.name, + data.privateUserMemberNotFav.name, + data.moderatedUserMemberNotFav.name + ]), + apis.admin.sites.deleteSites([ + data.publicNotMemberFav.name, + data.moderatedNotMemberFav.name, + data.publicNotMemberNotFav.name, + data.moderatedNotMemberNotFav.name, + data.moderatedRequestedJoinFav.name, + data.moderatedRequestedJoinNotFav.name + ]), + apis.user.trashcan.emptyTrash() + ]); + done(); + }); + + describe('on My Libraries', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.goToMyLibrariesAndWait(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('Public library, user is a member, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.publicUserMemberFav.name, data.publicUserMemberFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.publicUserMemberFav.name, data.publicUserMemberFav.toolbarMore); + await testUtil.checkContextMenu(data.publicUserMemberFav.name, data.publicUserMemberFav.contextMenu); + }); + + it('Private library, user is a member, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.privateUserMemberFav.name, data.privateUserMemberFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.privateUserMemberFav.name, data.privateUserMemberFav.toolbarMore); + await testUtil.checkContextMenu(data.privateUserMemberFav.name, data.privateUserMemberFav.contextMenu); + }); + + it('Moderated library, user is a member, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.moderatedUserMemberFav.name, data.moderatedUserMemberFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.moderatedUserMemberFav.name, data.moderatedUserMemberFav.toolbarMore); + await testUtil.checkContextMenu(data.moderatedUserMemberFav.name, data.moderatedUserMemberFav.contextMenu); + }); + + it('Public library, user is a member, not favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.publicUserMemberNotFav.name, data.publicUserMemberNotFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.publicUserMemberNotFav.name, data.publicUserMemberNotFav.toolbarMore); + await testUtil.checkContextMenu(data.publicUserMemberNotFav.name, data.publicUserMemberNotFav.contextMenu); + }); + + it('Private library, user is a member, not favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.privateUserMemberNotFav.name, data.privateUserMemberNotFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.privateUserMemberNotFav.name, data.privateUserMemberNotFav.toolbarMore); + await testUtil.checkContextMenu(data.privateUserMemberNotFav.name, data.privateUserMemberNotFav.contextMenu); + }); + + it('Moderated library, user is a member, not favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.moderatedUserMemberNotFav.name, data.moderatedUserMemberNotFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.moderatedUserMemberNotFav.name, data.moderatedUserMemberNotFav.toolbarMore); + await testUtil.checkContextMenu(data.moderatedUserMemberNotFav.name, data.moderatedUserMemberNotFav.contextMenu); + }); + + }); + + describe('on Favorite Libraries', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.goToFavoriteLibrariesAndWait(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('Public library, user is a member, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.publicUserMemberFav.name, data.publicUserMemberFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.publicUserMemberFav.name, data.publicUserMemberFav.toolbarMore); + await testUtil.checkContextMenu(data.publicUserMemberFav.name, data.publicUserMemberFav.contextMenu); + }); + + it('Private library, user is a member, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.privateUserMemberFav.name, data.privateUserMemberFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.privateUserMemberFav.name, data.privateUserMemberFav.toolbarMore); + await testUtil.checkContextMenu(data.privateUserMemberFav.name, data.privateUserMemberFav.contextMenu); + }); + + it('Moderated library, user is a member, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.moderatedUserMemberFav.name, data.moderatedUserMemberFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.moderatedUserMemberFav.name, data.moderatedUserMemberFav.toolbarMore); + await testUtil.checkContextMenu(data.moderatedUserMemberFav.name, data.moderatedUserMemberFav.contextMenu); + }); + + it('Public library, user not a member, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.publicNotMemberFav.name, data.publicNotMemberFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.publicNotMemberFav.name, data.publicNotMemberFav.toolbarMore); + await testUtil.checkContextMenu(data.publicNotMemberFav.name, data.publicNotMemberFav.contextMenu); + }); + + it('Moderated library, user not a member, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.moderatedNotMemberFav.name, data.moderatedNotMemberFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.moderatedNotMemberFav.name, data.moderatedNotMemberFav.toolbarMore); + await testUtil.checkContextMenu(data.moderatedNotMemberFav.name, data.moderatedNotMemberFav.contextMenu); + }); + + it('Moderated library, user requested to join, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.moderatedRequestedJoinFav.name, data.moderatedRequestedJoinFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.moderatedRequestedJoinFav.name, data.moderatedRequestedJoinFav.toolbarMore); + await testUtil.checkContextMenu(data.moderatedRequestedJoinFav.name, data.moderatedRequestedJoinFav.contextMenu); + }); + }); + + describe('on Search Results', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickPersonalFiles(); + await searchInput.clickSearchButton(); + await searchInput.checkLibraries(); + await searchInput.searchFor('site-'); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('Public library, user is a member, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.publicUserMemberFav.name, data.publicUserMemberFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.publicUserMemberFav.name, data.publicUserMemberFav.toolbarMore); + await testUtil.checkContextMenu(data.publicUserMemberFav.name, data.publicUserMemberFav.contextMenu); + }); + + it('Private library, user is a member, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.privateUserMemberFav.name, data.privateUserMemberFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.privateUserMemberFav.name, data.privateUserMemberFav.toolbarMore); + await testUtil.checkContextMenu(data.privateUserMemberFav.name, data.privateUserMemberFav.contextMenu); + }); + + it('Moderated library, user is a member, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.moderatedUserMemberFav.name, data.moderatedUserMemberFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.moderatedUserMemberFav.name, data.moderatedUserMemberFav.toolbarMore); + await testUtil.checkContextMenu(data.moderatedUserMemberFav.name, data.moderatedUserMemberFav.contextMenu); + }); + + it('Public library, user is a member, not favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.publicUserMemberNotFav.name, data.publicUserMemberNotFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.publicUserMemberNotFav.name, data.publicUserMemberNotFav.toolbarMore); + await testUtil.checkContextMenu(data.publicUserMemberNotFav.name, data.publicUserMemberNotFav.contextMenu); + }); + + it('Private library, user is a member, not favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.privateUserMemberNotFav.name, data.privateUserMemberNotFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.privateUserMemberNotFav.name, data.privateUserMemberNotFav.toolbarMore); + await testUtil.checkContextMenu(data.privateUserMemberNotFav.name, data.privateUserMemberNotFav.contextMenu); + }); + + it('Moderated library, user is a member, not favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.moderatedUserMemberNotFav.name, data.moderatedUserMemberNotFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.moderatedUserMemberNotFav.name, data.moderatedUserMemberNotFav.toolbarMore); + await testUtil.checkContextMenu(data.moderatedUserMemberNotFav.name, data.moderatedUserMemberNotFav.contextMenu); + }); + + it('Public library, user not a member, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.publicNotMemberFav.name, data.publicNotMemberFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.publicNotMemberFav.name, data.publicNotMemberFav.toolbarMore); + await testUtil.checkContextMenu(data.publicNotMemberFav.name, data.publicNotMemberFav.contextMenu); + }); + + it('Moderated library, user not a member, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.moderatedNotMemberFav.name, data.moderatedNotMemberFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.moderatedNotMemberFav.name, data.moderatedNotMemberFav.toolbarMore); + await testUtil.checkContextMenu(data.moderatedNotMemberFav.name, data.moderatedNotMemberFav.contextMenu); + }); + + it('Public library, user not a member, not favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.publicNotMemberNotFav.name, data.publicNotMemberNotFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.publicNotMemberNotFav.name, data.publicNotMemberNotFav.toolbarMore); + await testUtil.checkContextMenu(data.publicNotMemberNotFav.name, data.publicNotMemberNotFav.contextMenu); + }); + + it('Moderated library, user not a member, not favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.moderatedNotMemberNotFav.name, data.moderatedNotMemberNotFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.moderatedNotMemberNotFav.name, data.moderatedNotMemberNotFav.toolbarMore); + await testUtil.checkContextMenu(data.moderatedNotMemberNotFav.name, data.moderatedNotMemberNotFav.contextMenu); + }); + + it('Moderated library, user requested to join, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.moderatedRequestedJoinFav.name, data.moderatedRequestedJoinFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.moderatedRequestedJoinFav.name, data.moderatedRequestedJoinFav.toolbarMore); + await testUtil.checkContextMenu(data.moderatedRequestedJoinFav.name, data.moderatedRequestedJoinFav.contextMenu); + }); + + it('Moderated library, user requested to join, not favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.moderatedRequestedJoinNotFav.name, data.moderatedRequestedJoinNotFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.moderatedRequestedJoinNotFav.name, data.moderatedRequestedJoinNotFav.toolbarMore); + await testUtil.checkContextMenu(data.moderatedRequestedJoinNotFav.name, data.moderatedRequestedJoinNotFav.contextMenu); + }); + }); + + describe('on Trash', () => { + beforeEach(async (done) => { + await page.clickTrashAndWait(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('single library - []', async () => { + await testUtil.checkToolbarPrimary(data.siteInTrash.name, data.siteInTrash.trashActions); + await testUtil.checkContextMenu(data.siteInTrash.name, data.siteInTrash.trashActions); + }); + + it('multiple libraries - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.siteInTrash.name, data.site2InTrash.name ], data.trashActions); + await testUtil.checkMultipleSelToolbarPrimary([ data.siteInTrash.name, data.site2InTrash.name ], data.trashActions); + }); + }); +}); diff --git a/e2e/suites/actions-available/libraries/test-data-libraries.ts b/e2e/suites/actions-available/libraries/test-data-libraries.ts new file mode 100644 index 000000000..9e1d6e1ae --- /dev/null +++ b/e2e/suites/actions-available/libraries/test-data-libraries.ts @@ -0,0 +1,156 @@ +import { Utils } from '../../../utilities/utils'; + + +// ---- multiple selection --- + +export const trashActions = ['Permanently Delete', 'Restore']; + + +// ---- single selection ---- + +const memberFavContextMenu = ['Leave Library', 'Delete', 'Remove Favorite']; +const memberNotFavContextMenu = ['Leave Library', 'Delete', 'Favorite']; +const memberToolbarPrimary = ['Leave Library', 'View Details', 'More Actions']; +const favToolbarMore = ['Delete', 'Remove Favorite']; +const notFavToolbarMore = ['Delete', 'Favorite']; +const searchMemberToolbarPrimary = ['Toggle search filter', 'Leave Library', 'View Details', 'More Actions']; +const searchReqJoinToolbarPrimary = ['Toggle search filter', 'Cancel Join Request', 'View Details', 'More Actions']; +const searchNotMemberToolbarPrimary = ['Toggle search filter', 'Join', 'View Details', 'More Actions']; +const reqJoinToolbarMore = ['Cancel Join Request', 'View Details', 'More Actions']; +const notMemberFavContextMenu = ['Join', 'Delete', 'Remove Favorite']; +const notMemberNotFavContextMenu = ['Join', 'Delete', 'Favorite']; +const notMemberToolbarPrimary = ['Join', 'View Details', 'More Actions']; +const reqJoinNotFavContextMenu = ['Cancel Join Request', 'Delete', 'Favorite']; +const reqJoinFavContextMenu = ['Cancel Join Request', 'Delete', 'Remove Favorite']; + + +export const publicUserMemberFav = { + name: `site-public-member-fav-${Utils.random()}`, + description: 'public site, user member, user favorite', + contextMenu: memberFavContextMenu, + toolbarPrimary: memberToolbarPrimary, + toolbarMore: favToolbarMore, + + searchToolbarPrimary: searchMemberToolbarPrimary +}; + +export const privateUserMemberFav = { + name: `site-private-member-fav-${Utils.random()}`, + description: 'private site, user member, user favorite', + contextMenu: memberFavContextMenu, + toolbarPrimary: memberToolbarPrimary, + toolbarMore: favToolbarMore, + + searchToolbarPrimary: searchMemberToolbarPrimary +}; + +export const moderatedUserMemberFav = { + name: `site-moderated-member-fav-${Utils.random()}`, + description: 'moderated site, user member, user favorite', + contextMenu: memberFavContextMenu, + toolbarPrimary: memberToolbarPrimary, + toolbarMore: favToolbarMore, + + searchToolbarPrimary: searchMemberToolbarPrimary +}; + +export const publicUserMemberNotFav = { + name: `site-public-member-not-fav-${Utils.random()}`, + description: 'public site, user member, not favorite', + contextMenu: memberNotFavContextMenu, + toolbarPrimary: memberToolbarPrimary, + toolbarMore: notFavToolbarMore, + + searchToolbarPrimary: searchMemberToolbarPrimary +}; + +export const privateUserMemberNotFav = { + name: `site-private-member-not-fav-${Utils.random()}`, + description: 'private site, user member, not favorite', + contextMenu: memberNotFavContextMenu, + toolbarPrimary: memberToolbarPrimary, + toolbarMore: notFavToolbarMore, + + searchToolbarPrimary: searchMemberToolbarPrimary +}; + +export const moderatedUserMemberNotFav = { + name: `site-moderated-member-not-fav-${Utils.random()}`, + description: 'moderated site, user member, not favorite', + contextMenu: memberNotFavContextMenu, + toolbarPrimary: memberToolbarPrimary, + toolbarMore: notFavToolbarMore, + + searchToolbarPrimary: searchMemberToolbarPrimary +}; + +export const publicNotMemberFav = { + name: `site-public-not-member-fav-${Utils.random()}`, + description: 'public site, user not member, user favorite', + contextMenu: notMemberFavContextMenu, + toolbarPrimary: notMemberToolbarPrimary, + toolbarMore: favToolbarMore, + + searchToolbarPrimary: searchNotMemberToolbarPrimary +}; + +export const moderatedNotMemberFav = { + name: `site-moderated-not-member-fav-${Utils.random()}`, + description: 'moderated site, user not member, user favorite', + contextMenu: notMemberFavContextMenu, + toolbarPrimary: notMemberToolbarPrimary, + toolbarMore: favToolbarMore, + + searchToolbarPrimary: searchNotMemberToolbarPrimary +}; + +export const publicNotMemberNotFav = { + name: `site-public-not-member-not-fav-${Utils.random()}`, + description: 'public site, user not member, not favorite', + contextMenu: notMemberNotFavContextMenu, + toolbarPrimary: notMemberToolbarPrimary, + toolbarMore: notFavToolbarMore, + + searchToolbarPrimary: searchNotMemberToolbarPrimary +}; + +export const moderatedNotMemberNotFav = { + name: `site-moderated-not-member-not-fav-${Utils.random()}`, + description: 'moderated site, user not member, not favorite', + contextMenu: notMemberNotFavContextMenu, + toolbarPrimary: notMemberToolbarPrimary, + toolbarMore: notFavToolbarMore, + + searchToolbarPrimary: searchNotMemberToolbarPrimary +}; + +export const moderatedRequestedJoinFav = { + name: `site-moderated-req-join-fav-${Utils.random()}`, + description: 'moderated site, user requested join, user favorite', + contextMenu: reqJoinFavContextMenu, + toolbarPrimary: reqJoinToolbarMore, + toolbarMore: favToolbarMore, + + searchToolbarPrimary: searchReqJoinToolbarPrimary +}; + +export const moderatedRequestedJoinNotFav = { + name: `site-moderated-req-join-not-fav-${Utils.random()}`, + description: 'moderated site, user requested join, not favorite', + contextMenu: reqJoinNotFavContextMenu, + toolbarPrimary: reqJoinToolbarMore, + toolbarMore: notFavToolbarMore, + + searchToolbarPrimary: searchReqJoinToolbarPrimary +}; + +export const siteInTrash = { + name: `deleted-site-${Utils.random()}`, + trashActions +}; + +export const site2InTrash = { + name: `deleted-site2-${Utils.random()}`, + trashActions +}; + diff --git a/e2e/suites/actions-available/special-permissions-available-actions.test.ts b/e2e/suites/actions-available/special-permissions-available-actions.test.ts deleted file mode 100755 index 5320290d4..000000000 --- a/e2e/suites/actions-available/special-permissions-available-actions.test.ts +++ /dev/null @@ -1,2009 +0,0 @@ -/*! - * @license - * Alfresco Example Content Application - * - * Copyright (C) 2005 - 2019 Alfresco Software Limited - * - * This file is part of the Alfresco Example Content Application. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is - * provided under the following open source license terms: - * - * The Alfresco Example Content Application is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * The Alfresco Example Content Application is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - */ - -import { LoginPage, BrowsingPage, SearchResultsPage } from '../../pages/pages'; -import { SITE_VISIBILITY, SITE_ROLES, FILES } from '../../configs'; -import { RepoClient } from '../../utilities/repo-client/repo-client'; -import { Utils } from '../../utilities/utils'; -import { Viewer } from '../../components/viewer/viewer'; - -describe('Special 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`; - let file1Id; - const file2 = `my-file2-${Utils.random()}.txt`; - 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; - const folder2 = `my-folder2-${Utils.random()}`; - let folder2Id; - - const docxFile = FILES.docxFile; - let docxFileId; - - const apis = { - admin: new RepoClient(), - userConsumer: new RepoClient(userConsumer, userConsumer), - userCollaborator: new RepoClient(userCollaborator, userCollaborator), - userDemoted: new RepoClient(userDemoted, userDemoted) - }; - - const loginPage = new LoginPage(); - const page = new BrowsingPage(); - const { dataTable, toolbar } = page; - const contextMenu = dataTable.menu; - const viewer = new Viewer(); - const viewerToolbar = viewer.toolbar; - const searchResultsPage = new SearchResultsPage(); - const { searchInput } = searchResultsPage.header; - - 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); - - file1Id = (await apis.admin.nodes.createFile(file1, docLibId)).entry.id; - file2Id = (await apis.admin.nodes.createFile(file2, docLibId)).entry.id; - file3Id = (await apis.admin.nodes.createFile(file3, docLibId)).entry.id; - folder1Id = (await apis.admin.nodes.createFolder(folder1, docLibId)).entry.id; - folder2Id = (await apis.admin.nodes.createFolder(folder2, docLibId)).entry.id; - - docxFileId = (await apis.admin.upload.uploadFile(docxFile, docLibId)).entry.id; - - 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); - - await apis.userConsumer.shared.shareFileById(file1Id); - await apis.userConsumer.shared.shareFileById(file2Id); - await apis.userConsumer.shared.shareFileById(docxFileId); - await apis.userConsumer.shared.shareFileById(file3Id); - 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 apis.userCollaborator.favorites.addFavoritesByIds('file', [file1Id, docxFileId]); - await apis.userCollaborator.favorites.waitForApi({ expect: 2 }); - - await apis.admin.favorites.addFavoriteById('file', fileLockedId); - - done(); - }); - - afterAll(async (done) => { - await apis.admin.sites.deleteSite(siteName); - done(); - }); - - describe('Consumer', () => { - beforeAll(async (done) => { - await loginPage.loginWith(userConsumer); - 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(); - done(); - }); - - 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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for selected files`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for selected files`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for selected files`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for selected files`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for selected files`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for selected files`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for selected files`); - - await toolbar.closeMoreMenu(); - }); - - it('on Search Results - [C291823]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor('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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for selected files`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for selected files`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for selected files`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('toolbar actions appear correctly 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 - [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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${file1}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${file1}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${file1}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${file1}`); - // TODO: change expect to false when ACA-2173 is done - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${file1}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${file1}`); - // TODO: change expect to false when ACA-1737 is done - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is displayed for ${file1}`); - - await toolbar.closeMoreMenu(); - }); - - it('on Search Results - [C291818]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor(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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${file1}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${file1}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${file1}`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('toolbar actions appear correctly 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 - [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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${folder1}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folder1}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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}`); - expect(await toolbar.isSharePresent()).toBe(false, `Share is displayed`); - - await toolbar.openMoreMenu(); - - // TODO: change expect to false when ACA-1737 is done - expect(await toolbar.menu.isEditFolderPresent()).toBe(true, `Edit folder is displayed for ${folder1}`); - 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${folder1}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folder1}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folder1}`); - - await toolbar.closeMoreMenu(); - }); - - it('on Search Results - [C291819]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFolders(); - await searchInput.searchFor(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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${folder1}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folder1}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folder1}`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('toolbar actions appear correctly 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 - [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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for selected files`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for selected files`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('on Search Results - [C291824]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor('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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('on Search Results - [C291825]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFolders(); - await searchInput.searchFor('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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('on Search Results - [C291826]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkFilesAndFolders(); - await searchInput.searchFor('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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isRemoveFavoritePresent()).toBe(true, `Remove 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.isUploadNewVersionPresent()).toBe(false, `Upload new version is 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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}`); - // TODO: change expect to false when ACA-2173 is done - expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version is 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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}`); - // TODO: change expect to false when ACA-1737 is done - expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version is 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.searchFor(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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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.isUploadNewVersionPresent()).toBe(false, `Upload new version is 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.isRemoveFavoritePresent()).toBe(true, `Remove 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.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.searchFor(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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.searchFor('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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.searchFor('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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.searchFor('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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed`); - expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`); - expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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 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.isRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('file from Search Results - [C306991]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor(docxFile); - await dataTable.waitForBody(); - 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - }); - }); - - describe('Collaborator', () => { - beforeAll(async (done) => { - await loginPage.loginWith(userCollaborator); - done(); - }); - - it('on File Libraries - [C297647]', 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(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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${file1}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('on Shared Files - [C297651]', 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(); - - // 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${file1}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('on Favorites - [C297652]', 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(); - - // 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: 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${file1}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('on Search Results - [C297653]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor(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(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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${file1}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version 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 - [C297654]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await viewerToolbar.closeMoreMenu(); - }); - - it('file opened from Shared Files - [C297655]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await viewerToolbar.closeMoreMenu(); - }); - - it('file opened from Favorites - [C297656]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await viewerToolbar.closeMoreMenu(); - }); - - it('file opened from Search Results - [C306992]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor(docxFile); - await dataTable.waitForBody(); - 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await viewerToolbar.closeMoreMenu(); - }); - }); - }); - - describe('File locked - lock owner : ', () => { - beforeAll(async (done) => { - await loginPage.loginWith(userDemoted); - done(); - }); - - it('on File Libraries - [C297657]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - 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.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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is not displayed'); - - await toolbar.closeMoreMenu(); - }); - - it('on Shared Files - [C297658]', async () => { - await page.clickSharedFilesAndWait(); - 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is not displayed'); - - await toolbar.closeMoreMenu(); - }); - - it('on Favorites - [C297659]', async () => { - await page.clickFavoritesAndWait(); - 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is not displayed'); - - await toolbar.closeMoreMenu(); - }); - - it('on Search Results - [C297660]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor(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`); - - 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version 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 - [C297661]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - await dataTable.doubleClickOnRowByName(fileLocked); - 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(true, `Cancel editing is not displayed`); - expect(await viewerToolbar.menu.isRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await viewerToolbar.closeMoreMenu(); - }); - - it('file opened from Shared Files - [C297662]', async () => { - await page.clickSharedFilesAndWait(); - await dataTable.doubleClickOnRowByName(fileLocked); - 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(true, `Cancel editing is not displayed`); - expect(await viewerToolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await viewerToolbar.closeMoreMenu(); - }); - - it('file opened from Favorites - [C297663]', async () => { - await page.clickFavoritesAndWait(); - await dataTable.doubleClickOnRowByName(fileLocked); - await viewer.waitForViewerToOpen(); - - 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); - expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed`); - expect(await viewerToolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await viewerToolbar.closeMoreMenu(); - }); - - it('file opened from Search Results - [C306993]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor(fileLocked); - await dataTable.waitForBody(); - await dataTable.doubleClickOnRowByName(fileLocked); - 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(true, `Cancel editing is not displayed`); - expect(await viewerToolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await viewerToolbar.closeMoreMenu(); - }); - }); - }); - - describe('File locked - manager : ', () => { - beforeAll(async (done) => { - await loginPage.loginWithAdmin(); - done(); - }); - - it('on File Libraries - [C297664]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - 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.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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, 'Upload new version is displayed'); - - await toolbar.closeMoreMenu(); - }); - - it('on Shared Files - [C297665]', async () => { - await page.clickSharedFilesAndWait(); - 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.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(true, `Delete is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); - // TODO: change expect to false when ACA-2173 is done - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is displayed'); - - await toolbar.closeMoreMenu(); - }); - - it('on Favorites - [C297666]', async () => { - await page.clickFavoritesAndWait(); - 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.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}`); - 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); - // TODO: change expect to false when ACA-1737 is done - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is displayed'); - - await toolbar.closeMoreMenu(); - }); - - it('on Search Results - [C297667]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor(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`); - - 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} in Search Results`); - expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${fileLocked} in Search Results`); - expect(await toolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, 'Upload new version is 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 - [C297671]', async () => { - await page.clickFileLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - await dataTable.doubleClickOnRowByName(fileLocked); - 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(true, `Cancel editing is not displayed`); - expect(await viewerToolbar.menu.isRemoveFavoritePresent()).toBe(true, `Remove 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(true, `Move is not displayed`); - expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`); - expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await viewerToolbar.closeMoreMenu(); - }); - - it('file opened from Shared Files - [C297672]', async () => { - await page.clickSharedFilesAndWait(); - await dataTable.doubleClickOnRowByName(fileLocked); - 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(true, `Cancel editing is not displayed`); - expect(await viewerToolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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(true, `Move is not displayed`); - expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`); - expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await viewerToolbar.closeMoreMenu(); - }); - - it('file opened from Favorites - [C297673]', async () => { - await page.clickFavoritesAndWait(); - await dataTable.doubleClickOnRowByName(fileLocked); - await viewer.waitForViewerToOpen(); - - 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); - expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed`); - expect(await viewerToolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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(true, `Move is not displayed`); - expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`); - expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await viewerToolbar.closeMoreMenu(); - }); - - it('file opened from Search Results - [C306994]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor(fileLocked); - await dataTable.waitForBody(); - await dataTable.doubleClickOnRowByName(fileLocked); - 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(true, `Cancel editing is not displayed`); - expect(await viewerToolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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 true when ACA-2319 is fixed - expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is not displayed`); - // TODO: change expect to true when ACA-2319 is fixed - expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is not displayed`); - expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); - expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await viewerToolbar.closeMoreMenu(); - }); - }); - }); -}); diff --git a/e2e/suites/actions-available/special-permissions/other-permissions.test.ts b/e2e/suites/actions-available/special-permissions/other-permissions.test.ts new file mode 100755 index 000000000..7a7af0e99 --- /dev/null +++ b/e2e/suites/actions-available/special-permissions/other-permissions.test.ts @@ -0,0 +1,841 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage, SearchResultsPage } from '../../../pages/pages'; +import { SITE_VISIBILITY, SITE_ROLES, FILES } from '../../../configs'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import { Viewer } from '../../../components/viewer/viewer'; + +describe('', () => { + const userConsumer = `consumer-${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`; + let file1Id; + const file2 = `my-file2-${Utils.random()}.txt`; + 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; + const folder2 = `my-folder2-${Utils.random()}`; + let folder2Id; + + const docxFile = FILES.docxFile; + let docxFileId; + + const apis = { + admin: new RepoClient(), + userConsumer: new RepoClient(userConsumer, userConsumer), + userCollaborator: new RepoClient(userCollaborator, userCollaborator), + userDemoted: new RepoClient(userDemoted, userDemoted) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + const { dataTable, toolbar } = page; + const viewer = new Viewer(); + const viewerToolbar = viewer.toolbar; + const searchResultsPage = new SearchResultsPage(); + const { searchInput } = searchResultsPage.header; + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username: userConsumer }); + 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); + + file1Id = (await apis.admin.nodes.createFile(file1, docLibId)).entry.id; + file2Id = (await apis.admin.nodes.createFile(file2, docLibId)).entry.id; + file3Id = (await apis.admin.nodes.createFile(file3, docLibId)).entry.id; + folder1Id = (await apis.admin.nodes.createFolder(folder1, docLibId)).entry.id; + folder2Id = (await apis.admin.nodes.createFolder(folder2, docLibId)).entry.id; + + docxFileId = (await apis.admin.upload.uploadFile(docxFile, docLibId)).entry.id; + + 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); + + await apis.userConsumer.shared.shareFileById(file1Id); + await apis.userConsumer.shared.shareFileById(file2Id); + await apis.userConsumer.shared.shareFileById(docxFileId); + await apis.userConsumer.shared.shareFileById(file3Id); + 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 apis.userCollaborator.favorites.addFavoritesByIds('file', [file1Id, docxFileId]); + await apis.userCollaborator.favorites.waitForApi({ expect: 2 }); + + await apis.admin.favorites.addFavoriteById('file', fileLockedId); + + done(); + }); + + afterAll(async (done) => { + await apis.admin.sites.deleteSite(siteName); + done(); + }); + + describe('Collaborator', () => { + beforeAll(async (done) => { + await loginPage.loginWith(userCollaborator); + done(); + }); + + it('on File Libraries - [C297647]', 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(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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${file1}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('on Shared Files - [C297651]', 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(); + + // 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${file1}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('on Favorites - [C297652]', 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(); + + // 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: 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${file1}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); + + await toolbar.closeMoreMenu(); + }); + + it('on Search Results - [C297653]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor(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(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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${file1}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version 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 - [C297654]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); + expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + + it('file opened from Shared Files - [C297655]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); + expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + + it('file opened from Favorites - [C297656]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); + expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + + it('file opened from Search Results - [C306992]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor(docxFile); + await dataTable.waitForBody(); + 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); + expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + }); + }); + + describe('File locked - lock owner : ', () => { + beforeAll(async (done) => { + await loginPage.loginWith(userDemoted); + done(); + }); + + it('on File Libraries - [C297657]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + 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.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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); + expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is not displayed'); + + await toolbar.closeMoreMenu(); + }); + + it('on Shared Files - [C297658]', async () => { + await page.clickSharedFilesAndWait(); + 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); + expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is not displayed'); + + await toolbar.closeMoreMenu(); + }); + + it('on Favorites - [C297659]', async () => { + await page.clickFavoritesAndWait(); + 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); + expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is not displayed'); + + await toolbar.closeMoreMenu(); + }); + + it('on Search Results - [C297660]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor(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`); + + 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); + expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version 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 - [C297661]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.doubleClickOnRowByName(fileLocked); + 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(true, `Cancel editing is not displayed`); + expect(await viewerToolbar.menu.isRemoveFavoritePresent()).toBe(true, `Remove 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`); + expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + + it('file opened from Shared Files - [C297662]', async () => { + await page.clickSharedFilesAndWait(); + await dataTable.doubleClickOnRowByName(fileLocked); + 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(true, `Cancel editing is not displayed`); + expect(await viewerToolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); + expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + + it('file opened from Favorites - [C297663]', async () => { + await page.clickFavoritesAndWait(); + await dataTable.doubleClickOnRowByName(fileLocked); + await viewer.waitForViewerToOpen(); + + 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed`); + expect(await viewerToolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); + expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + + it('file opened from Search Results - [C306993]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor(fileLocked); + await dataTable.waitForBody(); + await dataTable.doubleClickOnRowByName(fileLocked); + 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(true, `Cancel editing is not displayed`); + expect(await viewerToolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); + expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + }); + }); + + describe('File locked - manager : ', () => { + beforeAll(async (done) => { + await loginPage.loginWithAdmin(); + done(); + }); + + it('on File Libraries - [C297664]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + 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.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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); + expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, 'Upload new version is displayed'); + + await toolbar.closeMoreMenu(); + }); + + it('on Shared Files - [C297665]', async () => { + await page.clickSharedFilesAndWait(); + 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.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(true, `Delete is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); + // TODO: change expect to false when ACA-2173 is done + expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is displayed'); + + await toolbar.closeMoreMenu(); + }); + + it('on Favorites - [C297666]', async () => { + await page.clickFavoritesAndWait(); + 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.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}`); + 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); + // TODO: change expect to false when ACA-1737 is done + expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is displayed'); + + await toolbar.closeMoreMenu(); + }); + + it('on Search Results - [C297667]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor(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`); + + 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} in Search Results`); + expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${fileLocked} in Search Results`); + expect(await toolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); + expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed'); + expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, 'Upload new version is 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 - [C297671]', async () => { + await page.clickFileLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(siteName); + await dataTable.waitForHeader(); + await dataTable.doubleClickOnRowByName(fileLocked); + 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(true, `Cancel editing is not displayed`); + expect(await viewerToolbar.menu.isRemoveFavoritePresent()).toBe(true, `Remove 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(true, `Move is not displayed`); + expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + + it('file opened from Shared Files - [C297672]', async () => { + await page.clickSharedFilesAndWait(); + await dataTable.doubleClickOnRowByName(fileLocked); + 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(true, `Cancel editing is not displayed`); + expect(await viewerToolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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(true, `Move is not displayed`); + expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + + it('file opened from Favorites - [C297673]', async () => { + await page.clickFavoritesAndWait(); + await dataTable.doubleClickOnRowByName(fileLocked); + await viewer.waitForViewerToOpen(); + + 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.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`); + expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed`); + expect(await viewerToolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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(true, `Move is not displayed`); + expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`); + expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + + it('file opened from Search Results - [C306994]', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor(fileLocked); + await dataTable.waitForBody(); + await dataTable.doubleClickOnRowByName(fileLocked); + 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(true, `Cancel editing is not displayed`); + expect(await viewerToolbar.menu.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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 true when ACA-2319 is fixed + expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is not displayed`); + // TODO: change expect to true when ACA-2319 is fixed + expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is not displayed`); + expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`); + expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); + + await viewerToolbar.closeMoreMenu(); + }); + }); + }); +}); diff --git a/e2e/suites/actions-available/special-permissions/permissions-favorites.test.ts b/e2e/suites/actions-available/special-permissions/permissions-favorites.test.ts new file mode 100755 index 000000000..a645b9c8c --- /dev/null +++ b/e2e/suites/actions-available/special-permissions/permissions-favorites.test.ts @@ -0,0 +1,198 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage } from '../../../pages/pages'; +import { FILES, SITE_VISIBILITY, SITE_ROLES } from '../../../configs'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import * as data from './test-data-permissions'; +import * as testUtil from '../test-util'; + +describe('Special permissions actions : on Favorites : ', () => { + + const site = `site-private-${Utils.random()}`; + + const userConsumer = `consumer-${Utils.random()}`; + + let fileDocxFavId, fileFavId, fileDocxSharedFavId, fileSharedFavId, fileFavLockedId, fileSharedFavLockedId; + let folderFavId, folderFav2Id; + + const file3 = `file-3-${Utils.random()}.txt`; + let file3Id; + + const apis = { + admin: new RepoClient(), + userConsumer: new RepoClient(userConsumer, userConsumer) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username: userConsumer }); + + await apis.admin.sites.createSite(site, SITE_VISIBILITY.PRIVATE); + const docLibId = await apis.admin.sites.getDocLibId(site); + await apis.admin.sites.addSiteMember(site, userConsumer, SITE_ROLES.SITE_CONSUMER.ROLE); + + fileDocxFavId = (await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocxFav.name)).entry.id; + fileFavId = (await apis.admin.nodes.createFile(data.fileFav.name, docLibId)).entry.id; + fileDocxSharedFavId = (await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocxSharedFav.name)).entry.id; + fileSharedFavId = (await apis.admin.nodes.createFile(data.fileSharedFav.name, docLibId)).entry.id; + fileFavLockedId = (await apis.admin.nodes.createFile(data.fileFavLocked.name, docLibId)).entry.id; + fileSharedFavLockedId = (await apis.admin.nodes.createFile(data.fileSharedFavLocked.name, docLibId)).entry.id; + + file3Id = (await apis.admin.nodes.createFile(file3, docLibId)).entry.id; + + folderFavId = (await apis.admin.nodes.createFolder(data.folderFav.name, docLibId)).entry.id; + folderFav2Id = (await apis.admin.nodes.createFolder(data.folderFav2.name, docLibId)).entry.id; + await apis.userConsumer.favorites.addFavoriteById('folder', folderFavId); + await apis.userConsumer.favorites.addFavoriteById('folder', folderFav2Id); + + await apis.userConsumer.favorites.addFavoritesByIds('file', [ + fileDocxFavId, + fileFavId, + fileDocxSharedFavId, + fileSharedFavId, + fileFavLockedId, + fileSharedFavLockedId, + file3Id + ]); + + await apis.userConsumer.shared.shareFilesByIds([ + fileDocxSharedFavId, + fileSharedFavId, + fileSharedFavLockedId, + file3Id + ]); + + await apis.admin.nodes.lockFile(fileFavLockedId); + await apis.admin.nodes.lockFile(fileSharedFavLockedId); + + await apis.admin.nodes.setGranularPermission(file3Id, false, userConsumer, SITE_ROLES.SITE_MANAGER.ROLE); + + await apis.userConsumer.favorites.waitForApi({ expect: 9 }); + await apis.userConsumer.shared.waitForApi({ expect: 4 }); + + await loginPage.loginWith(userConsumer); + done(); + }); + + afterAll(async (done) => { + await apis.admin.sites.deleteSite(site); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickFavoritesAndWait(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + describe('on a file', () => { + + it('File Office, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxFav.name, data.fileDocxFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.favoritesToolbarMore); + await testUtil.checkContextMenu(data.fileDocxFav.name, data.fileDocxFav.favoritesContextMenu); + }); + + it('File favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFav.name, data.fileFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFav.name, data.fileFav.favoritesToolbarMore); + await testUtil.checkContextMenu(data.fileFav.name, data.fileFav.favoritesContextMenu); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxSharedFav.name, data.fileDocxSharedFav.favoritesToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.favoritesToolbarMore); + await testUtil.checkContextMenu(data.fileDocxSharedFav.name, data.fileDocxSharedFav.favoritesContextMenu); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFav.name, data.fileSharedFav.favoritesToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.favoritesToolbarMore); + await testUtil.checkContextMenu(data.fileSharedFav.name, data.fileSharedFav.favoritesContextMenu); + }); + + it('File favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFavLocked.name, data.fileFavLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.favoritesToolbarMore); + await testUtil.checkContextMenu(data.fileFavLocked.name, data.fileFavLocked.favoritesContextMenu); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFavLocked.name, data.fileSharedFavLocked.favoritesToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.favoritesToolbarMore); + await testUtil.checkContextMenu(data.fileSharedFavLocked.name, data.fileSharedFavLocked.favoritesContextMenu); + }); + }); + + describe('on a folder', () => { + it('Folder favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.folderFav.name, data.folderFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.folderFav.name, data.folderFav.favoritesToolbarMore); + await testUtil.checkContextMenu(data.folderFav.name, data.folderFav.favoritesContextMenu); + }); + }); + + describe('on multiple selection', () => { + it('multiple files - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileDocxFav.name, data.fileDocxSharedFav.name ], data.multipleSelAllFav.favoritesContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileDocxFav.name, data.fileDocxSharedFav.name ], data.multipleSelAllFav.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileDocxFav.name, data.fileDocxSharedFav.name ], data.multipleSelAllFav.favoritesToolbarMore); + }); + + it('multiple locked files - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileFavLocked.name, data.fileSharedFavLocked.name ], data.multipleSelAllFav.favoritesContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileFavLocked.name, data.fileSharedFavLocked.name ], data.multipleSelAllFav.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileFavLocked.name, data.fileSharedFavLocked.name ], data.multipleSelAllFav.favoritesToolbarMore); + }); + + it('multiple folders - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.folderFav.name, data.folderFav2.name ], data.multipleSelAllFav.favoritesContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.folderFav.name, data.folderFav2.name ], data.multipleSelAllFav.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.folderFav.name, data.folderFav2.name ], data.multipleSelAllFav.favoritesToolbarMore); + }); + + it('both files and folders - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileFav.name, data.folderFav.name ], data.multipleSelAllFav.favoritesContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileFav.name, data.folderFav.name ], data.multipleSelAllFav.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileFav.name, data.folderFav.name ], data.multipleSelAllFav.favoritesToolbarMore); + }); + + it('multiple files with different granular permissions - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileFav.name, file3 ], data.multipleSelAllFav.favoritesContextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileFav.name, file3 ], data.multipleSelAllFav.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileFav.name, file3 ], data.multipleSelAllFav.favoritesToolbarMore); + }); + }); + +}); diff --git a/e2e/suites/actions-available/special-permissions/permissions-my-libraries.test.ts b/e2e/suites/actions-available/special-permissions/permissions-my-libraries.test.ts new file mode 100755 index 000000000..bc6abb7a1 --- /dev/null +++ b/e2e/suites/actions-available/special-permissions/permissions-my-libraries.test.ts @@ -0,0 +1,266 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage } from '../../../pages/pages'; +import { FILES, SITE_VISIBILITY, SITE_ROLES } from '../../../configs'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import * as data from './test-data-permissions'; +import * as testUtil from '../test-util'; + +describe('Special permissions actions : on File Libraries : ', () => { + + const site = `site-private-${Utils.random()}`; + + const userConsumer = `consumer-${Utils.random()}`; + + const file3 = `file-3-${Utils.random()}.txt`; + let file3Id; + + let fileDocxFavId, fileFavId, fileDocxSharedId, fileDocxSharedFavId, fileSharedId, fileSharedFavId, fileLockedId, fileFavLockedId, fileSharedLockedId, fileSharedFavLockedId; + let folderFavId; + + const apis = { + admin: new RepoClient(), + userConsumer: new RepoClient(userConsumer, userConsumer) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + const { dataTable } = page; + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username: userConsumer }); + + await apis.admin.sites.createSite(site, SITE_VISIBILITY.PRIVATE); + const docLibId = await apis.admin.sites.getDocLibId(site); + await apis.admin.sites.addSiteMember(site, userConsumer, SITE_ROLES.SITE_CONSUMER.ROLE); + + await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocx.name ); + fileDocxFavId = (await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocxFav.name)).entry.id; + await apis.admin.nodes.createFile(data.file.name, docLibId); + fileFavId = (await apis.admin.nodes.createFile(data.fileFav.name, docLibId)).entry.id; + fileDocxSharedId = (await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocxShared.name)).entry.id; + fileDocxSharedFavId = (await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocxSharedFav.name)).entry.id; + fileSharedId = (await apis.admin.nodes.createFile(data.fileShared.name, docLibId)).entry.id; + fileSharedFavId = (await apis.admin.nodes.createFile(data.fileSharedFav.name, docLibId)).entry.id; + fileLockedId = (await apis.admin.nodes.createFile(data.fileLocked.name, docLibId)).entry.id; + fileFavLockedId = (await apis.admin.nodes.createFile(data.fileFavLocked.name, docLibId)).entry.id; + fileSharedLockedId = (await apis.admin.nodes.createFile(data.fileSharedLocked.name, docLibId)).entry.id; + fileSharedFavLockedId = (await apis.admin.nodes.createFile(data.fileSharedFavLocked.name, docLibId)).entry.id; + + file3Id = (await apis.admin.nodes.createFile(file3, docLibId)).entry.id; + + await apis.admin.nodes.createFolder(data.folder.name, docLibId); + folderFavId = (await apis.admin.nodes.createFolder(data.folderFav.name, docLibId)).entry.id; + done(); + }); + + beforeAll(async (done) => { + await apis.userConsumer.favorites.addFavoriteById('folder', folderFavId); + + await apis.userConsumer.favorites.addFavoritesByIds('file', [ + fileDocxFavId, + fileFavId, + fileDocxSharedFavId, + fileSharedFavId, + fileFavLockedId, + fileSharedFavLockedId, + file3Id + ]); + + await apis.userConsumer.shared.shareFilesByIds([ + fileDocxSharedId, + fileDocxSharedFavId, + fileSharedId, + fileSharedFavId, + fileSharedLockedId, + fileSharedFavLockedId, + file3Id + ]); + + await apis.admin.nodes.lockFile(fileLockedId); + await apis.admin.nodes.lockFile(fileFavLockedId); + await apis.admin.nodes.lockFile(fileSharedLockedId); + await apis.admin.nodes.lockFile(fileSharedFavLockedId); + + await apis.admin.nodes.setGranularPermission(file3Id, false, userConsumer, SITE_ROLES.SITE_MANAGER.ROLE); + + await apis.userConsumer.favorites.waitForApi({ expect: 8 }); + await apis.userConsumer.shared.waitForApi({ expect: 7 }); + done(); + }); + + beforeAll(async (done) => { + await loginPage.loginWith(userConsumer); + done(); + }); + + afterAll(async (done) => { + await apis.admin.sites.deleteSite(site); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.goToMyLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(site); + await dataTable.waitForHeader(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + describe('on a file', () => { + + it('File Office - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocx.name, data.fileDocx.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocx.name, data.fileDocx.toolbarMore); + await testUtil.checkContextMenu(data.fileDocx.name, data.fileDocx.contextMenu); + }); + + it('File Office, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxFav.name, data.fileDocxFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.toolbarMore); + await testUtil.checkContextMenu(data.fileDocxFav.name, data.fileDocxFav.contextMenu); + }); + + it('File simple - []', async () => { + await testUtil.checkToolbarPrimary(data.file.name, data.file.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.file.name, data.file.toolbarMore); + await testUtil.checkContextMenu(data.file.name, data.file.contextMenu); + }); + + it('File favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFav.name, data.fileFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFav.name, data.fileFav.toolbarMore); + await testUtil.checkContextMenu(data.fileFav.name, data.fileFav.contextMenu); + }); + + it('File Office, shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxShared.name, data.fileDocxShared.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.toolbarMore); + await testUtil.checkContextMenu(data.fileDocxShared.name, data.fileDocxShared.contextMenu); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxSharedFav.name, data.fileDocxSharedFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.toolbarMore); + await testUtil.checkContextMenu(data.fileDocxSharedFav.name, data.fileDocxSharedFav.contextMenu); + }); + + it('File shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileShared.name, data.fileShared.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileShared.name, data.fileShared.toolbarMore); + await testUtil.checkContextMenu(data.fileShared.name, data.fileShared.contextMenu); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFav.name, data.fileSharedFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.toolbarMore); + await testUtil.checkContextMenu(data.fileSharedFav.name, data.fileSharedFav.contextMenu); + }); + + it('File locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileLocked.name, data.fileLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileLocked.name, data.fileLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileLocked.name, data.fileLocked.contextMenu); + }); + + it('File favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFavLocked.name, data.fileFavLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileFavLocked.name, data.fileFavLocked.contextMenu); + }); + + it('File shared, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedLocked.name, data.fileSharedLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileSharedLocked.name, data.fileSharedLocked.contextMenu); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFavLocked.name, data.fileSharedFavLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileSharedFavLocked.name, data.fileSharedFavLocked.contextMenu); + }); + }); + + describe('on a folder', () => { + + it('Folder not favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.folder.name, data.folder.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.folder.name, data.folder.toolbarMore); + await testUtil.checkContextMenu(data.folder.name, data.folder.contextMenu); + }); + + it('Folder favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.folderFav.name, data.folderFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.folderFav.name, data.folderFav.toolbarMore); + await testUtil.checkContextMenu(data.folderFav.name, data.folderFav.contextMenu); + }); + }); + + describe('on multiple selection', () => { + it('multiple files - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileDocx.name, data.fileDocxSharedFav.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileDocx.name, data.fileDocxSharedFav.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileDocx.name, data.fileDocxSharedFav.name ], data.multipleSel.toolbarMore); + }); + + it('multiple files - all favorite - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileDocxFav.name, data.fileDocxSharedFav.name ], data.multipleSelAllFav.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileDocxFav.name, data.fileDocxSharedFav.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileDocxFav.name, data.fileDocxSharedFav.name ], data.multipleSelAllFav.toolbarMore); + }); + + it('multiple locked files - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.toolbarMore); + }); + + it('multiple folders - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.folderFav.name, data.folder.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.folderFav.name, data.folder.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.folderFav.name, data.folder.name ], data.multipleSel.toolbarMore); + }); + + it('both files and folders - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.file.name, data.folder.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.file.name, data.folder.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.file.name, data.folder.name ], data.multipleSel.toolbarMore); + }); + + it('multiple files with different granular permissions - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileDocxFav.name, file3 ], data.multipleSelAllFav.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileDocxFav.name, file3 ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileDocxFav.name, file3 ], data.multipleSelAllFav.toolbarMore); + }); + }); +}); diff --git a/e2e/suites/actions-available/special-permissions/permissions-search.test.ts b/e2e/suites/actions-available/special-permissions/permissions-search.test.ts new file mode 100755 index 000000000..6bcfdd7b4 --- /dev/null +++ b/e2e/suites/actions-available/special-permissions/permissions-search.test.ts @@ -0,0 +1,310 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage } from '../../../pages/pages'; +import { FILES, SITE_VISIBILITY, SITE_ROLES } from '../../../configs'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import * as data from './test-data-permissions'; +import * as testUtil from '../test-util'; + +describe('Special permissions actions : on Search Results : ', () => { + + const site = `site-private-${Utils.random()}`; + + const userConsumer = `consumer-${Utils.random()}`; + + const file3 = `file-3-${Utils.random()}.txt`; + let file3Id; + + let fileDocxFavId, fileFavId, fileDocxSharedId, fileDocxSharedFavId, fileSharedId, fileSharedFavId, fileLockedId, fileFavLockedId, fileSharedLockedId, fileSharedFavLockedId; + let folderFavId; + + const apis = { + admin: new RepoClient(), + userConsumer: new RepoClient(userConsumer, userConsumer) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + const { searchInput } = page.header; + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username: userConsumer }); + + await apis.admin.sites.createSite(site, SITE_VISIBILITY.PRIVATE); + const docLibId = await apis.admin.sites.getDocLibId(site); + await apis.admin.sites.addSiteMember(site, userConsumer, SITE_ROLES.SITE_CONSUMER.ROLE); + + await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocx.name ); + fileDocxFavId = (await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocxFav.name)).entry.id; + await apis.admin.nodes.createFile(data.file.name, docLibId); + fileFavId = (await apis.admin.nodes.createFile(data.fileFav.name, docLibId)).entry.id; + fileDocxSharedId = (await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocxShared.name)).entry.id; + fileDocxSharedFavId = (await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocxSharedFav.name)).entry.id; + fileSharedId = (await apis.admin.nodes.createFile(data.fileShared.name, docLibId)).entry.id; + fileSharedFavId = (await apis.admin.nodes.createFile(data.fileSharedFav.name, docLibId)).entry.id; + fileLockedId = (await apis.admin.nodes.createFile(data.fileLocked.name, docLibId)).entry.id; + fileFavLockedId = (await apis.admin.nodes.createFile(data.fileFavLocked.name, docLibId)).entry.id; + fileSharedLockedId = (await apis.admin.nodes.createFile(data.fileSharedLocked.name, docLibId)).entry.id; + fileSharedFavLockedId = (await apis.admin.nodes.createFile(data.fileSharedFavLocked.name, docLibId)).entry.id; + + file3Id = (await apis.admin.nodes.createFile(file3, docLibId)).entry.id; + + await apis.admin.nodes.createFolder(data.folder.name, docLibId); + folderFavId = (await apis.admin.nodes.createFolder(data.folderFav.name, docLibId)).entry.id; + await apis.userConsumer.favorites.addFavoriteById('folder', folderFavId); + + await apis.userConsumer.favorites.addFavoritesByIds('file', [ + fileDocxFavId, + fileFavId, + fileDocxSharedFavId, + fileSharedFavId, + fileFavLockedId, + fileSharedFavLockedId, + file3Id + ]); + + await apis.userConsumer.shared.shareFilesByIds([ + fileDocxSharedId, + fileDocxSharedFavId, + fileSharedId, + fileSharedFavId, + fileSharedLockedId, + fileSharedFavLockedId, + file3Id + ]); + + await apis.admin.nodes.lockFile(fileLockedId); + await apis.admin.nodes.lockFile(fileFavLockedId); + await apis.admin.nodes.lockFile(fileSharedLockedId); + await apis.admin.nodes.lockFile(fileSharedFavLockedId); + + await apis.admin.nodes.setGranularPermission(file3Id, false, userConsumer, SITE_ROLES.SITE_MANAGER.ROLE); + + await apis.userConsumer.favorites.waitForApi({ expect: 8 }); + await apis.userConsumer.shared.waitForApi({ expect: 7 }); + await apis.userConsumer.search.waitForApi(userConsumer, { expect: 13 }); + + await loginPage.loginWith(userConsumer); + done(); + }); + + afterAll(async (done) => { + await apis.admin.sites.deleteSite(site); + done(); + }); + + describe('on a file', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickPersonalFiles(); + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor('file-'); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('File Office - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocx.name, data.fileDocx.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocx.name, data.fileDocx.toolbarMore); + await testUtil.checkContextMenu(data.fileDocx.name, data.fileDocx.contextMenu); + }); + + it('File Office, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxFav.name, data.fileDocxFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.toolbarMore); + await testUtil.checkContextMenu(data.fileDocxFav.name, data.fileDocxFav.contextMenu); + }); + + it('File simple - []', async () => { + await testUtil.checkToolbarPrimary(data.file.name, data.file.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.file.name, data.file.toolbarMore); + await testUtil.checkContextMenu(data.file.name, data.file.contextMenu); + }); + + it('File favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFav.name, data.fileFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFav.name, data.fileFav.toolbarMore); + await testUtil.checkContextMenu(data.fileFav.name, data.fileFav.contextMenu); + }); + + it('File Office, shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxShared.name, data.fileDocxShared.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.toolbarMore); + await testUtil.checkContextMenu(data.fileDocxShared.name, data.fileDocxShared.contextMenu); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxSharedFav.name, data.fileDocxSharedFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.toolbarMore); + await testUtil.checkContextMenu(data.fileDocxSharedFav.name, data.fileDocxSharedFav.contextMenu); + }); + + it('File shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileShared.name, data.fileShared.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileShared.name, data.fileShared.toolbarMore); + await testUtil.checkContextMenu(data.fileShared.name, data.fileShared.contextMenu); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFav.name, data.fileSharedFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.toolbarMore); + await testUtil.checkContextMenu(data.fileSharedFav.name, data.fileSharedFav.contextMenu); + }); + + it('File locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileLocked.name, data.fileLocked.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileLocked.name, data.fileLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileLocked.name, data.fileLocked.contextMenu); + }); + + it('File favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileFavLocked.name, data.fileFavLocked.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileFavLocked.name, data.fileFavLocked.contextMenu); + }); + + it('File shared, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedLocked.name, data.fileSharedLocked.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileSharedLocked.name, data.fileSharedLocked.contextMenu); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFavLocked.name, data.fileSharedFavLocked.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.toolbarMore); + await testUtil.checkContextMenu(data.fileSharedFavLocked.name, data.fileSharedFavLocked.contextMenu); + }); + }); + + describe('on a folder', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickPersonalFiles(); + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFolders(); + await searchInput.searchFor('folder-'); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('Folder not favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.folder.name, data.folder.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.folder.name, data.folder.toolbarMore); + await testUtil.checkContextMenu(data.folder.name, data.folder.contextMenu); + }); + + it('Folder favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.folderFav.name, data.folderFav.searchToolbarPrimary); + await testUtil.checkToolbarMoreActions(data.folderFav.name, data.folderFav.toolbarMore); + await testUtil.checkContextMenu(data.folderFav.name, data.folderFav.contextMenu); + }); + }); + + describe('on multiple selection', () => { + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickPersonalFiles(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('multiple files - []', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor('file-'); + + await testUtil.checkMultipleSelContextMenu([ data.file.name, data.fileDocxShared.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.file.name, data.fileDocxShared.name ], data.multipleSel.searchToolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.file.name, data.fileDocxShared.name ], data.multipleSel.toolbarMore); + }); + + it('multiple files - all favorite - []', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor('file-'); + + await testUtil.checkMultipleSelContextMenu([ data.fileDocxFav.name, data.fileSharedFav.name ], data.multipleSelAllFav.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileDocxFav.name, data.fileSharedFav.name ], data.multipleSel.searchToolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileDocxFav.name, data.fileSharedFav.name ], data.multipleSelAllFav.toolbarMore); + }); + + it('multiple locked files - []', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor('file-'); + + await testUtil.checkMultipleSelContextMenu([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.searchToolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.toolbarMore); + }); + + it('multiple folders - []', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFolders(); + await searchInput.searchFor('folder-'); + + await testUtil.checkMultipleSelContextMenu([ data.folder.name, data.folderFav.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.folder.name, data.folderFav.name ], data.multipleSel.searchToolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.folder.name, data.folderFav.name ], data.multipleSel.toolbarMore); + }); + + it('both files and folders - []', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkFilesAndFolders(); + await searchInput.searchFor(`=${data.file.name} or =${data.folderFav.name}`); + + await testUtil.checkMultipleSelContextMenu([ data.file.name, data.folderFav.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.file.name, data.folderFav.name ], data.multipleSel.searchToolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.file.name, data.folderFav.name ], data.multipleSel.toolbarMore); + }); + + it('multiple files with different granular permissions - []', async () => { + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor('file-'); + + await testUtil.checkMultipleSelContextMenu([ data.fileDocxFav.name, file3 ], data.multipleSelAllFav.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileDocxFav.name, file3 ], data.multipleSel.searchToolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileDocxFav.name, file3 ], data.multipleSelAllFav.toolbarMore); + }); + }); +}); diff --git a/e2e/suites/actions-available/special-permissions/permissions-shared.test.ts b/e2e/suites/actions-available/special-permissions/permissions-shared.test.ts new file mode 100755 index 000000000..6f5404bc0 --- /dev/null +++ b/e2e/suites/actions-available/special-permissions/permissions-shared.test.ts @@ -0,0 +1,179 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage } from '../../../pages/pages'; +import { FILES, SITE_VISIBILITY, SITE_ROLES } from '../../../configs'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import * as data from './test-data-permissions'; +import * as testUtil from '../test-util'; + +describe('Special permissions actions : on Shared Files : ', () => { + + const site = `site-private-${Utils.random()}`; + + const userConsumer = `consumer-${Utils.random()}`; + + const file3 = `file-3-${Utils.random()}.txt`; + let file3Id; + + let fileDocxSharedId, fileDocxSharedFavId, fileSharedId, fileSharedFavId, fileSharedLockedId, fileSharedFavLockedId; + + const apis = { + admin: new RepoClient(), + userConsumer: new RepoClient(userConsumer, userConsumer) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username: userConsumer }); + + await apis.admin.sites.createSite(site, SITE_VISIBILITY.PRIVATE); + const docLibId = await apis.admin.sites.getDocLibId(site); + await apis.admin.sites.addSiteMember(site, userConsumer, SITE_ROLES.SITE_CONSUMER.ROLE); + + fileDocxSharedId = (await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocxShared.name)).entry.id; + fileDocxSharedFavId = (await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocxSharedFav.name)).entry.id; + fileSharedId = (await apis.admin.nodes.createFile(data.fileShared.name, docLibId)).entry.id; + fileSharedFavId = (await apis.admin.nodes.createFile(data.fileSharedFav.name, docLibId)).entry.id; + fileSharedLockedId = (await apis.admin.nodes.createFile(data.fileSharedLocked.name, docLibId)).entry.id; + fileSharedFavLockedId = (await apis.admin.nodes.createFile(data.fileSharedFavLocked.name, docLibId)).entry.id; + + file3Id = (await apis.admin.nodes.createFile(file3, docLibId)).entry.id; + + await apis.userConsumer.favorites.addFavoritesByIds('file', [ + fileDocxSharedFavId, + fileSharedFavId, + fileSharedFavLockedId, + file3Id + ]); + + await apis.userConsumer.shared.shareFilesByIds([ + fileDocxSharedId, + fileDocxSharedFavId, + fileSharedId, + fileSharedFavId, + fileSharedLockedId, + fileSharedFavLockedId, + file3Id + ]); + + await apis.admin.nodes.lockFile(fileSharedLockedId); + await apis.admin.nodes.lockFile(fileSharedFavLockedId); + + await apis.admin.nodes.setGranularPermission(file3Id, false, userConsumer, SITE_ROLES.SITE_MANAGER.ROLE); + + await apis.userConsumer.favorites.waitForApi({ expect: 7 }); + await apis.userConsumer.shared.waitForApi({ expect: 4 }); + + await loginPage.loginWith(userConsumer); + done(); + }); + + afterAll(async (done) => { + await apis + await apis.admin.sites.deleteSite(site); + done(); + }); + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickSharedFilesAndWait(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + describe('single selection', () => { + + it('File Office, shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxShared.name, data.fileDocxShared.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.sharedToolbarMore); + await testUtil.checkContextMenu(data.fileDocxShared.name, data.fileDocxShared.sharedContextMenu); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileDocxSharedFav.name, data.fileDocxSharedFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.sharedToolbarMore); + await testUtil.checkContextMenu(data.fileDocxSharedFav.name, data.fileDocxSharedFav.sharedContextMenu); + }); + + it('File shared - []', async () => { + await testUtil.checkToolbarPrimary(data.fileShared.name, data.fileShared.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileShared.name, data.fileShared.sharedToolbarMore); + await testUtil.checkContextMenu(data.fileShared.name, data.fileShared.sharedContextMenu); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFav.name, data.fileSharedFav.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.sharedToolbarMore); + await testUtil.checkContextMenu(data.fileSharedFav.name, data.fileSharedFav.sharedContextMenu); + }); + + it('File shared, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedLocked.name, data.fileSharedLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.sharedToolbarMore); + await testUtil.checkContextMenu(data.fileSharedLocked.name, data.fileSharedLocked.sharedContextMenu); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkToolbarPrimary(data.fileSharedFavLocked.name, data.fileSharedFavLocked.toolbarPrimary); + await testUtil.checkToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.sharedToolbarMore); + await testUtil.checkContextMenu(data.fileSharedFavLocked.name, data.fileSharedFavLocked.sharedContextMenu); + }); + }); + + describe('multiple selection', () => { + it('multiple files - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileShared.name, data.fileSharedFav.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileShared.name, data.fileSharedFav.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileShared.name, data.fileSharedFav.name ], data.multipleSel.toolbarMore); + }); + + it('multiple files - all favorite - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileSharedFav.name, data.fileSharedFavLocked.name ], data.multipleSelAllFav.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileSharedFav.name, data.fileSharedFavLocked.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileSharedFav.name, data.fileSharedFavLocked.name ], data.multipleSelAllFav.toolbarMore); + }); + + it('multiple locked files - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileSharedLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileSharedLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileSharedLocked.name, data.fileSharedFavLocked.name ], data.multipleSel.toolbarMore); + }); + + it('multiple files with different granular permissions - []', async () => { + await testUtil.checkMultipleSelContextMenu([ data.fileSharedFav.name, file3 ], data.multipleSelAllFav.contextMenu); + await testUtil.checkMultipleSelToolbarPrimary([ data.fileSharedFav.name, file3 ], data.multipleSel.toolbarPrimary); + await testUtil.checkMultipleSelToolbarMoreActions([ data.fileSharedFav.name, file3 ], data.multipleSelAllFav.toolbarMore); + }); + }); + +}); diff --git a/e2e/suites/actions-available/special-permissions/permissions-viewer.test.ts b/e2e/suites/actions-available/special-permissions/permissions-viewer.test.ts new file mode 100755 index 000000000..967536163 --- /dev/null +++ b/e2e/suites/actions-available/special-permissions/permissions-viewer.test.ts @@ -0,0 +1,401 @@ +/*! + * @license + * Alfresco Example Content Application + * + * Copyright (C) 2005 - 2019 Alfresco Software Limited + * + * This file is part of the Alfresco Example Content Application. + * If the software was purchased under a paid Alfresco license, the terms of + * the paid license agreement will prevail. Otherwise, the software is + * provided under the following open source license terms: + * + * The Alfresco Example Content Application is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Alfresco Example Content Application is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ + +import { LoginPage, BrowsingPage } from '../../../pages/pages'; +import { FILES, SITE_VISIBILITY, SITE_ROLES } from '../../../configs'; +import { RepoClient } from '../../../utilities/repo-client/repo-client'; +import { Utils } from '../../../utilities/utils'; +import * as data from './test-data-permissions'; +import * as testUtil from '../test-util'; + +describe('Special permissions actions : in the Viewer : ', () => { + + const site = `site-private-${Utils.random()}`; + + const userConsumer = `consumer-${Utils.random()}`; + + let fileDocxFavId, fileFavId, fileDocxSharedId, fileDocxSharedFavId, fileSharedId, fileSharedFavId, fileLockedId, fileFavLockedId, fileSharedLockedId, fileSharedFavLockedId; + + const apis = { + admin: new RepoClient(), + userConsumer: new RepoClient(userConsumer, userConsumer) + }; + + const loginPage = new LoginPage(); + const page = new BrowsingPage(); + const { dataTable } = page; + const { searchInput } = page.header; + + beforeAll(async (done) => { + await apis.admin.people.createUser({ username: userConsumer }); + + await apis.admin.sites.createSite(site, SITE_VISIBILITY.PRIVATE); + const docLibId = await apis.admin.sites.getDocLibId(site); + await apis.admin.sites.addSiteMember(site, userConsumer, SITE_ROLES.SITE_CONSUMER.ROLE); + + await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocx.name ); + fileDocxFavId = (await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocxFav.name)).entry.id; + await apis.admin.nodes.createFile(data.file.name, docLibId); + fileFavId = (await apis.admin.nodes.createFile(data.fileFav.name, docLibId)).entry.id; + fileDocxSharedId = (await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocxShared.name)).entry.id; + fileDocxSharedFavId = (await apis.admin.upload.uploadFileWithRename(FILES.docxFile, docLibId, data.fileDocxSharedFav.name)).entry.id; + fileSharedId = (await apis.admin.nodes.createFile(data.fileShared.name, docLibId)).entry.id; + fileSharedFavId = (await apis.admin.nodes.createFile(data.fileSharedFav.name, docLibId)).entry.id; + fileLockedId = (await apis.admin.nodes.createFile(data.fileLocked.name, docLibId)).entry.id; + fileFavLockedId = (await apis.admin.nodes.createFile(data.fileFavLocked.name, docLibId)).entry.id; + fileSharedLockedId = (await apis.admin.nodes.createFile(data.fileSharedLocked.name, docLibId)).entry.id; + fileSharedFavLockedId = (await apis.admin.nodes.createFile(data.fileSharedFavLocked.name, docLibId)).entry.id; + + done(); + }); + + beforeAll(async (done) => { + await apis.userConsumer.favorites.addFavoritesByIds('file', [ + fileDocxFavId, + fileFavId, + fileDocxSharedFavId, + fileSharedFavId, + fileFavLockedId, + fileSharedFavLockedId + ]); + + await apis.userConsumer.shared.shareFilesByIds([ + fileDocxSharedId, + fileDocxSharedFavId, + fileSharedId, + fileSharedFavId, + fileSharedLockedId, + fileSharedFavLockedId + ]); + + await apis.admin.nodes.lockFile(fileLockedId); + await apis.admin.nodes.lockFile(fileFavLockedId); + await apis.admin.nodes.lockFile(fileSharedLockedId); + await apis.admin.nodes.lockFile(fileSharedFavLockedId); + + await apis.userConsumer.favorites.waitForApi({ expect: 6 }); + await apis.userConsumer.shared.waitForApi({ expect: 6 }); + done(); + }); + + beforeAll(async (done) => { + await loginPage.loginWith(userConsumer); + done(); + }); + + afterAll(async (done) => { + await apis.admin.sites.deleteSite(site); + done(); + }); + + describe('file opened from File Libraries', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.goToMyLibrariesAndWait(); + await dataTable.doubleClickOnRowByName(site); + await dataTable.waitForHeader(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('File Office - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocx.name, data.fileDocx.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocx.name, data.fileDocx.viewerToolbarMore); + }); + + it('File Office, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxFav.name, data.fileDocxFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.viewerToolbarMore); + }); + + it('File simple - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.file.name, data.file.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.file.name, data.file.viewerToolbarMore); + }); + + it('File favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileFav.name, data.fileFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFav.name, data.fileFav.viewerToolbarMore); + }); + + it('File Office, shared - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxShared.name, data.fileDocxShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.viewerToolbarMore); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarMore); + }); + + it('File shared - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileShared.name, data.fileShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileShared.name, data.fileShared.viewerToolbarMore); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarMore); + }); + + it('File locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileLocked.name, data.fileLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileLocked.name, data.fileLocked.viewerToolbarMore); + }); + + it('File favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileFavLocked.name, data.fileFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.viewerToolbarMore); + }); + + it('File shared, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedLocked.name, data.fileSharedLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.viewerToolbarMore); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarMore); + }); + }); + + describe('file opened from Favorites', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickFavoritesAndWait(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('File Office, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxFav.name, data.fileDocxFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.viewerToolbarMore); + }); + + it('File favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileFav.name, data.fileFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFav.name, data.fileFav.viewerToolbarMore); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarMore); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarMore); + }); + + it('File favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileFavLocked.name, data.fileFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.viewerToolbarMore); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarMore); + }); + }); + + describe('file opened from Shared Files', () => { + + beforeEach(async (done) => { + await Utils.pressEscape(); + await page.clickSharedFilesAndWait(); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('File Office, shared - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxShared.name, data.fileDocxShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.viewerToolbarMore); + }); + + it('File Office, shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarMore); + }); + + it('File shared - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileShared.name, data.fileShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileShared.name, data.fileShared.viewerToolbarMore); + }); + + it('File shared, favorite - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarMore); + }); + + it('File shared, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedLocked.name, data.fileSharedLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.viewerToolbarMore); + }); + + it('File shared, favorite, locked - []', async () => { + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarMore); + }); + }); + + describe('file opened from Search Results', () => { + + beforeAll(async (done) => { + await Utils.pressEscape(); + await page.clickPersonalFiles(); + await searchInput.clickSearchButton(); + await searchInput.checkOnlyFiles(); + await searchInput.searchFor('file-'); + done(); + }); + + afterEach(async (done) => { + await Utils.pressEscape(); + done(); + }); + + it('File Office - []', async () => { + // await searchInput.clickSearchButton(); + // await searchInput.checkOnlyFiles(); + // await searchInput.searchFor('file-'); + + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocx.name, data.fileDocx.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocx.name, data.fileDocx.viewerToolbarMore); + }); + + it('File Office, favorite - []', async () => { + // await searchInput.clickSearchButton(); + // await searchInput.checkOnlyFiles(); + // await searchInput.searchFor('file-'); + + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxFav.name, data.fileDocxFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxFav.name, data.fileDocxFav.viewerToolbarMore); + }); + + it('File simple - []', async () => { + // await searchInput.clickSearchButton(); + // await searchInput.checkOnlyFiles(); + // await searchInput.searchFor('file-'); + + await testUtil.checkViewerToolbarPrimaryActions(data.file.name, data.file.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.file.name, data.file.viewerToolbarMore); + }); + + it('File favorite - []', async () => { + // await searchInput.clickSearchButton(); + // await searchInput.checkOnlyFiles(); + // await searchInput.searchFor('file-'); + + await testUtil.checkViewerToolbarPrimaryActions(data.fileFav.name, data.fileFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFav.name, data.fileFav.viewerToolbarMore); + }); + + it('File Office, shared - []', async () => { + // await searchInput.clickSearchButton(); + // await searchInput.checkOnlyFiles(); + // await searchInput.searchFor('file-'); + + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxShared.name, data.fileDocxShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxShared.name, data.fileDocxShared.viewerToolbarMore); + }); + + it('File Office, shared, favorite - []', async () => { + // await searchInput.clickSearchButton(); + // await searchInput.checkOnlyFiles(); + // await searchInput.searchFor('file-'); + + await testUtil.checkViewerToolbarPrimaryActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileDocxSharedFav.name, data.fileDocxSharedFav.viewerToolbarMore); + }); + + it('File shared - []', async () => { + // await searchInput.clickSearchButton(); + // await searchInput.checkOnlyFiles(); + // await searchInput.searchFor('file-'); + + await testUtil.checkViewerToolbarPrimaryActions(data.fileShared.name, data.fileShared.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileShared.name, data.fileShared.viewerToolbarMore); + }); + + it('File shared, favorite - []', async () => { + // await searchInput.clickSearchButton(); + // await searchInput.checkOnlyFiles(); + // await searchInput.searchFor('file-'); + + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFav.name, data.fileSharedFav.viewerToolbarMore); + }); + + it('File locked - []', async () => { + // await searchInput.clickSearchButton(); + // await searchInput.checkOnlyFiles(); + // await searchInput.searchFor('file-'); + + await testUtil.checkViewerToolbarPrimaryActions(data.fileLocked.name, data.fileLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileLocked.name, data.fileLocked.viewerToolbarMore); + }); + + it('File favorite, locked - []', async () => { + // await searchInput.clickSearchButton(); + // await searchInput.checkOnlyFiles(); + // await searchInput.searchFor('file-'); + + await testUtil.checkViewerToolbarPrimaryActions(data.fileFavLocked.name, data.fileFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileFavLocked.name, data.fileFavLocked.viewerToolbarMore); + }); + + it('File shared, locked - []', async () => { + // await searchInput.clickSearchButton(); + // await searchInput.checkOnlyFiles(); + // await searchInput.searchFor('file-'); + + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedLocked.name, data.fileSharedLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedLocked.name, data.fileSharedLocked.viewerToolbarMore); + }); + + it('File shared, favorite, locked - []', async () => { + // await searchInput.clickSearchButton(); + // await searchInput.checkOnlyFiles(); + // await searchInput.searchFor('file-'); + + await testUtil.checkViewerToolbarPrimaryActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarPrimary); + await testUtil.checkViewerToolbarMoreActions(data.fileSharedFavLocked.name, data.fileSharedFavLocked.viewerToolbarMore); + }); + }); +}); diff --git a/e2e/suites/actions-available/special-permissions/test-data-permissions.ts b/e2e/suites/actions-available/special-permissions/test-data-permissions.ts new file mode 100644 index 000000000..8ee488b66 --- /dev/null +++ b/e2e/suites/actions-available/special-permissions/test-data-permissions.ts @@ -0,0 +1,335 @@ +import { Utils } from '../../../utilities/utils'; + + +// ----- files ----- + +const consumerContextMenu = ['Share', 'Download', 'View', 'Favorite', 'Copy', 'Manage Versions']; +const consumerFavContextMenu = ['Share', 'Download', 'View', 'Remove Favorite', 'Copy', 'Manage Versions']; +const consumerSharedContextMenu = ['Shared Link Settings', 'Download', 'View', 'Favorite', 'Copy', 'Manage Versions']; +const consumerSharedFavContextMenu = ['Shared Link Settings', 'Download', 'View', 'Remove Favorite', 'Copy', 'Manage Versions']; + +const consumerToolbarPrimary = ['Share', 'Download', 'View', 'View Details', 'More Actions']; +const consumerSharedToolbarPrimary = ['Shared Link Settings', 'Download', 'View', 'View Details', 'More Actions']; + +const searchConsumerToolbarPrimary = ['Toggle search filter', 'Share', 'Download', 'View', 'View Details', 'More Actions']; +const searchConsumerSharedToolbarPrimary = ['Toggle search filter', 'Shared Link Settings', 'Download', 'View', 'View Details', 'More Actions']; + +const consumerToolbarMore = ['Favorite', 'Copy', 'Manage Versions']; +const consumerFavToolbarMore = ['Remove Favorite', 'Copy', 'Manage Versions']; + +// ---- VIEWER ---- + +const consumerViewerSharedToolbarPrimary = ['Activate full-screen mode', 'Shared Link Settings', 'Download', 'Print', 'View Details', 'More Actions']; +const consumerViewerToolbarPrimary = ['Activate full-screen mode', 'Share', 'Download', 'Print', 'View Details', 'More Actions']; +const consumerViewerFavToolbarMore = ['Remove Favorite', 'Copy', 'Manage Versions']; +const consumerViewerToolbarMore = ['Favorite', 'Copy', 'Manage Versions']; + +// ---- FAVORITES workarounds ---- + +// TODO: remove 'Move' and 'Delete' when ACA-1737 is done +// TODO: remove 'Upload New Version' when ACA-2175 is done +const favoritesConsumerToolbarMore = ['Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions']; +// TODO: remove 'Move' and 'Delete' when ACA-1737 is done +// TODO: remove 'Upload New Version' when ACA-2175 is done +const favoritesConsumerContextMenu = ['Share', 'Download', 'View', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions']; +// TODO: remove 'Move' and 'Delete' when ACA-1737 is done +// TODO: remove 'Upload New Version' when ACA-2175 is done +// TODO: change 'Share' into 'Shared Link Settings' when ACA-2175 is done +const favoritesConsumerSharedContextMenu = ['Share', 'Download', 'View', 'Upload New Version', 'Remove Favorite', 'Move', 'Copy', 'Delete', 'Manage Versions']; +// TODO: change 'Share' into 'Shared Link Settings' when ACA-2175 is done +const favoritesConsumerSharedToolbarPrimary = ['Share', 'Download', 'View', 'View Details', 'More Actions']; + + +// ---- SHARED FILES workaround ---- + +// TODO: remove 'Upload New Version' when ACA-2173 is done +const sharedConsumerToolbarMore = ['Upload New Version', 'Favorite', 'Copy', 'Manage Versions']; +// TODO: remove 'Upload New Version' when ACA-2173 is done +const sharedConsumerFavToolbarMore = ['Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions']; +// TODO: remove 'Upload New Version' when ACA-2173 is done +const sharedConsumerContextMenu = ['Shared Link Settings', 'Download', 'View', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions']; +// TODO: remove 'Upload New Version' when ACA-2173 is done +const sharedConsumerFavContextMenu = ['Shared Link Settings', 'Download', 'View', 'Upload New Version', 'Remove Favorite', 'Copy', 'Manage Versions']; + + +export const fileDocx = { + name: `file-docx-${Utils.random()}.docx`, + description: 'file not shared, not fav, office, not locked', + + contextMenu: consumerContextMenu, + toolbarPrimary: consumerToolbarPrimary, + toolbarMore: consumerToolbarMore, + viewerToolbarPrimary: consumerViewerToolbarPrimary, + viewerToolbarMore: consumerViewerToolbarMore, + + searchToolbarPrimary: searchConsumerToolbarPrimary +}; + +export const fileDocxFav = { + name: `file-docx-fav-${Utils.random()}.docx`, + description: 'file not shared, fav, office, not locked', + + contextMenu: consumerFavContextMenu, + toolbarPrimary: consumerToolbarPrimary, + toolbarMore: consumerFavToolbarMore, + viewerToolbarPrimary: consumerViewerToolbarPrimary, + viewerToolbarMore: consumerViewerFavToolbarMore, + + favoritesToolbarMore: favoritesConsumerToolbarMore, + favoritesContextMenu: favoritesConsumerContextMenu, + + searchToolbarPrimary: searchConsumerToolbarPrimary +}; + +export const file = { + name: `file-${Utils.random()}.txt`, + description: 'file not shared, not fav, not office, not locked', + + contextMenu: consumerContextMenu, + toolbarPrimary: consumerToolbarPrimary, + toolbarMore: consumerToolbarMore, + viewerToolbarPrimary: consumerViewerToolbarPrimary, + viewerToolbarMore: consumerViewerToolbarMore, + + searchToolbarPrimary: searchConsumerToolbarPrimary +}; + +export const fileFav = { + name: `file-fav-${Utils.random()}.txt`, + description: 'file not shared, fav, not office, not locked', + + contextMenu: consumerFavContextMenu, + toolbarPrimary: consumerToolbarPrimary, + toolbarMore: consumerFavToolbarMore, + viewerToolbarPrimary: consumerViewerToolbarPrimary, + viewerToolbarMore: consumerViewerFavToolbarMore, + + favoritesToolbarMore: favoritesConsumerToolbarMore, + favoritesContextMenu: favoritesConsumerContextMenu, + + searchToolbarPrimary: searchConsumerToolbarPrimary +}; + +export const fileDocxShared = { + name: `file-docx-shared-${Utils.random()}.docx`, + description: 'file shared, not fav, office, not locked', + + contextMenu: consumerSharedContextMenu, + toolbarPrimary: consumerSharedToolbarPrimary, + toolbarMore: consumerToolbarMore, + viewerToolbarPrimary: consumerViewerSharedToolbarPrimary, + viewerToolbarMore: consumerViewerToolbarMore, + + sharedToolbarMore: sharedConsumerToolbarMore, + sharedContextMenu: sharedConsumerContextMenu, + + searchToolbarPrimary: searchConsumerSharedToolbarPrimary +}; + +export const fileDocxSharedFav = { + name: `file-docx-shared-fav-${Utils.random()}.docx`, + description: 'file shared, fav, office, not locked', + + contextMenu: consumerSharedFavContextMenu, + toolbarPrimary: consumerSharedToolbarPrimary, + toolbarMore: consumerFavToolbarMore, + viewerToolbarPrimary: consumerViewerSharedToolbarPrimary, + viewerToolbarMore: consumerViewerFavToolbarMore, + + favoritesToolbarMore: favoritesConsumerToolbarMore, + favoritesContextMenu: favoritesConsumerSharedContextMenu, + favoritesToolbarPrimary: favoritesConsumerSharedToolbarPrimary, + + sharedToolbarMore: sharedConsumerFavToolbarMore, + sharedContextMenu: sharedConsumerFavContextMenu, + + searchToolbarPrimary: searchConsumerSharedToolbarPrimary +}; + +export const fileShared = { + name: `file-shared-${Utils.random()}.txt`, + description: 'file shared, not fav, not office, not locked', + + contextMenu: consumerSharedContextMenu, + toolbarPrimary: consumerSharedToolbarPrimary, + toolbarMore: consumerToolbarMore, + viewerToolbarPrimary: consumerViewerSharedToolbarPrimary, + viewerToolbarMore: consumerViewerToolbarMore, + + sharedToolbarMore: sharedConsumerToolbarMore, + sharedContextMenu: sharedConsumerContextMenu, + + searchToolbarPrimary: searchConsumerSharedToolbarPrimary +}; + +export const fileSharedFav = { + name: `file-shared-fav-${Utils.random()}.txt`, + description: 'file shared, fav, not office, not locked', + + contextMenu: consumerSharedFavContextMenu, + toolbarPrimary: consumerSharedToolbarPrimary, + toolbarMore: consumerFavToolbarMore, + viewerToolbarPrimary: consumerViewerSharedToolbarPrimary, + viewerToolbarMore: consumerViewerFavToolbarMore, + + favoritesToolbarMore: favoritesConsumerToolbarMore, + favoritesContextMenu: favoritesConsumerSharedContextMenu, + favoritesToolbarPrimary: favoritesConsumerSharedToolbarPrimary, + + sharedToolbarMore: sharedConsumerFavToolbarMore, + sharedContextMenu: sharedConsumerFavContextMenu, + + searchToolbarPrimary: searchConsumerSharedToolbarPrimary +}; + +export const fileLocked = { + name: `file-locked-${Utils.random()}.txt`, + description: 'file not shared, not fav, not office, locked', + + contextMenu: consumerContextMenu, + toolbarPrimary: consumerToolbarPrimary, + toolbarMore: consumerToolbarMore, + viewerToolbarPrimary: consumerViewerToolbarPrimary, + viewerToolbarMore: consumerViewerToolbarMore, + + searchToolbarPrimary: searchConsumerToolbarPrimary +}; + +export const fileFavLocked = { + name: `file-fav-locked-${Utils.random()}.txt`, + description: 'file not shared, fav, not office, locked', + + contextMenu: consumerFavContextMenu, + toolbarPrimary: consumerToolbarPrimary, + toolbarMore: consumerFavToolbarMore, + viewerToolbarPrimary: consumerViewerToolbarPrimary, + viewerToolbarMore: consumerViewerFavToolbarMore, + + favoritesToolbarMore: favoritesConsumerToolbarMore, + favoritesContextMenu: favoritesConsumerContextMenu, + + searchToolbarPrimary: searchConsumerToolbarPrimary +}; + +export const fileSharedLocked = { + name: `file-shared-locked-${Utils.random()}.txt`, + description: 'file shared, not fav, not office, locked', + + contextMenu: consumerSharedContextMenu, + toolbarPrimary: consumerSharedToolbarPrimary, + toolbarMore: consumerToolbarMore, + viewerToolbarPrimary: consumerViewerSharedToolbarPrimary, + viewerToolbarMore: consumerViewerToolbarMore, + + sharedToolbarMore: sharedConsumerToolbarMore, + sharedContextMenu: sharedConsumerContextMenu, + + searchToolbarPrimary: searchConsumerSharedToolbarPrimary +}; + +export const fileSharedFavLocked = { + name: `file-shared-fav-locked-${Utils.random()}.txt`, + description: 'file shared, fav, not office, locked', + + contextMenu: consumerSharedFavContextMenu, + toolbarPrimary: consumerSharedToolbarPrimary, + toolbarMore: consumerFavToolbarMore, + viewerToolbarPrimary: consumerViewerSharedToolbarPrimary, + viewerToolbarMore: consumerViewerFavToolbarMore, + + favoritesToolbarMore: favoritesConsumerToolbarMore, + favoritesContextMenu: favoritesConsumerSharedContextMenu, + favoritesToolbarPrimary: favoritesConsumerSharedToolbarPrimary, + + sharedToolbarMore: sharedConsumerFavToolbarMore, + sharedContextMenu: sharedConsumerFavContextMenu, + + searchToolbarPrimary: searchConsumerSharedToolbarPrimary +}; + +// ---- folders --- + +const consumerFolderContextMenu = ['Download', 'Favorite', 'Copy']; +const consumerFolderToolbarPrimary = ['Download', 'View Details', 'More Actions']; +const consumerFolderToolbarMore = ['Favorite', 'Copy']; +const searchConsumerFolderToolbarPrimary = ['Toggle search filter', 'Download', 'View Details', 'More Actions']; +const consumerFolderFavContextMenu = ['Download', 'Remove Favorite', 'Copy']; +const consumerFolderFavToolbarMore = ['Remove Favorite', 'Copy']; + +// ---- FAVORITES workarounds ---- + +// TODO: remove 'Edit', 'Move' and 'Delete' when ACA-1737 is done +const favoritesConsumerFolderContextMenu = ['Download', 'Edit', 'Remove Favorite', 'Move', 'Copy', 'Delete']; +// TODO: remove 'Edit', 'Move' and 'Delete' when ACA-1737 is done +const favoritesConsumerFolderToolbarMore = ['Edit', 'Remove Favorite', 'Move', 'Copy', 'Delete']; + +export const folder = { + name: `folder-${Utils.random()}`, + description: 'folder not favorite', + contextMenu: consumerFolderContextMenu, + toolbarPrimary: consumerFolderToolbarPrimary, + toolbarMore: consumerFolderToolbarMore, + + searchToolbarPrimary: searchConsumerFolderToolbarPrimary +}; + +export const folderFav = { + name: `folder-fav-${Utils.random()}`, + description: 'folder favorite', + contextMenu: consumerFolderFavContextMenu, + toolbarPrimary: consumerFolderToolbarPrimary, + toolbarMore: consumerFolderFavToolbarMore, + + favoritesContextMenu: favoritesConsumerFolderContextMenu, + favoritesToolbarMore: favoritesConsumerFolderToolbarMore, + + searchToolbarPrimary: searchConsumerFolderToolbarPrimary, +}; + +export const folderFav2 = { + name: `folder-fav-2-${Utils.random()}`, + description: 'folder 2 favorite' +}; + +// ---- multiple selection --- + +const multipleSelContextMenu = ['Download', 'Favorite', 'Copy']; +const multipleSelAllFavContextMenu = ['Download', 'Remove Favorite', 'Copy']; +const multipleSelToolbarPrimary = ['Download', 'View Details', 'More Actions']; +const multipleSelToolbarMore = ['Favorite', 'Copy']; +const multipleSelAllFavToolbarMore = ['Remove Favorite', 'Copy']; +const searchMultipleSelToolbarPrimary = ['Toggle search filter', 'Download', 'View Details', 'More Actions']; + +// ---- FAVORITES workarounds ---- + +// TODO: remove 'Move' and 'Delete' when ACA-1737 is done +const favoritesMultipleSelContextMenu = ['Download', 'Favorite', 'Move', 'Copy', 'Delete']; +// TODO: remove 'Move' and 'Delete' when ACA-1737 is done +const favoritesMultipleSelToolbarMore = ['Favorite', 'Move', 'Copy', 'Delete']; +// TODO: remove 'Move' and 'Delete' when ACA-1737 is done +const favoritesMultipleSelAllFavContextMenu = ['Download', 'Remove Favorite', 'Move', 'Copy', 'Delete']; +// TODO: remove 'Move' and 'Delete' when ACA-1737 is done +const favoritesMultipleSelAllFavToolbarMore = ['Remove Favorite', 'Move', 'Copy', 'Delete']; + + +export const multipleSel = { + contextMenu: multipleSelContextMenu, + toolbarPrimary: multipleSelToolbarPrimary, + toolbarMore: multipleSelToolbarMore, + + favoritesContextMenu: favoritesMultipleSelContextMenu, + favoritesToolbarMore: favoritesMultipleSelToolbarMore, + + searchToolbarPrimary: searchMultipleSelToolbarPrimary +} + +export const multipleSelAllFav = { + contextMenu: multipleSelAllFavContextMenu, + toolbarPrimary: multipleSelToolbarPrimary, + toolbarMore: multipleSelAllFavToolbarMore, + + favoritesContextMenu: favoritesMultipleSelAllFavContextMenu, + favoritesToolbarMore: favoritesMultipleSelAllFavToolbarMore, + + searchToolbarPrimary: searchMultipleSelToolbarPrimary +} diff --git a/e2e/suites/actions-available/test-util.ts b/e2e/suites/actions-available/test-util.ts new file mode 100644 index 000000000..1dc54aeb8 --- /dev/null +++ b/e2e/suites/actions-available/test-util.ts @@ -0,0 +1,102 @@ +import { BrowsingPage } from '../../pages/pages'; +import { Viewer } from '../../components/viewer/viewer'; +import { Utils } from '../../utilities/utils'; + +const page = new BrowsingPage(); +const { dataTable, toolbar } = page; +const contextMenu = dataTable.menu; +const viewer = new Viewer(); + + +export async function checkContextMenu(item: string, expectedContextMenu: string[]) { + await dataTable.rightClickOnItem(item); + const actualActions = await contextMenu.getMenuItems(); + expect(actualActions.length).toBe(expectedContextMenu.length, 'Incorrect number of context menu items'); + expect(JSON.stringify(actualActions)).toEqual(JSON.stringify(expectedContextMenu), 'Incorrect context menu actions'); +} + +export async function checkToolbarPrimary(item: string, expectedToolbarPrimary: string[]) { + await dataTable.selectItem(item); + + const actualPrimaryActions = await toolbar.getButtons(); + expect(actualPrimaryActions.length).toBe(expectedToolbarPrimary.length, 'Incorrect number of toolbar primary items'); + expect(JSON.stringify(actualPrimaryActions)).toEqual(JSON.stringify(expectedToolbarPrimary), 'Incorrect toolbar primary actions'); +} + +export async function checkToolbarMoreActions(item: string, expectedToolbarMore: string[]) { + await dataTable.selectItem(item); + + await toolbar.openMoreMenu(); + + const actualMoreActions = await toolbar.menu.getMenuItems(); + expect(actualMoreActions.length).toBe(expectedToolbarMore.length, 'Incorrect number of toolbar More menu items'); + expect(JSON.stringify(actualMoreActions)).toEqual(JSON.stringify(expectedToolbarMore), 'Incorrect toolbar More actions'); + + await toolbar.closeMoreMenu(); +} + +export async function checkMultipleSelContextMenu(items: string[], expectedContextMenu: string[]) { + await dataTable.selectMultipleItems(items); + await dataTable.rightClickOnMultipleSelection(); + + const actualActions = await contextMenu.getMenuItems(); + expect(actualActions.length).toBe(expectedContextMenu.length, 'Incorrect number of context menu items'); + expect(JSON.stringify(actualActions)).toEqual(JSON.stringify(expectedContextMenu), 'Incorrect context menu actions'); +} + +export async function checkMultipleSelToolbarPrimary(items: string[], expectedToolbarPrimary: string[]) { + await dataTable.selectMultipleItems(items); + + const actualPrimaryActions = await toolbar.getButtons(); + expect(actualPrimaryActions.length).toBe(expectedToolbarPrimary.length, 'Incorrect number of toolbar primary items'); + expect(JSON.stringify(actualPrimaryActions)).toEqual(JSON.stringify(expectedToolbarPrimary), 'Incorrect toolbar primary actions'); +} + +export async function checkMultipleSelToolbarMoreActions(items: string[], expectedToolbarMore: string[]) { + await dataTable.selectMultipleItems(items); + + await toolbar.openMoreMenu(); + + const actualMoreActions = await toolbar.menu.getMenuItems(); + expect(actualMoreActions.length).toBe(expectedToolbarMore.length, 'Incorrect number of toolbar More menu items'); + expect(JSON.stringify(actualMoreActions)).toEqual(JSON.stringify(expectedToolbarMore), 'Incorrect toolbar More actions'); + + await toolbar.closeMoreMenu(); +} + +export async function checkViewerToolbarPrimaryActions(item: string, expectedToolbarPrimary: string[]) { + await dataTable.doubleClickOnRowByName(item); + await viewer.waitForViewerToOpen(); + + let actualPrimaryActions = await toolbar.getButtons(); + + actualPrimaryActions = removeClosePreviousNextOldInfo(actualPrimaryActions); + + expect(actualPrimaryActions.length).toBe(expectedToolbarPrimary.length, 'Incorrect number of viewer toolbar primary items'); + expect(JSON.stringify(actualPrimaryActions)).toEqual(JSON.stringify(expectedToolbarPrimary), 'Incorrect viewer toolbar primary actions'); + + await Utils.pressEscape(); +} + +export async function checkViewerToolbarMoreActions(item: string, expectedToolbarMore: string[]) { + await dataTable.doubleClickOnRowByName(item); + await viewer.waitForViewerToOpen(); + await toolbar.openMoreMenu(); + + const actualMoreActions = await toolbar.menu.getMenuItems(); + + expect(actualMoreActions.length).toBe(expectedToolbarMore.length, 'Incorrect number of toolbar More menu items'); + expect(JSON.stringify(actualMoreActions)).toEqual(JSON.stringify(expectedToolbarMore), 'Incorrect toolbar More actions'); + + await toolbar.closeMoreMenu(); + await Utils.pressEscape(); +} + + +function removeClosePreviousNextOldInfo(actions: string[]) { + return actions.filter(elem => { + if ( (elem !== 'Close') && (elem !== 'Previous File') && (elem !== 'Next File') && (elem !== 'View details')) { + return elem; + } + }); +} diff --git a/e2e/suites/actions-available/toolbar-multiple-selection.test.ts b/e2e/suites/actions-available/toolbar-multiple-selection.test.ts deleted file mode 100755 index d151f7f9f..000000000 --- a/e2e/suites/actions-available/toolbar-multiple-selection.test.ts +++ /dev/null @@ -1,703 +0,0 @@ -/*! - * @license - * Alfresco Example Content Application - * - * Copyright (C) 2005 - 2019 Alfresco Software Limited - * - * This file is part of the Alfresco Example Content Application. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is - * provided under the following open source license terms: - * - * The Alfresco Example Content Application is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * The Alfresco Example Content Application is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - */ - -import { browser, protractor } from 'protractor'; -import { LoginPage, BrowsingPage, SearchResultsPage } from '../../pages/pages'; -import { SITE_VISIBILITY } from '../../configs'; -import { RepoClient } from '../../utilities/repo-client/repo-client'; -import { Utils } from '../../utilities/utils'; - -describe('Toolbar 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 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(), - user: new RepoClient(username, username) - }; - - const loginPage = new LoginPage(); - const page = new BrowsingPage(); - const { dataTable, toolbar } = page; - const searchResultsPage = new SearchResultsPage(); - const { searchInput } = searchResultsPage.header; - - beforeAll(async (done) => { - await apis.admin.people.createUser({ username }); - - 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; - 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.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: 6 }); - - await apis.user.nodes.deleteNodesById([fileForDelete1Id, fileForDelete2Id, folderForDelete1Id, folderForDelete2Id], false); - await apis.user.trashcan.waitForApi({ expect: 4 }); - - await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE); - const docLibId = await apis.user.sites.getDocLibId(siteName); - await apis.user.nodes.createFile(file1InSite, docLibId); - await apis.user.nodes.createFile(file2InSite, docLibId); - await apis.user.nodes.createFolder(folder1InSite, docLibId); - await apis.user.nodes.createFolder(folder2InSite, docLibId); - 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(); - }); - - afterAll(async (done) => { - await Promise.all([ - apis.user.nodes.deleteNodeById(parentId), - apis.user.trashcan.emptyTrash(), - apis.user.sites.deleteSite(siteName) - ]); - done(); - }); - - describe('on Personal Files', () => { - beforeEach(async (done) => { - 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'); - }); - - it('Select / unselect selected items by CMD+click - [C217110]', async () => { - await browser.actions().sendKeys(protractor.Key.COMMAND).perform(); - await dataTable.selectItem(file1); - await dataTable.selectItem(file2); - 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); - await browser.actions().sendKeys(protractor.Key.NULL).perform(); - - expect(await dataTable.countSelectedRows()).toEqual(2, 'incorrect selected rows number'); - }); - - 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.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.isRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when multiple locked files are selected - [C297619]', 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.isRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.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.isRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.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.isRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('on File Libraries', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.goToMyLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - 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.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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when multiple locked files are selected - [C297620]', 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('on Shared Files', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickSharedFilesAndWait(); - 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when multiple locked files are selected - [C297623]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('on Recent Files', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickRecentFilesAndWait(); - 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when multiple locked files are selected - [C297624]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('on Favorites', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickFavoritesAndWait(); - 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when multiple locked files are selected - [C297625]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('on Trash', () => { - beforeEach(async (done) => { - await page.clickTrashAndWait(); - 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'); - }); - }); - - describe('on Search Results', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickPersonalFilesAndWait(); - 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(); - await searchInput.searchFor('my-fileInSite'); - 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.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.isToggleFavoritePresent()).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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when multiple locked files are selected - [C297626]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor('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.isToggleFavoritePresent()).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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when multiple folders are selected - [C291821]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFolders(); - await searchInput.searchFor('my-folderInSite'); - 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.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.isToggleFavoritePresent()).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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when both files and folders are selected - [C291822]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkFilesAndFolders(); - await searchInput.searchFor('my-f'); - 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.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.isToggleFavoritePresent()).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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`); - - await toolbar.closeMoreMenu(); - }); - }); -}); diff --git a/e2e/suites/actions-available/toolbar-single-selection.test.ts b/e2e/suites/actions-available/toolbar-single-selection.test.ts deleted file mode 100755 index 6d65d9609..000000000 --- a/e2e/suites/actions-available/toolbar-single-selection.test.ts +++ /dev/null @@ -1,760 +0,0 @@ -/*! - * @license - * Alfresco Example Content Application - * - * Copyright (C) 2005 - 2019 Alfresco Software Limited - * - * This file is part of the Alfresco Example Content Application. - * If the software was purchased under a paid Alfresco license, the terms of - * the paid license agreement will prevail. Otherwise, the software is - * provided under the following open source license terms: - * - * The Alfresco Example Content Application is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * The Alfresco Example Content Application is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Alfresco. If not, see . - */ - -import { LoginPage, BrowsingPage, SearchResultsPage } from '../../pages/pages'; -import { SITE_VISIBILITY } from '../../configs'; -import { RepoClient } from '../../utilities/repo-client/repo-client'; -import { Utils } from '../../utilities/utils'; - -describe('Toolbar actions - single selection : ', () => { - const username = `user-${Utils.random()}`; - - const fileUser = `fileUser-${Utils.random()}.txt`; let fileUserId; - 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()}`; - const adminModerated = `admin-moderated-${Utils.random()}`; - - const apis = { - admin: new RepoClient(), - user: new RepoClient(username, username) - }; - - const loginPage = new LoginPage(); - const page = new BrowsingPage(); - const { dataTable, toolbar } = page; - const searchResultsPage = new SearchResultsPage(); - const { searchInput } = searchResultsPage.header; - - beforeAll(async (done) => { - await apis.admin.people.createUser({ username }); - - fileUserId = (await apis.user.nodes.createFile(fileUser)).entry.id; - 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.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.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); - - await apis.admin.sites.createSite(adminPublic); - await apis.admin.sites.createSite(adminModerated, SITE_VISIBILITY.MODERATED); - await apis.user.favorites.addFavoriteById('site', adminPublic); - await apis.user.favorites.addFavoriteById('site', adminModerated); - await apis.user.sites.requestToJoin(adminModerated); - - await apis.user.queries.waitForSites(siteName, { expect: 1 }); - - await loginPage.loginWith(username); - done(); - }); - - afterAll(async (done) => { - await Promise.all([ - apis.user.nodes.deleteNodeById(fileUserId), - apis.user.nodes.deleteNodeById(folderUserId), - apis.user.sites.deleteSite(siteName), - apis.admin.sites.deleteSite(adminPublic), - apis.admin.sites.deleteSite(adminModerated), - apis.user.trashcan.emptyTrash() - ]); - done(); - }); - - describe('on Personal Files', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await dataTable.clearSelection(); - await page.clickPersonalFilesAndWait(); - 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'); - }); - - it('actions are not displayed when no item is selected - [C213120]', async () => { - expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); - }); - - 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.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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileUser}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload New Version is not displayed for ${fileUser}`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when a locked file is selected - [C297612]', 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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version 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}`); - - await toolbar.openMoreMenu(); - - expect(await toolbar.menu.isEditFolderPresent()).toBe(true, `Edit folder is not displayed for ${folderUser}`); - 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.isRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${folderUser}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folderUser}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folderUser}`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('on File Libraries', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.goToMyLibrariesAndWait(); - await dataTable.doubleClickOnRowByName(siteName); - await dataTable.waitForHeader(); - 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.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}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileInSite}`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when a locked file is selected - [C297614]', 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}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version 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}`); - - await toolbar.openMoreMenu(); - - expect(await toolbar.menu.isEditFolderPresent()).toBe(true, `Edit folder is not displayed for ${folderInSite}`); - 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}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folderInSite}`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('on a library', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - done(); - }); - - afterAll(async (done) => { - await Utils.pressEscape(); - await page.clickPersonalFiles(); - done(); - }); - - 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${adminModerated}`); - - await toolbar.closeMoreMenu(); - }); - - it('Available actions for a library - Search Results - [C290084]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkLibraries(); - await searchInput.searchFor(siteName); - 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${siteName}`); - - await toolbar.closeMoreMenu(); - }); - - it('Available actions for a library - Search Results - user is not a member - [C290085]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkLibraries(); - await searchInput.searchFor(adminPublic); - 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${adminPublic}`); - - await toolbar.closeMoreMenu(); - }); - - it('Available actions for a moderated library - Search Results - user requested to join - [C290086]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkLibraries(); - await searchInput.searchFor(adminModerated); - 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${adminModerated}`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('on Shared Files', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickSharedFilesAndWait(); - 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileUser}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileUser}`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when a locked file is selected - [C297615]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileLocked}`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('on Recent Files', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickRecentFilesAndWait(); - 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileUser}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileUser}`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when a locked file is selected - [C297616]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileLocked}`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('on Favorites', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickFavoritesAndWait(); - 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileUser}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileUser}`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when a locked file is selected - [C297617]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version 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}`); - - await toolbar.openMoreMenu(); - - expect(await toolbar.menu.isEditFolderPresent()).toBe(true, `Edit folder is not displayed for ${folderUser}`); - 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${folderUser}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folderUser}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folderUser}`); - - await toolbar.closeMoreMenu(); - }); - }); - - describe('on Trash', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickTrashAndWait(); - 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.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.isPermanentlyDeletePresent()).toBe(true, `Permanently delete is displayed for folder`); - expect(await toolbar.isRestorePresent()).toBe(true, `Restore is not displayed for folder`); - }); - }); - - describe('on Search Results', () => { - beforeEach(async (done) => { - await Utils.pressEscape(); - await page.clickPersonalFilesAndWait(); - done(); - }); - - afterAll(async (done) => { - await Utils.pressEscape(); - done(); - }); - - it('nodes actions are not displayed when no item is selected - [C291815]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkFilesAndFolders(); - await searchInput.searchFor(fileInSite); - - expect(await toolbar.isToggleSearchFiltersPresent()).toBe(true, `Search filter toggle is not displayed`); - expect(await toolbar.numberOfAvailableActions()).toBe(1, `more than 1 action is present`); - }); - - it('correct actions appear when a file is selected - [C291816]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor(fileUser); - 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.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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileUser}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileUser}`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when a locked file is selected - [C297618]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFiles(); - await searchInput.searchFor(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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileLocked}`); - - await toolbar.closeMoreMenu(); - }); - - it('correct actions appear when a folder is selected - [C291817]', async () => { - await searchInput.clickSearchButton(); - await searchInput.checkOnlyFolders(); - await searchInput.searchFor(folderUser); - 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}`); - - await toolbar.openMoreMenu(); - - expect(await toolbar.menu.isEditFolderPresent()).toBe(true, `Edit folder is not displayed for ${folderUser}`); - 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove favorite is not displayed for ${folderUser}`); - expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folderUser}`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folderUser}`); - - await toolbar.closeMoreMenu(); - }); - }); -}); diff --git a/e2e/suites/actions/library-actions.test.ts b/e2e/suites/actions/library-actions.test.ts index c7d0e01b8..0bf77ad99 100755 --- a/e2e/suites/actions/library-actions.test.ts +++ b/e2e/suites/actions/library-actions.test.ts @@ -250,7 +250,7 @@ describe('Library actions', () => { expect(await confirmDialog.isCancelEnabled()).toBe(true, 'Cancel button is not enabled'); }); - it('Cancel Leave library - [C290111]', async () => { + it('Cancel Leave Library - [C290111]', async () => { await page.goToMyLibrariesAndWait(); await dataTable.selectItem(sitePublic5Admin); await toolbar.clickLeave(); diff --git a/e2e/suites/viewer/viewer-actions.test.ts b/e2e/suites/viewer/viewer-actions.test.ts index 18bc83d1a..11777415f 100755 --- a/e2e/suites/viewer/viewer-actions.test.ts +++ b/e2e/suites/viewer/viewer-actions.test.ts @@ -66,7 +66,7 @@ describe('Viewer actions', () => { 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`; const filePersonalFiles = docxFile2; let filePersonalFilesId; @@ -80,7 +80,7 @@ describe('Viewer actions', () => { 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; + filePersonalFilesId = (await apis.user.upload.uploadFile(docxFile2, parentId)).entry.id; await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxPersonalFiles); await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfPersonalFiles); @@ -91,7 +91,7 @@ describe('Viewer actions', () => { await apis.user.nodes.lockFile(fileForCancelEditingId); await apis.user.nodes.lockFile(fileForUploadNewVersionId); - await apis.user.nodes.lockFile(docxLockedId); + await loginPage.loginWith(username); done(); @@ -116,58 +116,6 @@ describe('Viewer actions', () => { done(); }); - it('Correct actions appear in the viewer toolbar - [C282025]', async () => { - await dataTable.doubleClickOnRowByName(docxPersonalFiles); - 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('Correct actions appear in the viewer toolbar for a locked file - [C297583]', 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await toolbar.closeMoreMenu(); - }); - it('Download action - [C268129]', async () => { await dataTable.doubleClickOnRowByName(docxPersonalFiles); await viewer.waitForViewerToOpen(); @@ -321,7 +269,7 @@ describe('Viewer actions', () => { 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`; const fileLibraries = docxFile2; let fileLibrariesId; @@ -335,9 +283,9 @@ 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; + fileLibrariesId = (await apis.user.upload.uploadFile(docxFile2, docLibId)).entry.id; - await apis.user.nodes.lockFile(docxLockedId); + await apis.user.upload.uploadFileWithRename(xlsxFileForMove, docLibId, xlsxLibraries); await apis.user.upload.uploadFileWithRename(pdfFileForDelete, docLibId, pdfLibraries); @@ -371,58 +319,6 @@ describe('Viewer actions', () => { done(); }); - it('Correct actions appear in the viewer toolbar - [C297587]', 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('Correct actions appear in the viewer toolbar for a locked file - [C297588]', 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version 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'); @@ -552,7 +448,7 @@ describe('Viewer actions', () => { 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`; const fileRecent = docxFile2; let fileRecentId; @@ -566,7 +462,7 @@ 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; + fileRecentId = (await apis.user.upload.uploadFile(docxFile2, parentId)).entry.id; fileForEditOfflineId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, fileForEditOffline)).entry.id; @@ -576,7 +472,7 @@ describe('Viewer actions', () => { await apis.user.nodes.lockFile(fileForCancelEditingId); await apis.user.nodes.lockFile(fileForUploadNewVersionId); - await apis.user.nodes.lockFile(docxLockedId); + await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxRecentFiles); await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfRecentFiles); @@ -603,58 +499,6 @@ describe('Viewer actions', () => { done(); }); - it('Correct actions appear in the viewer toolbar - [C297592]', 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.isToggleFavoritePresent()).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.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('Correct actions appear in the viewer toolbar for a locked file - [C297593]', 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.isToggleFavoritePresent()).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.isUploadNewVersionPresent()).toBe(true, `Upload new version 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'); @@ -785,7 +629,7 @@ describe('Viewer actions', () => { 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; const fileShared = docxFile2; let fileSharedId; @@ -798,7 +642,7 @@ 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; fileSharedId = (await apis.user.upload.uploadFile(docxFile2, parentId)).entry.id; @@ -809,9 +653,9 @@ describe('Viewer actions', () => { await apis.user.nodes.lockFile(fileForCancelEditingId); await apis.user.nodes.lockFile(fileForUploadNewVersionId); - await apis.user.nodes.lockFile(docxLockedId); - await apis.user.shared.shareFilesByIds([docxFileId, docxLockedId, xlsxFileId, pdfFileId, fileForCancelEditingId, fileForEditOfflineId, fileForUploadNewVersionId, fileSharedId]) + + await apis.user.shared.shareFilesByIds([docxFileId, xlsxFileId, pdfFileId, fileForCancelEditingId, fileForEditOfflineId, fileForUploadNewVersionId, fileSharedId]) await apis.user.shared.waitForApi({expect: 8}); await loginPage.loginWith(username); @@ -835,58 +679,6 @@ describe('Viewer actions', () => { done(); }); - it('Correct actions appear in the viewer toolbar - [C297597]', 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('Correct actions appear in the viewer toolbar for a locked file - [C297598]', 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`); - expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version 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'); @@ -1019,7 +811,7 @@ describe('Viewer actions', () => { 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; const fileFav = docxFile2; let fileFavId; @@ -1032,7 +824,7 @@ 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; fileFavId = (await apis.user.upload.uploadFile(docxFile2, parentId)).entry.id; @@ -1043,9 +835,9 @@ describe('Viewer actions', () => { await apis.user.nodes.lockFile(fileForCancelEditingId); await apis.user.nodes.lockFile(fileForUploadNewVersionId); - await apis.user.nodes.lockFile(docxLockedId); - await apis.user.favorites.addFavoritesByIds('file', [docxFileId, docxLockedId, xlsxFileId, pdfFileId, fileForEditOfflineId, fileForCancelEditingId, fileForUploadNewVersionId, fileFavId]) + + await apis.user.favorites.addFavoritesByIds('file', [docxFileId, xlsxFileId, pdfFileId, fileForEditOfflineId, fileForCancelEditingId, fileForUploadNewVersionId, fileFavId]) await apis.user.favorites.waitForApi({expect: 8}); await loginPage.loginWith(username); @@ -1069,58 +861,6 @@ describe('Viewer actions', () => { done(); }); - it('Correct actions appear in the viewer toolbar - [C297599]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`); - - await toolbar.closeMoreMenu(); - }); - - it('Correct actions appear in the viewer toolbar for a locked file - [C297600]', 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.isToggleRemoveFavoritePresent()).toBe(true, `Remove 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.isUploadNewVersionPresent()).toBe(true, `Upload new version 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/favorites/favorites-api.ts b/e2e/utilities/repo-client/apis/favorites/favorites-api.ts index 3f119bb04..d884d925c 100755 --- a/e2e/utilities/repo-client/apis/favorites/favorites-api.ts +++ b/e2e/utilities/repo-client/apis/favorites/favorites-api.ts @@ -67,7 +67,7 @@ export class FavoritesApi extends RepoApi { try { return await this.favoritesApi.createFavorite('-me-', data); } catch (error) { - // console.log('--- add favorite by id catch '); + console.log('--- add favorite by id catch '); } } @@ -116,7 +116,7 @@ export class FavoritesApi extends RepoApi { try { return await this.favoritesApi.deleteFavorite('-me-', nodeId); } catch (error) { - // console.log('--- remove favorite by id catch '); + console.log('--- remove favorite by id catch ', error); } } diff --git a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts index e575686bb..0cf4613bf 100755 --- a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts +++ b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts @@ -167,7 +167,11 @@ export class NodesApi extends RepoApi { } async createFile(name: string, parentId: string = '-my-', title: string = '', description: string = '', author: string = '', majorVersion: boolean = true) { + try { return await this.createNode('cm:content', name, parentId, title, description, null, author, majorVersion); + } catch (error) { + console.log('==== catch createFile: ', error); + } } async createImage(name: string, parentId: string = '-my-', title: string = '', description: string = '') { diff --git a/e2e/utilities/repo-client/apis/sites/sites-api.ts b/e2e/utilities/repo-client/apis/sites/sites-api.ts index 36e3bd16b..037f5c541 100755 --- a/e2e/utilities/repo-client/apis/sites/sites-api.ts +++ b/e2e/utilities/repo-client/apis/sites/sites-api.ts @@ -74,8 +74,12 @@ export class SitesApi extends RepoApi { id: siteId || title }; - await this.apiAuth(); + try { + await this.apiAuth(); return await this.sitesApi.createSite(site); + } catch (error) { + console.log('=== create site catch: ', error); + } } async createSites(titles: string[], visibility?: string) { diff --git a/e2e/utilities/repo-client/apis/upload/upload-api.ts b/e2e/utilities/repo-client/apis/upload/upload-api.ts index 48d91a029..b7e9cd5b9 100644 --- a/e2e/utilities/repo-client/apis/upload/upload-api.ts +++ b/e2e/utilities/repo-client/apis/upload/upload-api.ts @@ -54,8 +54,15 @@ export class UploadApi extends RepoApi { nodeType: 'cm:content' }; - await this.apiAuth(); - return await this.upload.uploadFile(file, '', parentFolderId, null, opts); + try { + await this.apiAuth(); + return await this.upload.uploadFile(file, '', parentFolderId, null, opts); + } catch (error) { + console.log('=== catch upload file with rename: ', error); + } + + + } } diff --git a/protractor.conf.js b/protractor.conf.js index d22f17094..3dbec5141 100755 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -43,7 +43,7 @@ exports.config = { './e2e/suites/navigation/*.test.ts', './e2e/suites/pagination/*.test.ts', './e2e/suites/search/*.test.ts', - './e2e/suites/actions-available/*.test.ts', + './e2e/suites/actions-available/**/*.test.ts', './e2e/suites/actions/*.test.ts', './e2e/suites/viewer/*.test.ts', './e2e/suites/info-drawer/*.test.ts', @@ -57,7 +57,7 @@ exports.config = { navigation: './e2e/suites/navigation/*.test.ts', pagination: './e2e/suites/pagination/*.test.ts', search: './e2e/suites/search/*.test.ts', - actionsAvailable: './e2e/suites/actions-available/*.test.ts', + actionsAvailable: './e2e/suites/actions-available/**/*.test.ts', addRemoveContent: [ './e2e/suites/actions/new-menu.test.ts', './e2e/suites/actions/create-folder.test.ts', diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 3eb732f2d..9f798f6ef 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -209,7 +209,7 @@ "FULLSCREEN": "Activate full-screen mode", "JOIN": "Join", "CANCEL_JOIN": "Cancel Join Request", - "LEAVE": "Leave library", + "LEAVE": "Leave Library", "EDIT_OFFLINE": "Edit Offline", "EDIT_OFFLINE_CANCEL": "Cancel Editing" },