/*! * @license * Alfresco Example Content Application * * Copyright (C) 2005 - 2020 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 { RepoClient, Utils, AdminActions, UserActions, LoginPage, FILES } from '@alfresco/aca-testing-shared'; import * as testData from './test-data'; import { personalFilesTests } from './personal-files'; import { recentFilesTests } from './recent-files'; import { favoritesTests } from './favorites'; import { searchResultsTests } from './search-results'; import { sharedFilesTests } from './shared-files'; import { viewerTests } from './viewer'; import { trashTests } from './trash'; describe('Files / folders actions : ', () => { const random = Utils.random(); const username = `user-${random}`; const parent = `parent-${random}`; let parentId: string; let fileDocxFavId: string; let fileFavId: string; let fileDocxSharedId: string; let fileDocxSharedFavId: string; let fileSharedId: string; let fileSharedFavId: string; let fileLockedId: string; let fileFavLockedId: string; let fileSharedLockedId: string; let fileSharedFavLockedId: string; let folderFavId: string; let folderFav2Id: string; let fileInTrashId: string; let file2InTrashId: string; let folderInTrashId: string; let folder2InTrashId: string; const userApi = new RepoClient(username, username); const adminApiActions = new AdminActions(); const userActions = new UserActions(); const loginPage = new LoginPage(); beforeAll(async () => { await adminApiActions.login(); await adminApiActions.createUser({ username }); await userActions.login(username, username); parentId = (await userApi.nodes.createFolder(parent)).entry.id; const initialSearchTotalItems = await userApi.search.getTotalItems(username); await userApi.upload.uploadFileWithRename(FILES.docxFile, parentId, testData.fileDocx.name); fileDocxFavId = (await userApi.upload.uploadFileWithRename(FILES.docxFile, parentId, testData.fileDocxFav.name)).entry.id; await userApi.nodes.createFile(testData.file.name, parentId); fileFavId = (await userApi.nodes.createFile(testData.fileFav.name, parentId)).entry.id; fileDocxSharedId = (await userApi.upload.uploadFileWithRename(FILES.docxFile, parentId, testData.fileDocxShared.name)).entry.id; fileDocxSharedFavId = (await userApi.upload.uploadFileWithRename(FILES.docxFile, parentId, testData.fileDocxSharedFav.name)).entry.id; fileSharedId = (await userApi.nodes.createFile(testData.fileShared.name, parentId)).entry.id; fileSharedFavId = (await userApi.nodes.createFile(testData.fileSharedFav.name, parentId)).entry.id; fileLockedId = (await userApi.nodes.createFile(testData.fileLocked.name, parentId)).entry.id; fileFavLockedId = (await userApi.nodes.createFile(testData.fileFavLocked.name, parentId)).entry.id; fileSharedLockedId = (await userApi.nodes.createFile(testData.fileSharedLocked.name, parentId)).entry.id; fileSharedFavLockedId = (await userApi.nodes.createFile(testData.fileSharedFavLocked.name, parentId)).entry.id; await userApi.nodes.createFolder(testData.folder.name, parentId); folderFavId = (await userApi.nodes.createFolder(testData.folderFav.name, parentId)).entry.id; folderFav2Id = (await userApi.nodes.createFolder(testData.folderFav2.name, parentId)).entry.id; await userApi.search.waitForApi(username, { expect: initialSearchTotalItems + 12 }); const initialFavoritesTotalItems = (await userApi.favorites.getFavoritesTotalItems()) || 0; await userApi.favorites.addFavoritesByIds('folder', [folderFavId, folderFav2Id]); await userApi.favorites.addFavoritesByIds('file', [ fileDocxFavId, fileFavId, fileDocxSharedFavId, fileSharedFavId, fileFavLockedId, fileSharedFavLockedId ]); await userApi.favorites.waitForApi({ expect: initialFavoritesTotalItems + 8 }); const initialSharedTotalItems = await userApi.shared.getSharedLinksTotalItems(); await userApi.shared.shareFilesByIds([ fileDocxSharedId, fileDocxSharedFavId, fileSharedId, fileSharedFavId, fileSharedLockedId, fileSharedFavLockedId ]); await userApi.shared.waitForApi({ expect: initialSharedTotalItems + 6 }); await userApi.nodes.lockFile(fileLockedId); await userApi.nodes.lockFile(fileFavLockedId); await userApi.nodes.lockFile(fileSharedLockedId); await userApi.nodes.lockFile(fileSharedFavLockedId); await loginPage.loginWith(username); }, 300000); afterAll(async () => { await userActions.deleteNodes([parentId]); await userActions.emptyTrashcan(); }); beforeEach(async () => { await Utils.pressEscape(); }); describe('on Personal Files : ', () => { personalFilesTests(parent); }); describe('on Recent Files : ', () => { recentFilesTests(); }); describe('on Favorites : ', () => { favoritesTests(); }); describe('on Search Results : ', () => { searchResultsTests(); }); describe('on Shared Files : ', () => { sharedFilesTests(); }); describe('on Viewer : ', () => { viewerTests(parent); }); describe('on Trash : ', () => { beforeAll(async () => { fileInTrashId = (await userApi.nodes.createFile(testData.fileInTrash.name)).entry.id; file2InTrashId = (await userApi.nodes.createFile(testData.file2InTrash.name)).entry.id; folderInTrashId = (await userApi.nodes.createFolder(testData.folderInTrash.name)).entry.id; folder2InTrashId = (await userApi.nodes.createFolder(testData.folder2InTrash.name)).entry.id; const initialDeletedTotalItems = await userActions.getTrashcanSize(); await userActions.deleteNodes([fileInTrashId, file2InTrashId, folderInTrashId, folder2InTrashId], false); await userActions.waitForTrashcanSize(initialDeletedTotalItems + 4); }); trashTests(); }); });