/*!
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Alfresco Example Content Application
*
* 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
* from Hyland Software. If not, see .
*/
import { MyLibrariesPage, test, Utils } from '@alfresco/aca-playwright-shared';
import * as testData from '@alfresco/aca-playwright-shared';
import { expect } from '@playwright/test';
async function checkActionsAvailable(
myLibrariesPage: MyLibrariesPage,
item: string,
expectedToolbarPrimary: string[],
expectedToolbarMore: string[]
): Promise {
await myLibrariesPage.dataTable.selectItems(item);
await myLibrariesPage.acaHeader.verifyToolbarPrimaryActions(expectedToolbarPrimary);
await myLibrariesPage.acaHeader.clickMoreActions();
await myLibrariesPage.matMenu.verifyActualMoreActions(expectedToolbarMore);
}
async function checkActionsViewerAvailable(
myLibrariesPage: MyLibrariesPage,
item: string,
expectedToolbarPrimary: string[],
expectedToolbarMore: string[]
): Promise {
await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(item);
expect(await myLibrariesPage.viewer.isViewerOpened(), 'Viewer is not opened').toBe(true);
await myLibrariesPage.viewer.verifyViewerPrimaryActions(expectedToolbarPrimary);
await myLibrariesPage.acaHeader.clickViewerMoreActions();
await myLibrariesPage.matMenu.verifyActualMoreActions(expectedToolbarMore);
}
export function collaboratorTests(userCollaborator: string, siteName: string) {
test.describe('available actions : ', () => {
test.beforeEach(async ({ loginPage }) => {
await Utils.tryLoginUser(loginPage, userCollaborator, userCollaborator, 'beforeEach failed');
});
test('[XAT-4844] Toolbar - Actions appear correctly for a file - Collaborator - My Libraries', async ({ myLibrariesPage }) => {
await myLibrariesPage.navigate();
await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(siteName);
await checkActionsAvailable(
myLibrariesPage,
testData.fileSharedFav.name,
testData.collaboratorToolbarPrimary,
testData.collaboratorEditRowToolbarMore
);
});
test('[XAT-4845] Toolbar - Actions appear correctly for a file - Collaborator - Shared', async ({ sharedPage, myLibrariesPage }) => {
await sharedPage.navigate();
await checkActionsAvailable(
myLibrariesPage,
testData.fileSharedFav.name,
testData.collaboratorToolbarPrimary,
testData.collaboratorEditRowToolbarMore
);
});
test('[XAT-4846] Toolbar - Actions appear correctly for a file - Collaborator - Favorites', async ({ favoritePage, myLibrariesPage }) => {
await favoritePage.navigate();
await checkActionsAvailable(
myLibrariesPage,
testData.fileSharedFav.name,
testData.collaboratorToolbarPrimary,
testData.favoritesCollaboratorToolbarMore
);
});
test('[XAT-4847] Toolbar - Actions appear correctly for a file - Collaborator - Search Results', async ({ searchPage, myLibrariesPage }) => {
await searchPage.searchWithin(testData.fileSharedFav.name, 'filesAndFolders');
await checkActionsAvailable(
myLibrariesPage,
testData.fileSharedFav.name,
testData.collaboratorToolbarPrimary,
testData.collaboratorEditRowToolbarMore
);
});
test.describe('available actions in the viewer : ', () => {
test('[XAT-4848] Correct actions appear for file in viewer - Collaborator - My Libraries', async ({ myLibrariesPage }) => {
await myLibrariesPage.navigate();
await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(siteName);
await checkActionsViewerAvailable(
myLibrariesPage,
testData.fileDocxSharedFav.name,
testData.collaboratorSharedToolbarPrimary,
testData.collaboratorDocToolbarMore
);
});
test('[XAT-4849] Correct actions appear for file in viewer - Collaborator - Shared', async ({ sharedPage, myLibrariesPage }) => {
await sharedPage.navigate();
await checkActionsViewerAvailable(
myLibrariesPage,
testData.fileDocxSharedFav.name,
testData.collaboratorSharedToolbarPrimary,
testData.collaboratorDocToolbarMore
);
});
test('[XAT-4850] Correct actions appear for file in viewer - Collaborator - Favorites', async ({ favoritePage, myLibrariesPage }) => {
await favoritePage.navigate();
await checkActionsViewerAvailable(
myLibrariesPage,
testData.fileDocxSharedFav.name,
testData.collaboratorSharedToolbarPrimary,
testData.collaboratorDocToolbarMore
);
});
test('[XAT-4851] Correct actions appear for file in viewer - Collaborator - Search', async ({ searchPage, myLibrariesPage }) => {
await searchPage.searchWithin(testData.fileDocxSharedFav.name, 'filesAndFolders');
await checkActionsViewerAvailable(
myLibrariesPage,
testData.fileDocxSharedFav.name,
testData.collaboratorSharedToolbarPrimary,
testData.collaboratorDocToolbarMore
);
});
});
});
}
export function filesLockedByCurrentUser(userDemoted: string, siteName?: string) {
test.describe('available actions : ', () => {
test.beforeEach(async ({ loginPage }) => {
await loginPage.navigate();
await loginPage.loginUser({ username: userDemoted, password: userDemoted });
});
test.describe('available actions in the file select : ', () => {
test('[XAT-4852] Toolbar - Correct actions appear for file - on File Libraries - Locked File', async ({ myLibrariesPage }) => {
await myLibrariesPage.navigate();
await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(siteName);
await checkActionsAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorToolbarPrimary,
testData.collaboratorLockCurrentUserToolbarMore
);
});
test('[XAT-4853] Toolbar - Correct actions appear for file - on Shared Files - Locked File', async ({ sharedPage, myLibrariesPage }) => {
await sharedPage.navigate();
await checkActionsAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorToolbarPrimary,
testData.collaboratorLockCurrentUserToolbarMore
);
});
test('[XAT-4854] Toolbar - Correct actions appear for file - on Favorites - Locked File', async ({ favoritePage, myLibrariesPage }) => {
await favoritePage.navigate();
await checkActionsAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorToolbarPrimary,
testData.favoritesCollaboratorToolbarMore
);
});
test('[XAT-4855] Toolbar - Correct actions appear for file - on Search Results - Locked File', async ({ searchPage, myLibrariesPage }) => {
await searchPage.searchWithin(testData.fileLockedByUser, 'filesAndFolders');
await checkActionsAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorToolbarPrimary,
testData.collaboratorLockCurrentUserToolbarMore
);
});
});
test.describe('available actions in the viewer : ', () => {
test('[XAT-4856] Correct actions appear for file opened from File Libraries - Locked File', async ({ myLibrariesPage }) => {
await myLibrariesPage.navigate();
await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(siteName);
await checkActionsViewerAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorSharedToolbarPrimary,
testData.collaboratorLockCurrentUserToolbarMore
);
});
test('[XAT-4857] Correct actions appear for file opened from Shared Files - Locked File', async ({ sharedPage, myLibrariesPage }) => {
await sharedPage.navigate();
await checkActionsViewerAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorSharedToolbarPrimary,
testData.collaboratorLockCurrentUserToolbarMore
);
});
test('[XAT-4858] Correct actions appear for file opened from Favorites - Locked File', async ({ favoritePage, myLibrariesPage }) => {
await favoritePage.navigate();
await checkActionsViewerAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorSharedToolbarPrimary,
testData.collaboratorLockCurrentUserToolbarMore
);
});
test('[XAT-4859] Correct actions appear for file opened from Search Results - Locked File', async ({ searchPage, myLibrariesPage }) => {
await searchPage.searchWithin(testData.fileLockedByUser, 'filesAndFolders');
await checkActionsViewerAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorSharedToolbarPrimary,
testData.collaboratorLockCurrentUserToolbarMore
);
});
});
});
}
export function filesLockedByOtherUser(userManager: string, siteName?: string) {
test.describe('available actions : ', () => {
test.beforeEach(async ({ loginPage }) => {
await Utils.tryLoginUser(loginPage, userManager, userManager, 'beforeEach failed');
});
test('[XAT-4860] Toolbar - Correct actions appear for file - on File Libraries - Locked File - Other User', async ({ myLibrariesPage }) => {
await myLibrariesPage.navigate();
await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(siteName);
await checkActionsAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorToolbarPrimary,
testData.collaboratorLockOtherUserToolbarMore
);
});
test('[XAT-4861] Toolbar - Correct actions appear for file - on Shared Files - Locked File - Other User', async ({
sharedPage,
myLibrariesPage
}) => {
const expectedToolbarMore = [
'Cancel Editing',
'Upload New Version',
'Remove Favorite',
'Move',
'Copy',
'Delete',
'Manage Versions',
'Permissions'
];
await sharedPage.navigate();
await checkActionsAvailable(myLibrariesPage, testData.fileLockedByUser, testData.collaboratorToolbarPrimary, expectedToolbarMore);
});
test('[XAT-4862] Toolbar - Correct actions appear for file - on Favorites - Locked File - Other User', async ({
favoritePage,
myLibrariesPage
}) => {
await favoritePage.navigate();
await checkActionsAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorToolbarPrimary,
testData.favoritesCollaboratorToolbarMore
);
});
test('[XAT-4863] Toolbar - Correct actions appear for file - on Search Results - Locked File - Other User', async ({
searchPage,
myLibrariesPage
}) => {
await searchPage.searchWithin(testData.fileLockedByUser, 'filesAndFolders');
await checkActionsAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorToolbarPrimary,
testData.collaboratorLockOtherUserSearchToolbarMore
);
});
test.describe('available actions in the viewer : ', () => {
test('[XAT-4864] Correct actions appear for file opened from File Libraries - viewer - locked', async ({ myLibrariesPage }) => {
await myLibrariesPage.navigate();
await myLibrariesPage.dataTable.performClickFolderOrFileToOpen(siteName);
await checkActionsViewerAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorSharedToolbarPrimary,
testData.collaboratorLockOtherUserToolbarMore
);
});
test('[XAT-4865] Correct actions appear for file opened from Shared Files - viewer - locked', async ({ sharedPage, myLibrariesPage }) => {
await sharedPage.navigate();
await checkActionsViewerAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorSharedToolbarPrimary,
testData.collaboratorLockOtherUserToolbarMore
);
});
test('[XAT-4866] Correct actions appear for file opened from Favorites - viewer - locked', async ({ favoritePage, myLibrariesPage }) => {
await favoritePage.navigate();
await checkActionsViewerAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorSharedToolbarPrimary,
testData.collaboratorLockOtherUserToolbarMore
);
});
test('[XAT-4867] Correct actions appear for file opened from Search Results - viewer - locked', async ({ searchPage, myLibrariesPage }) => {
await searchPage.searchWithin(testData.fileLockedByUser, 'filesAndFolders');
await checkActionsViewerAvailable(
myLibrariesPage,
testData.fileLockedByUser,
testData.collaboratorSharedToolbarPrimary,
testData.collaboratorLockOtherUserSearchToolbarMore
);
});
});
});
}