mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-05-19 17:14:45 +00:00
Rebalance suites conf to be less error prone (#1819)
* rebalance suites conf to be less error prone * shared api - wait for specific files instead of totalItems * remove unused * - make search api wait calls more stable on parallel runs - remove not needed workaround from closeMoreMenu * reorganize test suites a few more test stabilisations * improve copy tests for parallel running * more changes to consider parallel running Co-authored-by: Adina Parpalita <Adina.Parpalita@ness.com>
This commit is contained in:
parent
321bcb1247
commit
ad58be3d05
72
.travis.yml
72
.travis.yml
@ -26,7 +26,7 @@ install: echo "no install"
|
|||||||
stages:
|
stages:
|
||||||
- name: Quality and Unit tests
|
- name: Quality and Unit tests
|
||||||
- name: Publish Docker Registry
|
- name: Publish Docker Registry
|
||||||
if: (type = push AND tag IS blank) OR type = api
|
if: (type = push AND tag IS blank) OR type = api
|
||||||
- name: Release Libraries
|
- name: Release Libraries
|
||||||
if: branch = master AND type = push
|
if: branch = master AND type = push
|
||||||
- name: Release Tag
|
- name: Release Tag
|
||||||
@ -83,10 +83,18 @@ jobs:
|
|||||||
cache: false
|
cache: false
|
||||||
|
|
||||||
- stage: e2e
|
- stage: e2e
|
||||||
name: 'Test Suites: authentication,listViews,navigation,application,search'
|
name: 'Test Suites: authentication,listViews,navigation,application'
|
||||||
before_script:
|
before_script:
|
||||||
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
||||||
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=authentication,listViews,navigation,application,search"
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=authentication,listViews,navigation,application"
|
||||||
|
after_script:
|
||||||
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
|
- stage: e2e
|
||||||
|
name: 'Test Suites: search'
|
||||||
|
before_script:
|
||||||
|
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
||||||
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=search"
|
||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
@ -98,31 +106,73 @@ jobs:
|
|||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
- name: 'Test Suites: actionsAvailable'
|
- name: 'Test Suites: actionsAvailableFilesFolders'
|
||||||
before_script:
|
before_script:
|
||||||
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
||||||
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=actionsAvailable"
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=actionsAvailableFilesFolders"
|
||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
- name: 'Test Suites: addRemoveContent'
|
- name: 'Test Suites: actionsAvailableLibraries,actionsAvailableNewMenu'
|
||||||
before_script:
|
before_script:
|
||||||
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
||||||
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=addRemoveContent"
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=actionsAvailableLibraries,actionsAvailableNewMenu"
|
||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
- name: 'Test Suites: manageContent'
|
- name: 'Test Suites: actionsAvailableSpecialPermissions'
|
||||||
before_script:
|
before_script:
|
||||||
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
||||||
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=manageContent"
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=actionsAvailableSpecialPermissions"
|
||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
- name: 'Test Suite: sharingContent'
|
- name: 'Test Suites: copyMoveActions'
|
||||||
before_script:
|
before_script:
|
||||||
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
||||||
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=sharingContent"
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=copyMoveActions"
|
||||||
|
after_script:
|
||||||
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
|
- name: 'Test Suites: createActions'
|
||||||
|
before_script:
|
||||||
|
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
||||||
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=createActions"
|
||||||
|
after_script:
|
||||||
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
|
- name: 'Test Suites: deleteActions'
|
||||||
|
before_script:
|
||||||
|
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
||||||
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=deleteActions"
|
||||||
|
after_script:
|
||||||
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
|
- name: 'Test Suites: editActions,favoriteActions'
|
||||||
|
before_script:
|
||||||
|
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
||||||
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=editActions,favoriteActions"
|
||||||
|
after_script:
|
||||||
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
|
- name: 'Test Suites: libraryActions'
|
||||||
|
before_script:
|
||||||
|
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
||||||
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=libraryActions"
|
||||||
|
after_script:
|
||||||
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
|
- name: 'Test Suites: shareActions'
|
||||||
|
before_script:
|
||||||
|
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
||||||
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=shareActions"
|
||||||
|
after_script:
|
||||||
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
|
- name: 'Test Suites: uploadDownloadActions'
|
||||||
|
before_script:
|
||||||
|
- ./scripts/ci/job_hooks/before_e2e.sh "$S3_DBP_FOLDER/alfresco-content-app.tar.bz2" "./dist/app" "-a" || travis_terminate 1
|
||||||
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=uploadDownloadActions"
|
||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
{
|
{
|
||||||
"C269007" : "EXIF aspect missing on latest ACS"
|
"C306956": "https://alfresco.atlassian.net/browse/ACA-4196",
|
||||||
|
"C286314": "https://alfresco.atlassian.net/browse/ACA-2176",
|
||||||
|
"C213107": "https://alfresco.atlassian.net/browse/ACA-4197",
|
||||||
|
"C269007": "ACS-938 - EXIF aspect missing on latest ACS"
|
||||||
}
|
}
|
||||||
|
@ -28,9 +28,10 @@ import * as testData from './test-data';
|
|||||||
import * as testUtil from '../test-util';
|
import * as testUtil from '../test-util';
|
||||||
|
|
||||||
describe('Folders - available actions : ', () => {
|
describe('Folders - available actions : ', () => {
|
||||||
const random = Utils.random();
|
const random = testData.random;
|
||||||
const username = `user-${random}`;
|
|
||||||
const parentName = `parent-${random}`;
|
const username = `user-${Utils.random()}`;
|
||||||
|
const parentName = `parent-${Utils.random()}`;
|
||||||
|
|
||||||
let parentId: string;
|
let parentId: string;
|
||||||
let folderFavId: string;
|
let folderFavId: string;
|
||||||
@ -151,7 +152,7 @@ describe('Folders - available actions : ', () => {
|
|||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await page.clickPersonalFiles();
|
await page.clickPersonalFiles();
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.searchFor('folderActions-');
|
await searchInput.searchFor(random);
|
||||||
await searchResultsPage.waitForResults();
|
await searchResultsPage.waitForResults();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -169,7 +170,7 @@ describe('Folders - available actions : ', () => {
|
|||||||
describe('on multiple selection', () => {
|
describe('on multiple selection', () => {
|
||||||
it('[C291821] multiple folders', async () => {
|
it('[C291821] multiple folders', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.searchFor('folderActions-');
|
await searchInput.searchFor(random);
|
||||||
await searchResultsPage.waitForResults();
|
await searchResultsPage.waitForResults();
|
||||||
|
|
||||||
await testUtil.checkMultipleSelContextMenu([testData.folder.name, testData.folderFav.name], testData.multipleSel.searchContextMenu);
|
await testUtil.checkMultipleSelContextMenu([testData.folder.name, testData.folderFav.name], testData.multipleSel.searchContextMenu);
|
||||||
|
@ -33,8 +33,8 @@ describe('Generic tests : ', () => {
|
|||||||
|
|
||||||
const parent = `parent-${random}`;
|
const parent = `parent-${random}`;
|
||||||
|
|
||||||
const file1 = `file1-${random}.txt`;
|
const file1 = `file-${random}-1.txt`;
|
||||||
const file2 = `file2-${random}.txt`;
|
const file2 = `file-${random}-2.txt`;
|
||||||
|
|
||||||
const folder1 = `my-folder1-${random}`;
|
const folder1 = `my-folder1-${random}`;
|
||||||
const folder2 = `my-folder2-${random}`;
|
const folder2 = `my-folder2-${random}`;
|
||||||
@ -57,9 +57,7 @@ describe('Generic tests : ', () => {
|
|||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await adminApiActions.createUser({ username });
|
await adminApiActions.createUser({ username });
|
||||||
|
|
||||||
await userApi.nodes.createContent(content);
|
await userApi.nodes.createContent(content);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -132,7 +130,8 @@ describe('Generic tests : ', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C280447] on Recent Files', async () => {
|
it('[C280447] on Recent Files', async () => {
|
||||||
await userApi.search.waitForApi(username, { expect: 2 });
|
await userApi.search.waitForNodes(`file-${random}`, { expect: 2 });
|
||||||
|
|
||||||
await page.clickRecentFilesAndWait();
|
await page.clickRecentFilesAndWait();
|
||||||
expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`);
|
expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`);
|
||||||
});
|
});
|
@ -28,9 +28,10 @@ import * as testData from './test-data';
|
|||||||
import * as testUtil from '../test-util';
|
import * as testUtil from '../test-util';
|
||||||
|
|
||||||
describe('Locked Files - available actions : ', () => {
|
describe('Locked Files - available actions : ', () => {
|
||||||
const random = Utils.random();
|
const random = testData.random;
|
||||||
const username = `user-${random}`;
|
|
||||||
const parentName = `parent-${random}`;
|
const username = `user-${Utils.random()}`;
|
||||||
|
const parentName = `parent-${Utils.random()}`;
|
||||||
|
|
||||||
let parentId: string;
|
let parentId: string;
|
||||||
let fileLockedId: string;
|
let fileLockedId: string;
|
||||||
@ -64,15 +65,15 @@ describe('Locked Files - available actions : ', () => {
|
|||||||
await userApi.favorites.addFavoritesByIds('file', [fileFavLockedId, fileSharedFavLockedId]);
|
await userApi.favorites.addFavoritesByIds('file', [fileFavLockedId, fileSharedFavLockedId]);
|
||||||
await userApi.favorites.waitForApi({ expect: initialFavoritesTotalItems + 2 });
|
await userApi.favorites.waitForApi({ expect: initialFavoritesTotalItems + 2 });
|
||||||
|
|
||||||
const initialSharedTotalItems = await userApi.shared.getSharedLinksTotalItems();
|
|
||||||
await userApi.shared.shareFilesByIds([fileSharedLockedId, fileSharedFavLockedId]);
|
await userApi.shared.shareFilesByIds([fileSharedLockedId, fileSharedFavLockedId]);
|
||||||
await userApi.shared.waitForApi({ expect: initialSharedTotalItems + 2 });
|
|
||||||
|
|
||||||
await userApi.nodes.lockFile(fileLockedId);
|
await userApi.nodes.lockFile(fileLockedId);
|
||||||
await userApi.nodes.lockFile(fileFavLockedId);
|
await userApi.nodes.lockFile(fileFavLockedId);
|
||||||
await userApi.nodes.lockFile(fileSharedLockedId);
|
await userApi.nodes.lockFile(fileSharedLockedId);
|
||||||
await userApi.nodes.lockFile(fileSharedFavLockedId);
|
await userApi.nodes.lockFile(fileSharedFavLockedId);
|
||||||
|
|
||||||
|
await userApi.shared.waitForFilesToBeShared([fileSharedLockedId, fileSharedFavLockedId]);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -122,21 +123,6 @@ describe('Locked Files - available actions : ', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// describe('multiple selection : ', () => {
|
|
||||||
// afterAll(async () => {
|
|
||||||
// await dataTable.clearSelection();
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('multiple locked files - [C326688]', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu([testData.fileLocked.name, testData.fileSharedFavLocked.name], testData.multipleSel.contextMenu);
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileLocked.name, testData.fileSharedFavLocked.name],
|
|
||||||
// testData.multipleSel.toolbarPrimary,
|
|
||||||
// testData.multipleSel.toolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
||||||
describe('Viewer - file opened from Personal Files : ', () => {
|
describe('Viewer - file opened from Personal Files : ', () => {
|
||||||
it('File locked - [C291832]', async () => {
|
it('File locked - [C291832]', async () => {
|
||||||
await testUtil.checkViewerActions(testData.fileLocked.name, testData.fileLocked.viewerToolbarPrimary, testData.fileLocked.viewerToolbarMore);
|
await testUtil.checkViewerActions(testData.fileLocked.name, testData.fileLocked.viewerToolbarPrimary, testData.fileLocked.viewerToolbarMore);
|
||||||
@ -193,24 +179,6 @@ describe('Locked Files - available actions : ', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// describe('multiple selection : ', () => {
|
|
||||||
// afterAll(async () => {
|
|
||||||
// await dataTable.clearSelection();
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('multiple locked files - [C297631]', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu(
|
|
||||||
// [testData.fileFavLocked.name, testData.fileSharedFavLocked.name],
|
|
||||||
// testData.multipleSelAllFav.favoritesContextMenu
|
|
||||||
// );
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileFavLocked.name, testData.fileSharedFavLocked.name],
|
|
||||||
// testData.multipleSelAllFav.toolbarPrimary,
|
|
||||||
// testData.multipleSelAllFav.favoritesToolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
||||||
describe('Viewer - file opened from Favorites : ', () => {
|
describe('Viewer - file opened from Favorites : ', () => {
|
||||||
it('File favorite, locked - [C326707]', async () => {
|
it('File favorite, locked - [C326707]', async () => {
|
||||||
await testUtil.checkViewerActions(
|
await testUtil.checkViewerActions(
|
||||||
@ -265,21 +233,6 @@ describe('Locked Files - available actions : ', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// describe('multiple selection : ', () => {
|
|
||||||
// afterAll(async () => {
|
|
||||||
// await dataTable.clearSelection();
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('multiple locked files - [C297624]', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu([testData.fileLocked.name, testData.fileSharedFavLocked.name], testData.multipleSel.contextMenu);
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileLocked.name, testData.fileSharedFavLocked.name],
|
|
||||||
// testData.multipleSel.toolbarPrimary,
|
|
||||||
// testData.multipleSel.toolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
||||||
describe('Viewer - file opened from Recent Files : ', () => {
|
describe('Viewer - file opened from Recent Files : ', () => {
|
||||||
it('File locked - [C326698]', async () => {
|
it('File locked - [C326698]', async () => {
|
||||||
await testUtil.checkViewerActions(testData.fileLocked.name, testData.fileLocked.viewerToolbarPrimary, testData.fileLocked.viewerToolbarMore);
|
await testUtil.checkViewerActions(testData.fileLocked.name, testData.fileLocked.viewerToolbarPrimary, testData.fileLocked.viewerToolbarMore);
|
||||||
@ -315,7 +268,8 @@ describe('Locked Files - available actions : ', () => {
|
|||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await page.clickPersonalFiles();
|
await page.clickPersonalFiles();
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.searchFor('fileActions-');
|
await searchInput.checkOnlyFiles();
|
||||||
|
await searchInput.searchFor(random);
|
||||||
await searchResultsPage.waitForResults();
|
await searchResultsPage.waitForResults();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -353,24 +307,6 @@ describe('Locked Files - available actions : ', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// describe('multiple selection : ', () => {
|
|
||||||
// afterAll(async () => {
|
|
||||||
// await dataTable.clearSelection();
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('[C297626] multiple locked files', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu(
|
|
||||||
// [testData.fileLocked.name, testData.fileSharedFavLocked.name],
|
|
||||||
// testData.multipleSel.searchContextMenu
|
|
||||||
// );
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileLocked.name, testData.fileSharedFavLocked.name],
|
|
||||||
// testData.multipleSel.searchToolbarPrimary,
|
|
||||||
// testData.multipleSel.searchToolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
||||||
describe('Viewer - file opened from Search Results : ', () => {
|
describe('Viewer - file opened from Search Results : ', () => {
|
||||||
it('File locked - [C326722]', async () => {
|
it('File locked - [C326722]', async () => {
|
||||||
await testUtil.checkViewerActions(
|
await testUtil.checkViewerActions(
|
||||||
@ -431,24 +367,6 @@ describe('Locked Files - available actions : ', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// describe('multiple selection : ', () => {
|
|
||||||
// afterAll(async () => {
|
|
||||||
// await dataTable.clearSelection();
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('multiple locked files - [C297623]', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu(
|
|
||||||
// [testData.fileSharedLocked.name, testData.fileSharedFavLocked.name],
|
|
||||||
// testData.multipleSel.contextMenu
|
|
||||||
// );
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileSharedLocked.name, testData.fileSharedFavLocked.name],
|
|
||||||
// testData.multipleSel.toolbarPrimary,
|
|
||||||
// testData.multipleSel.toolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
||||||
describe('Viewer - file opened from Shared Files : ', () => {
|
describe('Viewer - file opened from Shared Files : ', () => {
|
||||||
it('File shared, locked - [C326712]', async () => {
|
it('File shared, locked - [C326712]', async () => {
|
||||||
await testUtil.checkViewerActions(
|
await testUtil.checkViewerActions(
|
||||||
|
@ -29,18 +29,21 @@ import * as testUtil from '../test-util';
|
|||||||
|
|
||||||
describe('Multiple Files - available actions : ', () => {
|
describe('Multiple Files - available actions : ', () => {
|
||||||
const random = Utils.random();
|
const random = Utils.random();
|
||||||
|
|
||||||
const username = `user-${random}`;
|
const username = `user-${random}`;
|
||||||
|
|
||||||
const parentName = `parent-${random}`;
|
const parentName = `parent-${random}`;
|
||||||
let parentId: string;
|
let parentId: string;
|
||||||
|
|
||||||
const file1 = `fileActions-1-${random}.txt`;
|
const file1 = `file-1-${random}.txt`;
|
||||||
let file1Id: string;
|
let file1Id: string;
|
||||||
const file2 = `fileActions-2-${random}.txt`;
|
const file2 = `file-2-${random}.txt`;
|
||||||
let file2Id: string;
|
let file2Id: string;
|
||||||
const file1LockedFav = `fileActions-lockedFav1-${random}.txt`;
|
const file3Locked = `file-3-locked-${random}.txt`;
|
||||||
|
let file3LockedId: string;
|
||||||
|
const file1LockedFav = `file-lockedFav1-${random}.txt`;
|
||||||
let file1LockedFavId: string;
|
let file1LockedFavId: string;
|
||||||
const file2LockedFav = `fileActions-lockedFav2-${random}.txt`;
|
const file2LockedFav = `file-lockedFav2-${random}.txt`;
|
||||||
let file2LockedFavId: string;
|
let file2LockedFavId: string;
|
||||||
|
|
||||||
const userApi = new RepoClient(username, username);
|
const userApi = new RepoClient(username, username);
|
||||||
@ -62,25 +65,26 @@ describe('Multiple Files - available actions : ', () => {
|
|||||||
|
|
||||||
file1Id = (await userApi.nodes.createFile(file1, parentId)).entry.id;
|
file1Id = (await userApi.nodes.createFile(file1, parentId)).entry.id;
|
||||||
file2Id = (await userApi.nodes.createFile(file2, parentId)).entry.id;
|
file2Id = (await userApi.nodes.createFile(file2, parentId)).entry.id;
|
||||||
|
file3LockedId = (await userApi.nodes.createFile(file3Locked, parentId)).entry.id;
|
||||||
file1LockedFavId = (await userApi.nodes.createFile(file1LockedFav, parentId)).entry.id;
|
file1LockedFavId = (await userApi.nodes.createFile(file1LockedFav, parentId)).entry.id;
|
||||||
file2LockedFavId = (await userApi.nodes.createFile(file2LockedFav, parentId)).entry.id;
|
file2LockedFavId = (await userApi.nodes.createFile(file2LockedFav, parentId)).entry.id;
|
||||||
|
|
||||||
await userApi.nodes.lockFile(file1LockedFavId);
|
await userApi.nodes.lockFile(file1LockedFavId);
|
||||||
await userApi.nodes.lockFile(file2LockedFavId);
|
await userApi.nodes.lockFile(file2LockedFavId);
|
||||||
|
await userApi.nodes.lockFile(file3LockedId);
|
||||||
|
|
||||||
const initialFavoritesTotalItems = (await userApi.favorites.getFavoritesTotalItems()) || 0;
|
const initialFavoritesTotalItems = (await userApi.favorites.getFavoritesTotalItems()) || 0;
|
||||||
await userApi.favorites.addFavoritesByIds('file', [file1LockedFavId, file2LockedFavId]);
|
await userApi.favorites.addFavoritesByIds('file', [file1LockedFavId, file2LockedFavId]);
|
||||||
await userApi.favorites.waitForApi({ expect: initialFavoritesTotalItems + 2 });
|
await userApi.favorites.waitForApi({ expect: initialFavoritesTotalItems + 2 });
|
||||||
|
|
||||||
const initialSharedTotalItems = await userApi.shared.getSharedLinksTotalItems();
|
await userApi.shared.shareFilesByIds([file1Id, file2Id, file3LockedId, file1LockedFavId, file2LockedFavId]);
|
||||||
await userApi.shared.shareFilesByIds([file1Id, file2Id, file1LockedFavId, file2LockedFavId]);
|
await userApi.shared.waitForFilesToBeShared([file1Id, file2Id, file3LockedId, file1LockedFavId, file2LockedFavId]);
|
||||||
await userApi.shared.waitForApi({ expect: initialSharedTotalItems + 4 });
|
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
await userActions.unlockNodes([file1LockedFavId, file2LockedFavId]);
|
await userActions.unlockNodes([file1LockedFavId, file2LockedFavId, file3LockedId]);
|
||||||
await userActions.deleteNodes([parentId]);
|
await userActions.deleteNodes([parentId]);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -108,6 +112,15 @@ describe('Multiple Files - available actions : ', () => {
|
|||||||
testData.multipleSelAllFav.toolbarMore
|
testData.multipleSelAllFav.toolbarMore
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('multiple locked files - [C326688]', async () => {
|
||||||
|
await testUtil.checkMultipleSelContextMenu([file3Locked, file1LockedFav], testData.multipleSel.contextMenu);
|
||||||
|
await testUtil.checkMultipleSelToolbarActions(
|
||||||
|
[file3Locked, file1LockedFav],
|
||||||
|
testData.multipleSel.toolbarPrimary,
|
||||||
|
testData.multipleSel.toolbarMore
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('on Favorites : ', () => {
|
describe('on Favorites : ', () => {
|
||||||
@ -151,7 +164,8 @@ describe('Multiple Files - available actions : ', () => {
|
|||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await page.clickPersonalFiles();
|
await page.clickPersonalFiles();
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.searchFor('fileActions-');
|
await searchInput.checkOnlyFiles();
|
||||||
|
await searchInput.searchFor(random);
|
||||||
await searchResultsPage.waitForResults();
|
await searchResultsPage.waitForResults();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -172,6 +186,15 @@ describe('Multiple Files - available actions : ', () => {
|
|||||||
testData.multipleSelAllFav.searchToolbarMore
|
testData.multipleSelAllFav.searchToolbarMore
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('[C297626] multiple locked files', async () => {
|
||||||
|
await testUtil.checkMultipleSelContextMenu([file3Locked, file1LockedFav], testData.multipleSel.searchContextMenu);
|
||||||
|
await testUtil.checkMultipleSelToolbarActions(
|
||||||
|
[file3Locked, file1LockedFav],
|
||||||
|
testData.multipleSel.searchToolbarPrimary,
|
||||||
|
testData.multipleSel.searchToolbarMore
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('on Shared Files : ', () => {
|
describe('on Shared Files : ', () => {
|
||||||
@ -193,5 +216,14 @@ describe('Multiple Files - available actions : ', () => {
|
|||||||
testData.multipleSelAllFav.toolbarMore
|
testData.multipleSelAllFav.toolbarMore
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('multiple locked files - [C297623]', async () => {
|
||||||
|
await testUtil.checkMultipleSelContextMenu([file3Locked, file1LockedFav], testData.multipleSel.contextMenu);
|
||||||
|
await testUtil.checkMultipleSelToolbarActions(
|
||||||
|
[file3Locked, file1LockedFav],
|
||||||
|
testData.multipleSel.toolbarPrimary,
|
||||||
|
testData.multipleSel.toolbarMore
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -28,9 +28,10 @@ import * as testData from './test-data';
|
|||||||
import * as testUtil from '../test-util';
|
import * as testUtil from '../test-util';
|
||||||
|
|
||||||
describe('Office Files - available actions : ', () => {
|
describe('Office Files - available actions : ', () => {
|
||||||
const random = Utils.random();
|
const random = testData.random;
|
||||||
const username = `user-${random}`;
|
|
||||||
const parentName = `parent-${random}`;
|
const username = `user-${Utils.random()}`;
|
||||||
|
const parentName = `parent-${Utils.random()}`;
|
||||||
|
|
||||||
let parentId: string;
|
let parentId: string;
|
||||||
let fileDocxFavId: string;
|
let fileDocxFavId: string;
|
||||||
@ -63,9 +64,8 @@ describe('Office Files - available actions : ', () => {
|
|||||||
await userApi.favorites.addFavoritesByIds('file', [fileDocxFavId, fileDocxSharedFavId]);
|
await userApi.favorites.addFavoritesByIds('file', [fileDocxFavId, fileDocxSharedFavId]);
|
||||||
await userApi.favorites.waitForApi({ expect: initialFavoritesTotalItems + 2 });
|
await userApi.favorites.waitForApi({ expect: initialFavoritesTotalItems + 2 });
|
||||||
|
|
||||||
const initialSharedTotalItems = await userApi.shared.getSharedLinksTotalItems();
|
|
||||||
await userApi.shared.shareFilesByIds([fileDocxSharedId, fileDocxSharedFavId]);
|
await userApi.shared.shareFilesByIds([fileDocxSharedId, fileDocxSharedFavId]);
|
||||||
await userApi.shared.waitForApi({ expect: initialSharedTotalItems + 2 });
|
await userApi.shared.waitForFilesToBeShared([fileDocxSharedId, fileDocxSharedFavId]);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
});
|
});
|
||||||
@ -141,33 +141,6 @@ describe('Office Files - available actions : ', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// describe('on multiple selection', () => {
|
|
||||||
// afterAll(async () => {
|
|
||||||
// await dataTable.clearSelection();
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('multiple files - [C217112]', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu([testData.fileDocx.name, testData.fileDocxSharedFav.name], testData.multipleSel.contextMenu);
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileDocx.name, testData.fileDocxSharedFav.name],
|
|
||||||
// testData.multipleSel.toolbarPrimary,
|
|
||||||
// testData.multipleSel.toolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('multiple files - all favorite - [C297619]', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu(
|
|
||||||
// [testData.fileDocxFav.name, testData.fileDocxSharedFav.name],
|
|
||||||
// testData.multipleSelAllFav.contextMenu
|
|
||||||
// );
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileDocxFav.name, testData.fileDocxSharedFav.name],
|
|
||||||
// testData.multipleSel.toolbarPrimary,
|
|
||||||
// testData.multipleSelAllFav.toolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('on Favorites : ', () => {
|
describe('on Favorites : ', () => {
|
||||||
@ -191,24 +164,6 @@ describe('Office Files - available actions : ', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// describe('multiple selection : ', () => {
|
|
||||||
// afterAll(async () => {
|
|
||||||
// await dataTable.clearSelection();
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('multiple files - [C280656]', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu(
|
|
||||||
// [testData.fileDocxFav.name, testData.fileDocxSharedFav.name],
|
|
||||||
// testData.multipleSelAllFav.favoritesContextMenu
|
|
||||||
// );
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileDocxFav.name, testData.fileDocxSharedFav.name],
|
|
||||||
// testData.multipleSelAllFav.toolbarPrimary,
|
|
||||||
// testData.multipleSelAllFav.favoritesToolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
||||||
describe('Viewer - file opened from Favorites : ', () => {
|
describe('Viewer - file opened from Favorites : ', () => {
|
||||||
it('File Office, favorite - [C326702]', async () => {
|
it('File Office, favorite - [C326702]', async () => {
|
||||||
await testUtil.checkViewerActions(
|
await testUtil.checkViewerActions(
|
||||||
@ -259,33 +214,6 @@ describe('Office Files - available actions : ', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// describe('on multiple selection', () => {
|
|
||||||
// afterAll(async () => {
|
|
||||||
// await dataTable.clearSelection();
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('multiple files - [C280468]', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu([testData.fileDocxFav.name, testData.fileDocxShared.name], testData.multipleSel.contextMenu);
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileDocxFav.name, testData.fileDocxShared.name],
|
|
||||||
// testData.multipleSel.toolbarPrimary,
|
|
||||||
// testData.multipleSel.toolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('multiple files - all favorite - [C326689]', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu(
|
|
||||||
// [testData.fileDocxFav.name, testData.fileDocxSharedFav.name],
|
|
||||||
// testData.multipleSelAllFav.contextMenu
|
|
||||||
// );
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileDocxFav.name, testData.fileDocxSharedFav.name],
|
|
||||||
// testData.multipleSel.toolbarPrimary,
|
|
||||||
// testData.multipleSelAllFav.toolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
||||||
describe('Viewer - file opened from Recent Files : ', () => {
|
describe('Viewer - file opened from Recent Files : ', () => {
|
||||||
it('File Office - [C297599]', async () => {
|
it('File Office - [C297599]', async () => {
|
||||||
await testUtil.checkViewerActions(testData.fileDocx.name, testData.fileDocx.viewerToolbarPrimary, testData.fileDocx.viewerToolbarMore);
|
await testUtil.checkViewerActions(testData.fileDocx.name, testData.fileDocx.viewerToolbarPrimary, testData.fileDocx.viewerToolbarMore);
|
||||||
@ -321,7 +249,7 @@ describe('Office Files - available actions : ', () => {
|
|||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await page.clickPersonalFiles();
|
await page.clickPersonalFiles();
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.searchFor('fileActions-');
|
await searchInput.searchFor(random);
|
||||||
await searchResultsPage.waitForResults();
|
await searchResultsPage.waitForResults();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -359,33 +287,6 @@ describe('Office Files - available actions : ', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// describe('on multiple selection', () => {
|
|
||||||
// afterAll(async () => {
|
|
||||||
// await dataTable.clearSelection();
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('[C291820] multiple files', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu([testData.fileDocx.name, testData.fileDocxShared.name], testData.multipleSel.searchContextMenu);
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileDocx.name, testData.fileDocxShared.name],
|
|
||||||
// testData.multipleSel.searchToolbarPrimary,
|
|
||||||
// testData.multipleSel.searchToolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('[C326690] multiple files - all favorite', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu(
|
|
||||||
// [testData.fileDocxFav.name, testData.fileDocxSharedFav.name],
|
|
||||||
// testData.multipleSelAllFav.searchContextMenu
|
|
||||||
// );
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileDocxFav.name, testData.fileDocxSharedFav.name],
|
|
||||||
// testData.multipleSelAllFav.searchToolbarPrimary,
|
|
||||||
// testData.multipleSelAllFav.searchToolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
||||||
describe('Viewer - file opened from Search Results : ', () => {
|
describe('Viewer - file opened from Search Results : ', () => {
|
||||||
it('File Office - [C326714]', async () => {
|
it('File Office - [C326714]', async () => {
|
||||||
await testUtil.checkViewerActions(testData.fileDocx.name, testData.fileDocx.viewerToolbarPrimary, testData.fileDocx.searchViewerToolbarMore);
|
await testUtil.checkViewerActions(testData.fileDocx.name, testData.fileDocx.viewerToolbarPrimary, testData.fileDocx.searchViewerToolbarMore);
|
||||||
@ -438,33 +339,6 @@ describe('Office Files - available actions : ', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// describe('multiple selection', () => {
|
|
||||||
// afterAll(async () => {
|
|
||||||
// await dataTable.clearSelection();
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('multiple files - [C280467]', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu([testData.fileDocxShared.name, testData.fileDocxSharedFav.name], testData.multipleSel.contextMenu);
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileDocxShared.name, testData.fileDocxSharedFav.name],
|
|
||||||
// testData.multipleSel.toolbarPrimary,
|
|
||||||
// testData.multipleSel.toolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
|
|
||||||
// it('multiple files - all favorite - [C326691]', async () => {
|
|
||||||
// await testUtil.checkMultipleSelContextMenu(
|
|
||||||
// [testData.fileSharedFav.name, testData.fileSharedFavLocked.name],
|
|
||||||
// testData.multipleSelAllFav.contextMenu
|
|
||||||
// );
|
|
||||||
// await testUtil.checkMultipleSelToolbarActions(
|
|
||||||
// [testData.fileSharedFav.name, testData.fileSharedFavLocked.name],
|
|
||||||
// testData.multipleSelAllFav.toolbarPrimary,
|
|
||||||
// testData.multipleSelAllFav.toolbarMore
|
|
||||||
// );
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
|
|
||||||
describe('Viewer - file opened from Shared Files', () => {
|
describe('Viewer - file opened from Shared Files', () => {
|
||||||
it('File Office, shared - [C326708]', async () => {
|
it('File Office, shared - [C326708]', async () => {
|
||||||
await testUtil.checkViewerActions(
|
await testUtil.checkViewerActions(
|
||||||
|
@ -29,6 +29,7 @@ import * as testUtil from '../test-util';
|
|||||||
|
|
||||||
describe('Files - available actions : ', () => {
|
describe('Files - available actions : ', () => {
|
||||||
const random = Utils.random();
|
const random = Utils.random();
|
||||||
|
|
||||||
const username = `user-${random}`;
|
const username = `user-${random}`;
|
||||||
const parentName = `parent-${random}`;
|
const parentName = `parent-${random}`;
|
||||||
|
|
||||||
@ -63,9 +64,8 @@ describe('Files - available actions : ', () => {
|
|||||||
await userApi.favorites.addFavoritesByIds('file', [fileFavId, fileSharedFavId]);
|
await userApi.favorites.addFavoritesByIds('file', [fileFavId, fileSharedFavId]);
|
||||||
await userApi.favorites.waitForApi({ expect: initialFavoritesTotalItems + 2 });
|
await userApi.favorites.waitForApi({ expect: initialFavoritesTotalItems + 2 });
|
||||||
|
|
||||||
const initialSharedTotalItems = await userApi.shared.getSharedLinksTotalItems();
|
|
||||||
await userApi.shared.shareFilesByIds([fileSharedId, fileSharedFavId]);
|
await userApi.shared.shareFilesByIds([fileSharedId, fileSharedFavId]);
|
||||||
await userApi.shared.waitForApi({ expect: initialSharedTotalItems + 2 });
|
await userApi.shared.waitForFilesToBeShared([fileSharedId, fileSharedFavId]);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
});
|
});
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
|
|
||||||
import { Utils } from '@alfresco/aca-testing-shared';
|
import { Utils } from '@alfresco/aca-testing-shared';
|
||||||
|
|
||||||
|
export const random = Utils.random();
|
||||||
|
|
||||||
export const trashActions = ['Permanently Delete', 'Restore'];
|
export const trashActions = ['Permanently Delete', 'Restore'];
|
||||||
|
|
||||||
// ----- files -----
|
// ----- files -----
|
||||||
@ -491,7 +493,7 @@ const searchViewerDocxFavToolbarMore = [
|
|||||||
const searchViewerLockedToolbarMore = ['Cancel Editing', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions'];
|
const searchViewerLockedToolbarMore = ['Cancel Editing', 'Upload New Version', 'Favorite', 'Copy', 'Manage Versions', 'Permissions'];
|
||||||
|
|
||||||
export const fileDocx = {
|
export const fileDocx = {
|
||||||
name: `fileActions-docx-${Utils.random()}.docx`,
|
name: `fileActions-docx-${random}.docx`,
|
||||||
description: 'file not shared, not fav, office, not locked',
|
description: 'file not shared, not fav, office, not locked',
|
||||||
|
|
||||||
contextMenu: fileDocxContextMenu,
|
contextMenu: fileDocxContextMenu,
|
||||||
@ -507,7 +509,7 @@ export const fileDocx = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileDocxFav = {
|
export const fileDocxFav = {
|
||||||
name: `fileActions-docx-fav-${Utils.random()}.docx`,
|
name: `fileActions-docx-fav-${random}.docx`,
|
||||||
description: 'file not shared, fav, office, not locked',
|
description: 'file not shared, fav, office, not locked',
|
||||||
|
|
||||||
contextMenu: fileDocxFavContextMenu,
|
contextMenu: fileDocxFavContextMenu,
|
||||||
@ -526,7 +528,7 @@ export const fileDocxFav = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const file = {
|
export const file = {
|
||||||
name: `fileActions-${Utils.random()}.txt`,
|
name: `fileActions-${random}.txt`,
|
||||||
description: 'file not shared, not fav, not office, not locked',
|
description: 'file not shared, not fav, not office, not locked',
|
||||||
|
|
||||||
contextMenu: fileContextMenu,
|
contextMenu: fileContextMenu,
|
||||||
@ -542,7 +544,7 @@ export const file = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileFav = {
|
export const fileFav = {
|
||||||
name: `fileActions-fav-${Utils.random()}.txt`,
|
name: `fileActions-fav-${random}.txt`,
|
||||||
description: 'file not shared, fav, not office, not locked',
|
description: 'file not shared, fav, not office, not locked',
|
||||||
|
|
||||||
contextMenu: fileFavContextMenu,
|
contextMenu: fileFavContextMenu,
|
||||||
@ -561,7 +563,7 @@ export const fileFav = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileDocxShared = {
|
export const fileDocxShared = {
|
||||||
name: `fileActions-docx-shared-${Utils.random()}.docx`,
|
name: `fileActions-docx-shared-${random}.docx`,
|
||||||
description: 'file shared, not fav, office, not locked',
|
description: 'file shared, not fav, office, not locked',
|
||||||
|
|
||||||
contextMenu: fileDocxSharedContextMenu,
|
contextMenu: fileDocxSharedContextMenu,
|
||||||
@ -577,7 +579,7 @@ export const fileDocxShared = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileDocxSharedFav = {
|
export const fileDocxSharedFav = {
|
||||||
name: `fileActions-docx-shared-fav-${Utils.random()}.docx`,
|
name: `fileActions-docx-shared-fav-${random}.docx`,
|
||||||
description: 'file shared, fav, office, not locked',
|
description: 'file shared, fav, office, not locked',
|
||||||
|
|
||||||
contextMenu: fileDocxSharedFavContextMenu,
|
contextMenu: fileDocxSharedFavContextMenu,
|
||||||
@ -597,7 +599,7 @@ export const fileDocxSharedFav = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileShared = {
|
export const fileShared = {
|
||||||
name: `fileActions-shared-${Utils.random()}.txt`,
|
name: `fileActions-shared-${random}.txt`,
|
||||||
description: 'file shared, not fav, not office, not locked',
|
description: 'file shared, not fav, not office, not locked',
|
||||||
|
|
||||||
contextMenu: fileSharedContextMenu,
|
contextMenu: fileSharedContextMenu,
|
||||||
@ -613,7 +615,7 @@ export const fileShared = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileSharedFav = {
|
export const fileSharedFav = {
|
||||||
name: `fileActions-shared-fav-${Utils.random()}.txt`,
|
name: `fileActions-shared-fav-${random}.txt`,
|
||||||
description: 'file shared, fav, not office, not locked',
|
description: 'file shared, fav, not office, not locked',
|
||||||
|
|
||||||
contextMenu: fileSharedFavContextMenu,
|
contextMenu: fileSharedFavContextMenu,
|
||||||
@ -633,7 +635,7 @@ export const fileSharedFav = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileLocked = {
|
export const fileLocked = {
|
||||||
name: `fileActions-locked-${Utils.random()}.txt`,
|
name: `fileActions-locked-${random}.txt`,
|
||||||
description: 'file not shared, not fav, not office, locked',
|
description: 'file not shared, not fav, not office, locked',
|
||||||
|
|
||||||
contextMenu: fileLockedContextMenu,
|
contextMenu: fileLockedContextMenu,
|
||||||
@ -649,7 +651,7 @@ export const fileLocked = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileFavLocked = {
|
export const fileFavLocked = {
|
||||||
name: `fileActions-fav-locked-${Utils.random()}.txt`,
|
name: `fileActions-fav-locked-${random}.txt`,
|
||||||
description: 'file not shared, fav, not office, locked',
|
description: 'file not shared, fav, not office, locked',
|
||||||
|
|
||||||
contextMenu: fileFavLockedContextMenu,
|
contextMenu: fileFavLockedContextMenu,
|
||||||
@ -668,7 +670,7 @@ export const fileFavLocked = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileSharedLocked = {
|
export const fileSharedLocked = {
|
||||||
name: `fileActions-shared-locked-${Utils.random()}.txt`,
|
name: `fileActions-shared-locked-${random}.txt`,
|
||||||
description: 'file shared, not fav, not office, locked',
|
description: 'file shared, not fav, not office, locked',
|
||||||
|
|
||||||
contextMenu: fileSharedLockedContextMenu,
|
contextMenu: fileSharedLockedContextMenu,
|
||||||
@ -684,7 +686,7 @@ export const fileSharedLocked = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileSharedFavLocked = {
|
export const fileSharedFavLocked = {
|
||||||
name: `fileActions-shared-fav-locked-${Utils.random()}.txt`,
|
name: `fileActions-shared-fav-locked-${random}.txt`,
|
||||||
description: 'file shared, fav, not office, locked',
|
description: 'file shared, fav, not office, locked',
|
||||||
|
|
||||||
contextMenu: fileSharedFavLockedContextMenu,
|
contextMenu: fileSharedFavLockedContextMenu,
|
||||||
@ -704,22 +706,22 @@ export const fileSharedFavLocked = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileInTrash = {
|
export const fileInTrash = {
|
||||||
name: `deleted-file-${Utils.random()}.txt`,
|
name: `deleted-file-${random}.txt`,
|
||||||
trashActions
|
trashActions
|
||||||
};
|
};
|
||||||
|
|
||||||
export const file2InTrash = {
|
export const file2InTrash = {
|
||||||
name: `deleted-file2-${Utils.random()}.txt`,
|
name: `deleted-file2-${random}.txt`,
|
||||||
trashActions
|
trashActions
|
||||||
};
|
};
|
||||||
|
|
||||||
export const folderInTrash = {
|
export const folderInTrash = {
|
||||||
name: `deleted-folder-${Utils.random()}`,
|
name: `deleted-folder-${random}`,
|
||||||
trashActions
|
trashActions
|
||||||
};
|
};
|
||||||
|
|
||||||
export const folder2InTrash = {
|
export const folder2InTrash = {
|
||||||
name: `deleted-folder2-${Utils.random()}`,
|
name: `deleted-folder2-${random}`,
|
||||||
trashActions
|
trashActions
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -741,7 +743,7 @@ const searchFolderFavContextMenu = ['Download', 'Edit', 'Remove Favorite', 'Copy
|
|||||||
const searchFolderFavToolbarMore = ['Edit', 'Remove Favorite', 'Copy', 'Permissions'];
|
const searchFolderFavToolbarMore = ['Edit', 'Remove Favorite', 'Copy', 'Permissions'];
|
||||||
|
|
||||||
export const folder = {
|
export const folder = {
|
||||||
name: `folderActions-${Utils.random()}`,
|
name: `folderActions-${random}`,
|
||||||
description: 'folder not favorite',
|
description: 'folder not favorite',
|
||||||
|
|
||||||
contextMenu: folderContextMenu,
|
contextMenu: folderContextMenu,
|
||||||
@ -754,7 +756,7 @@ export const folder = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const folderFav = {
|
export const folderFav = {
|
||||||
name: `folderActions-fav-${Utils.random()}`,
|
name: `folderActions-fav-${random}`,
|
||||||
description: 'folder favorite',
|
description: 'folder favorite',
|
||||||
|
|
||||||
contextMenu: folderFavContextMenu,
|
contextMenu: folderFavContextMenu,
|
||||||
@ -770,7 +772,7 @@ export const folderFav = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const folderFav2 = {
|
export const folderFav2 = {
|
||||||
name: `folderActions-fav-2-${Utils.random()}`,
|
name: `folderActions-fav-2-${random}`,
|
||||||
description: 'folder favorite',
|
description: 'folder favorite',
|
||||||
|
|
||||||
contextMenu: folderFavContextMenu,
|
contextMenu: folderFavContextMenu,
|
||||||
|
@ -31,6 +31,7 @@ const page = new BrowsingPage();
|
|||||||
|
|
||||||
describe('Trash - available actions : ', () => {
|
describe('Trash - available actions : ', () => {
|
||||||
const random = Utils.random();
|
const random = Utils.random();
|
||||||
|
|
||||||
const username = `user-${random}`;
|
const username = `user-${random}`;
|
||||||
|
|
||||||
let fileInTrashId: string;
|
let fileInTrashId: string;
|
||||||
|
@ -42,10 +42,11 @@ export function searchResultsTests() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('on a file', () => {
|
describe('on a file', () => {
|
||||||
beforeAll(async () => {
|
beforeEach(async () => {
|
||||||
await page.clickPersonalFiles();
|
await page.clickPersonalFiles();
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.searchFor('file-');
|
await searchInput.checkOnlyFiles();
|
||||||
|
await searchInput.searchFor(testData.random);
|
||||||
await searchResultsPage.waitForResults();
|
await searchResultsPage.waitForResults();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -87,7 +88,7 @@ export function searchResultsTests() {
|
|||||||
await testUtil.checkContextMenu(testData.fileDocxSharedFav.name, testData.fileDocxSharedFav.contextMenu);
|
await testUtil.checkContextMenu(testData.fileDocxSharedFav.name, testData.fileDocxSharedFav.contextMenu);
|
||||||
});
|
});
|
||||||
|
|
||||||
xit('File shared - [C286282]', async () => {
|
it('File shared - [C286282]', async () => {
|
||||||
await testUtil.checkToolbarActions(testData.fileShared.name, testData.fileShared.searchToolbarPrimary, testData.fileShared.toolbarMore);
|
await testUtil.checkToolbarActions(testData.fileShared.name, testData.fileShared.searchToolbarPrimary, testData.fileShared.toolbarMore);
|
||||||
await testUtil.checkContextMenu(testData.fileShared.name, testData.fileShared.contextMenu);
|
await testUtil.checkContextMenu(testData.fileShared.name, testData.fileShared.contextMenu);
|
||||||
});
|
});
|
||||||
@ -138,7 +139,8 @@ export function searchResultsTests() {
|
|||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await page.clickPersonalFiles();
|
await page.clickPersonalFiles();
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.searchFor('folder-');
|
await searchInput.checkOnlyFolders();
|
||||||
|
await searchInput.searchFor(testData.random);
|
||||||
await searchResultsPage.waitForResults();
|
await searchResultsPage.waitForResults();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -158,7 +160,8 @@ export function searchResultsTests() {
|
|||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await page.clickPersonalFiles();
|
await page.clickPersonalFiles();
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.searchFor('file-');
|
await searchInput.checkOnlyFiles();
|
||||||
|
await searchInput.searchFor(testData.random);
|
||||||
await searchResultsPage.waitForResults();
|
await searchResultsPage.waitForResults();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -208,7 +211,8 @@ export function searchResultsTests() {
|
|||||||
it('multiple folders - [C291836]', async () => {
|
it('multiple folders - [C291836]', async () => {
|
||||||
await page.clickPersonalFiles();
|
await page.clickPersonalFiles();
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.searchFor('folder-');
|
await searchInput.checkOnlyFolders();
|
||||||
|
await searchInput.searchFor(testData.random);
|
||||||
|
|
||||||
await testUtil.checkMultipleSelContextMenu([testData.folder.name, testData.folderFav.name], testData.multipleSel.contextMenu);
|
await testUtil.checkMultipleSelContextMenu([testData.folder.name, testData.folderFav.name], testData.multipleSel.contextMenu);
|
||||||
await testUtil.checkMultipleSelToolbarActions(
|
await testUtil.checkMultipleSelToolbarActions(
|
||||||
|
@ -33,7 +33,7 @@ import { sharedFilesTests } from './shared-files';
|
|||||||
import { collaboratorTests, filesLockedByCurrentUser, filesLockedByOtherUser } from './other-permissions';
|
import { collaboratorTests, filesLockedByCurrentUser, filesLockedByOtherUser } from './other-permissions';
|
||||||
|
|
||||||
describe('Special permissions : ', () => {
|
describe('Special permissions : ', () => {
|
||||||
const random = Utils.random();
|
const random = testData.random;
|
||||||
|
|
||||||
const sitePrivate = `site-private-${random}`;
|
const sitePrivate = `site-private-${random}`;
|
||||||
|
|
||||||
@ -73,7 +73,6 @@ describe('Special permissions : ', () => {
|
|||||||
await adminApiActions.createUser({ username: userDemoted });
|
await adminApiActions.createUser({ username: userDemoted });
|
||||||
|
|
||||||
const consumerFavoritesTotalItems = await userConsumerApi.favorites.getFavoritesTotalItems();
|
const consumerFavoritesTotalItems = await userConsumerApi.favorites.getFavoritesTotalItems();
|
||||||
const consumerSharedTotalItems = await userConsumerApi.shared.getSharedLinksTotalItems();
|
|
||||||
const managerSearchTotalItems = await userManagerApi.search.getTotalItems(userManager);
|
const managerSearchTotalItems = await userManagerApi.search.getTotalItems(userManager);
|
||||||
const collaboratorFavoritesTotalItems = await userCollaboratorApi.favorites.getFavoritesTotalItems();
|
const collaboratorFavoritesTotalItems = await userCollaboratorApi.favorites.getFavoritesTotalItems();
|
||||||
|
|
||||||
@ -141,7 +140,16 @@ describe('Special permissions : ', () => {
|
|||||||
|
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
userConsumerApi.favorites.waitForApi({ expect: consumerFavoritesTotalItems + 9 }),
|
userConsumerApi.favorites.waitForApi({ expect: consumerFavoritesTotalItems + 9 }),
|
||||||
userConsumerApi.shared.waitForApi({ expect: consumerSharedTotalItems + 8 }),
|
userManagerApi.shared.waitForFilesToBeShared([
|
||||||
|
fileDocxSharedId,
|
||||||
|
fileDocxSharedFavId,
|
||||||
|
fileSharedId,
|
||||||
|
fileSharedFavId,
|
||||||
|
fileSharedLockedId,
|
||||||
|
fileSharedFavLockedId,
|
||||||
|
fileGranularPermissionId,
|
||||||
|
fileLockedByUserId
|
||||||
|
]),
|
||||||
userManagerApi.search.waitForApi(userManager, { expect: managerSearchTotalItems + 14 }),
|
userManagerApi.search.waitForApi(userManager, { expect: managerSearchTotalItems + 14 }),
|
||||||
userCollaboratorApi.favorites.waitForApi({ expect: collaboratorFavoritesTotalItems + 2 })
|
userCollaboratorApi.favorites.waitForApi({ expect: collaboratorFavoritesTotalItems + 2 })
|
||||||
]);
|
]);
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
|
|
||||||
import { Utils } from '@alfresco/aca-testing-shared';
|
import { Utils } from '@alfresco/aca-testing-shared';
|
||||||
|
|
||||||
|
export const random = Utils.random();
|
||||||
|
|
||||||
// ----- files -----
|
// ----- files -----
|
||||||
|
|
||||||
const consumerContextMenu = ['Share', 'Download', 'View', 'Favorite', 'Copy', 'Manage Versions'];
|
const consumerContextMenu = ['Share', 'Download', 'View', 'Favorite', 'Copy', 'Manage Versions'];
|
||||||
@ -122,7 +124,7 @@ const sharedConsumerFavLockedContextMenu = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
export const fileDocx = {
|
export const fileDocx = {
|
||||||
name: `file-docx-${Utils.random()}.docx`,
|
name: `file-${random}-docx.docx`,
|
||||||
description: 'file not shared, not fav, office, not locked',
|
description: 'file not shared, not fav, office, not locked',
|
||||||
|
|
||||||
contextMenu: consumerContextMenu,
|
contextMenu: consumerContextMenu,
|
||||||
@ -135,7 +137,7 @@ export const fileDocx = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileDocxFav = {
|
export const fileDocxFav = {
|
||||||
name: `file-docx-fav-${Utils.random()}.docx`,
|
name: `file-${random}-docx-fav.docx`,
|
||||||
description: 'file not shared, fav, office, not locked',
|
description: 'file not shared, fav, office, not locked',
|
||||||
|
|
||||||
contextMenu: consumerFavContextMenu,
|
contextMenu: consumerFavContextMenu,
|
||||||
@ -151,7 +153,7 @@ export const fileDocxFav = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const file = {
|
export const file = {
|
||||||
name: `file-${Utils.random()}.txt`,
|
name: `file-${random}.txt`,
|
||||||
description: 'file not shared, not fav, not office, not locked',
|
description: 'file not shared, not fav, not office, not locked',
|
||||||
|
|
||||||
contextMenu: consumerContextMenu,
|
contextMenu: consumerContextMenu,
|
||||||
@ -164,7 +166,7 @@ export const file = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileFav = {
|
export const fileFav = {
|
||||||
name: `file-fav-${Utils.random()}.txt`,
|
name: `file-${random}-fav.txt`,
|
||||||
description: 'file not shared, fav, not office, not locked',
|
description: 'file not shared, fav, not office, not locked',
|
||||||
|
|
||||||
contextMenu: consumerFavContextMenu,
|
contextMenu: consumerFavContextMenu,
|
||||||
@ -180,7 +182,7 @@ export const fileFav = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileDocxShared = {
|
export const fileDocxShared = {
|
||||||
name: `file-docx-shared-${Utils.random()}.docx`,
|
name: `file-${random}-docx-shared.docx`,
|
||||||
description: 'file shared, not fav, office, not locked',
|
description: 'file shared, not fav, office, not locked',
|
||||||
|
|
||||||
contextMenu: consumerSharedContextMenu,
|
contextMenu: consumerSharedContextMenu,
|
||||||
@ -196,7 +198,7 @@ export const fileDocxShared = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileDocxSharedFav = {
|
export const fileDocxSharedFav = {
|
||||||
name: `file-docx-shared-fav-${Utils.random()}.docx`,
|
name: `file-${random}-docx-shared-fav.docx`,
|
||||||
description: 'file shared, fav, office, not locked',
|
description: 'file shared, fav, office, not locked',
|
||||||
|
|
||||||
contextMenu: consumerSharedFavContextMenu,
|
contextMenu: consumerSharedFavContextMenu,
|
||||||
@ -215,7 +217,7 @@ export const fileDocxSharedFav = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileShared = {
|
export const fileShared = {
|
||||||
name: `file-shared-${Utils.random()}.txt`,
|
name: `file-${random}-shared.txt`,
|
||||||
description: 'file shared, not fav, not office, not locked',
|
description: 'file shared, not fav, not office, not locked',
|
||||||
|
|
||||||
contextMenu: consumerSharedContextMenu,
|
contextMenu: consumerSharedContextMenu,
|
||||||
@ -231,7 +233,7 @@ export const fileShared = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileSharedFav = {
|
export const fileSharedFav = {
|
||||||
name: `file-shared-fav-${Utils.random()}.txt`,
|
name: `file-${random}-shared-fav.txt`,
|
||||||
description: 'file shared, fav, not office, not locked',
|
description: 'file shared, fav, not office, not locked',
|
||||||
|
|
||||||
contextMenu: consumerSharedFavContextMenu,
|
contextMenu: consumerSharedFavContextMenu,
|
||||||
@ -250,7 +252,7 @@ export const fileSharedFav = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileLocked = {
|
export const fileLocked = {
|
||||||
name: `file-locked-${Utils.random()}.txt`,
|
name: `file-${random}-locked.txt`,
|
||||||
description: 'file not shared, not fav, not office, locked',
|
description: 'file not shared, not fav, not office, locked',
|
||||||
|
|
||||||
contextMenu: consumerContextMenu,
|
contextMenu: consumerContextMenu,
|
||||||
@ -263,7 +265,7 @@ export const fileLocked = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileFavLocked = {
|
export const fileFavLocked = {
|
||||||
name: `file-fav-locked-${Utils.random()}.txt`,
|
name: `file-${random}-fav-locked.txt`,
|
||||||
description: 'file not shared, fav, not office, locked',
|
description: 'file not shared, fav, not office, locked',
|
||||||
|
|
||||||
contextMenu: consumerFavContextMenu,
|
contextMenu: consumerFavContextMenu,
|
||||||
@ -279,7 +281,7 @@ export const fileFavLocked = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileSharedLocked = {
|
export const fileSharedLocked = {
|
||||||
name: `file-shared-locked-${Utils.random()}.txt`,
|
name: `file-${random}-shared-locked.txt`,
|
||||||
description: 'file shared, not fav, not office, locked',
|
description: 'file shared, not fav, not office, locked',
|
||||||
|
|
||||||
contextMenu: consumerSharedContextMenu,
|
contextMenu: consumerSharedContextMenu,
|
||||||
@ -295,7 +297,7 @@ export const fileSharedLocked = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const fileSharedFavLocked = {
|
export const fileSharedFavLocked = {
|
||||||
name: `file-shared-fav-locked-${Utils.random()}.txt`,
|
name: `file-${random}-shared-fav-locked.txt`,
|
||||||
description: 'file shared, fav, not office, locked',
|
description: 'file shared, fav, not office, locked',
|
||||||
|
|
||||||
contextMenu: consumerSharedFavContextMenu,
|
contextMenu: consumerSharedFavContextMenu,
|
||||||
@ -313,8 +315,8 @@ export const fileSharedFavLocked = {
|
|||||||
searchToolbarPrimary: searchConsumerSharedToolbarPrimary
|
searchToolbarPrimary: searchConsumerSharedToolbarPrimary
|
||||||
};
|
};
|
||||||
|
|
||||||
export const fileGranularPermission = `file-granular-${Utils.random()}.txt`;
|
export const fileGranularPermission = `file-${random}-granular.txt`;
|
||||||
export const fileLockedByUser = `my-file-locked-${Utils.random()}.txt`;
|
export const fileLockedByUser = `file-${random}-my-locked.txt`;
|
||||||
|
|
||||||
// ---- folders ---
|
// ---- folders ---
|
||||||
|
|
||||||
@ -333,7 +335,7 @@ const favoritesConsumerFolderContextMenu = ['Download', 'Edit', 'Remove Favorite
|
|||||||
const favoritesConsumerFolderToolbarMore = ['Edit', 'Remove Favorite', 'Move', 'Copy', 'Delete'];
|
const favoritesConsumerFolderToolbarMore = ['Edit', 'Remove Favorite', 'Move', 'Copy', 'Delete'];
|
||||||
|
|
||||||
export const folder = {
|
export const folder = {
|
||||||
name: `folder-${Utils.random()}`,
|
name: `folder-${random}`,
|
||||||
description: 'folder not favorite',
|
description: 'folder not favorite',
|
||||||
contextMenu: consumerFolderContextMenu,
|
contextMenu: consumerFolderContextMenu,
|
||||||
toolbarPrimary: consumerFolderToolbarPrimary,
|
toolbarPrimary: consumerFolderToolbarPrimary,
|
||||||
@ -343,7 +345,7 @@ export const folder = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const folderFav = {
|
export const folderFav = {
|
||||||
name: `folder-fav-${Utils.random()}`,
|
name: `folder-fav-${random}`,
|
||||||
description: 'folder favorite',
|
description: 'folder favorite',
|
||||||
contextMenu: consumerFolderFavContextMenu,
|
contextMenu: consumerFolderFavContextMenu,
|
||||||
toolbarPrimary: consumerFolderToolbarPrimary,
|
toolbarPrimary: consumerFolderToolbarPrimary,
|
||||||
@ -356,7 +358,7 @@ export const folderFav = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const folderFav2 = {
|
export const folderFav2 = {
|
||||||
name: `folder-fav-2-${Utils.random()}`,
|
name: `folder-fav-2-${random}`,
|
||||||
description: 'folder 2 favorite'
|
description: 'folder 2 favorite'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -229,7 +229,8 @@ export function viewerTests(siteName?: string) {
|
|||||||
describe('file opened from Search Results', () => {
|
describe('file opened from Search Results', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.searchFor('file-');
|
await searchInput.checkOnlyFiles();
|
||||||
|
await searchInput.searchFor(testData.random);
|
||||||
await searchResultsPage.waitForResults();
|
await searchResultsPage.waitForResults();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -24,60 +24,62 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { AdminActions, UserActions, LoginPage, BrowsingPage, ContentNodeSelectorDialog, RepoClient, Utils } from '@alfresco/aca-testing-shared';
|
import { AdminActions, UserActions, LoginPage, BrowsingPage, ContentNodeSelectorDialog, RepoClient, Utils } from '@alfresco/aca-testing-shared';
|
||||||
import { BrowserActions } from '@alfresco/adf-testing';
|
import { BrowserActions, Logger } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
describe('Copy content', () => {
|
describe('Copy content', () => {
|
||||||
const username = `user-${Utils.random()}`;
|
const random = Utils.random();
|
||||||
|
|
||||||
const source = `source-${Utils.random()}`;
|
const username = `user-${random}`;
|
||||||
|
|
||||||
|
const source = `source-${random}`;
|
||||||
let sourceId: string;
|
let sourceId: string;
|
||||||
const destinationPF = `destinationPersonal-${Utils.random()}`;
|
const destinationPF = `destinationPersonal-${random}`;
|
||||||
let destinationIdPF: string;
|
let destinationIdPF: string;
|
||||||
const destinationRF = `destinationRecent-${Utils.random()}`;
|
const destinationRF = `destinationRecent-${random}`;
|
||||||
let destinationIdRF: string;
|
let destinationIdRF: string;
|
||||||
const destinationSF = `destinationShared-${Utils.random()}`;
|
const destinationSF = `destinationShared-${random}`;
|
||||||
let destinationIdSF: string;
|
let destinationIdSF: string;
|
||||||
const destinationFav = `destinationFav-${Utils.random()}`;
|
const destinationFav = `destinationFav-${random}`;
|
||||||
let destinationIdFav: string;
|
let destinationIdFav: string;
|
||||||
const destinationSearch = `destinationSearch-${Utils.random()}`;
|
const destinationSearch = `destinationSearch-${random}`;
|
||||||
let destinationIdSearch: string;
|
let destinationIdSearch: string;
|
||||||
|
|
||||||
const file1 = `copy-file1-${Utils.random()}.txt`;
|
const file1 = `copy-file1-${random}.txt`;
|
||||||
let file1Id: string;
|
let file1Id: string;
|
||||||
|
|
||||||
const folder1 = `copy-folder1-${Utils.random()}`;
|
const folder1 = `copy-folder1-${random}`;
|
||||||
let folder1Id: string;
|
let folder1Id: string;
|
||||||
const fileInFolder = `copy-fileInFolder-${Utils.random()}.txt`;
|
const fileInFolder = `copy-fileInFolder-${random}.txt`;
|
||||||
let fileInFolderId: string;
|
let fileInFolderId: string;
|
||||||
|
|
||||||
const folder2 = `copy-folder2-${Utils.random()}`;
|
const folder2 = `copy-folder2-${random}`;
|
||||||
let folder2Id: string;
|
let folder2Id: string;
|
||||||
const fileInFolder2 = fileInFolder;
|
const fileInFolder2 = fileInFolder;
|
||||||
|
|
||||||
const folderExisting = `copy-folder-existing-${Utils.random()}`;
|
const folderExisting = `copy-folder-existing-${random}`;
|
||||||
let folderExistingId: string;
|
let folderExistingId: string;
|
||||||
const file1InFolderExisting = `copy-file1InFolderExisting-${Utils.random()}.txt`;
|
const file1InFolderExisting = `copy-file1InFolderExisting-${random}.txt`;
|
||||||
const file2InFolderExisting = `copy-file2InFolderExisting-${Utils.random()}.txt`;
|
const file2InFolderExisting = `copy-file2InFolderExisting-${random}.txt`;
|
||||||
|
|
||||||
const file2 = `copy-file2-${Utils.random()}.txt`;
|
const file2 = `copy-file2-${random}.txt`;
|
||||||
let file2Id: string;
|
let file2Id: string;
|
||||||
const file3 = `copy-file3-${Utils.random()}.txt`;
|
const file3 = `copy-file3-${random}.txt`;
|
||||||
let file3Id: string;
|
let file3Id: string;
|
||||||
const file4 = `copy-file4-${Utils.random()}.txt`;
|
const file4 = `copy-file4-${random}.txt`;
|
||||||
let file4Id: string;
|
let file4Id: string;
|
||||||
|
|
||||||
const fileLocked1 = `copy-file-locked1-${Utils.random()}.txt`;
|
const fileLocked1 = `copy-file-locked1-${random}.txt`;
|
||||||
let fileLocked1Id: string;
|
let fileLocked1Id: string;
|
||||||
|
|
||||||
const folderWithLockedFiles = `copy-folder-locked1-${Utils.random()}`;
|
const folderWithLockedFiles = `copy-folder-locked1-${random}`;
|
||||||
let folderWithLockedFilesId: string;
|
let folderWithLockedFilesId: string;
|
||||||
const fileLockedInFolder = `copy-file-locked-${Utils.random()}`;
|
const fileLockedInFolder = `copy-file-locked-${random}`;
|
||||||
let fileLockedInFolderId: string;
|
let fileLockedInFolderId: string;
|
||||||
|
|
||||||
const existingFile = `copy-existing-${Utils.random()}.txt`;
|
const existingFile = `copy-existing-${random}-file.txt`;
|
||||||
let existingFileToCopyId: string;
|
let existingFileToCopyId: string;
|
||||||
|
|
||||||
const existingFolder = `copy-existing-${Utils.random()}`;
|
const existingFolder = `copy-existing-${random}-folder`;
|
||||||
let existingFolderToCopyId: string;
|
let existingFolderToCopyId: string;
|
||||||
|
|
||||||
let existingIdPF: string;
|
let existingIdPF: string;
|
||||||
@ -87,15 +89,15 @@ describe('Copy content', () => {
|
|||||||
let folderExistingFavId: string;
|
let folderExistingFavId: string;
|
||||||
let folderExistingSearchId: string;
|
let folderExistingSearchId: string;
|
||||||
|
|
||||||
const file2InFolder = `copy-file2InFolder-${Utils.random()}.txt`;
|
const file2InFolder = `copy-file2InFolder-${random}.txt`;
|
||||||
const file3InFolder = `copy-file3InFolder-${Utils.random()}.txt`;
|
const file3InFolder = `copy-file3InFolder-${random}.txt`;
|
||||||
|
|
||||||
const siteName = `copy-site-${Utils.random()}`;
|
const siteName = `copy-site-${random}`;
|
||||||
const folderSitePF = `copy-folderSitePersonal-${Utils.random()}`;
|
const folderSitePF = `copy-folderSitePersonal-${random}`;
|
||||||
const folderSiteRF = `copy-folderSiteRecent-${Utils.random()}`;
|
const folderSiteRF = `copy-folderSiteRecent-${random}`;
|
||||||
const folderSiteSF = `copy-folderSiteShared-${Utils.random()}`;
|
const folderSiteSF = `copy-folderSiteShared-${random}`;
|
||||||
const folderSiteFav = `copy-folderSiteFav-${Utils.random()}`;
|
const folderSiteFav = `copy-folderSiteFav-${random}`;
|
||||||
const folderSiteSearch = `copy-folderSiteSearch-${Utils.random()}`;
|
const folderSiteSearch = `copy-folderSiteSearch-${random}`;
|
||||||
|
|
||||||
let locationId: string;
|
let locationId: string;
|
||||||
let destinationId: string;
|
let destinationId: string;
|
||||||
@ -118,7 +120,6 @@ describe('Copy content', () => {
|
|||||||
await adminApiActions.createUser({ username });
|
await adminApiActions.createUser({ username });
|
||||||
await userActions.login(username, username);
|
await userActions.login(username, username);
|
||||||
|
|
||||||
const initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
const initialFavoritesTotalItems = await apis.user.favorites.getFavoritesTotalItems();
|
const initialFavoritesTotalItems = await apis.user.favorites.getFavoritesTotalItems();
|
||||||
|
|
||||||
sourceId = (await apis.user.nodes.createFolder(source)).entry.id;
|
sourceId = (await apis.user.nodes.createFolder(source)).entry.id;
|
||||||
@ -206,17 +207,26 @@ describe('Copy content', () => {
|
|||||||
await apis.user.nodes.createFolder(folderSiteFav, docLibId);
|
await apis.user.nodes.createFolder(folderSiteFav, docLibId);
|
||||||
await apis.user.nodes.createFolder(folderSiteSearch, docLibId);
|
await apis.user.nodes.createFolder(folderSiteSearch, docLibId);
|
||||||
|
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 7 });
|
await apis.user.shared.waitForFilesToBeShared([existingFileToCopyId, fileInFolderId, file1Id, file2Id, file3Id, file4Id, fileLocked1Id]);
|
||||||
await apis.user.favorites.waitForApi({ expect: initialFavoritesTotalItems + 13 });
|
await apis.user.favorites.waitForApi({ expect: initialFavoritesTotalItems + 13 });
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
beforeEach(async () => {
|
||||||
await apis.user.nodes.deleteNodeById(sourceId);
|
await page.closeOpenDialogs();
|
||||||
await apis.user.sites.deleteSite(siteName);
|
});
|
||||||
done();
|
|
||||||
|
afterAll(async () => {
|
||||||
|
try {
|
||||||
|
await apis.user.nodes.unlockFile(fileLocked1Id);
|
||||||
|
await apis.user.nodes.unlockFile(fileLockedInFolderId);
|
||||||
|
await apis.user.nodes.deleteNodesById([sourceId, destinationIdRF, destinationIdPF, destinationIdSF, destinationIdFav, destinationIdSearch]);
|
||||||
|
await apis.user.sites.deleteSite(siteName);
|
||||||
|
} catch (error) {
|
||||||
|
Logger.error(`---- afterAll failed : ${error}`);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('from Recent Files', () => {
|
describe('from Recent Files', () => {
|
||||||
@ -226,11 +236,6 @@ describe('Copy content', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
|
||||||
await apis.user.nodes.deleteNodeById(destinationIdRF);
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C280194] Copy a file', async () => copyFile(file1, source, destinationRF));
|
it('[C280194] Copy a file', async () => copyFile(file1, source, destinationRF));
|
||||||
|
|
||||||
it('[C280201] Copy multiple items', async () => copyMultipleItems([file2, file3], source, destinationRF));
|
it('[C280201] Copy multiple items', async () => copyMultipleItems([file2, file3], source, destinationRF));
|
||||||
@ -257,11 +262,6 @@ describe('Copy content', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
|
||||||
await apis.user.nodes.deleteNodeById(destinationIdPF);
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C217135] Copy a file', async () => copyFile(file1, '', destinationPF));
|
it('[C217135] Copy a file', async () => copyFile(file1, '', destinationPF));
|
||||||
|
|
||||||
it('[C291888] Copy a folder with content', async () => copyFolderWithContent(folder1, '', destinationPF));
|
it('[C291888] Copy a folder with content', async () => copyFolderWithContent(folder1, '', destinationPF));
|
||||||
@ -303,15 +303,9 @@ describe('Copy content', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('from Shared Files', () => {
|
describe('from Shared Files', () => {
|
||||||
beforeEach(async (done) => {
|
beforeEach(async () => {
|
||||||
await Utils.pressEscape();
|
await Utils.pressEscape();
|
||||||
await page.clickSharedFilesAndWait();
|
await page.clickSharedFilesAndWait();
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
afterAll(async (done) => {
|
|
||||||
await apis.user.nodes.deleteNodeById(destinationIdSF);
|
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280206] Copy a file', async () => copyFile(file1, source, destinationSF));
|
it('[C280206] Copy a file', async () => copyFile(file1, source, destinationSF));
|
||||||
@ -339,11 +333,6 @@ describe('Copy content', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
|
||||||
await apis.user.nodes.deleteNodeById(destinationIdFav);
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C280218] Copy a file', async () => copyFile(file1, source, destinationFav));
|
it('[C280218] Copy a file', async () => copyFile(file1, source, destinationFav));
|
||||||
|
|
||||||
it('[C280219] Copy a folder with content', async () => copyFolderWithContent(folder1, source, destinationFav));
|
it('[C280219] Copy a folder with content', async () => copyFolderWithContent(folder1, source, destinationFav));
|
||||||
@ -382,51 +371,51 @@ describe('Copy content', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('from Search Results', () => {
|
describe('from Search Results', () => {
|
||||||
beforeEach(async (done) => {
|
beforeEach(async () => {
|
||||||
await Utils.pressEscape();
|
await Utils.pressEscape();
|
||||||
|
await page.clickPersonalFiles();
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkFilesAndFolders();
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
afterAll(async (done) => {
|
|
||||||
await apis.user.nodes.deleteNodeById(destinationIdSearch);
|
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C306932] Copy a file', async () =>
|
it('[C306932] Copy a file', async () =>
|
||||||
copyFile(file1, source, destinationSearch, async () => {
|
copyFile(file1, source, destinationSearch, async () => {
|
||||||
|
await searchInput.checkOnlyFiles();
|
||||||
await searchInput.searchFor(file1);
|
await searchInput.searchFor(file1);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('[C306943] Copy a folder with content', async () =>
|
it('[C306943] Copy a folder with content', async () =>
|
||||||
copyFolderWithContent(folder1, source, destinationSearch, async () => {
|
copyFolderWithContent(folder1, source, destinationSearch, async () => {
|
||||||
|
await searchInput.checkOnlyFolders();
|
||||||
await searchInput.searchFor(folder1);
|
await searchInput.searchFor(folder1);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('[C306944] Copy multiple items', async () =>
|
it('[C306944] Copy multiple items', async () =>
|
||||||
copyMultipleItems([file2, file3], source, destinationSearch, async () => {
|
copyMultipleItems([file2, file3], source, destinationSearch, async () => {
|
||||||
await searchInput.searchFor('copy-file');
|
await searchInput.checkOnlyFiles();
|
||||||
|
await searchInput.searchFor(random);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('[C306933] Copy a file with a name that already exists on the destination', async () =>
|
it('[C306933] Copy a file with a name that already exists on the destination', async () =>
|
||||||
copyFileWithNameThatAlreadyExists(existingFile, source, destinationSearch, async () => {
|
copyFileWithNameThatAlreadyExists(existingFile, source, destinationSearch, async () => {
|
||||||
|
await searchInput.checkOnlyFiles();
|
||||||
await searchInput.searchFor(existingFile);
|
await searchInput.searchFor(existingFile);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('[C306934] Copy a folder with a name that already exists on the destination', async () =>
|
it('[C306934] Copy a folder with a name that already exists on the destination', async () =>
|
||||||
copyFolderWithNameThatAlreadyExists(existingFolder, source, destinationSearch, async () => {
|
copyFolderWithNameThatAlreadyExists(existingFolder, source, destinationSearch, async () => {
|
||||||
|
await searchInput.checkOnlyFolders();
|
||||||
await searchInput.searchFor(existingFolder);
|
await searchInput.searchFor(existingFolder);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('[C306942] Copy items into a library', async () =>
|
it('[C306942] Copy items into a library', async () =>
|
||||||
copyItemsIntoLibrary([file1, file2], source, folderSiteSearch, async () => {
|
copyItemsIntoLibrary([file1, file2], source, folderSiteSearch, async () => {
|
||||||
await searchInput.searchFor('copy-file');
|
await searchInput.checkOnlyFiles();
|
||||||
|
await searchInput.searchFor(random);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
@ -434,6 +423,7 @@ describe('Copy content', () => {
|
|||||||
copyLockedFile(fileLocked1, source, destinationSearch, async () => {
|
copyLockedFile(fileLocked1, source, destinationSearch, async () => {
|
||||||
locationId = sourceId;
|
locationId = sourceId;
|
||||||
destinationId = destinationIdSearch;
|
destinationId = destinationIdSearch;
|
||||||
|
await searchInput.checkOnlyFiles();
|
||||||
await searchInput.searchFor(fileLocked1);
|
await searchInput.searchFor(fileLocked1);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
}));
|
}));
|
||||||
@ -442,30 +432,35 @@ describe('Copy content', () => {
|
|||||||
copyFolderThatContainsLockedFile(folderWithLockedFiles, source, destinationSearch, async () => {
|
copyFolderThatContainsLockedFile(folderWithLockedFiles, source, destinationSearch, async () => {
|
||||||
locationId = folderWithLockedFilesId;
|
locationId = folderWithLockedFilesId;
|
||||||
destinationId = destinationIdSearch;
|
destinationId = destinationIdSearch;
|
||||||
|
await searchInput.checkOnlyFolders();
|
||||||
await searchInput.searchFor(folderWithLockedFiles);
|
await searchInput.searchFor(folderWithLockedFiles);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('[C306938] Undo copy of files', async () =>
|
it('[C306938] Undo copy of files', async () =>
|
||||||
undoCopyFile(file4, source, destinationSearch, async () => {
|
undoCopyFile(file4, source, destinationSearch, async () => {
|
||||||
|
await searchInput.checkOnlyFiles();
|
||||||
await searchInput.searchFor(file4);
|
await searchInput.searchFor(file4);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('[C306939] Undo copy of folders', async () =>
|
it('[C306939] Undo copy of folders', async () =>
|
||||||
undoCopyFolder(folder2, source, destinationSearch, async () => {
|
undoCopyFolder(folder2, source, destinationSearch, async () => {
|
||||||
|
await searchInput.checkOnlyFolders();
|
||||||
await searchInput.searchFor(folder2);
|
await searchInput.searchFor(folder2);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('[C306940] Undo copy of a file when a file with same name already exists on the destination', async () =>
|
it('[C306940] Undo copy of a file when a file with same name already exists on the destination', async () =>
|
||||||
undoCopyFileWithExistingName(fileInFolder, folder1, folder2, async () => {
|
undoCopyFileWithExistingName(fileInFolder, folder1, folder2, async () => {
|
||||||
|
await searchInput.checkOnlyFiles();
|
||||||
await searchInput.searchFor(fileInFolder);
|
await searchInput.searchFor(fileInFolder);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('[C306941] Undo copy of a folder when a folder with same name already exists on the destination', async () =>
|
it('[C306941] Undo copy of a folder when a folder with same name already exists on the destination', async () =>
|
||||||
undoCopyFolderWithExistingName(folderExisting, source, destinationSearch, async () => {
|
undoCopyFolderWithExistingName(folderExisting, source, destinationSearch, async () => {
|
||||||
|
await searchInput.checkOnlyFolders();
|
||||||
await searchInput.searchFor(folderExisting);
|
await searchInput.searchFor(folderExisting);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
}));
|
}));
|
||||||
|
@ -117,6 +117,7 @@ describe('Destination picker dialog : ', () => {
|
|||||||
await contributorApi.nodes.deleteNodeById(fileIdContributor);
|
await contributorApi.nodes.deleteNodeById(fileIdContributor);
|
||||||
await collaboratorApi.nodes.deleteNodeById(fileIdCollaborator);
|
await collaboratorApi.nodes.deleteNodeById(fileIdCollaborator);
|
||||||
|
|
||||||
|
await adminApiActions.login();
|
||||||
await adminApiActions.nodes.deleteNodeById(adminFolderId);
|
await adminApiActions.nodes.deleteNodeById(adminFolderId);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -301,17 +301,13 @@ describe('Move content', () => {
|
|||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
await apis.user.nodes.createFile(file1, sourceIdRF);
|
await apis.user.nodes.createFile(file1, sourceIdRF);
|
||||||
|
|
||||||
await apis.user.nodes.createFile(file2, sourceIdRF);
|
await apis.user.nodes.createFile(file2, sourceIdRF);
|
||||||
await apis.user.nodes.createFile(file3, sourceIdRF);
|
await apis.user.nodes.createFile(file3, sourceIdRF);
|
||||||
|
|
||||||
await apis.user.nodes.createFile(`${existingFile}.txt`, sourceIdRF);
|
await apis.user.nodes.createFile(`${existingFile}.txt`, sourceIdRF);
|
||||||
await apis.user.nodes.createFile(`${existingFile}.txt`, destinationIdRF);
|
await apis.user.nodes.createFile(`${existingFile}.txt`, destinationIdRF);
|
||||||
|
|
||||||
await apis.user.nodes.createFile(file4, sourceIdRF);
|
await apis.user.nodes.createFile(file4, sourceIdRF);
|
||||||
|
|
||||||
await apis.user.search.waitForApi(username, { expect: 16 });
|
await apis.user.search.waitForApi(username, { expect: 16 });
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -424,7 +420,6 @@ describe('Move content', () => {
|
|||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
file1Id = (await apis.user.nodes.createFile(file1, sourceIdSF)).entry.id;
|
file1Id = (await apis.user.nodes.createFile(file1, sourceIdSF)).entry.id;
|
||||||
|
|
||||||
const initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await userActions.shareNodes([file1Id]);
|
await userActions.shareNodes([file1Id]);
|
||||||
|
|
||||||
file2Id = (await apis.user.nodes.createFile(file2, sourceIdSF)).entry.id;
|
file2Id = (await apis.user.nodes.createFile(file2, sourceIdSF)).entry.id;
|
||||||
@ -437,7 +432,7 @@ describe('Move content', () => {
|
|||||||
|
|
||||||
file4Id = (await apis.user.nodes.createFile(file4, sourceIdSF)).entry.id;
|
file4Id = (await apis.user.nodes.createFile(file4, sourceIdSF)).entry.id;
|
||||||
await userActions.shareNodes([file4Id]);
|
await userActions.shareNodes([file4Id]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 5 });
|
await apis.user.shared.waitForFilesToBeShared([file1Id, file2Id, file3Id, existingFileId, file4Id]);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
@ -321,6 +321,7 @@ describe('Create folder from template', () => {
|
|||||||
await page.dataTable.waitForHeader();
|
await page.dataTable.waitForHeader();
|
||||||
|
|
||||||
expect(await page.dataTable.isItemPresent(folder2.name)).toBe(true, 'Folder not displayed in list view');
|
expect(await page.dataTable.isItemPresent(folder2.name)).toBe(true, 'Folder not displayed in list view');
|
||||||
|
|
||||||
const desc = await userApi.nodes.getNodeDescription(folder2.name, parentId);
|
const desc = await userApi.nodes.getNodeDescription(folder2.name, parentId);
|
||||||
expect(desc).toEqual(folder2.description);
|
expect(desc).toEqual(folder2.description);
|
||||||
const title = await userApi.nodes.getNodeTitle(folder2.name, parentId);
|
const title = await userApi.nodes.getNodeTitle(folder2.name, parentId);
|
@ -23,7 +23,16 @@
|
|||||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { AdminActions, SITE_VISIBILITY, LoginPage, BrowsingPage, CreateLibraryDialog, Utils, RepoClient } from '@alfresco/aca-testing-shared';
|
import {
|
||||||
|
AdminActions,
|
||||||
|
SITE_VISIBILITY,
|
||||||
|
LoginPage,
|
||||||
|
BrowsingPage,
|
||||||
|
CreateLibraryDialog,
|
||||||
|
Utils,
|
||||||
|
RepoClient,
|
||||||
|
UserActions
|
||||||
|
} from '@alfresco/aca-testing-shared';
|
||||||
import { BrowserActions } from '@alfresco/adf-testing';
|
import { BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
describe('Create library', () => {
|
describe('Create library', () => {
|
||||||
@ -58,6 +67,7 @@ describe('Create library', () => {
|
|||||||
const createDialog = new CreateLibraryDialog();
|
const createDialog = new CreateLibraryDialog();
|
||||||
const { dataTable } = page;
|
const { dataTable } = page;
|
||||||
const adminApiActions = new AdminActions();
|
const adminApiActions = new AdminActions();
|
||||||
|
const userActions = new UserActions();
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
await adminApiActions.createUser({ username });
|
await adminApiActions.createUser({ username });
|
||||||
@ -76,6 +86,8 @@ describe('Create library', () => {
|
|||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async (done) => {
|
||||||
await apis.user.sites.deleteAllUserSites();
|
await apis.user.sites.deleteAllUserSites();
|
||||||
|
await userActions.login(username, username);
|
||||||
|
await userActions.emptyTrashcan();
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
@ -359,9 +359,8 @@ describe('Delete and undo delete', () => {
|
|||||||
sharedFile5Id = (await apis.user.nodes.createFile(sharedFile5, parentId)).entry.id;
|
sharedFile5Id = (await apis.user.nodes.createFile(sharedFile5, parentId)).entry.id;
|
||||||
sharedFile6Id = (await apis.user.nodes.createFile(sharedFile6, parentId)).entry.id;
|
sharedFile6Id = (await apis.user.nodes.createFile(sharedFile6, parentId)).entry.id;
|
||||||
|
|
||||||
const initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await apis.user.shared.shareFilesByIds([sharedFile1Id, sharedFile2Id, sharedFile3Id, sharedFile4Id, sharedFile5Id, sharedFile6Id]);
|
await apis.user.shared.shareFilesByIds([sharedFile1Id, sharedFile2Id, sharedFile3Id, sharedFile4Id, sharedFile5Id, sharedFile6Id]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 6 });
|
await apis.user.shared.waitForFilesToBeShared([sharedFile1Id, sharedFile2Id, sharedFile3Id, sharedFile4Id, sharedFile5Id, sharedFile6Id]);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
@ -67,10 +67,11 @@ describe('Edit folder', () => {
|
|||||||
const folderFavoriteDuplicate = `folder-fav-${Utils.random()}`;
|
const folderFavoriteDuplicate = `folder-fav-${Utils.random()}`;
|
||||||
let folderFavoriteDuplicateId: string;
|
let folderFavoriteDuplicateId: string;
|
||||||
|
|
||||||
const folderSearch = `folder-search-${Utils.random()}`;
|
const searchRandom = Utils.random();
|
||||||
const folderSearchToEdit = `folder-search-${Utils.random()}`;
|
const folderSearch = `folder-search-${searchRandom}`;
|
||||||
|
const folderSearchToEdit = `folder-search-to-edit-${searchRandom}`;
|
||||||
let folderSearchToEditId: string;
|
let folderSearchToEditId: string;
|
||||||
const folderSearchDuplicate = `folder-search-${Utils.random()}`;
|
const folderSearchDuplicate = `folder-search-duplicate-${searchRandom}`;
|
||||||
|
|
||||||
const apis = {
|
const apis = {
|
||||||
user: new RepoClient(username, username)
|
user: new RepoClient(username, username)
|
||||||
@ -107,7 +108,6 @@ describe('Edit folder', () => {
|
|||||||
folderFavoriteToEditId = (await apis.user.nodes.createFolder(folderFavoriteToEdit)).entry.id;
|
folderFavoriteToEditId = (await apis.user.nodes.createFolder(folderFavoriteToEdit)).entry.id;
|
||||||
folderFavoriteDuplicateId = (await apis.user.nodes.createFolder(folderFavoriteDuplicate)).entry.id;
|
folderFavoriteDuplicateId = (await apis.user.nodes.createFolder(folderFavoriteDuplicate)).entry.id;
|
||||||
|
|
||||||
const initialSearchByTermTotalItems = await apis.user.search.getSearchByTermTotalItems('folder-search');
|
|
||||||
await apis.user.nodes.createFolder(folderSearch);
|
await apis.user.nodes.createFolder(folderSearch);
|
||||||
folderSearchToEditId = (await apis.user.nodes.createFolder(folderSearchToEdit)).entry.id;
|
folderSearchToEditId = (await apis.user.nodes.createFolder(folderSearchToEdit)).entry.id;
|
||||||
await apis.user.nodes.createFolder(folderSearchDuplicate);
|
await apis.user.nodes.createFolder(folderSearchDuplicate);
|
||||||
@ -116,19 +116,17 @@ describe('Edit folder', () => {
|
|||||||
await apis.user.favorites.addFavoriteById('folder', folderFavoriteToEditId);
|
await apis.user.favorites.addFavoriteById('folder', folderFavoriteToEditId);
|
||||||
await apis.user.favorites.addFavoriteById('folder', folderFavoriteDuplicateId);
|
await apis.user.favorites.addFavoriteById('folder', folderFavoriteDuplicateId);
|
||||||
|
|
||||||
await apis.user.search.waitForNodes('folder-search', { expect: initialSearchByTermTotalItems + 3 });
|
await apis.user.search.waitForNodes(searchRandom, { expect: 3 });
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async () => {
|
||||||
await Promise.all([
|
await adminApiActions.login();
|
||||||
adminApiActions.sites.deleteSite(sitePrivate),
|
await adminApiActions.sites.deleteSite(sitePrivate);
|
||||||
apis.user.sites.deleteSite(siteName),
|
await apis.user.sites.deleteSite(siteName);
|
||||||
apis.user.nodes.deleteNodesById([parentId, folderFavoriteToEditId, folderFavoriteDuplicateId, folderSearchToEditId])
|
await apis.user.nodes.deleteNodesById([parentId, folderFavoriteToEditId, folderFavoriteDuplicateId, folderSearchToEditId]);
|
||||||
]);
|
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
@ -35,11 +35,12 @@ describe('Edit offline', () => {
|
|||||||
const fileLocked2 = `file-locked2-${Utils.random()}.docx`;
|
const fileLocked2 = `file-locked2-${Utils.random()}.docx`;
|
||||||
let fileLocked2Id: string;
|
let fileLocked2Id: string;
|
||||||
|
|
||||||
const fileSearch1 = `file-search-1-${Utils.random()}.docx`;
|
const searchRandom = Utils.random();
|
||||||
|
const fileSearch1 = `file-search-1-${searchRandom}.docx`;
|
||||||
let fileSearch1Id: string;
|
let fileSearch1Id: string;
|
||||||
const fileSearchLocked = `file-search-locked-${Utils.random()}.docx`;
|
const fileSearchLocked = `file-search-locked-${searchRandom}.docx`;
|
||||||
let fileSearchLockedId: string;
|
let fileSearchLockedId: string;
|
||||||
const fileSearchLocked2 = `file-search-locked2-${Utils.random()}.docx`;
|
const fileSearchLocked2 = `file-search-locked2-${searchRandom}.docx`;
|
||||||
let fileSearchLocked2Id: string;
|
let fileSearchLocked2Id: string;
|
||||||
|
|
||||||
const parentPF = `parentPersonal-${Utils.random()}`;
|
const parentPF = `parentPersonal-${Utils.random()}`;
|
||||||
@ -130,9 +131,8 @@ describe('Edit offline', () => {
|
|||||||
await apis.user.nodes.lockFile(fileLockedId);
|
await apis.user.nodes.lockFile(fileLockedId);
|
||||||
await apis.user.nodes.lockFile(fileLocked2Id);
|
await apis.user.nodes.lockFile(fileLocked2Id);
|
||||||
|
|
||||||
const initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await apis.user.shared.shareFilesByIds([file1Id, fileLockedId, fileLocked2Id]);
|
await apis.user.shared.shareFilesByIds([file1Id, fileLockedId, fileLocked2Id]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 3 });
|
await apis.user.shared.waitForFilesToBeShared([file1Id, fileLockedId, fileLocked2Id]);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
});
|
});
|
||||||
@ -256,8 +256,7 @@ describe('Edit offline', () => {
|
|||||||
await Utils.pressEscape();
|
await Utils.pressEscape();
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: raise REPO issue: permissions not returned in /people/${personId}/favorites api
|
it('[C306956] File is locked and downloaded when clicking Edit Offline', async () => {
|
||||||
xit('[C306956] File is locked and downloaded when clicking Edit Offline', async () => {
|
|
||||||
await dataTable.selectItem(file1);
|
await dataTable.selectItem(file1);
|
||||||
await toolbar.clickMoreActionsEditOffline();
|
await toolbar.clickMoreActionsEditOffline();
|
||||||
|
|
||||||
@ -285,7 +284,6 @@ describe('Edit offline', () => {
|
|||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
parentSearchId = (await apis.user.nodes.createFolder(parentSearch)).entry.id;
|
parentSearchId = (await apis.user.nodes.createFolder(parentSearch)).entry.id;
|
||||||
|
|
||||||
const initialSearchByTermTotalItems = await apis.user.search.getSearchByTermTotalItems('file-search');
|
|
||||||
fileSearch1Id = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentSearchId, fileSearch1)).entry.id;
|
fileSearch1Id = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentSearchId, fileSearch1)).entry.id;
|
||||||
fileSearchLockedId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentSearchId, fileSearchLocked)).entry.id;
|
fileSearchLockedId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentSearchId, fileSearchLocked)).entry.id;
|
||||||
fileSearchLocked2Id = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentSearchId, fileSearchLocked2)).entry.id;
|
fileSearchLocked2Id = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentSearchId, fileSearchLocked2)).entry.id;
|
||||||
@ -293,7 +291,7 @@ describe('Edit offline', () => {
|
|||||||
await apis.user.nodes.lockFile(fileSearchLockedId);
|
await apis.user.nodes.lockFile(fileSearchLockedId);
|
||||||
await apis.user.nodes.lockFile(fileSearchLocked2Id);
|
await apis.user.nodes.lockFile(fileSearchLocked2Id);
|
||||||
|
|
||||||
await apis.user.search.waitForNodes('file-search', { expect: initialSearchByTermTotalItems + 3 });
|
await apis.user.search.waitForNodes(searchRandom, { expect: 3 });
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
});
|
});
|
||||||
@ -305,7 +303,7 @@ describe('Edit offline', () => {
|
|||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await page.clickPersonalFilesAndWait();
|
await page.clickPersonalFilesAndWait();
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.searchFor('file-search');
|
await searchInput.searchFor(searchRandom);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -324,8 +322,10 @@ describe('Edit offline', () => {
|
|||||||
it('[C306954] Lock information is displayed', async () => {
|
it('[C306954] Lock information is displayed', async () => {
|
||||||
expect(await dataTable.isItemPresent(fileSearchLocked2, parentSearch)).toBe(true, `${fileSearchLocked2} is not displayed`);
|
expect(await dataTable.isItemPresent(fileSearchLocked2, parentSearch)).toBe(true, `${fileSearchLocked2} is not displayed`);
|
||||||
expect(await dataTable.hasLockIcon(fileSearchLocked2, parentSearch)).toBe(true, `${fileSearchLocked2} does not have a lock icon`);
|
expect(await dataTable.hasLockIcon(fileSearchLocked2, parentSearch)).toBe(true, `${fileSearchLocked2} does not have a lock icon`);
|
||||||
// TODO: enable when ACA-2314 is fixed
|
expect(await dataTable.getLockOwner(fileSearchLocked2, parentSearch)).toContain(
|
||||||
// expect(await dataTable.getLockOwner(fileSearchLocked2, parentSearch)).toContain(username, `${fileSearchLocked2} does not have correct lock owner info`);
|
username,
|
||||||
|
`${fileSearchLocked2} does not have correct lock owner info`
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C306955] Cancel Editing unlocks the file', async () => {
|
it('[C306955] Cancel Editing unlocks the file', async () => {
|
@ -53,15 +53,16 @@ describe('Mark items as favorites', () => {
|
|||||||
let folderId: string;
|
let folderId: string;
|
||||||
let parentId: string;
|
let parentId: string;
|
||||||
|
|
||||||
const fileSearchNotFav1 = `search-fileNotFav1-${Utils.random()}.txt`;
|
const searchRandom = Utils.random();
|
||||||
const fileSearchNotFav2 = `search-fileNotFav2-${Utils.random()}.txt`;
|
const fileSearchNotFav1 = `search-${searchRandom}-fileNotFav1.txt`;
|
||||||
const fileSearchNotFav3 = `search-fileNotFav3-${Utils.random()}.txt`;
|
const fileSearchNotFav2 = `search-${searchRandom}-fileNotFav2.txt`;
|
||||||
const fileSearchNotFav4 = `search-fileNotFav4-${Utils.random()}.txt`;
|
const fileSearchNotFav3 = `search-${searchRandom}-fileNotFav3.txt`;
|
||||||
const fileSearchFav1 = `search-fileFav1-${Utils.random()}.txt`;
|
const fileSearchNotFav4 = `search-${searchRandom}-fileNotFav4.txt`;
|
||||||
const fileSearchFav2 = `search-fileFav2-${Utils.random()}.txt`;
|
const fileSearchFav1 = `search-${searchRandom}-fileFav1.txt`;
|
||||||
const fileSearchFav3 = `search-fileFav3-${Utils.random()}.txt`;
|
const fileSearchFav2 = `search-${searchRandom}-fileFav2.txt`;
|
||||||
const fileSearchFav4 = `search-fileFav4-${Utils.random()}.txt`;
|
const fileSearchFav3 = `search-${searchRandom}-fileFav3.txt`;
|
||||||
const folderSearch = `search-folder-${Utils.random()}`;
|
const fileSearchFav4 = `search-${searchRandom}-fileFav4.txt`;
|
||||||
|
const folderSearch = `search-${searchRandom}-folder`;
|
||||||
|
|
||||||
let fileSearchNotFav1Id: string;
|
let fileSearchNotFav1Id: string;
|
||||||
let fileSearchNotFav2Id: string;
|
let fileSearchNotFav2Id: string;
|
||||||
@ -105,10 +106,18 @@ describe('Mark items as favorites', () => {
|
|||||||
await apis.user.favorites.addFavoritesByIds('file', [fileFavUIId, fileFav1Id, fileFav2Id, fileFav3Id, fileFav4Id]);
|
await apis.user.favorites.addFavoritesByIds('file', [fileFavUIId, fileFav1Id, fileFav2Id, fileFav3Id, fileFav4Id]);
|
||||||
await apis.user.favorites.waitForApi({ expect: currentFavoritesTotalItems + 5 });
|
await apis.user.favorites.waitForApi({ expect: currentFavoritesTotalItems + 5 });
|
||||||
|
|
||||||
const currentSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await apis.user.shared.shareFilesByIds([fileFav1Id, fileFav2Id, fileFav3Id, fileFav4Id]);
|
await apis.user.shared.shareFilesByIds([fileFav1Id, fileFav2Id, fileFav3Id, fileFav4Id]);
|
||||||
await apis.user.shared.shareFilesByIds([fileNotFav1Id, fileNotFav2Id, fileNotFav3Id, fileNotFav4Id]);
|
await apis.user.shared.shareFilesByIds([fileNotFav1Id, fileNotFav2Id, fileNotFav3Id, fileNotFav4Id]);
|
||||||
await apis.user.shared.waitForApi({ expect: currentSharedTotalItems + 8 });
|
await apis.user.shared.waitForFilesToBeShared([
|
||||||
|
fileFav1Id,
|
||||||
|
fileFav2Id,
|
||||||
|
fileFav3Id,
|
||||||
|
fileFav4Id,
|
||||||
|
fileNotFav1Id,
|
||||||
|
fileNotFav2Id,
|
||||||
|
fileNotFav3Id,
|
||||||
|
fileNotFav4Id
|
||||||
|
]);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
||||||
@ -361,7 +370,6 @@ describe('Mark items as favorites', () => {
|
|||||||
|
|
||||||
describe('on Search Results', () => {
|
describe('on Search Results', () => {
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
const initialSearchByTermTotalItems = await apis.user.search.getSearchByTermTotalItems('search-f');
|
|
||||||
fileSearchNotFav1Id = (await apis.user.nodes.createFile(fileSearchNotFav1, parentId)).entry.id;
|
fileSearchNotFav1Id = (await apis.user.nodes.createFile(fileSearchNotFav1, parentId)).entry.id;
|
||||||
fileSearchNotFav2Id = (await apis.user.nodes.createFile(fileSearchNotFav2, parentId)).entry.id;
|
fileSearchNotFav2Id = (await apis.user.nodes.createFile(fileSearchNotFav2, parentId)).entry.id;
|
||||||
fileSearchNotFav3Id = (await apis.user.nodes.createFile(fileSearchNotFav3, parentId)).entry.id;
|
fileSearchNotFav3Id = (await apis.user.nodes.createFile(fileSearchNotFav3, parentId)).entry.id;
|
||||||
@ -371,13 +379,13 @@ describe('Mark items as favorites', () => {
|
|||||||
fileSearchFav3Id = (await apis.user.nodes.createFile(fileSearchFav3, parentId)).entry.id;
|
fileSearchFav3Id = (await apis.user.nodes.createFile(fileSearchFav3, parentId)).entry.id;
|
||||||
fileSearchFav4Id = (await apis.user.nodes.createFile(fileSearchFav4, parentId)).entry.id;
|
fileSearchFav4Id = (await apis.user.nodes.createFile(fileSearchFav4, parentId)).entry.id;
|
||||||
folderSearchId = (await apis.user.nodes.createFolder(folderSearch, parentId)).entry.id;
|
folderSearchId = (await apis.user.nodes.createFolder(folderSearch, parentId)).entry.id;
|
||||||
await apis.user.search.waitForNodes('search-f', { expect: initialSearchByTermTotalItems + 9 });
|
await apis.user.search.waitForNodes(searchRandom, { expect: 9 });
|
||||||
|
|
||||||
await apis.user.favorites.addFavoritesByIds('file', [fileSearchFav1Id, fileSearchFav2Id, fileSearchFav3Id, fileSearchFav4Id]);
|
await apis.user.favorites.addFavoritesByIds('file', [fileSearchFav1Id, fileSearchFav2Id, fileSearchFav3Id, fileSearchFav4Id]);
|
||||||
|
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkFilesAndFolders();
|
await searchInput.checkFilesAndFolders();
|
||||||
await searchInput.searchFor('search-f');
|
await searchInput.searchFor(searchRandom);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
done();
|
done();
|
||||||
});
|
});
|
@ -334,7 +334,7 @@ describe('Library actions', () => {
|
|||||||
expect(await apis.user.favorites.isFavoriteWithRetry(sitePublic6Admin, { expect: true })).toBe(true, `${sitePublic6Admin} not favorite`);
|
expect(await apis.user.favorites.isFavoriteWithRetry(sitePublic6Admin, { expect: true })).toBe(true, `${sitePublic6Admin} not favorite`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C306963] from on Search Results', async () => {
|
it('[C306963] from Search Results', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkLibraries();
|
await searchInput.checkLibraries();
|
||||||
await searchInput.searchFor(siteSearchPublic3Admin);
|
await searchInput.searchFor(siteSearchPublic3Admin);
|
@ -89,20 +89,17 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
describe('when logged out', () => {
|
describe('when logged out', () => {
|
||||||
let file6SharedLink: string;
|
let file6SharedLink: string;
|
||||||
let initialTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
file6Id = (await apis.user.nodes.createFile(file6, parentId)).entry.id;
|
file6Id = (await apis.user.nodes.createFile(file6, parentId)).entry.id;
|
||||||
|
|
||||||
initialTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
const sharedId = (await apis.user.shared.shareFileById(file6Id)).entry.id;
|
const sharedId = (await apis.user.shared.shareFileById(file6Id)).entry.id;
|
||||||
file6SharedLink = `${shareLinkPreUrl}${sharedId}`;
|
file6SharedLink = `${shareLinkPreUrl}${sharedId}`;
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems + 1 });
|
await apis.user.shared.waitForFilesToBeShared([file6Id]);
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
await apis.user.nodes.deleteNodeById(file6Id);
|
await apis.user.nodes.deleteNodeById(file6Id);
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286326] A non-logged user can download the shared file from the viewer', async () => {
|
it('[C286326] A non-logged user can download the shared file from the viewer', async () => {
|
||||||
@ -128,8 +125,6 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('from Personal Files', () => {
|
describe('from Personal Files', () => {
|
||||||
let initialTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
||||||
file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id;
|
file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id;
|
||||||
@ -141,9 +136,8 @@ describe('Share a file', () => {
|
|||||||
file8Id = (await apis.user.nodes.createFile(file8, parentId)).entry.id;
|
file8Id = (await apis.user.nodes.createFile(file8, parentId)).entry.id;
|
||||||
file9Id = (await apis.user.nodes.createFile(file9, parentId)).entry.id;
|
file9Id = (await apis.user.nodes.createFile(file9, parentId)).entry.id;
|
||||||
|
|
||||||
initialTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await userActions.shareNodes([file6Id, file7Id], expiryDate);
|
await userActions.shareNodes([file6Id, file7Id], expiryDate);
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems + 2 });
|
await apis.user.shared.waitForFilesToBeShared([file6Id, file7Id]);
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
@ -157,16 +151,7 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
await apis.user.nodes.deleteNodeById(file1Id);
|
await apis.user.nodes.deleteNodesById([file1Id, file2Id, file3Id, file4Id, file5Id, file6Id, file7Id, file8Id, file9Id]);
|
||||||
await apis.user.nodes.deleteNodeById(file2Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file3Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file4Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file5Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file6Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file7Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file8Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file9Id);
|
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286327] Share dialog default values', async () => {
|
it('[C286327] Share dialog default values', async () => {
|
||||||
@ -312,7 +297,6 @@ describe('Share a file', () => {
|
|||||||
const siteName = `site-${Utils.random()}`;
|
const siteName = `site-${Utils.random()}`;
|
||||||
const parentInSite = `parent-site-${Utils.random()}`;
|
const parentInSite = `parent-site-${Utils.random()}`;
|
||||||
let parentInSiteId: string;
|
let parentInSiteId: string;
|
||||||
let initialTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
|
await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
|
||||||
@ -329,9 +313,8 @@ describe('Share a file', () => {
|
|||||||
await apis.user.nodes.createFile(file8, parentInSiteId);
|
await apis.user.nodes.createFile(file8, parentInSiteId);
|
||||||
file9Id = (await apis.user.nodes.createFile(file9, parentInSiteId)).entry.id;
|
file9Id = (await apis.user.nodes.createFile(file9, parentInSiteId)).entry.id;
|
||||||
|
|
||||||
initialTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await userActions.shareNodes([file6Id, file7Id], expiryDate);
|
await userActions.shareNodes([file6Id, file7Id], expiryDate);
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems + 2 });
|
await apis.user.shared.waitForFilesToBeShared([file6Id, file7Id]);
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
@ -349,7 +332,6 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
await adminApiActions.sites.deleteSite(siteName);
|
await adminApiActions.sites.deleteSite(siteName);
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286639] Share dialog default values', async () => {
|
it('[C286639] Share dialog default values', async () => {
|
||||||
@ -488,8 +470,6 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('from Recent Files', () => {
|
describe('from Recent Files', () => {
|
||||||
let initialTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
||||||
file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id;
|
file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id;
|
||||||
@ -501,9 +481,8 @@ describe('Share a file', () => {
|
|||||||
file8Id = (await apis.user.nodes.createFile(file8, parentId)).entry.id;
|
file8Id = (await apis.user.nodes.createFile(file8, parentId)).entry.id;
|
||||||
file9Id = (await apis.user.nodes.createFile(file9, parentId)).entry.id;
|
file9Id = (await apis.user.nodes.createFile(file9, parentId)).entry.id;
|
||||||
|
|
||||||
initialTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await userActions.shareNodes([file6Id, file7Id], expiryDate);
|
await userActions.shareNodes([file6Id, file7Id], expiryDate);
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems + 2 });
|
await apis.user.shared.waitForFilesToBeShared([file6Id, file7Id]);
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
@ -516,16 +495,7 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
await apis.user.nodes.deleteNodeById(file1Id);
|
await apis.user.nodes.deleteNodesById([file1Id, file2Id, file3Id, file4Id, file5Id, file6Id, file7Id, file8Id, file9Id]);
|
||||||
await apis.user.nodes.deleteNodeById(file2Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file3Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file4Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file5Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file6Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file7Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file8Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file9Id);
|
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286657] Share dialog default values', async () => {
|
it('[C286657] Share dialog default values', async () => {
|
||||||
@ -664,8 +634,6 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('from Shared Files', () => {
|
describe('from Shared Files', () => {
|
||||||
let initialTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
||||||
file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id;
|
file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id;
|
||||||
@ -675,11 +643,10 @@ describe('Share a file', () => {
|
|||||||
file6Id = (await apis.user.nodes.createFile(file6, parentId)).entry.id;
|
file6Id = (await apis.user.nodes.createFile(file6, parentId)).entry.id;
|
||||||
file7Id = (await apis.user.nodes.createFile(file7, parentId)).entry.id;
|
file7Id = (await apis.user.nodes.createFile(file7, parentId)).entry.id;
|
||||||
|
|
||||||
initialTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await userActions.shareNodes([file1Id, file2Id, file3Id]);
|
await userActions.shareNodes([file1Id, file2Id, file3Id]);
|
||||||
await userActions.shareNodes([file4Id, file5Id], expiryDate);
|
await userActions.shareNodes([file4Id, file5Id], expiryDate);
|
||||||
await userActions.shareNodes([file6Id, file7Id]);
|
await userActions.shareNodes([file6Id, file7Id]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems + 7 });
|
await apis.user.shared.waitForFilesToBeShared([file1Id, file2Id, file3Id, file4Id, file5Id, file6Id, file7Id]);
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
@ -692,14 +659,7 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
await apis.user.nodes.deleteNodeById(file1Id);
|
await apis.user.nodes.deleteNodesById([file1Id, file2Id, file3Id, file4Id, file5Id, file6Id, file7Id]);
|
||||||
await apis.user.nodes.deleteNodeById(file2Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file3Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file4Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file5Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file6Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file7Id);
|
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286648] Share dialog default values', async () => {
|
it('[C286648] Share dialog default values', async () => {
|
||||||
@ -809,8 +769,6 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('from Favorites', () => {
|
describe('from Favorites', () => {
|
||||||
let initialTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
||||||
file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id;
|
file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id;
|
||||||
@ -822,20 +780,11 @@ describe('Share a file', () => {
|
|||||||
file8Id = (await apis.user.nodes.createFile(file8, parentId)).entry.id;
|
file8Id = (await apis.user.nodes.createFile(file8, parentId)).entry.id;
|
||||||
file9Id = (await apis.user.nodes.createFile(file9, parentId)).entry.id;
|
file9Id = (await apis.user.nodes.createFile(file9, parentId)).entry.id;
|
||||||
|
|
||||||
initialTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
await apis.user.favorites.addFavoritesByIds('file', [file1Id, file2Id, file3Id, file4Id, file5Id, file6Id, file7Id, file8Id, file9Id]);
|
||||||
await apis.user.favorites.addFavoriteById('file', file1Id);
|
|
||||||
await apis.user.favorites.addFavoriteById('file', file2Id);
|
|
||||||
await apis.user.favorites.addFavoriteById('file', file3Id);
|
|
||||||
await apis.user.favorites.addFavoriteById('file', file4Id);
|
|
||||||
await apis.user.favorites.addFavoriteById('file', file5Id);
|
|
||||||
await apis.user.favorites.addFavoriteById('file', file6Id);
|
|
||||||
await apis.user.favorites.addFavoriteById('file', file7Id);
|
|
||||||
await apis.user.favorites.addFavoriteById('file', file8Id);
|
|
||||||
await apis.user.favorites.addFavoriteById('file', file9Id);
|
|
||||||
|
|
||||||
await userActions.shareNodes([file6Id, file7Id], expiryDate);
|
await userActions.shareNodes([file6Id, file7Id], expiryDate);
|
||||||
|
|
||||||
await apis.user.favorites.waitForApi({ expect: 9 });
|
await apis.user.favorites.waitForApi({ expect: 9 });
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems + 2 });
|
await apis.user.shared.waitForFilesToBeShared([file6Id, file7Id]);
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
@ -848,16 +797,7 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
await apis.user.nodes.deleteNodeById(file1Id);
|
await apis.user.nodes.deleteNodesById([file1Id, file2Id, file3Id, file4Id, file5Id, file6Id, file7Id, file8Id, file9Id]);
|
||||||
await apis.user.nodes.deleteNodeById(file2Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file3Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file4Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file5Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file6Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file7Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file8Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file9Id);
|
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286666] Share dialog default values', async () => {
|
it('[C286666] Share dialog default values', async () => {
|
||||||
@ -996,32 +936,29 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('from Search Results', () => {
|
describe('from Search Results', () => {
|
||||||
file3 = `search-file3-${Utils.random()}.txt`;
|
const searchRandom = Utils.random();
|
||||||
file5 = `search-file5-${Utils.random()}.txt`;
|
file3 = `search-file3-${searchRandom}.txt`;
|
||||||
file6 = `search-file6-${Utils.random()}.txt`;
|
file5 = `search-file5-${searchRandom}.txt`;
|
||||||
file7 = `search-file7-${Utils.random()}.txt`;
|
file6 = `search-file6-${searchRandom}.txt`;
|
||||||
file9 = `search-file9-${Utils.random()}.txt`;
|
file7 = `search-file7-${searchRandom}.txt`;
|
||||||
|
file9 = `search-file9-${searchRandom}.txt`;
|
||||||
let initialTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
const initialSearchByTermTotalItems = await apis.user.search.getSearchByTermTotalItems('search-f');
|
|
||||||
file3Id = (await apis.user.nodes.createFile(file3, parentId)).entry.id;
|
file3Id = (await apis.user.nodes.createFile(file3, parentId)).entry.id;
|
||||||
file5Id = (await apis.user.nodes.createFile(file5, parentId)).entry.id;
|
file5Id = (await apis.user.nodes.createFile(file5, parentId)).entry.id;
|
||||||
file6Id = (await apis.user.nodes.createFile(file6, parentId)).entry.id;
|
file6Id = (await apis.user.nodes.createFile(file6, parentId)).entry.id;
|
||||||
file7Id = (await apis.user.nodes.createFile(file7, parentId)).entry.id;
|
file7Id = (await apis.user.nodes.createFile(file7, parentId)).entry.id;
|
||||||
file9Id = (await apis.user.nodes.createFile(file9, parentId)).entry.id;
|
file9Id = (await apis.user.nodes.createFile(file9, parentId)).entry.id;
|
||||||
await apis.user.search.waitForNodes('search-f', { expect: initialSearchByTermTotalItems + 5 });
|
await apis.user.search.waitForNodes(searchRandom, { expect: 5 });
|
||||||
|
|
||||||
initialTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await userActions.shareNodes([file6Id, file7Id], expiryDate);
|
await userActions.shareNodes([file6Id, file7Id], expiryDate);
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems + 2 });
|
await apis.user.shared.waitForFilesToBeShared([file6Id, file7Id]);
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkFilesAndFolders();
|
await searchInput.checkFilesAndFolders();
|
||||||
await searchInput.searchFor('search-f');
|
await searchInput.searchFor(searchRandom);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1031,12 +968,7 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
await apis.user.nodes.deleteNodeById(file3Id);
|
await apis.user.nodes.deleteNodesById([file3Id, file5Id, file6Id, file7Id, file9Id]);
|
||||||
await apis.user.nodes.deleteNodeById(file5Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file6Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file7Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file9Id);
|
|
||||||
await apis.user.shared.waitForApi({ expect: initialTotalItems });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C306975] Share a file', async () => {
|
it('[C306975] Share a file', async () => {
|
@ -44,20 +44,21 @@ describe('Unshare a file from Search Results', () => {
|
|||||||
const parent = `parent-${Utils.random()}`;
|
const parent = `parent-${Utils.random()}`;
|
||||||
let parentId: string;
|
let parentId: string;
|
||||||
|
|
||||||
const file1 = `search-file1-${Utils.random()}.txt`;
|
const searchRandom = Utils.random();
|
||||||
|
const file1 = `search-file-${searchRandom}-1.txt`;
|
||||||
let file1Id: string;
|
let file1Id: string;
|
||||||
const file2 = `search-file2-${Utils.random()}.txt`;
|
const file2 = `search-file-${searchRandom}-2.txt`;
|
||||||
let file2Id: string;
|
let file2Id: string;
|
||||||
const file3 = `search-file3-${Utils.random()}.txt`;
|
const file3 = `search-file-${searchRandom}-3.txt`;
|
||||||
let file3Id: string;
|
let file3Id: string;
|
||||||
const file4 = `search-file4-${Utils.random()}.txt`;
|
const file4 = `search-file-${searchRandom}-4.txt`;
|
||||||
let file4Id: string;
|
let file4Id: string;
|
||||||
|
|
||||||
const sitePrivate = `site-private-${Utils.random()}`;
|
const sitePrivate = `site-private-${Utils.random()}`;
|
||||||
|
|
||||||
const fileSite1 = `search-fileSite1-${Utils.random()}.txt`;
|
const fileSite1 = `search-file-${searchRandom}-Site1.txt`;
|
||||||
let fileSite1Id: string;
|
let fileSite1Id: string;
|
||||||
const fileSite2 = `search-fileSite2-${Utils.random()}.txt`;
|
const fileSite2 = `search-file-${searchRandom}-Site2.txt`;
|
||||||
let fileSite2Id: string;
|
let fileSite2Id: string;
|
||||||
|
|
||||||
const apis = {
|
const apis = {
|
||||||
@ -83,13 +84,11 @@ describe('Unshare a file from Search Results', () => {
|
|||||||
|
|
||||||
parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
|
parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
|
||||||
|
|
||||||
const initialSearchByTermTotalItems = await apis.user.search.getSearchByTermTotalItems('search-file');
|
|
||||||
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
||||||
file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id;
|
file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id;
|
||||||
file3Id = (await apis.user.nodes.createFile(file3, parentId)).entry.id;
|
file3Id = (await apis.user.nodes.createFile(file3, parentId)).entry.id;
|
||||||
file4Id = (await apis.user.nodes.createFile(file4, parentId)).entry.id;
|
file4Id = (await apis.user.nodes.createFile(file4, parentId)).entry.id;
|
||||||
|
|
||||||
const initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await userActions.shareNodes([file1Id, file2Id, file3Id, file4Id]);
|
await userActions.shareNodes([file1Id, file2Id, file3Id, file4Id]);
|
||||||
await adminApiActions.sites.createSite(sitePrivate, SITE_VISIBILITY.PRIVATE);
|
await adminApiActions.sites.createSite(sitePrivate, SITE_VISIBILITY.PRIVATE);
|
||||||
const docLibId = await adminApiActions.sites.getDocLibId(sitePrivate);
|
const docLibId = await adminApiActions.sites.getDocLibId(sitePrivate);
|
||||||
@ -102,8 +101,9 @@ describe('Unshare a file from Search Results', () => {
|
|||||||
await adminApiActions.shareNodes([fileSite1Id]);
|
await adminApiActions.shareNodes([fileSite1Id]);
|
||||||
await userActions.shareNodes([fileSite2Id]);
|
await userActions.shareNodes([fileSite2Id]);
|
||||||
|
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 6 });
|
await apis.user.shared.waitForFilesToBeShared([file1Id, file2Id, file3Id, file4Id, fileSite2Id]);
|
||||||
await apis.user.search.waitForNodes('search-file', { expect: initialSearchByTermTotalItems + 6 });
|
await adminApiActions.shared.waitForFilesToBeShared([fileSite1Id]);
|
||||||
|
await apis.user.search.waitForNodes(`search-file-${searchRandom}`, { expect: 6 });
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
@ -83,17 +83,15 @@ describe('Unshare a file', () => {
|
|||||||
let file3Id: string;
|
let file3Id: string;
|
||||||
const file4 = `file4-${Utils.random()}.txt`;
|
const file4 = `file4-${Utils.random()}.txt`;
|
||||||
let file4Id: string;
|
let file4Id: string;
|
||||||
let initialSharedTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
||||||
file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id;
|
file2Id = (await apis.user.nodes.createFile(file2, parentId)).entry.id;
|
||||||
file3Id = (await apis.user.nodes.createFile(file3, parentId)).entry.id;
|
file3Id = (await apis.user.nodes.createFile(file3, parentId)).entry.id;
|
||||||
file4Id = (await apis.user.nodes.createFile(file4, parentId)).entry.id;
|
file4Id = (await apis.user.nodes.createFile(file4, parentId)).entry.id;
|
||||||
initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
|
|
||||||
await userActions.shareNodes([file1Id, file2Id, file3Id, file4Id]);
|
await userActions.shareNodes([file1Id, file2Id, file3Id, file4Id]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 4 });
|
await apis.user.shared.waitForFilesToBeShared([file1Id, file2Id, file3Id, file4Id]);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -111,11 +109,7 @@ describe('Unshare a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async (done) => {
|
||||||
await apis.user.nodes.deleteNodeById(file1Id);
|
await apis.user.nodes.deleteNodesById([file1Id, file2Id, file3Id, file4Id]);
|
||||||
await apis.user.nodes.deleteNodeById(file2Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file3Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file4Id);
|
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems });
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -205,7 +199,6 @@ describe('Unshare a file', () => {
|
|||||||
const siteName = `site-${Utils.random()}`;
|
const siteName = `site-${Utils.random()}`;
|
||||||
const parentInSite = `parent-site-${Utils.random()}`;
|
const parentInSite = `parent-site-${Utils.random()}`;
|
||||||
let parentInSiteId: string;
|
let parentInSiteId: string;
|
||||||
let initialSharedTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
|
await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
|
||||||
@ -216,10 +209,9 @@ describe('Unshare a file', () => {
|
|||||||
file2Id = (await apis.user.nodes.createFile(file2, parentInSiteId)).entry.id;
|
file2Id = (await apis.user.nodes.createFile(file2, parentInSiteId)).entry.id;
|
||||||
file3Id = (await apis.user.nodes.createFile(file3, parentInSiteId)).entry.id;
|
file3Id = (await apis.user.nodes.createFile(file3, parentInSiteId)).entry.id;
|
||||||
file4Id = (await apis.user.nodes.createFile(file4, parentInSiteId)).entry.id;
|
file4Id = (await apis.user.nodes.createFile(file4, parentInSiteId)).entry.id;
|
||||||
initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
|
|
||||||
await userActions.shareNodes([file1Id, file2Id, file3Id, file4Id]);
|
await userActions.shareNodes([file1Id, file2Id, file3Id, file4Id]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 4 });
|
await apis.user.shared.waitForFilesToBeShared([file1Id, file2Id, file3Id, file4Id]);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -240,7 +232,6 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async (done) => {
|
||||||
await adminApiActions.sites.deleteSite(siteName);
|
await adminApiActions.sites.deleteSite(siteName);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems });
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -326,7 +317,6 @@ describe('Unshare a file', () => {
|
|||||||
let file3Id: string;
|
let file3Id: string;
|
||||||
const file4 = `file4-${Utils.random()}.txt`;
|
const file4 = `file4-${Utils.random()}.txt`;
|
||||||
let file4Id: string;
|
let file4Id: string;
|
||||||
let initialSharedTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
||||||
@ -334,10 +324,8 @@ describe('Unshare a file', () => {
|
|||||||
file3Id = (await apis.user.nodes.createFile(file3, parentId)).entry.id;
|
file3Id = (await apis.user.nodes.createFile(file3, parentId)).entry.id;
|
||||||
file4Id = (await apis.user.nodes.createFile(file4, parentId)).entry.id;
|
file4Id = (await apis.user.nodes.createFile(file4, parentId)).entry.id;
|
||||||
|
|
||||||
initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
|
|
||||||
await userActions.shareNodes([file1Id, file2Id, file3Id, file4Id]);
|
await userActions.shareNodes([file1Id, file2Id, file3Id, file4Id]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 4 });
|
await apis.user.shared.waitForFilesToBeShared([file1Id, file2Id, file3Id, file4Id]);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -353,11 +341,7 @@ describe('Unshare a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async (done) => {
|
||||||
await apis.user.nodes.deleteNodeById(file1Id);
|
await apis.user.nodes.deleteNodesById([file1Id, file2Id, file3Id, file4Id]);
|
||||||
await apis.user.nodes.deleteNodeById(file2Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file3Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file4Id);
|
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems });
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -443,7 +427,6 @@ describe('Unshare a file', () => {
|
|||||||
let file3Id: string;
|
let file3Id: string;
|
||||||
const file4 = `file4-${Utils.random()}.txt`;
|
const file4 = `file4-${Utils.random()}.txt`;
|
||||||
let file4Id: string;
|
let file4Id: string;
|
||||||
let initialSharedTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
||||||
@ -451,10 +434,8 @@ describe('Unshare a file', () => {
|
|||||||
file3Id = (await apis.user.nodes.createFile(file3, parentId)).entry.id;
|
file3Id = (await apis.user.nodes.createFile(file3, parentId)).entry.id;
|
||||||
file4Id = (await apis.user.nodes.createFile(file4, parentId)).entry.id;
|
file4Id = (await apis.user.nodes.createFile(file4, parentId)).entry.id;
|
||||||
|
|
||||||
initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
|
|
||||||
await userActions.shareNodes([file1Id, file2Id, file3Id, file4Id]);
|
await userActions.shareNodes([file1Id, file2Id, file3Id, file4Id]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 4 });
|
await apis.user.shared.waitForFilesToBeShared([file1Id, file2Id, file3Id, file4Id]);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -470,11 +451,7 @@ describe('Unshare a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async (done) => {
|
||||||
await apis.user.nodes.deleteNodeById(file1Id);
|
await apis.user.nodes.deleteNodesById([file1Id, file2Id, file3Id, file4Id]);
|
||||||
await apis.user.nodes.deleteNodeById(file2Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file3Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file4Id);
|
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems });
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -560,7 +537,6 @@ describe('Unshare a file', () => {
|
|||||||
let file3Id: string;
|
let file3Id: string;
|
||||||
const file4 = `file4-${Utils.random()}.txt`;
|
const file4 = `file4-${Utils.random()}.txt`;
|
||||||
let file4Id: string;
|
let file4Id: string;
|
||||||
let initialSharedTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
file1Id = (await apis.user.nodes.createFile(file1, parentId)).entry.id;
|
||||||
@ -568,8 +544,6 @@ describe('Unshare a file', () => {
|
|||||||
file3Id = (await apis.user.nodes.createFile(file3, parentId)).entry.id;
|
file3Id = (await apis.user.nodes.createFile(file3, parentId)).entry.id;
|
||||||
file4Id = (await apis.user.nodes.createFile(file4, parentId)).entry.id;
|
file4Id = (await apis.user.nodes.createFile(file4, parentId)).entry.id;
|
||||||
|
|
||||||
initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
|
|
||||||
await userActions.shareNodes([file1Id, file2Id, file3Id, file4Id]);
|
await userActions.shareNodes([file1Id, file2Id, file3Id, file4Id]);
|
||||||
|
|
||||||
await apis.user.favorites.addFavoriteById('file', file1Id);
|
await apis.user.favorites.addFavoriteById('file', file1Id);
|
||||||
@ -578,7 +552,7 @@ describe('Unshare a file', () => {
|
|||||||
await apis.user.favorites.addFavoriteById('file', file4Id);
|
await apis.user.favorites.addFavoriteById('file', file4Id);
|
||||||
|
|
||||||
await apis.user.favorites.waitForApi({ expect: 4 });
|
await apis.user.favorites.waitForApi({ expect: 4 });
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 4 });
|
await apis.user.shared.waitForFilesToBeShared([file1Id, file2Id, file3Id, file4Id]);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -594,11 +568,7 @@ describe('Unshare a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async (done) => {
|
||||||
await apis.user.nodes.deleteNodeById(file1Id);
|
await apis.user.nodes.deleteNodesById([file1Id, file2Id, file3Id, file4Id]);
|
||||||
await apis.user.nodes.deleteNodeById(file2Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file3Id);
|
|
||||||
await apis.user.nodes.deleteNodeById(file4Id);
|
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems });
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -704,15 +674,18 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
await adminApiActions.sites.addSiteMember(sitePrivate, username, SITE_ROLES.SITE_CONSUMER.ROLE);
|
await adminApiActions.sites.addSiteMember(sitePrivate, username, SITE_ROLES.SITE_CONSUMER.ROLE);
|
||||||
|
|
||||||
const initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
await adminApiActions.login();
|
||||||
await adminApiActions.shareNodes([file1FileLibId, file1SharedId, file1FavId]);
|
await adminApiActions.shareNodes([file1FileLibId, file1SharedId, file1FavId]);
|
||||||
|
|
||||||
|
await userActions.login(username, username);
|
||||||
await userActions.shareNodes([file2FileLibId, file2SharedId, file2FavId]);
|
await userActions.shareNodes([file2FileLibId, file2SharedId, file2FavId]);
|
||||||
|
|
||||||
await apis.user.favorites.addFavoriteById('file', file1FavId);
|
await apis.user.favorites.addFavoriteById('file', file1FavId);
|
||||||
await apis.user.favorites.addFavoriteById('file', file2FavId);
|
await apis.user.favorites.addFavoriteById('file', file2FavId);
|
||||||
|
|
||||||
await apis.user.favorites.waitForApi({ expect: 2 });
|
await apis.user.favorites.waitForApi({ expect: 2 });
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 6 });
|
await adminApiActions.shared.waitForFilesToBeShared([file1FileLibId, file1SharedId, file1FavId]);
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file2FileLibId, file2SharedId, file2FavId]);
|
||||||
|
|
||||||
done();
|
done();
|
||||||
});
|
});
|
@ -27,32 +27,33 @@ import { AdminActions, UserActions, LoginPage, BrowsingPage, SearchResultsPage,
|
|||||||
import { BrowserActions } from '@alfresco/adf-testing';
|
import { BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
describe('Download', () => {
|
describe('Download', () => {
|
||||||
const username = `user-${Utils.random()}`;
|
const random = Utils.random();
|
||||||
|
const username = `user-${random}`;
|
||||||
|
|
||||||
const parent = `parent-${Utils.random()}`;
|
const parent = `parent-${random}`;
|
||||||
let parentId: string;
|
let parentId: string;
|
||||||
|
|
||||||
const filePersonal = `filePersonal-${Utils.random()}.txt`;
|
const filePersonal = `filePersonal-${random}.txt`;
|
||||||
const fileRecent1 = `fileRecent1-${Utils.random()}.txt`;
|
const fileRecent1 = `fileRecent1-${random}.txt`;
|
||||||
const fileRecent2 = `fileRecent2-${Utils.random()}.txt`;
|
const fileRecent2 = `fileRecent2-${random}.txt`;
|
||||||
const fileShared1 = `fileShared1-${Utils.random()}.txt`;
|
const fileShared1 = `fileShared1-${random}.txt`;
|
||||||
const fileShared2 = `fileShared2-${Utils.random()}.txt`;
|
const fileShared2 = `fileShared2-${random}.txt`;
|
||||||
const fileFavorites = `fileFavorites-${Utils.random()}.txt`;
|
const fileFavorites = `fileFavorites-${random}.txt`;
|
||||||
const fileSearch = `fileSearch-${Utils.random()}.txt`;
|
const fileSearch = `fileSearch-${random}.txt`;
|
||||||
|
|
||||||
const folderPersonal = `folderPersonal-${Utils.random()}`;
|
const folderPersonal = `folderPersonal-${random}`;
|
||||||
const folderFavorites = `folderFavorites-${Utils.random()}`;
|
const folderFavorites = `folderFavorites-${random}`;
|
||||||
const folderSearch = `folderSearch-${Utils.random()}`;
|
const folderSearch = `folderSearch-${random}`;
|
||||||
|
|
||||||
const fileInFolderPersonal = `fileInFolderPersonal-${Utils.random()}.txt`;
|
const fileInFolderPersonal = `fileInFolderPersonal-${random}.txt`;
|
||||||
const fileInFolderFavorites = `fileInFolderFavorites-${Utils.random()}.txt`;
|
const fileInFolderFavorites = `fileInFolderFavorites-${random}.txt`;
|
||||||
const fileInFolderSearch = `fileInFolderSearch-${Utils.random()}.txt`;
|
const fileInFolderSearch = `fileInFolderSearch-${random}.txt`;
|
||||||
|
|
||||||
const unzippedPersonal = `unzippedPersonal-${Utils.random()}`;
|
const unzippedPersonal = `unzippedPersonal-${random}`;
|
||||||
const unzippedRecent = `unzippedRecent-${Utils.random()}`;
|
const unzippedRecent = `unzippedRecent-${random}`;
|
||||||
const unzippedShared = `unzippedShared-${Utils.random()}`;
|
const unzippedShared = `unzippedShared-${random}`;
|
||||||
const unzippedFavorites = `unzippedFavorites-${Utils.random()}`;
|
const unzippedFavorites = `unzippedFavorites-${random}`;
|
||||||
const unzippedSearch = `unzippedSearch-${Utils.random()}`;
|
const unzippedSearch = `unzippedSearch-${random}`;
|
||||||
|
|
||||||
let fileShared1Id: string;
|
let fileShared1Id: string;
|
||||||
let fileShared2Id: string;
|
let fileShared2Id: string;
|
||||||
@ -73,7 +74,6 @@ describe('Download', () => {
|
|||||||
const searchResultsPage = new SearchResultsPage();
|
const searchResultsPage = new SearchResultsPage();
|
||||||
const { searchInput } = searchResultsPage.header;
|
const { searchInput } = searchResultsPage.header;
|
||||||
|
|
||||||
let initialSharedTotalItems: number;
|
|
||||||
let initialFavoritesTotalItems: number;
|
let initialFavoritesTotalItems: number;
|
||||||
let initialRecentTotalItems: number;
|
let initialRecentTotalItems: number;
|
||||||
|
|
||||||
@ -108,9 +108,8 @@ describe('Download', () => {
|
|||||||
|
|
||||||
await apis.user.search.waitForApi(username, { expect: initialRecentTotalItems + 10 });
|
await apis.user.search.waitForApi(username, { expect: initialRecentTotalItems + 10 });
|
||||||
|
|
||||||
initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await userActions.shareNodes([fileShared1Id, fileShared2Id]);
|
await userActions.shareNodes([fileShared1Id, fileShared2Id]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 2 });
|
await apis.user.shared.waitForFilesToBeShared([fileShared1Id, fileShared2Id]);
|
||||||
|
|
||||||
initialFavoritesTotalItems = await apis.user.favorites.getFavoritesTotalItems();
|
initialFavoritesTotalItems = await apis.user.favorites.getFavoritesTotalItems();
|
||||||
await apis.user.favorites.addFavoriteById('file', fileFavoritesId);
|
await apis.user.favorites.addFavoriteById('file', fileFavoritesId);
|
||||||
@ -128,7 +127,7 @@ describe('Download', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(async (done) => {
|
||||||
await Utils.renameFile(archiveZip, `${Utils.random()}.zip`);
|
await Utils.renameFile(archiveZip, `${random}.zip`);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -276,7 +275,7 @@ describe('Download', () => {
|
|||||||
await page.clickPersonalFilesAndWait();
|
await page.clickPersonalFilesAndWait();
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkFilesAndFolders();
|
await searchInput.checkFilesAndFolders();
|
||||||
await searchInput.searchFor('*Search*');
|
await searchInput.searchFor(random);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
@ -61,8 +61,8 @@ describe('Upload files', () => {
|
|||||||
it('Upload a file', async () => {
|
it('Upload a file', async () => {
|
||||||
await dataTable.doubleClickOnRowByName(folder1);
|
await dataTable.doubleClickOnRowByName(folder1);
|
||||||
await page.sidenav.openNewMenu();
|
await page.sidenav.openNewMenu();
|
||||||
await page.sidenav.menu.uploadFilesInput.sendKeys(`${__dirname}/create-folder.test.ts`);
|
await page.sidenav.menu.uploadFilesInput.sendKeys(`${__dirname}/upload-file.test.ts`);
|
||||||
|
|
||||||
expect(await dataTable.isItemPresent('create-folder.test.ts')).toBe(true, 'file not uploaded');
|
expect(await dataTable.isItemPresent('upload-file.test.ts')).toBe(true, 'file not uploaded');
|
||||||
});
|
});
|
||||||
});
|
});
|
@ -50,17 +50,18 @@ describe('Upload new version', () => {
|
|||||||
const fileLocked2 = `file-locked2-${Utils.random()}.docx`;
|
const fileLocked2 = `file-locked2-${Utils.random()}.docx`;
|
||||||
let fileLocked2Id: string;
|
let fileLocked2Id: string;
|
||||||
|
|
||||||
const fileSearch1 = `search-file1-${Utils.random()}.docx`;
|
const searchRandom = Utils.random();
|
||||||
|
const fileSearch1 = `search-${searchRandom}-file1.docx`;
|
||||||
let fileSearch1Id: string;
|
let fileSearch1Id: string;
|
||||||
const fileSearch2 = `search-file2-${Utils.random()}.docx`;
|
const fileSearch2 = `search-${searchRandom}-file2.docx`;
|
||||||
let fileSearch2Id: string;
|
let fileSearch2Id: string;
|
||||||
const fileSearch3 = `search-file3-${Utils.random()}.docx`;
|
const fileSearch3 = `search-${searchRandom}-file3.docx`;
|
||||||
let fileSearch3Id: string;
|
let fileSearch3Id: string;
|
||||||
const fileSearch4 = `search-file4-${Utils.random()}.docx`;
|
const fileSearch4 = `search-${searchRandom}-file4.docx`;
|
||||||
let fileSearch4Id: string;
|
let fileSearch4Id: string;
|
||||||
const fileLockedSearch1 = `search-file-locked1-${Utils.random()}.docx`;
|
const fileLockedSearch1 = `search-${searchRandom}-file-locked1.docx`;
|
||||||
let fileLockedSearch1Id: string;
|
let fileLockedSearch1Id: string;
|
||||||
const fileLockedSearch2 = `search-file-locked2-${Utils.random()}.docx`;
|
const fileLockedSearch2 = `search-${searchRandom}-file-locked2.docx`;
|
||||||
let fileLockedSearch2Id: string;
|
let fileLockedSearch2Id: string;
|
||||||
|
|
||||||
const parentPF = `parentPersonal-${Utils.random()}`;
|
const parentPF = `parentPersonal-${Utils.random()}`;
|
||||||
@ -116,8 +117,6 @@ describe('Upload new version', () => {
|
|||||||
|
|
||||||
describe('on Search Results', () => {
|
describe('on Search Results', () => {
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
const initialSearchTotalItems = await apis.user.search.getSearchByTermTotalItems('search-f');
|
|
||||||
|
|
||||||
fileId = (await apis.user.upload.uploadFile(file, parentSearchId)).entry.id;
|
fileId = (await apis.user.upload.uploadFile(file, parentSearchId)).entry.id;
|
||||||
fileSearch1Id = (await apis.user.nodes.createFile(fileSearch1, parentSearchId)).entry.id;
|
fileSearch1Id = (await apis.user.nodes.createFile(fileSearch1, parentSearchId)).entry.id;
|
||||||
fileSearch2Id = (await apis.user.nodes.createFile(fileSearch2, parentSearchId)).entry.id;
|
fileSearch2Id = (await apis.user.nodes.createFile(fileSearch2, parentSearchId)).entry.id;
|
||||||
@ -130,7 +129,7 @@ describe('Upload new version', () => {
|
|||||||
await apis.user.nodes.lockFile(fileLockedSearch1Id);
|
await apis.user.nodes.lockFile(fileLockedSearch1Id);
|
||||||
await apis.user.nodes.lockFile(fileLockedSearch2Id);
|
await apis.user.nodes.lockFile(fileLockedSearch2Id);
|
||||||
|
|
||||||
await apis.user.search.waitForNodes('search-f', { expect: initialSearchTotalItems + 6 });
|
await apis.user.search.waitForNodes(searchRandom, { expect: 6 });
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
||||||
@ -455,9 +454,8 @@ describe('Upload new version', () => {
|
|||||||
await apis.user.nodes.lockFile(fileLocked1Id);
|
await apis.user.nodes.lockFile(fileLocked1Id);
|
||||||
await apis.user.nodes.lockFile(fileLocked2Id);
|
await apis.user.nodes.lockFile(fileLocked2Id);
|
||||||
|
|
||||||
const initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await apis.user.shared.shareFilesByIds([fileId, file1Id, file2Id, file3Id, file4Id, fileLocked1Id, fileLocked2Id]);
|
await apis.user.shared.shareFilesByIds([fileId, file1Id, file2Id, file3Id, file4Id, fileLocked1Id, fileLocked2Id]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 7 });
|
await apis.user.shared.waitForFilesToBeShared([fileId, file1Id, file2Id, file3Id, file4Id, fileLocked1Id, fileLocked2Id]);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
@ -23,17 +23,16 @@
|
|||||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { AdminActions, LoginPage, BrowsingPage, FILES, RepoClient, Utils, UploadNewVersionDialog } from '@alfresco/aca-testing-shared';
|
import { AdminActions, LoginPage, BrowsingPage, FILES, RepoClient, Utils, ManageVersionsDialog, Viewer } from '@alfresco/aca-testing-shared';
|
||||||
import { VersionManagePage } from '../../../projects/aca-testing-shared/src/components/version-manage/version-manager';
|
|
||||||
import { Viewer } from '../../../projects/aca-testing-shared/src/components';
|
|
||||||
import { browser } from 'protractor';
|
import { browser } from 'protractor';
|
||||||
import { BrowserActions } from '@alfresco/adf-testing';
|
import { Logger } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
describe('Version component actions', () => {
|
describe('Version actions', () => {
|
||||||
const versionManagePage = new VersionManagePage();
|
const random = Utils.random();
|
||||||
const viewerPage = new Viewer();
|
|
||||||
|
|
||||||
const username = `user-${Utils.random()}`;
|
const username = `user-${random}`;
|
||||||
|
const parentFolder = `parent-${random}`;
|
||||||
|
let parentFolderId: string;
|
||||||
|
|
||||||
let fileId: string;
|
let fileId: string;
|
||||||
|
|
||||||
@ -46,54 +45,57 @@ describe('Version component actions', () => {
|
|||||||
const loginPage = new LoginPage();
|
const loginPage = new LoginPage();
|
||||||
const page = new BrowsingPage();
|
const page = new BrowsingPage();
|
||||||
const { dataTable, toolbar } = page;
|
const { dataTable, toolbar } = page;
|
||||||
const uploadNewVersionDialog = new UploadNewVersionDialog();
|
const versionManagePage = new ManageVersionsDialog();
|
||||||
|
const viewerPage = new Viewer();
|
||||||
const { searchInput } = page.header;
|
const { searchInput } = page.header;
|
||||||
const adminApiActions = new AdminActions();
|
const adminApiActions = new AdminActions();
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async () => {
|
||||||
await adminApiActions.createUser({ username });
|
try {
|
||||||
fileId = (await apis.user.upload.uploadFile(filesToUpload[0])).entry.id;
|
await adminApiActions.createUser({ username });
|
||||||
await apis.user.shared.shareFilesByIds([fileId]);
|
|
||||||
await loginPage.loginWith(username);
|
|
||||||
|
|
||||||
for (let i = 0; i < filesToUpload.length - 1; i++) {
|
parentFolderId = (await apis.user.nodes.createFolder(parentFolder)).entry.id;
|
||||||
await dataTable.selectItem(filesToUpload[i]);
|
|
||||||
await toolbar.clickMoreActionsUploadNewVersion();
|
|
||||||
await Utils.uploadFileNewVersion(filesToUpload[i + 1]);
|
|
||||||
|
|
||||||
await page.waitForDialog();
|
fileId = (await apis.user.upload.uploadFile(filesToUpload[0], parentFolderId)).entry.id;
|
||||||
|
|
||||||
await BrowserActions.click(uploadNewVersionDialog.majorOption);
|
await apis.user.shared.shareFilesByIds([fileId]);
|
||||||
|
await apis.user.favorites.addFavoritesByIds('file', [fileId]);
|
||||||
|
|
||||||
await uploadNewVersionDialog.enterDescription('new major version description');
|
for (let i = 0; i < filesToUpload.length - 1; i++) {
|
||||||
await BrowserActions.click(uploadNewVersionDialog.uploadButton);
|
await apis.user.nodes.updateNodeContent(
|
||||||
|
fileId,
|
||||||
|
`${browser.params.e2eRootPath}/resources/test-files/${filesToUpload[i + 1]}`,
|
||||||
|
true,
|
||||||
|
'new major version description',
|
||||||
|
filesToUpload[i + 1]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
await uploadNewVersionDialog.waitForDialogToClose();
|
await loginPage.loginWith(username);
|
||||||
|
await dataTable.doubleClickOnRowByName(parentFolder);
|
||||||
|
await dataTable.waitForHeader();
|
||||||
|
} catch (error) {
|
||||||
|
Logger.error(`--- beforeAll failed : ${error}`);
|
||||||
}
|
}
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async () => {
|
||||||
await apis.user.nodes.deleteNodeById(fileId);
|
await apis.user.nodes.deleteNodeById(parentFolderId);
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('on Personal Files', () => {
|
describe('on Personal Files', () => {
|
||||||
beforeAll(async (done) => {
|
beforeEach(async () => {
|
||||||
await page.clickPersonalFilesAndWait();
|
await page.clickPersonalFilesAndWait();
|
||||||
done();
|
await dataTable.doubleClickOnRowByName(parentFolder);
|
||||||
});
|
await dataTable.waitForHeader();
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
|
||||||
await dataTable.selectItem(filesToUpload[4]);
|
await dataTable.selectItem(filesToUpload[4]);
|
||||||
await toolbar.clickMoreActionsManageVersions();
|
await toolbar.clickMoreActionsManageVersions();
|
||||||
await versionManagePage.viewFileVersion('1.0');
|
await versionManagePage.viewFileVersion('1.0');
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(async () => {
|
||||||
await viewerPage.clickCloseButton();
|
await page.closeOpenDialogs();
|
||||||
done();
|
await Utils.pressEscape();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C586766] Should be possible to view a previous document version', async () => {
|
it('[C586766] Should be possible to view a previous document version', async () => {
|
||||||
@ -112,13 +114,9 @@ describe('Version component actions', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('on Shared Files', () => {
|
describe('on Shared Files', () => {
|
||||||
beforeAll(async (done) => {
|
|
||||||
await page.clickSharedFilesAndWait();
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async (done) => {
|
||||||
await dataTable.selectItem(filesToUpload[4]);
|
await page.clickSharedFilesAndWait();
|
||||||
|
await dataTable.selectItem(filesToUpload[4], parentFolder);
|
||||||
await toolbar.clickMoreActionsManageVersions();
|
await toolbar.clickMoreActionsManageVersions();
|
||||||
await versionManagePage.viewFileVersion('2.0');
|
await versionManagePage.viewFileVersion('2.0');
|
||||||
done();
|
done();
|
||||||
@ -145,13 +143,9 @@ describe('Version component actions', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('on Recent Files', () => {
|
describe('on Recent Files', () => {
|
||||||
beforeAll(async (done) => {
|
|
||||||
await page.clickRecentFilesAndWait();
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async (done) => {
|
||||||
await dataTable.selectItem(filesToUpload[4]);
|
await page.clickRecentFilesAndWait();
|
||||||
|
await dataTable.selectItem(filesToUpload[4], parentFolder);
|
||||||
await toolbar.clickMoreActionsManageVersions();
|
await toolbar.clickMoreActionsManageVersions();
|
||||||
await versionManagePage.viewFileVersion('3.0');
|
await versionManagePage.viewFileVersion('3.0');
|
||||||
done();
|
done();
|
||||||
@ -178,15 +172,9 @@ describe('Version component actions', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('on Favorite Files', () => {
|
describe('on Favorite Files', () => {
|
||||||
beforeAll(async (done) => {
|
|
||||||
await apis.user.favorites.addFavoritesByIds('file', [fileId]);
|
|
||||||
await apis.user.favorites.waitForApi({ expect: 1 });
|
|
||||||
await page.clickFavoritesAndWait();
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async (done) => {
|
||||||
await dataTable.selectItem(filesToUpload[4]);
|
await page.clickFavoritesAndWait();
|
||||||
|
await dataTable.selectItem(filesToUpload[4], parentFolder);
|
||||||
await toolbar.clickMoreActionsManageVersions();
|
await toolbar.clickMoreActionsManageVersions();
|
||||||
await versionManagePage.viewFileVersion('4.0');
|
await versionManagePage.viewFileVersion('4.0');
|
||||||
done();
|
done();
|
||||||
@ -213,16 +201,14 @@ describe('Version component actions', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('on Search Results', () => {
|
describe('on Search Results', () => {
|
||||||
beforeAll(async (done) => {
|
|
||||||
await searchInput.clickSearchButton();
|
|
||||||
await searchInput.checkFilesAndFolders();
|
|
||||||
await searchInput.searchFor(filesToUpload[4]);
|
|
||||||
await dataTable.waitForBody();
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async (done) => {
|
||||||
await dataTable.selectItem(filesToUpload[4], 'Personal Files');
|
await page.clickPersonalFiles();
|
||||||
|
await searchInput.clickSearchButton();
|
||||||
|
await searchInput.checkOnlyFiles();
|
||||||
|
await searchInput.searchFor(`${filesToUpload[4]} AND PARENT:"workspace://SpacesStore/${parentFolderId}"`);
|
||||||
|
await dataTable.waitForBody();
|
||||||
|
|
||||||
|
await dataTable.selectItem(filesToUpload[4], parentFolder);
|
||||||
await toolbar.clickMoreActionsManageVersions();
|
await toolbar.clickMoreActionsManageVersions();
|
||||||
await versionManagePage.viewFileVersion('5.0');
|
await versionManagePage.viewFileVersion('5.0');
|
||||||
done();
|
done();
|
@ -115,8 +115,7 @@ describe('Login', () => {
|
|||||||
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
|
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: ACA-245
|
it('[C213107] redirects to Home Page when navigating to the Login page while already logged in', async () => {
|
||||||
xit('[C213107] redirects to Home Page when navigating to the Login page while already logged in', async () => {
|
|
||||||
const { username } = johnDoe;
|
const { username } = johnDoe;
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
@ -143,7 +142,7 @@ describe('Login', () => {
|
|||||||
|
|
||||||
describe('with invalid credentials', () => {
|
describe('with invalid credentials', () => {
|
||||||
const { login: loginComponent } = loginPage;
|
const { login: loginComponent } = loginPage;
|
||||||
const { submitButton, errorMessage } = loginComponent;
|
const { submitButton } = loginComponent;
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async (done) => {
|
||||||
await loginPage.load();
|
await loginPage.load();
|
||||||
@ -160,32 +159,9 @@ describe('Login', () => {
|
|||||||
expect(await submitButton.isEnabled()).toBe(false, 'submit button is enabled');
|
expect(await submitButton.isEnabled()).toBe(false, 'submit button is enabled');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C213093] shows error when entering nonexistent user', async () => {
|
|
||||||
await loginPage.tryLoginWith('nonexistent-user', 'any-password');
|
|
||||||
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
|
|
||||||
expect(await errorMessage.isDisplayed()).toBe(true, 'error message is not displayed');
|
|
||||||
expect(await errorMessage.getText()).toBe(`You've entered an unknown username or password`);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C280071] shows error when entering invalid password', async () => {
|
|
||||||
const { username } = johnDoe;
|
|
||||||
|
|
||||||
await loginPage.tryLoginWith(username, 'incorrect-password');
|
|
||||||
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
|
|
||||||
expect(await errorMessage.isDisplayed()).toBe(true, 'error message is not displayed');
|
|
||||||
expect(await errorMessage.getText()).toBe(`You've entered an unknown username or password`);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('[C213106] unauthenticated user is redirected to Login page', async () => {
|
it('[C213106] unauthenticated user is redirected to Login page', async () => {
|
||||||
await navigate(APP_ROUTES.PERSONAL_FILES);
|
await navigate(APP_ROUTES.PERSONAL_FILES);
|
||||||
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
|
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C213100] disabled user is not logged in', async () => {
|
|
||||||
await loginPage.tryLoginWith(disabledUser);
|
|
||||||
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
|
|
||||||
expect(await errorMessage.isDisplayed()).toBe(true, 'error message is not displayed');
|
|
||||||
expect(await errorMessage.getText()).toBe(`You've entered an unknown username or password`);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -87,9 +87,8 @@ describe('Comments', () => {
|
|||||||
comment1File2Entry = await userActions.createComment(fileWith2CommentsId, 'first comment');
|
comment1File2Entry = await userActions.createComment(fileWith2CommentsId, 'first comment');
|
||||||
comment2File2Entry = await userActions.createComment(fileWith2CommentsId, 'second comment');
|
comment2File2Entry = await userActions.createComment(fileWith2CommentsId, 'second comment');
|
||||||
|
|
||||||
const initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await apis.user.shared.shareFilesByIds([file2SharedId, fileWith1CommentId, fileWith2CommentsId]);
|
await apis.user.shared.shareFilesByIds([file2SharedId, fileWith1CommentId, fileWith2CommentsId]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 3 });
|
await apis.user.shared.waitForFilesToBeShared([file2SharedId, fileWith1CommentId, fileWith2CommentsId]);
|
||||||
|
|
||||||
await apis.user.favorites.addFavoritesByIds('file', [file2FavoritesId, fileWith1CommentId, fileWith2CommentsId]);
|
await apis.user.favorites.addFavoritesByIds('file', [file2FavoritesId, fileWith1CommentId, fileWith2CommentsId]);
|
||||||
|
|
||||||
|
@ -40,8 +40,6 @@ describe('Special permissions', () => {
|
|||||||
const adminApiActions = new AdminActions();
|
const adminApiActions = new AdminActions();
|
||||||
const userActions = new UserActions();
|
const userActions = new UserActions();
|
||||||
|
|
||||||
let initialSharedTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
await adminApiActions.login();
|
await adminApiActions.login();
|
||||||
await adminApiActions.createUser({ username });
|
await adminApiActions.createUser({ username });
|
||||||
@ -52,7 +50,7 @@ describe('Special permissions', () => {
|
|||||||
describe('file not displayed if user no longer has permissions on it', () => {
|
describe('file not displayed if user no longer has permissions on it', () => {
|
||||||
const sitePrivate = `private-${Utils.random()}`;
|
const sitePrivate = `private-${Utils.random()}`;
|
||||||
const fileName = `file-${Utils.random()}.txt`;
|
const fileName = `file-${Utils.random()}.txt`;
|
||||||
let fileId;
|
let fileId: string;
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
await adminApiActions.sites.createSite(sitePrivate, SITE_VISIBILITY.PRIVATE);
|
await adminApiActions.sites.createSite(sitePrivate, SITE_VISIBILITY.PRIVATE);
|
||||||
@ -61,13 +59,11 @@ describe('Special permissions', () => {
|
|||||||
fileId = (await adminApiActions.nodes.createFile(fileName, docLibId)).entry.id;
|
fileId = (await adminApiActions.nodes.createFile(fileName, docLibId)).entry.id;
|
||||||
await apis.user.favorites.addFavoriteById('file', fileId);
|
await apis.user.favorites.addFavoriteById('file', fileId);
|
||||||
|
|
||||||
initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
|
|
||||||
await adminApiActions.shareNodes([fileId]);
|
await adminApiActions.shareNodes([fileId]);
|
||||||
await apis.user.nodes.editNodeContent(fileId, 'edited by user');
|
await apis.user.nodes.updateNodeContent(fileId, 'edited by user');
|
||||||
|
|
||||||
await apis.user.search.waitForApi(username, { expect: 1 });
|
await apis.user.search.waitForApi(username, { expect: 1 });
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 1 });
|
await adminApiActions.shared.waitForFilesToBeShared([fileId]);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
||||||
@ -136,9 +132,8 @@ describe('Special permissions', () => {
|
|||||||
fileId = (await apis.user.nodes.createFile(fileName, docLibId)).entry.id;
|
fileId = (await apis.user.nodes.createFile(fileName, docLibId)).entry.id;
|
||||||
await apis.user.favorites.addFavoriteById('file', fileId);
|
await apis.user.favorites.addFavoriteById('file', fileId);
|
||||||
|
|
||||||
initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await userActions.shareNodes([fileId]);
|
await userActions.shareNodes([fileId]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 1 });
|
await apis.user.shared.waitForFilesToBeShared([fileId]);
|
||||||
|
|
||||||
await apis.user.search.waitForApi(username, { expect: 1 });
|
await apis.user.search.waitForApi(username, { expect: 1 });
|
||||||
await adminApiActions.sites.deleteSiteMember(sitePrivate, username);
|
await adminApiActions.sites.deleteSiteMember(sitePrivate, username);
|
||||||
|
@ -43,8 +43,6 @@ describe('Shared Files', () => {
|
|||||||
const file4User = `file4-${Utils.random()}.txt`;
|
const file4User = `file4-${Utils.random()}.txt`;
|
||||||
let file4Id: string;
|
let file4Id: string;
|
||||||
|
|
||||||
let initialSharedTotalItems: number;
|
|
||||||
|
|
||||||
const apis = {
|
const apis = {
|
||||||
user: new RepoClient(username, password)
|
user: new RepoClient(username, password)
|
||||||
};
|
};
|
||||||
@ -67,16 +65,18 @@ describe('Shared Files', () => {
|
|||||||
file3Id = (await apis.user.nodes.createFile(file3User)).entry.id;
|
file3Id = (await apis.user.nodes.createFile(file3User)).entry.id;
|
||||||
file4Id = (await apis.user.nodes.createFile(file4User)).entry.id;
|
file4Id = (await apis.user.nodes.createFile(file4User)).entry.id;
|
||||||
|
|
||||||
initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
|
|
||||||
await apis.user.shared.shareFilesByIds([file1Id, file2Id, file3Id, file4Id]);
|
await apis.user.shared.shareFilesByIds([file1Id, file2Id, file3Id, file4Id]);
|
||||||
|
|
||||||
|
await adminApiActions.login();
|
||||||
await adminApiActions.shareNodes([nodeId]);
|
await adminApiActions.shareNodes([nodeId]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 5 });
|
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file1Id, file2Id, file3Id, file4Id]);
|
||||||
|
await adminApiActions.shared.waitForFilesToBeShared([nodeId]);
|
||||||
|
|
||||||
await apis.user.nodes.deleteNodeById(file2Id);
|
await apis.user.nodes.deleteNodeById(file2Id);
|
||||||
await apis.user.shared.unshareFile(file3User);
|
await apis.user.shared.unshareFileById(file3Id);
|
||||||
|
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 3 });
|
await apis.user.shared.waitForFilesToNotBeShared([file2Id, file3Id]);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
||||||
|
@ -78,12 +78,10 @@ describe('File / folder tooltips', () => {
|
|||||||
file7Id = (await apis.user.nodes.createFile(fileNameEqDescDiffTitle, parentId, fileTitle, fileNameEqDescDiffTitle)).entry.id;
|
file7Id = (await apis.user.nodes.createFile(fileNameEqDescDiffTitle, parentId, fileTitle, fileNameEqDescDiffTitle)).entry.id;
|
||||||
file8Id = (await apis.user.nodes.createFile(fileTitleEqDesc, parentId, fileTitle, fileTitle)).entry.id;
|
file8Id = (await apis.user.nodes.createFile(fileTitleEqDesc, parentId, fileTitle, fileTitle)).entry.id;
|
||||||
|
|
||||||
const initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await apis.user.shared.shareFilesByIds([file1Id, file2Id, file3Id, file4Id, file5Id, file6Id, file7Id, file8Id]);
|
await apis.user.shared.shareFilesByIds([file1Id, file2Id, file3Id, file4Id, file5Id, file6Id, file7Id, file8Id]);
|
||||||
|
|
||||||
await apis.user.favorites.addFavoritesByIds('file', [file1Id, file2Id, file3Id, file4Id, file5Id, file6Id, file7Id, file8Id]);
|
await apis.user.favorites.addFavoritesByIds('file', [file1Id, file2Id, file3Id, file4Id, file5Id, file6Id, file7Id, file8Id]);
|
||||||
|
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 8 });
|
await apis.user.shared.waitForFilesToBeShared([file1Id, file2Id, file3Id, file4Id, file5Id, file6Id, file7Id, file8Id]);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
||||||
@ -175,46 +173,6 @@ describe('File / folder tooltips', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// disabled until ACA-518 is done
|
|
||||||
xdescribe('on Shared Files', () => {
|
|
||||||
beforeAll(async (done) => {
|
|
||||||
await page.clickSharedFilesAndWait();
|
|
||||||
done();
|
|
||||||
});
|
|
||||||
|
|
||||||
xit('[C280143] File with name, no title, no description', async () => {
|
|
||||||
expect(await dataTable.getItemNameTooltip(file)).toEqual(`${file}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
xit('[C280144] File with name and description, no title', async () => {
|
|
||||||
expect(await dataTable.getItemNameTooltip(fileWithDesc)).toEqual(`${fileWithDesc}\n${fileDescription}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
xit('[C280145] File with name and title, no description', async () => {
|
|
||||||
expect(await dataTable.getItemNameTooltip(fileWithTitle)).toEqual(`${fileWithTitle}\n${fileTitle}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
xit('[C280146] File with name and title and description, all different', async () => {
|
|
||||||
expect(await dataTable.getItemNameTooltip(fileWithTitleAndDesc)).toEqual(`${fileTitle}\n${fileDescription}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
xit('[C280147] File with name and title and description, all equal', async () => {
|
|
||||||
expect(await dataTable.getItemNameTooltip(fileNameEqTitleEqDesc)).toEqual(`${fileNameEqTitleEqDesc}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
xit('[C280148] File with name = title, different description', async () => {
|
|
||||||
expect(await dataTable.getItemNameTooltip(fileNameEqTitleDiffDesc)).toEqual(`${fileNameEqTitleDiffDesc}\n${fileDescription}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
xit('[C280149] File with name = description, different title', async () => {
|
|
||||||
expect(await dataTable.getItemNameTooltip(fileNameEqDescDiffTitle)).toEqual(`${fileTitle}\n${fileNameEqDescDiffTitle}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
xit('[C280150] File with title = description, different name', async () => {
|
|
||||||
expect(await dataTable.getItemNameTooltip(fileTitleEqDesc)).toEqual(`${fileTitle}`);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('on Favorites', () => {
|
describe('on Favorites', () => {
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
await page.clickFavoritesAndWait();
|
await page.clickFavoritesAndWait();
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { AdminActions, UserActions, SITE_VISIBILITY, SITE_ROLES, LoginPage, BrowsingPage, Utils, RepoClient } from '@alfresco/aca-testing-shared';
|
import { AdminActions, UserActions, SITE_VISIBILITY, SITE_ROLES, LoginPage, BrowsingPage, Utils, RepoClient } from '@alfresco/aca-testing-shared';
|
||||||
|
import { Logger } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
describe('Trash', () => {
|
describe('Trash', () => {
|
||||||
const username = `user-${Utils.random()}`;
|
const username = `user-${Utils.random()}`;
|
||||||
@ -64,54 +65,59 @@ describe('Trash', () => {
|
|||||||
const userActions = new UserActions();
|
const userActions = new UserActions();
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await adminApiActions.login();
|
try {
|
||||||
await adminApiActions.createUser({ username });
|
await adminApiActions.login();
|
||||||
await userActions.login(username, username);
|
await adminApiActions.createUser({ username });
|
||||||
|
|
||||||
fileAdminId = (await adminApiActions.nodes.createFiles([fileAdmin])).entry.id;
|
fileAdminId = (await adminApiActions.nodes.createFiles([fileAdmin])).entry.id;
|
||||||
folderAdminId = (await adminApiActions.nodes.createFolders([folderAdmin])).entry.id;
|
folderAdminId = (await adminApiActions.nodes.createFolders([folderAdmin])).entry.id;
|
||||||
await adminApiActions.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
|
await adminApiActions.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
|
||||||
await adminApiActions.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_MANAGER.ROLE);
|
await adminApiActions.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_MANAGER.ROLE);
|
||||||
const docLibId = await adminApiActions.sites.getDocLibId(siteName);
|
const docLibId = await adminApiActions.sites.getDocLibId(siteName);
|
||||||
fileSiteId = (await adminApiActions.nodes.createFile(fileSite, docLibId)).entry.id;
|
fileSiteId = (await adminApiActions.nodes.createFile(fileSite, docLibId)).entry.id;
|
||||||
fileUserId = (await apis.user.nodes.createFiles([fileUser])).entry.id;
|
|
||||||
folderUserId = (await apis.user.nodes.createFolders([folderUser])).entry.id;
|
|
||||||
folderDeletedId = (await apis.user.nodes.createFolder(folderDeleted)).entry.id;
|
|
||||||
fileDeletedId = (await apis.user.nodes.createFiles([fileDeleted], folderDeleted)).entry.id;
|
|
||||||
folderNotDeletedId = (await apis.user.nodes.createFolder(folderNotDeleted)).entry.id;
|
|
||||||
fileInFolderId = (await apis.user.nodes.createFiles([fileInFolder], folderNotDeleted)).entry.id;
|
|
||||||
|
|
||||||
await adminApiActions.nodes.deleteNodesById([fileAdminId, folderAdminId], false);
|
await adminApiActions.nodes.deleteNodesById([fileAdminId, folderAdminId], false);
|
||||||
await apis.user.nodes.deleteNodesById([fileSiteId, fileUserId, folderUserId, fileInFolderId], false);
|
|
||||||
await apis.user.nodes.deleteNodeById(fileDeletedId, false);
|
fileUserId = (await apis.user.nodes.createFiles([fileUser])).entry.id;
|
||||||
await apis.user.nodes.deleteNodeById(folderDeletedId, false);
|
folderUserId = (await apis.user.nodes.createFolders([folderUser])).entry.id;
|
||||||
|
folderDeletedId = (await apis.user.nodes.createFolder(folderDeleted)).entry.id;
|
||||||
|
fileDeletedId = (await apis.user.nodes.createFiles([fileDeleted], folderDeleted)).entry.id;
|
||||||
|
folderNotDeletedId = (await apis.user.nodes.createFolder(folderNotDeleted)).entry.id;
|
||||||
|
fileInFolderId = (await apis.user.nodes.createFiles([fileInFolder], folderNotDeleted)).entry.id;
|
||||||
|
|
||||||
|
await apis.user.nodes.deleteNodesById([fileSiteId, fileUserId, folderUserId, fileInFolderId, fileDeletedId, folderDeletedId], false);
|
||||||
|
} catch (error) {
|
||||||
|
Logger.error(`----- beforeAll failed : ${error}`);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async () => {
|
||||||
await adminApiActions.sites.deleteSite(siteName);
|
try {
|
||||||
await adminApiActions.trashcanApi.deleteDeletedNode(fileAdminId);
|
await adminApiActions.sites.deleteSite(siteName);
|
||||||
await adminApiActions.trashcanApi.deleteDeletedNode(folderAdminId);
|
await adminApiActions.trashcanApi.deleteDeletedNode(fileAdminId);
|
||||||
await apis.user.nodes.deleteNodeById(folderNotDeletedId);
|
await adminApiActions.trashcanApi.deleteDeletedNode(folderAdminId);
|
||||||
await userActions.emptyTrashcan();
|
await apis.user.nodes.deleteNodeById(folderNotDeletedId);
|
||||||
done();
|
await userActions.login(username, username);
|
||||||
|
await userActions.emptyTrashcan();
|
||||||
|
} catch (error) {
|
||||||
|
Logger.error(`----- afterAll failed : ${error}`);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('as admin', () => {
|
describe('as admin', () => {
|
||||||
beforeAll(async (done) => {
|
beforeAll(async () => {
|
||||||
await loginPage.loginWithAdmin();
|
await loginPage.loginWithAdmin();
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async () => {
|
||||||
await page.clickTrashAndWait();
|
await page.clickTrashAndWait();
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C213217] has the correct columns', async () => {
|
it('[C213217] has the correct columns', async () => {
|
||||||
const expectedColumns = ['Name', 'Location', 'Size', 'Deleted', 'Deleted by'];
|
const expectedColumns = ['Name', 'Location', 'Size', 'Deleted', 'Deleted by'];
|
||||||
const actualColumns = await dataTable.getColumnHeadersText();
|
const actualColumns = await dataTable.getColumnHeadersText();
|
||||||
|
|
||||||
await expect(actualColumns).toEqual(expectedColumns);
|
expect(actualColumns).toEqual(expectedColumns);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280493] displays the files and folders deleted by everyone', async () => {
|
it('[C280493] displays the files and folders deleted by everyone', async () => {
|
||||||
@ -124,21 +130,19 @@ describe('Trash', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('as user', () => {
|
describe('as user', () => {
|
||||||
beforeAll(async (done) => {
|
beforeAll(async () => {
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async () => {
|
||||||
await page.clickTrashAndWait();
|
await page.clickTrashAndWait();
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280494] has the correct columns', async () => {
|
it('[C280494] has the correct columns', async () => {
|
||||||
const expectedColumns = ['Name', 'Location', 'Size', 'Deleted'];
|
const expectedColumns = ['Name', 'Location', 'Size', 'Deleted'];
|
||||||
const actualColumns = await dataTable.getColumnHeadersText();
|
const actualColumns = await dataTable.getColumnHeadersText();
|
||||||
|
|
||||||
await expect(actualColumns).toEqual(expectedColumns);
|
expect(actualColumns).toEqual(expectedColumns);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C213218] displays the files and folders deleted by the user', async () => {
|
it('[C213218] displays the files and folders deleted by the user', async () => {
|
||||||
|
@ -219,6 +219,9 @@ describe('Breadcrumb', () => {
|
|||||||
it(`[C260970] Breadcrumb on navigation to a user's home`, async () => {
|
it(`[C260970] Breadcrumb on navigation to a user's home`, async () => {
|
||||||
await page.dataTable.doubleClickOnRowByName('User Homes');
|
await page.dataTable.doubleClickOnRowByName('User Homes');
|
||||||
await page.dataTable.doubleClickOnRowByName(user2);
|
await page.dataTable.doubleClickOnRowByName(user2);
|
||||||
|
|
||||||
|
await browser.sleep(4000);
|
||||||
|
|
||||||
expect(await breadcrumb.getAllItems()).toEqual(['Personal Files', 'User Homes', user2]);
|
expect(await breadcrumb.getAllItems()).toEqual(['Personal Files', 'User Homes', user2]);
|
||||||
await page.dataTable.doubleClickOnRowByName(userFolder);
|
await page.dataTable.doubleClickOnRowByName(userFolder);
|
||||||
expect(await breadcrumb.getAllItems()).toEqual(['Personal Files', 'User Homes', user2, userFolder]);
|
expect(await breadcrumb.getAllItems()).toEqual(['Personal Files', 'User Homes', user2, userFolder]);
|
||||||
|
@ -135,9 +135,8 @@ describe('Single click on item name', () => {
|
|||||||
|
|
||||||
describe('on Shared Files', () => {
|
describe('on Shared Files', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
const initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await userActions.shareNodes([file1Id]);
|
await userActions.shareNodes([file1Id]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 1 });
|
await apis.user.shared.waitForFilesToBeShared([file1Id]);
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
|
@ -45,7 +45,6 @@ describe('Pagination on multiple pages : ', () => {
|
|||||||
const userApi = new RepoClient(username, username);
|
const userApi = new RepoClient(username, username);
|
||||||
const adminApiActions = new AdminActions();
|
const adminApiActions = new AdminActions();
|
||||||
|
|
||||||
let initialSharedTotalItems: number;
|
|
||||||
let initialFavoritesTotalItems: number;
|
let initialFavoritesTotalItems: number;
|
||||||
let initialSearchTotalItems: number;
|
let initialSearchTotalItems: number;
|
||||||
|
|
||||||
@ -57,7 +56,6 @@ describe('Pagination on multiple pages : ', () => {
|
|||||||
parentId = (await userApi.nodes.createFolder(parent)).entry.id;
|
parentId = (await userApi.nodes.createFolder(parent)).entry.id;
|
||||||
filesIds = (await userApi.nodes.createFiles(files, parent)).list.entries.map((entries: any) => entries.entry.id);
|
filesIds = (await userApi.nodes.createFiles(files, parent)).list.entries.map((entries: any) => entries.entry.id);
|
||||||
|
|
||||||
initialSharedTotalItems = await userApi.shared.getSharedLinksTotalItems();
|
|
||||||
initialFavoritesTotalItems = await userApi.favorites.getFavoritesTotalItems();
|
initialFavoritesTotalItems = await userApi.favorites.getFavoritesTotalItems();
|
||||||
await userApi.shared.shareFilesByIds(filesIds);
|
await userApi.shared.shareFilesByIds(filesIds);
|
||||||
await userApi.favorites.addFavoritesByIds('file', filesIds);
|
await userApi.favorites.addFavoritesByIds('file', filesIds);
|
||||||
@ -87,7 +85,7 @@ describe('Pagination on multiple pages : ', () => {
|
|||||||
|
|
||||||
describe('on Shared Files', () => {
|
describe('on Shared Files', () => {
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await userApi.shared.waitForApi({ expect: initialSharedTotalItems + 51 });
|
await userApi.shared.waitForFilesToBeShared(filesIds);
|
||||||
});
|
});
|
||||||
sharedFilesTests(username);
|
sharedFilesTests(username);
|
||||||
});
|
});
|
||||||
|
@ -55,7 +55,6 @@ describe('Pagination on single page', () => {
|
|||||||
|
|
||||||
const initialFavoriteTotalItems = await userApi.favorites.getFavoritesTotalItems();
|
const initialFavoriteTotalItems = await userApi.favorites.getFavoritesTotalItems();
|
||||||
const initialRecentFilesTotalItems = await userApi.search.getTotalItems(username);
|
const initialRecentFilesTotalItems = await userApi.search.getTotalItems(username);
|
||||||
const initialSharedTotalItems = await userApi.shared.getSharedLinksTotalItems();
|
|
||||||
const initialTrashTotalItems = await userActions.getTrashcanSize();
|
const initialTrashTotalItems = await userActions.getTrashcanSize();
|
||||||
|
|
||||||
fileId = (await userApi.nodes.createFile(file)).entry.id;
|
fileId = (await userApi.nodes.createFile(file)).entry.id;
|
||||||
@ -68,7 +67,7 @@ describe('Pagination on single page', () => {
|
|||||||
|
|
||||||
await userApi.favorites.waitForApi({ expect: initialFavoriteTotalItems + 2 });
|
await userApi.favorites.waitForApi({ expect: initialFavoriteTotalItems + 2 });
|
||||||
await userApi.search.waitForApi(username, { expect: initialRecentFilesTotalItems + 1 });
|
await userApi.search.waitForApi(username, { expect: initialRecentFilesTotalItems + 1 });
|
||||||
await userApi.shared.waitForApi({ expect: initialSharedTotalItems + 1 });
|
await userApi.shared.waitForFilesToBeShared([fileId]);
|
||||||
await userActions.waitForTrashcanSize(initialTrashTotalItems + 1);
|
await userActions.waitForTrashcanSize(initialTrashTotalItems + 1);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
|
@ -27,23 +27,24 @@ import { AdminActions, LoginPage, SearchResultsPage, RepoClient, Utils } from '@
|
|||||||
const moment = require('moment');
|
const moment = require('moment');
|
||||||
|
|
||||||
describe('Search results - files and folders', () => {
|
describe('Search results - files and folders', () => {
|
||||||
const username = `user-${Utils.random()}`;
|
const random = Utils.random();
|
||||||
|
const username = `user-${random}`;
|
||||||
|
|
||||||
const file = `test-file-${Utils.random()}.txt`;
|
const file = `test-file-${random}.txt`;
|
||||||
let fileId: string;
|
let fileId: string;
|
||||||
const fileTitle = 'file title';
|
const fileTitle = 'file title';
|
||||||
const fileDescription = 'file description';
|
const fileDescription = 'file description';
|
||||||
|
|
||||||
/* cspell:disable-next-line */
|
/* cspell:disable-next-line */
|
||||||
const fileRussian = `любимый-сайт-${Utils.random()}`;
|
const fileRussian = `любимый-сайт-${random}`;
|
||||||
let fileRussianId: string;
|
let fileRussianId: string;
|
||||||
|
|
||||||
const folder = `test-folder-${Utils.random()}`;
|
const folder = `test-folder-${random}`;
|
||||||
let folderId: string;
|
let folderId: string;
|
||||||
const folderTitle = 'folder title';
|
const folderTitle = 'folder title';
|
||||||
const folderDescription = 'folder description';
|
const folderDescription = 'folder description';
|
||||||
|
|
||||||
const site = `test-site-${Utils.random()}`;
|
const site = `test-site-${random}`;
|
||||||
|
|
||||||
const apis = {
|
const apis = {
|
||||||
user: new RepoClient(username, username)
|
user: new RepoClient(username, username)
|
||||||
@ -59,7 +60,7 @@ describe('Search results - files and folders', () => {
|
|||||||
await adminApiActions.createUser({ username });
|
await adminApiActions.createUser({ username });
|
||||||
|
|
||||||
fileId = (await apis.user.nodes.createFile(file, '-my-', fileTitle, fileDescription)).entry.id;
|
fileId = (await apis.user.nodes.createFile(file, '-my-', fileTitle, fileDescription)).entry.id;
|
||||||
await apis.user.nodes.editNodeContent(fileId, 'edited by user');
|
await apis.user.nodes.updateNodeContent(fileId, 'edited by user');
|
||||||
folderId = (await apis.user.nodes.createFolder(folder, '-my-', folderTitle, folderDescription)).entry.id;
|
folderId = (await apis.user.nodes.createFolder(folder, '-my-', folderTitle, folderDescription)).entry.id;
|
||||||
fileRussianId = (await apis.user.nodes.createFile(fileRussian)).entry.id;
|
fileRussianId = (await apis.user.nodes.createFile(fileRussian)).entry.id;
|
||||||
await apis.user.sites.createSite(site);
|
await apis.user.sites.createSite(site);
|
||||||
@ -89,7 +90,7 @@ describe('Search results - files and folders', () => {
|
|||||||
it('[C307002] Results page title', async () => {
|
it('[C307002] Results page title', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkFilesAndFolders();
|
await searchInput.checkFilesAndFolders();
|
||||||
await searchInput.searchFor('test-');
|
await searchInput.searchFor(random);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
|
|
||||||
expect(await page.breadcrumb.currentItem.getText()).toEqual('Search Results');
|
expect(await page.breadcrumb.currentItem.getText()).toEqual('Search Results');
|
||||||
@ -98,7 +99,7 @@ describe('Search results - files and folders', () => {
|
|||||||
it('[C279183] File information', async () => {
|
it('[C279183] File information', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkFilesAndFolders();
|
await searchInput.checkFilesAndFolders();
|
||||||
await searchInput.searchFor('test-');
|
await searchInput.searchFor(random);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
|
|
||||||
const fileEntry = await apis.user.nodes.getNodeById(fileId);
|
const fileEntry = await apis.user.nodes.getNodeById(fileId);
|
||||||
@ -118,7 +119,7 @@ describe('Search results - files and folders', () => {
|
|||||||
it('[C306867] Folder information', async () => {
|
it('[C306867] Folder information', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkFilesAndFolders();
|
await searchInput.checkFilesAndFolders();
|
||||||
await searchInput.searchFor('test-');
|
await searchInput.searchFor(random);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
|
|
||||||
const folderEntry = await apis.user.nodes.getNodeById(folderId);
|
const folderEntry = await apis.user.nodes.getNodeById(folderId);
|
||||||
|
@ -27,13 +27,14 @@ import { AdminActions, LoginPage, SearchResultsPage, RepoClient, Utils } from '@
|
|||||||
import { browser } from 'protractor';
|
import { browser } from 'protractor';
|
||||||
|
|
||||||
describe('Search results general', () => {
|
describe('Search results general', () => {
|
||||||
const username = `user-${Utils.random()}`;
|
const random = Utils.random();
|
||||||
|
const username = `user-${random}`;
|
||||||
|
|
||||||
const file = `test-file-${Utils.random()}.txt`;
|
const file = `test-file-${random}.txt`;
|
||||||
let fileId: string;
|
let fileId: string;
|
||||||
const folder = `test-folder-${Utils.random()}`;
|
const folder = `test-folder-${random}`;
|
||||||
let folderId: string;
|
let folderId: string;
|
||||||
const site = `test-site-${Utils.random()}`;
|
const site = `test-site-${random}`;
|
||||||
|
|
||||||
const apis = {
|
const apis = {
|
||||||
user: new RepoClient(username, username)
|
user: new RepoClient(username, username)
|
||||||
@ -72,7 +73,7 @@ describe('Search results general', () => {
|
|||||||
it('[C290005] Only files are returned when Files option is the only one checked', async () => {
|
it('[C290005] Only files are returned when Files option is the only one checked', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkOnlyFiles();
|
await searchInput.checkOnlyFiles();
|
||||||
await searchInput.searchFor('test');
|
await searchInput.searchFor(random);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
|
|
||||||
expect(await dataTable.isItemPresent(file)).toBe(true, `${file} not displayed`);
|
expect(await dataTable.isItemPresent(file)).toBe(true, `${file} not displayed`);
|
||||||
@ -83,7 +84,7 @@ describe('Search results general', () => {
|
|||||||
it('[C290006] Only folders are returned when Folders option is the only one checked', async () => {
|
it('[C290006] Only folders are returned when Folders option is the only one checked', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkOnlyFolders();
|
await searchInput.checkOnlyFolders();
|
||||||
await searchInput.searchFor('test');
|
await searchInput.searchFor(random);
|
||||||
await page.waitForResults();
|
await page.waitForResults();
|
||||||
|
|
||||||
expect(await dataTable.isItemPresent(file)).toBe(false, `${file} is displayed`);
|
expect(await dataTable.isItemPresent(file)).toBe(false, `${file} is displayed`);
|
||||||
@ -94,7 +95,7 @@ describe('Search results general', () => {
|
|||||||
it('[C290007] Files and folders are returned when both Files and Folders options are checked', async () => {
|
it('[C290007] Files and folders are returned when both Files and Folders options are checked', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkFilesAndFolders();
|
await searchInput.checkFilesAndFolders();
|
||||||
await searchInput.searchFor('test');
|
await searchInput.searchFor(random);
|
||||||
await page.waitForResults();
|
await page.waitForResults();
|
||||||
|
|
||||||
expect(await dataTable.isItemPresent(file)).toBe(true, `${file} not displayed`);
|
expect(await dataTable.isItemPresent(file)).toBe(true, `${file} not displayed`);
|
||||||
@ -105,7 +106,7 @@ describe('Search results general', () => {
|
|||||||
it('[C290008] Only libraries are returned when Libraries option is checked', async () => {
|
it('[C290008] Only libraries are returned when Libraries option is checked', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkLibraries();
|
await searchInput.checkLibraries();
|
||||||
await searchInput.searchFor('test');
|
await searchInput.searchFor(random);
|
||||||
await page.waitForResults();
|
await page.waitForResults();
|
||||||
|
|
||||||
expect(await dataTable.isItemPresent(file)).toBe(false, `${file} is displayed`);
|
expect(await dataTable.isItemPresent(file)).toBe(false, `${file} is displayed`);
|
||||||
|
@ -26,41 +26,42 @@
|
|||||||
import { AdminActions, LoginPage, SearchResultsPage, RepoClient, Utils, SITE_VISIBILITY, SITE_ROLES } from '@alfresco/aca-testing-shared';
|
import { AdminActions, LoginPage, SearchResultsPage, RepoClient, Utils, SITE_VISIBILITY, SITE_ROLES } from '@alfresco/aca-testing-shared';
|
||||||
|
|
||||||
describe('Search results - libraries', () => {
|
describe('Search results - libraries', () => {
|
||||||
const username = `user-${Utils.random()}`;
|
const random = Utils.random();
|
||||||
|
const username = `user-${random}`;
|
||||||
|
|
||||||
const site1 = {
|
const site1 = {
|
||||||
name: `lib-1-${Utils.random()}`,
|
name: `lib-${random}-1`,
|
||||||
id: `site1-${Utils.random()}`
|
id: `site-${random}-1`
|
||||||
};
|
};
|
||||||
const site2 = {
|
const site2 = {
|
||||||
name: `site-2-${Utils.random()}`,
|
name: `site-2-${random}`,
|
||||||
id: `site1-${Utils.random()}`
|
id: `site-${random}-2`
|
||||||
};
|
};
|
||||||
const site3 = {
|
const site3 = {
|
||||||
name: `my-lib-${Utils.random()}`,
|
name: `my-lib-${random}`,
|
||||||
id: `site3-${Utils.random()}`
|
id: `site3-${random}`
|
||||||
};
|
};
|
||||||
const site4 = {
|
const site4 = {
|
||||||
name: `my-site-${Utils.random()}`,
|
name: `my-site-${random}`,
|
||||||
id: `site4-${Utils.random()}`,
|
id: `site4-${random}`,
|
||||||
description: 'site description'
|
description: 'site description'
|
||||||
};
|
};
|
||||||
|
|
||||||
const userSitePrivate = `user-site-private-${Utils.random()}`;
|
const userSitePrivate = `user-site-${random}-private`;
|
||||||
const userSiteModerated = `user-site-moderated-${Utils.random()}`;
|
const userSiteModerated = `user-site-${random}-moderated`;
|
||||||
const userSitePublic = `user-site-public-${Utils.random()}`;
|
const userSitePublic = `user-site-${random}-public`;
|
||||||
|
|
||||||
const siteRussian = {
|
const siteRussian = {
|
||||||
/* cspell:disable-next-line */
|
/* cspell:disable-next-line */
|
||||||
name: `любимый-сайт-${Utils.random()}`,
|
name: `любимый-сайт-${random}`,
|
||||||
id: `site-russian-id-${Utils.random()}`
|
id: `site-russian-id-${random}`
|
||||||
};
|
};
|
||||||
|
|
||||||
const adminSite1 = `admin-site-${Utils.random()}`;
|
const adminSite1 = `admin-${random}-site1`;
|
||||||
const adminSite2 = `admin-site-${Utils.random()}`;
|
const adminSite2 = `admin-${random}-site2`;
|
||||||
const adminSite3 = `admin-site-${Utils.random()}`;
|
const adminSite3 = `admin-${random}-site3`;
|
||||||
const adminSite4 = `admin-site-${Utils.random()}`;
|
const adminSite4 = `admin-${random}-site4`;
|
||||||
const adminPrivate = `admin-site-${Utils.random()}`;
|
const adminPrivate = `admin-${random}-sitePrivate`;
|
||||||
|
|
||||||
const apis = {
|
const apis = {
|
||||||
user: new RepoClient(username, username)
|
user: new RepoClient(username, username)
|
||||||
@ -97,25 +98,35 @@ describe('Search results - libraries', () => {
|
|||||||
|
|
||||||
await adminApiActions.sites.createSite(adminPrivate, SITE_VISIBILITY.PRIVATE);
|
await adminApiActions.sites.createSite(adminPrivate, SITE_VISIBILITY.PRIVATE);
|
||||||
|
|
||||||
await apis.user.sites.waitForApi({ expect: 12 });
|
await adminApiActions.login();
|
||||||
await apis.user.queries.waitForSites('lib', { expect: 2 });
|
await adminApiActions.sites.waitForSitesToBeCreated([adminSite1, adminSite2, adminSite3, adminSite4]);
|
||||||
await apis.user.queries.waitForSites('my-site', { expect: 1 });
|
|
||||||
|
await apis.user.sites.waitForSitesToBeCreated([
|
||||||
|
site1.id,
|
||||||
|
site2.id,
|
||||||
|
site3.id,
|
||||||
|
site4.id,
|
||||||
|
userSitePublic,
|
||||||
|
userSiteModerated,
|
||||||
|
userSitePrivate,
|
||||||
|
siteRussian.id
|
||||||
|
]);
|
||||||
|
|
||||||
|
await apis.user.queries.waitForSites(random, { expect: 12 });
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async () => {
|
||||||
await Promise.all([
|
await adminApiActions.login();
|
||||||
adminApiActions.sites.deleteSites([adminSite1, adminSite2, adminSite3, adminSite4, adminPrivate]),
|
await adminApiActions.sites.deleteSites([adminSite1, adminSite2, adminSite3, adminSite4, adminPrivate]);
|
||||||
apis.user.sites.deleteSites([site1.id, site2.id, site3.id, site4.id, userSitePublic, userSiteModerated, userSitePrivate, siteRussian.id])
|
await apis.user.sites.deleteSites([site1.id, site2.id, site3.id, site4.id, userSitePublic, userSiteModerated, userSitePrivate, siteRussian.id]);
|
||||||
]);
|
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async () => {
|
||||||
await Utils.pressEscape();
|
await Utils.pressEscape();
|
||||||
done();
|
await page.clickPersonalFiles();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C290012] Search library - full name match', async () => {
|
it('[C290012] Search library - full name match', async () => {
|
||||||
@ -133,7 +144,7 @@ describe('Search results - libraries', () => {
|
|||||||
it('[C290013] Search library - partial name match', async () => {
|
it('[C290013] Search library - partial name match', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkLibraries();
|
await searchInput.checkLibraries();
|
||||||
await searchInput.searchFor('lib');
|
await searchInput.searchFor(`lib-${random}`);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
|
|
||||||
expect(await dataTable.isItemPresent(site1.name)).toBe(true, `${site1.name} not displayed`);
|
expect(await dataTable.isItemPresent(site1.name)).toBe(true, `${site1.name} not displayed`);
|
||||||
@ -157,7 +168,7 @@ describe('Search results - libraries', () => {
|
|||||||
it('[C290015] Results page title', async () => {
|
it('[C290015] Results page title', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkLibraries();
|
await searchInput.checkLibraries();
|
||||||
await searchInput.searchFor('lib');
|
await searchInput.searchFor(random);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
|
|
||||||
expect(await page.breadcrumb.currentItem.getText()).toEqual('Libraries found...');
|
expect(await page.breadcrumb.currentItem.getText()).toEqual('Libraries found...');
|
||||||
@ -178,7 +189,7 @@ describe('Search results - libraries', () => {
|
|||||||
it('[C290017] Library visibility is correctly displayed', async () => {
|
it('[C290017] Library visibility is correctly displayed', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkLibraries();
|
await searchInput.checkLibraries();
|
||||||
await searchInput.searchFor('user-site');
|
await searchInput.searchFor(`user-site-${random}`);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
|
|
||||||
const expectedSitesVisibility = {
|
const expectedSitesVisibility = {
|
||||||
@ -197,7 +208,7 @@ describe('Search results - libraries', () => {
|
|||||||
it('[C290018] User role is correctly displayed', async () => {
|
it('[C290018] User role is correctly displayed', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkLibraries();
|
await searchInput.checkLibraries();
|
||||||
await searchInput.searchFor('admin-site');
|
await searchInput.searchFor(`admin-${random}-site`);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
|
|
||||||
const expectedSitesRoles = {
|
const expectedSitesRoles = {
|
||||||
@ -217,7 +228,7 @@ describe('Search results - libraries', () => {
|
|||||||
it('[C290019] Private sites are not displayed when user is not a member', async () => {
|
it('[C290019] Private sites are not displayed when user is not a member', async () => {
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkLibraries();
|
await searchInput.checkLibraries();
|
||||||
await searchInput.searchFor('admin-site');
|
await searchInput.searchFor(`admin-${random}-site`);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
|
|
||||||
expect(await dataTable.isItemPresent(adminPrivate)).toBe(false, `${adminPrivate} is displayed`);
|
expect(await dataTable.isItemPresent(adminPrivate)).toBe(false, `${adminPrivate} is displayed`);
|
||||||
|
@ -35,12 +35,12 @@ describe('Search sorting', () => {
|
|||||||
let parentId: string;
|
let parentId: string;
|
||||||
|
|
||||||
const fileJpg = {
|
const fileJpg = {
|
||||||
name: `search-sort-file-1-${random}.jpg`,
|
name: `search-sort-${random}-file-1.jpg`,
|
||||||
source: FILES.jpgFile
|
source: FILES.jpgFile
|
||||||
};
|
};
|
||||||
|
|
||||||
const filePdf = {
|
const filePdf = {
|
||||||
name: `search-sort-file-2-${random}.pdf`,
|
name: `search-sort-${random}-file-2.pdf`,
|
||||||
title: 'search sort title',
|
title: 'search sort title',
|
||||||
description: 'search sort',
|
description: 'search sort',
|
||||||
source: FILES.pdfFile
|
source: FILES.pdfFile
|
||||||
@ -67,7 +67,7 @@ describe('Search sorting', () => {
|
|||||||
await apis.user1.upload.uploadFileWithRename(fileJpg.source, parentId, fileJpg.name);
|
await apis.user1.upload.uploadFileWithRename(fileJpg.source, parentId, fileJpg.name);
|
||||||
await apis.user2.upload.uploadFileWithRename(filePdf.source, parentId, filePdf.name, filePdf.title, filePdf.description);
|
await apis.user2.upload.uploadFileWithRename(filePdf.source, parentId, filePdf.name, filePdf.title, filePdf.description);
|
||||||
|
|
||||||
await apis.user1.search.waitForNodes('search-sort', { expect: 2 });
|
await apis.user1.search.waitForNodes(`search-sort-${random}`, { expect: 2 });
|
||||||
|
|
||||||
await loginPage.loginWith(user1);
|
await loginPage.loginWith(user1);
|
||||||
done();
|
done();
|
||||||
@ -78,7 +78,7 @@ describe('Search sorting', () => {
|
|||||||
await page.clickPersonalFilesAndWait();
|
await page.clickPersonalFilesAndWait();
|
||||||
|
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.searchFor('search sort');
|
await searchInput.searchFor(`search sort ${random}`);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
@ -288,8 +288,7 @@ describe('Viewer actions', () => {
|
|||||||
await manageVersionsDialog.clickClose();
|
await manageVersionsDialog.clickClose();
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: disabled until ACA-2176 is done
|
it('[C286314] Pressing ESC in the viewer closes only the action dialog', async () => {
|
||||||
xit('[C286314] Pressing ESC in the viewer closes only the action dialog', async () => {
|
|
||||||
await dataTable.doubleClickOnRowByName(docxPersonalFiles);
|
await dataTable.doubleClickOnRowByName(docxPersonalFiles);
|
||||||
await viewer.waitForViewerToOpen();
|
await viewer.waitForViewerToOpen();
|
||||||
|
|
||||||
@ -714,7 +713,6 @@ describe('Viewer actions', () => {
|
|||||||
await apis.user.nodes.lockFile(fileForCancelEditingId);
|
await apis.user.nodes.lockFile(fileForCancelEditingId);
|
||||||
await apis.user.nodes.lockFile(fileForUploadNewVersionId);
|
await apis.user.nodes.lockFile(fileForUploadNewVersionId);
|
||||||
|
|
||||||
const initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await apis.user.shared.shareFilesByIds([
|
await apis.user.shared.shareFilesByIds([
|
||||||
docxFileId,
|
docxFileId,
|
||||||
xlsxFileId,
|
xlsxFileId,
|
||||||
@ -724,7 +722,15 @@ describe('Viewer actions', () => {
|
|||||||
fileForUploadNewVersionId,
|
fileForUploadNewVersionId,
|
||||||
fileSharedId
|
fileSharedId
|
||||||
]);
|
]);
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 7 });
|
await apis.user.shared.waitForFilesToBeShared([
|
||||||
|
docxFileId,
|
||||||
|
xlsxFileId,
|
||||||
|
pdfFileId,
|
||||||
|
fileForCancelEditingId,
|
||||||
|
fileForEditOfflineId,
|
||||||
|
fileForUploadNewVersionId,
|
||||||
|
fileSharedId
|
||||||
|
]);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
||||||
|
@ -73,12 +73,11 @@ describe('Viewer general', () => {
|
|||||||
docLibSiteUserId = await apis.user.sites.getDocLibId(siteUser);
|
docLibSiteUserId = await apis.user.sites.getDocLibId(siteUser);
|
||||||
await apis.user.upload.uploadFile(fileInSite, docLibSiteUserId);
|
await apis.user.upload.uploadFile(fileInSite, docLibSiteUserId);
|
||||||
|
|
||||||
const initialSharedTotalItems = await apis.user.shared.getSharedLinksTotalItems();
|
|
||||||
await userActions.shareNodes([xlsxFileId]);
|
await userActions.shareNodes([xlsxFileId]);
|
||||||
|
|
||||||
await apis.user.favorites.addFavoriteById('file', xlsxFileId);
|
await apis.user.favorites.addFavoriteById('file', xlsxFileId);
|
||||||
|
|
||||||
await apis.user.favorites.waitForApi({ expect: 2 });
|
await apis.user.favorites.waitForApi({ expect: 2 });
|
||||||
await apis.user.shared.waitForApi({ expect: initialSharedTotalItems + 1 });
|
await apis.user.shared.waitForFilesToBeShared([xlsxFileId]);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
||||||
|
@ -26,10 +26,13 @@
|
|||||||
import { by } from 'protractor';
|
import { by } from 'protractor';
|
||||||
import { GenericDialog } from '../dialog/generic-dialog';
|
import { GenericDialog } from '../dialog/generic-dialog';
|
||||||
import { BrowserActions } from '@alfresco/adf-testing';
|
import { BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
import { Menu } from '../menu/menu';
|
||||||
|
|
||||||
export class ManageVersionsDialog extends GenericDialog {
|
export class ManageVersionsDialog extends GenericDialog {
|
||||||
closeButton = this.childElement(by.cssContainingText('.mat-button', 'Close'));
|
closeButton = this.childElement(by.cssContainingText('.mat-button', 'Close'));
|
||||||
|
|
||||||
|
menu = new Menu();
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super('.aca-node-versions-dialog');
|
super('.aca-node-versions-dialog');
|
||||||
}
|
}
|
||||||
@ -38,4 +41,14 @@ export class ManageVersionsDialog extends GenericDialog {
|
|||||||
await BrowserActions.click(this.closeButton);
|
await BrowserActions.click(this.closeButton);
|
||||||
await this.waitForDialogToClose();
|
await this.waitForDialogToClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async clickActionButton(version: string): Promise<void> {
|
||||||
|
await BrowserActions.click(this.childElement(by.id(`adf-version-list-action-menu-button-${version}`)));
|
||||||
|
await this.menu.waitForMenuToOpen();
|
||||||
|
}
|
||||||
|
|
||||||
|
async viewFileVersion(version: string): Promise<void> {
|
||||||
|
await this.clickActionButton(version);
|
||||||
|
await this.menu.clickMenuItem('View');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -84,16 +84,7 @@ export class Toolbar extends Component {
|
|||||||
await this.menu.waitForMenuToOpen();
|
await this.menu.waitForMenuToOpen();
|
||||||
}
|
}
|
||||||
|
|
||||||
async closeMoreMenu(): Promise<void> {
|
async closeMoreMenu() {
|
||||||
await this.isButtonPresent('More Actions');
|
|
||||||
|
|
||||||
const moreMenu = this.getButtonByTitleAttribute('More Actions');
|
|
||||||
await BrowserActions.click(moreMenu);
|
|
||||||
|
|
||||||
await this.menu.waitForMenuToClose();
|
|
||||||
}
|
|
||||||
|
|
||||||
async closeMoreMenuEscape() {
|
|
||||||
await Utils.pressEscape();
|
await Utils.pressEscape();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
/*!
|
|
||||||
* @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 <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { BrowserActions, BrowserVisibility } from '@alfresco/adf-testing';
|
|
||||||
import { by, element, ElementFinder } from 'protractor';
|
|
||||||
|
|
||||||
export class VersionManagePage {
|
|
||||||
async clickActionButton(version: string): Promise<void> {
|
|
||||||
await BrowserActions.click(element(by.id(`adf-version-list-action-menu-button-${version}`)));
|
|
||||||
await BrowserVisibility.waitUntilElementIsVisible(element(by.css('.cdk-overlay-container .mat-menu-content')));
|
|
||||||
}
|
|
||||||
|
|
||||||
async viewFileVersion(version: string): Promise<void> {
|
|
||||||
await this.clickActionButton(version);
|
|
||||||
const viewButton: ElementFinder = element(by.id(`adf-version-list-action-view-${version}`));
|
|
||||||
await BrowserActions.click(viewButton);
|
|
||||||
}
|
|
||||||
}
|
|
@ -406,12 +406,23 @@ export class NodesApi extends RepoApi {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async editNodeContent(nodeId: string, content: string): Promise<NodeEntry | null> {
|
async updateNodeContent(
|
||||||
|
nodeId: string,
|
||||||
|
content: string,
|
||||||
|
majorVersion: boolean = true,
|
||||||
|
comment?: string,
|
||||||
|
newName?: string
|
||||||
|
): Promise<NodeEntry | null> {
|
||||||
try {
|
try {
|
||||||
|
const opts = {
|
||||||
|
majorVersion,
|
||||||
|
comment,
|
||||||
|
name: newName
|
||||||
|
};
|
||||||
await this.apiAuth();
|
await this.apiAuth();
|
||||||
return await this.nodesApi.updateNodeContent(nodeId, content);
|
return await this.nodesApi.updateNodeContent(nodeId, content, opts);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.handleError(`${this.constructor.name} ${this.editNodeContent.name}`, error);
|
this.handleError(`${this.constructor.name} ${this.updateNodeContent.name}`, error);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,10 +64,10 @@ export class SharedLinksApi extends RepoApi {
|
|||||||
return sharedLinks;
|
return sharedLinks;
|
||||||
}
|
}
|
||||||
|
|
||||||
async getSharedIdOfNode(name: string): Promise<string> {
|
async getSharedIdOfNode(fileId: string): Promise<string> {
|
||||||
try {
|
try {
|
||||||
const sharedLinksEntries = (await this.getSharedLinks())?.list.entries;
|
const sharedLinksEntries = (await this.getSharedLinks())?.list.entries;
|
||||||
const found = sharedLinksEntries.find((sharedLink) => sharedLink.entry.name === name);
|
const found = sharedLinksEntries.find((sharedLink) => sharedLink.entry.nodeId === fileId);
|
||||||
return (found || { entry: { id: null } }).entry.id;
|
return (found || { entry: { id: null } }).entry.id;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.handleError(`SharedLinksApi getSharedIdOfNode : catch : `, error);
|
this.handleError(`SharedLinksApi getSharedIdOfNode : catch : `, error);
|
||||||
@ -75,20 +75,20 @@ export class SharedLinksApi extends RepoApi {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async unshareFile(name: string) {
|
async unshareFileById(fileId: string) {
|
||||||
try {
|
try {
|
||||||
const id = await this.getSharedIdOfNode(name);
|
const sharedId = await this.getSharedIdOfNode(fileId);
|
||||||
return await this.sharedlinksApi.deleteSharedLink(id);
|
return await this.sharedlinksApi.deleteSharedLink(sharedId);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.handleError(`SharedLinksApi unshareFile : catch : `, error);
|
this.handleError(`SharedLinksApi unshareFileById : catch : `, error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async getSharedLinks() {
|
async getSharedLinks(maxItems: number = 250) {
|
||||||
try {
|
try {
|
||||||
await this.apiAuth();
|
await this.apiAuth();
|
||||||
const opts = {
|
const opts = {
|
||||||
maxItems: 250
|
maxItems
|
||||||
};
|
};
|
||||||
return await this.sharedlinksApi.listSharedLinks(opts);
|
return await this.sharedlinksApi.listSharedLinks(opts);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -128,4 +128,46 @@ export class SharedLinksApi extends RepoApi {
|
|||||||
Logger.error(`\tExpected: ${data.expect} items, but found ${error}`);
|
Logger.error(`\tExpected: ${data.expect} items, but found ${error}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async waitForFilesToBeShared(filesIds: string[]) {
|
||||||
|
try {
|
||||||
|
const sharedFile = async () => {
|
||||||
|
const sharedFiles = (await this.getSharedLinks()).list.entries.map((link) => link.entry.nodeId);
|
||||||
|
const foundItems = filesIds.every((id) => sharedFiles.includes(id));
|
||||||
|
if (foundItems) {
|
||||||
|
return Promise.resolve(foundItems);
|
||||||
|
} else {
|
||||||
|
return Promise.reject(foundItems);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return await Utils.retryCall(sharedFile);
|
||||||
|
} catch (error) {
|
||||||
|
Logger.error(`SharedLinksApi waitForFilesToBeShared : catch : `);
|
||||||
|
Logger.error(`\tWait timeout reached waiting for files to be shared`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async waitForFilesToNotBeShared(filesIds: string[]) {
|
||||||
|
try {
|
||||||
|
const sharedFile = async () => {
|
||||||
|
const sharedFiles = (await this.getSharedLinks()).list.entries.map((link) => link.entry.nodeId);
|
||||||
|
|
||||||
|
const foundItems = filesIds.some((id) => {
|
||||||
|
return sharedFiles.includes(id);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (foundItems) {
|
||||||
|
return Promise.reject(foundItems);
|
||||||
|
} else {
|
||||||
|
return Promise.resolve(foundItems);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return await Utils.retryCall(sharedFile);
|
||||||
|
} catch (error) {
|
||||||
|
Logger.error(`SharedLinksApi waitForFilesToNotBeShared : catch : `);
|
||||||
|
Logger.error(`\tWait timeout reached waiting for files to no longer be shared`);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -273,6 +273,25 @@ export class SitesApi extends RepoApi {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async waitForSitesToBeCreated(sitesIds: string[]) {
|
||||||
|
try {
|
||||||
|
const site = async () => {
|
||||||
|
const sitesList = (await this.getSites()).list.entries.map((link) => link.entry.id);
|
||||||
|
const foundItems = sitesIds.every((id) => sitesList.includes(id));
|
||||||
|
if (foundItems) {
|
||||||
|
return Promise.resolve(foundItems);
|
||||||
|
} else {
|
||||||
|
return Promise.reject(foundItems);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return await Utils.retryCall(site);
|
||||||
|
} catch (error) {
|
||||||
|
Logger.error(`SitesApi waitForSitesToBeCreated : catch : `);
|
||||||
|
Logger.error(`\tWait timeout reached waiting for sites to be created`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async waitForApi(data: { expect: number }) {
|
async waitForApi(data: { expect: number }) {
|
||||||
try {
|
try {
|
||||||
const sites = async () => {
|
const sites = async () => {
|
||||||
|
@ -2,14 +2,14 @@
|
|||||||
// https://github.com/angular/protractor/blob/master/lib/config.ts
|
// https://github.com/angular/protractor/blob/master/lib/config.ts
|
||||||
|
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const { SpecReporter } = require('jasmine-spec-reporter');
|
const {SpecReporter} = require('jasmine-spec-reporter');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const resolve = require('path').resolve;
|
const resolve = require('path').resolve;
|
||||||
const logger = require('./tools/helpers/logger');
|
const logger = require('./tools/helpers/logger');
|
||||||
const retry = require('protractor-retry-angular-cli').retry;
|
const retry = require('protractor-retry-angular-cli').retry;
|
||||||
const { uploadScreenshot } = require('./e2e/e2e-config/utils/upload-output');
|
const {uploadScreenshot} = require('./e2e/e2e-config/utils/upload-output');
|
||||||
|
|
||||||
require('dotenv').config({ path: process.env.ENV_FILE });
|
require('dotenv').config({path: process.env.ENV_FILE});
|
||||||
|
|
||||||
const SmartRunner = require('protractor-smartrunner');
|
const SmartRunner = require('protractor-smartrunner');
|
||||||
const projectRoot = path.resolve(__dirname);
|
const projectRoot = path.resolve(__dirname);
|
||||||
@ -36,6 +36,7 @@ exports.config = {
|
|||||||
allScriptsTimeout: 150000,
|
allScriptsTimeout: 150000,
|
||||||
|
|
||||||
params: {
|
params: {
|
||||||
|
index_search: 25000,
|
||||||
config: appConfig,
|
config: appConfig,
|
||||||
downloadFolder: downloadFolder,
|
downloadFolder: downloadFolder,
|
||||||
ADMIN_USERNAME: process.env.ADMIN_EMAIL || 'admin',
|
ADMIN_USERNAME: process.env.ADMIN_EMAIL || 'admin',
|
||||||
@ -44,56 +45,43 @@ exports.config = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
specs: [
|
specs: [
|
||||||
'./e2e/suites/authentication/*.test.ts',
|
'./e2e/suites/actions/**/**/*test.ts',
|
||||||
'./e2e/suites/list-views/*.test.ts',
|
'./e2e/suites/actions-available/**/**/*test.ts',
|
||||||
'./e2e/suites/application/*.test.ts',
|
'./e2e/suites/application/**/*test.ts',
|
||||||
'./e2e/suites/navigation/*.test.ts',
|
'./e2e/suites/authentication/**/*test.ts',
|
||||||
'./e2e/suites/pagination/*.test.ts',
|
'./e2e/suites/extensions/**/*test.ts',
|
||||||
'./e2e/suites/search/*.test.ts',
|
'./e2e/suites/info-drawer/**/*test.ts',
|
||||||
'./e2e/suites/actions-available/**/*.test.ts',
|
'./e2e/suites/list-views/**/*test.ts',
|
||||||
'./e2e/suites/actions/**/*.test.ts',
|
'./e2e/suites/navigation/**/*test.ts',
|
||||||
'./e2e/suites/viewer/*.test.ts',
|
'./e2e/suites/pagination/**/*test.ts',
|
||||||
'./e2e/suites/info-drawer/*.test.ts',
|
'./e2e/suites/search/**/*test.ts',
|
||||||
'./e2e/suites/extensions/*.test.ts'
|
'./e2e/suites/viewer/**/*test.ts'
|
||||||
],
|
],
|
||||||
|
|
||||||
suites: {
|
suites: {
|
||||||
authentication: './e2e/suites/authentication/*.test.ts',
|
copyMoveActions: './e2e/suites/actions/copy-move/**/**/*test.ts',
|
||||||
listViews: './e2e/suites/list-views/*.test.ts',
|
createActions: './e2e/suites/actions/create/**/**/*test.ts',
|
||||||
application: './e2e/suites/application/*.test.ts',
|
deleteActions: './e2e/suites/actions/delete/**/**/*test.ts',
|
||||||
navigation: './e2e/suites/navigation/*.test.ts',
|
editActions: './e2e/suites/actions/edit/**/**/*test.ts',
|
||||||
pagination: './e2e/suites/pagination/*.test.ts',
|
favoriteActions: './e2e/suites/actions/favorite/**/**/*test.ts',
|
||||||
search: './e2e/suites/search/*.test.ts',
|
libraryActions: './e2e/suites/actions/library/**/**/*test.ts',
|
||||||
actionsAvailable: './e2e/suites/actions-available/**/*.test.ts',
|
shareActions: './e2e/suites/actions/share/**/**/*test.ts',
|
||||||
addRemoveContent: [
|
uploadDownloadActions: './e2e/suites/actions/upload-download/**/**/*test.ts',
|
||||||
'./e2e/suites/actions/new-menu.test.ts',
|
|
||||||
'./e2e/suites/actions/create-folder.test.ts',
|
actionsAvailableFilesFolders: './e2e/suites/actions-available/files-folders/**/**/*test.ts',
|
||||||
'./e2e/suites/actions/create-folder-from-template.test.ts',
|
actionsAvailableLibraries: './e2e/suites/actions-available/libraries/**/**/*test.ts',
|
||||||
'./e2e/suites/actions/create-library.test.ts',
|
actionsAvailableSpecialPermissions: './e2e/suites/actions-available/special-permissions/**/**/*test.ts',
|
||||||
'./e2e/suites/actions/create-file-from-template.test.ts',
|
actionsAvailableNewMenu: './e2e/suites/actions-available/new-menu/**/**/*test.ts',
|
||||||
'./e2e/suites/actions/upload-file.test.ts',
|
|
||||||
'./e2e/suites/actions/upload-new-version.test.ts',
|
application: './e2e/suites/application/**/*test.ts',
|
||||||
'./e2e/suites/actions/version-actions.test.ts',
|
authentication: './e2e/suites/authentication/**/*test.ts',
|
||||||
'./e2e/suites/actions/delete-undo-delete.test.ts',
|
extensions: './e2e/suites/extensions/**/*test.ts',
|
||||||
'./e2e/suites/actions/permanently-delete.test.ts',
|
infoDrawer: './e2e/suites/info-drawer/**/*test.ts',
|
||||||
'./e2e/suites/actions/restore.test.ts',
|
listViews: './e2e/suites/list-views/**/*test.ts',
|
||||||
'./e2e/suites/actions/download.test.ts'
|
navigation: './e2e/suites/navigation/**/*test.ts',
|
||||||
],
|
pagination: './e2e/suites/pagination/**/*test.ts',
|
||||||
manageContent: [
|
search: './e2e/suites/search/**/*test.ts',
|
||||||
'./e2e/suites/actions/copy-move/*.test.ts',
|
viewer: './e2e/suites/viewer/**/*test.ts'
|
||||||
'./e2e/suites/actions/library-actions.test.ts',
|
|
||||||
'./e2e/suites/actions/edit-folder.test.ts',
|
|
||||||
'./e2e/suites/actions/edit-offline.test.ts'
|
|
||||||
],
|
|
||||||
sharingContent: [
|
|
||||||
'./e2e/suites/actions/mark-favorite.test.ts',
|
|
||||||
'./e2e/suites/actions/share-file.test.ts',
|
|
||||||
'./e2e/suites/actions/unshare-file-search-results.test.ts',
|
|
||||||
'./e2e/suites/actions/unshare-file.test.ts'
|
|
||||||
],
|
|
||||||
viewer: './e2e/suites/viewer/*.test.ts',
|
|
||||||
infoDrawer: './e2e/suites/info-drawer/*.test.ts',
|
|
||||||
extensions: './e2e/suites/extensions/*.test.ts'
|
|
||||||
},
|
},
|
||||||
|
|
||||||
SELENIUM_PROMISE_MANAGER: false,
|
SELENIUM_PROMISE_MANAGER: false,
|
||||||
@ -145,9 +133,10 @@ exports.config = {
|
|||||||
framework: 'jasmine',
|
framework: 'jasmine',
|
||||||
jasmineNodeOpts: {
|
jasmineNodeOpts: {
|
||||||
showColors: true,
|
showColors: true,
|
||||||
defaultTimeoutInterval: 600000,
|
defaultTimeoutInterval: 200000,
|
||||||
includeStackTrace: true,
|
includeStackTrace: true,
|
||||||
print: function () {},
|
print: function () {
|
||||||
|
},
|
||||||
...SmartRunner.withOptionalExclusions(resolve(__dirname, './e2e/protractor.excludes.json'))
|
...SmartRunner.withOptionalExclusions(resolve(__dirname, './e2e/protractor.excludes.json'))
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -179,7 +168,7 @@ exports.config = {
|
|||||||
const outputDirectory = process.env.SMART_RUNNER_DIRECTORY;
|
const outputDirectory = process.env.SMART_RUNNER_DIRECTORY;
|
||||||
logger.info(`SmartRunner's repoHash : "${repoHash}"`);
|
logger.info(`SmartRunner's repoHash : "${repoHash}"`);
|
||||||
logger.info(`SmartRunner's outputDirectory: "${outputDirectory}"`);
|
logger.info(`SmartRunner's outputDirectory: "${outputDirectory}"`);
|
||||||
SmartRunner.apply({ outputDirectory, repoHash });
|
SmartRunner.apply({outputDirectory, repoHash});
|
||||||
}
|
}
|
||||||
|
|
||||||
const tsConfigPath = path.resolve(e2eFolder, 'tsconfig.e2e.json');
|
const tsConfigPath = path.resolve(e2eFolder, 'tsconfig.e2e.json');
|
||||||
@ -215,8 +204,8 @@ exports.config = {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
afterLaunch: async function () {
|
afterLaunch: async function (statusCode) {
|
||||||
if (SAVE_SCREENSHOT) {
|
if (SAVE_SCREENSHOT && statusCode !== 0) {
|
||||||
console.log(`Save screenshot is ${SAVE_SCREENSHOT}, trying to save screenshots.`);
|
console.log(`Save screenshot is ${SAVE_SCREENSHOT}, trying to save screenshots.`);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -25,8 +25,8 @@
|
|||||||
|
|
||||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { TestBed, ComponentFixture, fakeAsync, tick } from '@angular/core/testing';
|
import { TestBed, ComponentFixture } from '@angular/core/testing';
|
||||||
import { AlfrescoApiService, NodeFavoriteDirective, DataTableComponent, AppConfigPipe, UploadService } from '@alfresco/adf-core';
|
import { AlfrescoApiService, NodeFavoriteDirective, DataTableComponent, AppConfigPipe } from '@alfresco/adf-core';
|
||||||
import { DocumentListComponent } from '@alfresco/adf-content-services';
|
import { DocumentListComponent } from '@alfresco/adf-content-services';
|
||||||
import { of } from 'rxjs';
|
import { of } from 'rxjs';
|
||||||
import { FavoritesComponent } from './favorites.component';
|
import { FavoritesComponent } from './favorites.component';
|
||||||
@ -45,7 +45,6 @@ describe('FavoritesComponent', () => {
|
|||||||
};
|
};
|
||||||
let page;
|
let page;
|
||||||
let node;
|
let node;
|
||||||
let uploadService: UploadService;
|
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
page = {
|
page = {
|
||||||
@ -86,7 +85,6 @@ describe('FavoritesComponent', () => {
|
|||||||
spyOn(alfrescoApi.favoritesApi, 'getFavorites').and.returnValue(Promise.resolve(page));
|
spyOn(alfrescoApi.favoritesApi, 'getFavorites').and.returnValue(Promise.resolve(page));
|
||||||
|
|
||||||
contentApi = TestBed.inject(ContentApiService);
|
contentApi = TestBed.inject(ContentApiService);
|
||||||
uploadService = TestBed.inject(UploadService);
|
|
||||||
router = TestBed.inject(Router);
|
router = TestBed.inject(Router);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -122,28 +120,6 @@ describe('FavoritesComponent', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: fix with ADF 4.1
|
|
||||||
xit('should call document list reload on fileUploadComplete event', fakeAsync(() => {
|
|
||||||
spyOn(component, 'reload');
|
|
||||||
|
|
||||||
fixture.detectChanges();
|
|
||||||
uploadService.fileUploadComplete.next();
|
|
||||||
tick(500);
|
|
||||||
|
|
||||||
expect(component.reload).toHaveBeenCalled();
|
|
||||||
}));
|
|
||||||
|
|
||||||
// TODO: fix with ADF 4.1
|
|
||||||
xit('should call document list reload on fileUploadDeleted event', fakeAsync(() => {
|
|
||||||
spyOn(component, 'reload');
|
|
||||||
|
|
||||||
fixture.detectChanges();
|
|
||||||
uploadService.fileUploadDeleted.next();
|
|
||||||
tick(500);
|
|
||||||
|
|
||||||
expect(component.reload).toHaveBeenCalled();
|
|
||||||
}));
|
|
||||||
|
|
||||||
it('should navigate if node is folder', () => {
|
it('should navigate if node is folder', () => {
|
||||||
const nodeEntity: any = { entry: { isFolder: true } };
|
const nodeEntity: any = { entry: { isFolder: true } };
|
||||||
spyOn(component, 'navigate').and.stub();
|
spyOn(component, 'navigate').and.stub();
|
||||||
|
@ -368,47 +368,6 @@ describe('PreviewComponent', () => {
|
|||||||
expect(router.navigate).toHaveBeenCalledWith(['personal-files', 'folder1']);
|
expect(router.navigate).toHaveBeenCalledWith(['personal-files', 'folder1']);
|
||||||
});
|
});
|
||||||
|
|
||||||
// todo: Fix after Angular6 migration
|
|
||||||
xit('should navigate to original location in case of internal errors', async () => {
|
|
||||||
spyOn(router, 'navigate').and.stub();
|
|
||||||
spyOn(contentApi, 'getNodeInfo').and.returnValue(
|
|
||||||
of({
|
|
||||||
isFile: true
|
|
||||||
} as Node)
|
|
||||||
);
|
|
||||||
spyOn(component, 'getNearestNodes').and.returnValue(Promise.reject('error'));
|
|
||||||
|
|
||||||
component.previewLocation = 'personal-files';
|
|
||||||
await component.displayNode('folder1');
|
|
||||||
|
|
||||||
expect(contentApi.getNodeInfo).toHaveBeenCalledWith('folder1');
|
|
||||||
expect(router.navigate).toHaveBeenCalledWith(['personal-files', 'folder1']);
|
|
||||||
});
|
|
||||||
|
|
||||||
xit('should setup node for displaying', async () => {
|
|
||||||
spyOn(router, 'navigate').and.stub();
|
|
||||||
spyOn(component, 'getNearestNodes').and.returnValue(
|
|
||||||
Promise.resolve({
|
|
||||||
left: 'node1',
|
|
||||||
right: 'node3'
|
|
||||||
})
|
|
||||||
);
|
|
||||||
spyOn(contentApi, 'getNodeInfo').and.returnValue(
|
|
||||||
of({
|
|
||||||
id: 'node2',
|
|
||||||
parentId: 'parent1',
|
|
||||||
isFile: true
|
|
||||||
} as Node)
|
|
||||||
);
|
|
||||||
|
|
||||||
await component.displayNode('node2');
|
|
||||||
|
|
||||||
expect(component.previousNodeId).toBe('node1');
|
|
||||||
expect(component.nextNodeId).toBe('node3');
|
|
||||||
expect(component.nodeId).toBe('node2');
|
|
||||||
expect(router.navigate).not.toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should fetch and sort file ids for personal-files', async () => {
|
it('should fetch and sort file ids for personal-files', async () => {
|
||||||
preferences.set('personal-files.sorting.key', 'name');
|
preferences.set('personal-files.sorting.key', 'name');
|
||||||
preferences.set('personal-files.sorting.direction', 'desc');
|
preferences.set('personal-files.sorting.direction', 'desc');
|
||||||
@ -441,11 +400,6 @@ describe('PreviewComponent', () => {
|
|||||||
expect(ids).toEqual(['node1', 'node2']);
|
expect(ids).toEqual(['node1', 'node2']);
|
||||||
});
|
});
|
||||||
|
|
||||||
xit('should require folder id to fetch ids for personal-files', async () => {
|
|
||||||
const ids = await component.getFileIds('personal-files', null);
|
|
||||||
expect(ids).toEqual([]);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should sort file ids for personal-files with [modifiedAt desc]', async () => {
|
it('should sort file ids for personal-files with [modifiedAt desc]', async () => {
|
||||||
spyOn(preferences, 'get').and.returnValue(null);
|
spyOn(preferences, 'get').and.returnValue(null);
|
||||||
|
|
||||||
|
@ -23,9 +23,9 @@
|
|||||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { TestBed, ComponentFixture, fakeAsync, tick } from '@angular/core/testing';
|
import { TestBed, ComponentFixture } from '@angular/core/testing';
|
||||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { AlfrescoApiService, NodeFavoriteDirective, DataTableComponent, AppConfigPipe, UploadService } from '@alfresco/adf-core';
|
import { AlfrescoApiService, NodeFavoriteDirective, DataTableComponent, AppConfigPipe } from '@alfresco/adf-core';
|
||||||
import { DocumentListComponent } from '@alfresco/adf-content-services';
|
import { DocumentListComponent } from '@alfresco/adf-content-services';
|
||||||
import { RecentFilesComponent } from './recent-files.component';
|
import { RecentFilesComponent } from './recent-files.component';
|
||||||
import { AppTestingModule } from '../../testing/app-testing.module';
|
import { AppTestingModule } from '../../testing/app-testing.module';
|
||||||
@ -37,7 +37,6 @@ describe('RecentFilesComponent', () => {
|
|||||||
let component: RecentFilesComponent;
|
let component: RecentFilesComponent;
|
||||||
let alfrescoApi: AlfrescoApiService;
|
let alfrescoApi: AlfrescoApiService;
|
||||||
let page;
|
let page;
|
||||||
let uploadService: UploadService;
|
|
||||||
const mockRouter = {
|
const mockRouter = {
|
||||||
url: 'recent-files'
|
url: 'recent-files'
|
||||||
};
|
};
|
||||||
@ -68,7 +67,6 @@ describe('RecentFilesComponent', () => {
|
|||||||
component = fixture.componentInstance;
|
component = fixture.componentInstance;
|
||||||
|
|
||||||
alfrescoApi = TestBed.inject(AlfrescoApiService);
|
alfrescoApi = TestBed.inject(AlfrescoApiService);
|
||||||
uploadService = TestBed.inject(UploadService);
|
|
||||||
alfrescoApi.reset();
|
alfrescoApi.reset();
|
||||||
|
|
||||||
spyOn(alfrescoApi.peopleApi, 'getPerson').and.returnValue(
|
spyOn(alfrescoApi.peopleApi, 'getPerson').and.returnValue(
|
||||||
@ -80,28 +78,6 @@ describe('RecentFilesComponent', () => {
|
|||||||
spyOn(alfrescoApi.searchApi, 'search').and.returnValue(Promise.resolve(page));
|
spyOn(alfrescoApi.searchApi, 'search').and.returnValue(Promise.resolve(page));
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: fix with ADF 4.1
|
|
||||||
xit('should call document list reload on fileUploadComplete event', fakeAsync(() => {
|
|
||||||
spyOn(component, 'reload');
|
|
||||||
|
|
||||||
fixture.detectChanges();
|
|
||||||
uploadService.fileUploadComplete.next();
|
|
||||||
tick(500);
|
|
||||||
|
|
||||||
expect(component.reload).toHaveBeenCalled();
|
|
||||||
}));
|
|
||||||
|
|
||||||
// TODO: fix with ADF 4.1
|
|
||||||
xit('should call document list reload on fileUploadDeleted event', fakeAsync(() => {
|
|
||||||
spyOn(component, 'reload');
|
|
||||||
|
|
||||||
fixture.detectChanges();
|
|
||||||
uploadService.fileUploadDeleted.next();
|
|
||||||
tick(500);
|
|
||||||
|
|
||||||
expect(component.reload).toHaveBeenCalled();
|
|
||||||
}));
|
|
||||||
|
|
||||||
it('should call showPreview method', () => {
|
it('should call showPreview method', () => {
|
||||||
const node: any = { entry: {} };
|
const node: any = { entry: {} };
|
||||||
spyOn(component, 'showPreview');
|
spyOn(component, 'showPreview');
|
||||||
|
@ -1,135 +0,0 @@
|
|||||||
/*!
|
|
||||||
* @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 <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { TestBed, ComponentFixture, fakeAsync, tick } from '@angular/core/testing';
|
|
||||||
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
|
||||||
import {
|
|
||||||
AlfrescoApiService,
|
|
||||||
AlfrescoApiServiceMock,
|
|
||||||
NodeFavoriteDirective,
|
|
||||||
DataTableComponent,
|
|
||||||
AppConfigPipe,
|
|
||||||
UploadService
|
|
||||||
} from '@alfresco/adf-core';
|
|
||||||
import { CustomResourcesService, DocumentListComponent } from '@alfresco/adf-content-services';
|
|
||||||
import { SharedFilesComponent } from './shared-files.component';
|
|
||||||
import { AppTestingModule } from '../../testing/app-testing.module';
|
|
||||||
import { Router } from '@angular/router';
|
|
||||||
import { ContentManagementService } from '../../services/content-management.service';
|
|
||||||
import { of } from 'rxjs';
|
|
||||||
|
|
||||||
describe('SharedFilesComponent', () => {
|
|
||||||
let fixture: ComponentFixture<SharedFilesComponent>;
|
|
||||||
let component: SharedFilesComponent;
|
|
||||||
let alfrescoApi: AlfrescoApiService;
|
|
||||||
let page;
|
|
||||||
let uploadService: UploadService;
|
|
||||||
let customResourcesService: CustomResourcesService;
|
|
||||||
let contentManagementService: ContentManagementService;
|
|
||||||
const mockRouter = {
|
|
||||||
url: 'shared-files'
|
|
||||||
};
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
page = {
|
|
||||||
list: {
|
|
||||||
entries: [{ entry: { id: 1 } }, { entry: { id: 2 } }],
|
|
||||||
pagination: { data: 'data' }
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
TestBed.configureTestingModule({
|
|
||||||
imports: [AppTestingModule],
|
|
||||||
declarations: [DataTableComponent, NodeFavoriteDirective, DocumentListComponent, SharedFilesComponent, AppConfigPipe],
|
|
||||||
providers: [
|
|
||||||
{ provide: AlfrescoApiService, useClass: AlfrescoApiServiceMock },
|
|
||||||
{
|
|
||||||
provide: Router,
|
|
||||||
useValue: mockRouter
|
|
||||||
}
|
|
||||||
],
|
|
||||||
schemas: [NO_ERRORS_SCHEMA]
|
|
||||||
});
|
|
||||||
|
|
||||||
fixture = TestBed.createComponent(SharedFilesComponent);
|
|
||||||
uploadService = TestBed.inject(UploadService);
|
|
||||||
contentManagementService = TestBed.inject(ContentManagementService);
|
|
||||||
customResourcesService = TestBed.inject(CustomResourcesService);
|
|
||||||
component = fixture.componentInstance;
|
|
||||||
|
|
||||||
alfrescoApi = TestBed.inject(AlfrescoApiService);
|
|
||||||
alfrescoApi.reset();
|
|
||||||
|
|
||||||
spyOn(alfrescoApi.sharedLinksApi, 'findSharedLinks').and.returnValue(Promise.resolve(page));
|
|
||||||
spyOn(customResourcesService, 'loadSharedLinks').and.returnValue(of(page));
|
|
||||||
});
|
|
||||||
|
|
||||||
// TODO: fix with ADF 4.1
|
|
||||||
xit('should call document list reload on linksUnshared event', fakeAsync(() => {
|
|
||||||
spyOn(component, 'reload');
|
|
||||||
|
|
||||||
fixture.detectChanges();
|
|
||||||
contentManagementService.linksUnshared.next();
|
|
||||||
tick(500);
|
|
||||||
|
|
||||||
expect(component.reload).toHaveBeenCalled();
|
|
||||||
}));
|
|
||||||
|
|
||||||
// TODO: fix with ADF 4.1
|
|
||||||
xit('should call document list reload on fileUploadComplete event', fakeAsync(() => {
|
|
||||||
spyOn(component, 'reload');
|
|
||||||
|
|
||||||
fixture.detectChanges();
|
|
||||||
uploadService.fileUploadComplete.next();
|
|
||||||
tick(500);
|
|
||||||
|
|
||||||
expect(component.reload).toHaveBeenCalled();
|
|
||||||
}));
|
|
||||||
|
|
||||||
// TODO: fix with ADF 4.1
|
|
||||||
xit('should call document list reload on fileUploadDeleted event', fakeAsync(() => {
|
|
||||||
spyOn(component, 'reload');
|
|
||||||
|
|
||||||
fixture.detectChanges();
|
|
||||||
uploadService.fileUploadDeleted.next();
|
|
||||||
tick(500);
|
|
||||||
|
|
||||||
expect(component.reload).toHaveBeenCalled();
|
|
||||||
}));
|
|
||||||
|
|
||||||
// TODO: fix with ADF 4.1
|
|
||||||
xit('should call showPreview method', () => {
|
|
||||||
const node: any = { entry: {} };
|
|
||||||
spyOn(component, 'showPreview');
|
|
||||||
fixture.detectChanges();
|
|
||||||
|
|
||||||
component.preview(node);
|
|
||||||
expect(component.showPreview).toHaveBeenCalledWith(node, {
|
|
||||||
location: mockRouter.url
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
@ -63,7 +63,7 @@ describe('SidenavComponent', () => {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
// TODO: fix with ADF 4.1
|
// TODO: fix with ADF 4.1
|
||||||
xit('should set the sidenav data', async(() => {
|
it('should set the sidenav data', async(() => {
|
||||||
expect(component.groups).toEqual([
|
expect(component.groups).toEqual([
|
||||||
{
|
{
|
||||||
items: [
|
items: [
|
||||||
|
@ -16,7 +16,9 @@
|
|||||||
true,
|
true,
|
||||||
"eval",
|
"eval",
|
||||||
"fdescribe",
|
"fdescribe",
|
||||||
"fit"
|
"fit",
|
||||||
|
"xit",
|
||||||
|
"xdescribe"
|
||||||
],
|
],
|
||||||
"arrow-return-shorthand": true,
|
"arrow-return-shorthand": true,
|
||||||
"callable-types": true,
|
"callable-types": true,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user