mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2026-09-09 18:02:54 +00:00
exclude one test and do some fixes (#1869)
* exclude one test and do some fixes * try to get more logs * some more fixes * try to workaround the slow update of toggle menus * more logging * no message * trigger another run * Update delete-undo-delete.test.ts * no message * rename methods * no message * no message * no message * no message * no message * no message * update travis.yml * run travis on branch * trigger travis * cleanup * no message
This commit is contained in:
+34
-23
@@ -98,6 +98,22 @@ jobs:
|
|||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
|
- stage: e2e
|
||||||
|
name: 'Test Suites: viewer,infoDrawer,extensions'
|
||||||
|
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=viewer,infoDrawer,extensions"
|
||||||
|
after_script:
|
||||||
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
|
- stage: e2e
|
||||||
|
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
|
||||||
|
|
||||||
- stage: e2e
|
- stage: e2e
|
||||||
name: 'Test Suites: pagination'
|
name: 'Test Suites: pagination'
|
||||||
before_script:
|
before_script:
|
||||||
@@ -106,83 +122,78 @@ jobs:
|
|||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
- name: 'Test Suites: actionsAvailableFilesFolders'
|
- stage: e2e
|
||||||
|
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=actionsAvailableFilesFolders"
|
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: actionsAvailableLibraries,actionsAvailableNewMenu'
|
- stage: e2e
|
||||||
|
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=actionsAvailableLibraries,actionsAvailableNewMenu"
|
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: actionsAvailableSpecialPermissions'
|
- stage: e2e
|
||||||
|
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=actionsAvailableSpecialPermissions"
|
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 Suites: copyMoveActions'
|
- stage: e2e
|
||||||
|
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=copyMoveActions"
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=copyMoveActions"
|
||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
- name: 'Test Suites: createActions'
|
- stage: e2e
|
||||||
|
name: 'Test Suites: createActions'
|
||||||
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=createActions"
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=createActions"
|
||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
- name: 'Test Suites: deleteActions'
|
- stage: e2e
|
||||||
|
name: 'Test Suites: deleteActions'
|
||||||
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=deleteActions"
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=deleteActions"
|
||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
- name: 'Test Suites: editActions,favoriteActions'
|
- stage: e2e
|
||||||
|
name: 'Test Suites: editActions,favoriteActions'
|
||||||
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=editActions,favoriteActions"
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=editActions,favoriteActions"
|
||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
- name: 'Test Suites: libraryActions'
|
- stage: e2e
|
||||||
|
name: 'Test Suites: libraryActions'
|
||||||
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=libraryActions"
|
script: ./scripts/ci/jobs/affected-project-with.sh -target e2e -options "--suite=libraryActions"
|
||||||
after_script:
|
after_script:
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
- ./scripts/ci/job_hooks/after_e2e.sh
|
||||||
|
|
||||||
- name: 'Test Suites: shareActions'
|
- stage: e2e
|
||||||
before_script:
|
name: 'Test Suites: uploadDownloadActions'
|
||||||
- ./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:
|
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=uploadDownloadActions"
|
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
|
||||||
|
|
||||||
- name: 'Test Suites: viewer,infoDrawer,extensions'
|
|
||||||
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=viewer,infoDrawer,extensions"
|
|
||||||
after_script:
|
|
||||||
- ./scripts/ci/job_hooks/after_e2e.sh
|
|
||||||
|
|
||||||
- stage: Publish Docker Registry
|
- stage: Publish Docker Registry
|
||||||
name: Publish Docker Registry
|
name: Publish Docker Registry
|
||||||
script: ./scripts/travis/deploy/publish.sh "app"
|
script: ./scripts/travis/deploy/publish.sh "app"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ function buildNumber() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function uploadScreenshot(retryCount) {
|
async function uploadScreenshot(retryCount) {
|
||||||
console.log(`Start uploading report ${retryCount}`);
|
console.log(`Start uploading report ${retryCount} on ${process.env.SCREENSHOT_URL}`);
|
||||||
|
|
||||||
let alfrescoJsApi = new AlfrescoApi({
|
let alfrescoJsApi = new AlfrescoApi({
|
||||||
provider: 'ECM',
|
provider: 'ECM',
|
||||||
@@ -101,7 +101,7 @@ async function uploadScreenshot(retryCount) {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(`--- Upload output failed. ${error}`);
|
throw new Error(`--- Upload output failed. ${error}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
fs.rmdirSync(path.resolve(__dirname, `../../e2e-output-${retryCount}/`), { recursive: true });
|
fs.rmdirSync(path.resolve(__dirname, `../../e2e-output-${retryCount}/`), { recursive: true });
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"C306956": "https://alfresco.atlassian.net/browse/ACA-4196",
|
"C306956": "https://alfresco.atlassian.net/browse/ACA-4196",
|
||||||
"C286314": "https://alfresco.atlassian.net/browse/ACA-2176",
|
"C286314": "https://alfresco.atlassian.net/browse/ACA-2176",
|
||||||
"C213107": "https://alfresco.atlassian.net/browse/ACA-4197"
|
"C213107": "https://alfresco.atlassian.net/browse/ACA-4197",
|
||||||
|
"C325049": "https://alfresco.atlassian.net/browse/ACA-4219"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ const menu = new Menu();
|
|||||||
|
|
||||||
export async function checkContextMenu(item: string, expectedContextMenu: string[]): Promise<void> {
|
export async function checkContextMenu(item: string, expectedContextMenu: string[]): Promise<void> {
|
||||||
await dataTable.rightClickOnItem(item);
|
await dataTable.rightClickOnItem(item);
|
||||||
|
await contextMenu.waitForMenuToOpen();
|
||||||
|
|
||||||
const actualActions = await contextMenu.getMenuItems();
|
const actualActions = await contextMenu.getMenuItems();
|
||||||
expect(actualActions).toEqual(expectedContextMenu);
|
expect(actualActions).toEqual(expectedContextMenu);
|
||||||
@@ -77,6 +78,7 @@ export async function checkToolbarActions(item: string, expectedToolbarPrimary:
|
|||||||
export async function checkMultipleSelContextMenu(items: string[], expectedContextMenu: string[]): Promise<void> {
|
export async function checkMultipleSelContextMenu(items: string[], expectedContextMenu: string[]): Promise<void> {
|
||||||
await dataTable.selectMultipleItems(items);
|
await dataTable.selectMultipleItems(items);
|
||||||
await dataTable.rightClickOnMultipleSelection();
|
await dataTable.rightClickOnMultipleSelection();
|
||||||
|
await contextMenu.waitForMenuToOpen();
|
||||||
|
|
||||||
const actualActions = await contextMenu.getMenuItems();
|
const actualActions = await contextMenu.getMenuItems();
|
||||||
expect(actualActions).toEqual(expectedContextMenu);
|
expect(actualActions).toEqual(expectedContextMenu);
|
||||||
|
|||||||
@@ -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, UserActions, LoginPage, BrowsingPage, ContentNodeSelectorDialog, RepoClient, Utils } from '@alfresco/aca-testing-shared';
|
import {
|
||||||
|
AdminActions,
|
||||||
|
UserActions,
|
||||||
|
LoginPage,
|
||||||
|
BrowsingPage,
|
||||||
|
ContentNodeSelectorDialog,
|
||||||
|
RepoClient,
|
||||||
|
Utils,
|
||||||
|
SearchResultsPage
|
||||||
|
} from '@alfresco/aca-testing-shared';
|
||||||
import { BrowserActions, Logger } from '@alfresco/adf-testing';
|
import { BrowserActions, Logger } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
describe('Copy content', () => {
|
describe('Copy content', () => {
|
||||||
@@ -110,6 +119,7 @@ describe('Copy content', () => {
|
|||||||
const page = new BrowsingPage();
|
const page = new BrowsingPage();
|
||||||
const { dataTable, toolbar } = page;
|
const { dataTable, toolbar } = page;
|
||||||
const copyDialog = new ContentNodeSelectorDialog();
|
const copyDialog = new ContentNodeSelectorDialog();
|
||||||
|
const searchResultsPage = new SearchResultsPage();
|
||||||
const { searchInput } = page.header;
|
const { searchInput } = page.header;
|
||||||
|
|
||||||
const adminApiActions = new AdminActions();
|
const adminApiActions = new AdminActions();
|
||||||
@@ -416,7 +426,7 @@ describe('Copy content', () => {
|
|||||||
copyItemsIntoLibrary([file1, file2], source, folderSiteSearch, async () => {
|
copyItemsIntoLibrary([file1, file2], source, folderSiteSearch, async () => {
|
||||||
await searchInput.checkOnlyFiles();
|
await searchInput.checkOnlyFiles();
|
||||||
await searchInput.searchFor(random);
|
await searchInput.searchFor(random);
|
||||||
await dataTable.waitForBody();
|
await searchResultsPage.waitForResults();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
it('[C306935] Copy locked file', async () =>
|
it('[C306935] Copy locked file', async () =>
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ describe('Destination picker dialog : ', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C263875] Dialog UI', async () => {
|
it('[C263875] Dialog UI', async () => {
|
||||||
expect(await dialog.getTitle()).toEqual(`Copy '${file}' to...`);
|
expect(await dialog.getDialogTitle()).toEqual(`Copy '${file}' to...`);
|
||||||
expect(await dialog.searchInput.isPresent()).toBe(true, 'Search input is not displayed');
|
expect(await dialog.searchInput.isPresent()).toBe(true, 'Search input is not displayed');
|
||||||
expect(await dialog.isSelectLocationDropdownDisplayed()).toBe(true, 'Select Location dropdown not displayed');
|
expect(await dialog.isSelectLocationDropdownDisplayed()).toBe(true, 'Select Location dropdown not displayed');
|
||||||
expect(await breadcrumb.currentFolder.getText()).toEqual('Personal Files');
|
expect(await breadcrumb.currentFolder.getText()).toEqual('Personal Files');
|
||||||
@@ -196,7 +196,7 @@ describe('Destination picker dialog : ', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C263879] Dialog title - multiple selection', async () => {
|
it('[C263879] Dialog title - multiple selection', async () => {
|
||||||
expect(await dialog.getTitle()).toEqual(`Copy 2 items to...`);
|
expect(await dialog.getDialogTitle()).toEqual(`Copy 2 items to...`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -257,7 +257,9 @@ describe('Move content', () => {
|
|||||||
await page.clickPersonalFilesAndWait();
|
await page.clickPersonalFilesAndWait();
|
||||||
await dataTable.doubleClickOnRowByName(destinationPF);
|
await dataTable.doubleClickOnRowByName(destinationPF);
|
||||||
expect(await dataTable.isItemPresent(existingFolder)).toBe(true, `${existingFolder} not present in destination folder`);
|
expect(await dataTable.isItemPresent(existingFolder)).toBe(true, `${existingFolder} not present in destination folder`);
|
||||||
|
|
||||||
await dataTable.doubleClickOnRowByName(existingFolder);
|
await dataTable.doubleClickOnRowByName(existingFolder);
|
||||||
|
await dataTable.waitForBody();
|
||||||
expect(await dataTable.isItemPresent(file2InFolder)).toBe(true, `${file2InFolder} not present in destination folder`);
|
expect(await dataTable.isItemPresent(file2InFolder)).toBe(true, `${file2InFolder} not present in destination folder`);
|
||||||
expect(await dataTable.isItemPresent(file3InFolder)).toBe(true, `${file3InFolder} not present in destination folder`);
|
expect(await dataTable.isItemPresent(file3InFolder)).toBe(true, `${file3InFolder} not present in destination folder`);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ describe('Create file from template', () => {
|
|||||||
await sidenav.openCreateFileFromTemplateDialog();
|
await sidenav.openCreateFileFromTemplateDialog();
|
||||||
await selectTemplateDialog.waitForDialogToOpen();
|
await selectTemplateDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await selectTemplateDialog.getTitle()).toEqual('Select a document template');
|
expect(await selectTemplateDialog.getDialogTitle()).toEqual('Select a document template');
|
||||||
expect(await selectTemplateDialog.dataTable.isEmpty()).toBe(true, 'Datatable is not empty');
|
expect(await selectTemplateDialog.dataTable.isEmpty()).toBe(true, 'Datatable is not empty');
|
||||||
expect(await selectTemplateDialog.dataTable.getEmptyListText()).toEqual('No results found');
|
expect(await selectTemplateDialog.dataTable.getEmptyListText()).toEqual('No results found');
|
||||||
expect(await selectTemplateDialog.breadcrumb.currentFolder.getText()).toEqual('Node Templates');
|
expect(await selectTemplateDialog.breadcrumb.currentFolder.getText()).toEqual('Node Templates');
|
||||||
@@ -167,7 +167,7 @@ describe('Create file from template', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C325043] Select template - dialog UI - with existing templates', async () => {
|
it('[C325043] Select template - dialog UI - with existing templates', async () => {
|
||||||
expect(await selectTemplateDialog.getTitle()).toEqual('Select a document template');
|
expect(await selectTemplateDialog.getDialogTitle()).toEqual('Select a document template');
|
||||||
expect(await selectTemplateDialog.dataTable.isEmpty()).toBe(false, 'Datatable is empty');
|
expect(await selectTemplateDialog.dataTable.isEmpty()).toBe(false, 'Datatable is empty');
|
||||||
expect(await selectTemplateDialog.dataTable.isItemPresent(templatesFolder1)).toBe(true, 'template folder not displayed');
|
expect(await selectTemplateDialog.dataTable.isItemPresent(templatesFolder1)).toBe(true, 'template folder not displayed');
|
||||||
expect(await selectTemplateDialog.dataTable.isItemPresent(templatesFolder2)).toBe(true, 'template folder not displayed');
|
expect(await selectTemplateDialog.dataTable.isItemPresent(templatesFolder2)).toBe(true, 'template folder not displayed');
|
||||||
@@ -249,7 +249,7 @@ describe('Create file from template', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C325020] Create file from template - dialog UI', async () => {
|
it('[C325020] Create file from template - dialog UI', async () => {
|
||||||
expect(await createFromTemplateDialog.getTitle()).toEqual(`Create new document from '${template1InRootFolder}'`);
|
expect(await createFromTemplateDialog.getDialogTitle()).toEqual(`Create new document from '${template1InRootFolder}'`);
|
||||||
expect(await createFromTemplateDialog.nameInput.isDisplayed()).toBe(true, 'Name field not displayed');
|
expect(await createFromTemplateDialog.nameInput.isDisplayed()).toBe(true, 'Name field not displayed');
|
||||||
expect(await createFromTemplateDialog.titleInput.isDisplayed()).toBe(true, 'Title field not displayed');
|
expect(await createFromTemplateDialog.titleInput.isDisplayed()).toBe(true, 'Title field not displayed');
|
||||||
expect(await createFromTemplateDialog.descriptionTextArea.isDisplayed()).toBe(true, 'Description field not displayed');
|
expect(await createFromTemplateDialog.descriptionTextArea.isDisplayed()).toBe(true, 'Description field not displayed');
|
||||||
@@ -258,7 +258,7 @@ describe('Create file from template', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C325031] File name is required', async () => {
|
it('[C325031] File name is required', async () => {
|
||||||
expect(await createFromTemplateDialog.getName()).toEqual(template1InRootFolder);
|
expect(await createFromTemplateDialog.getNameInputValue()).toEqual(template1InRootFolder);
|
||||||
await clearTextWithBackspace(createFromTemplateDialog.nameInput);
|
await clearTextWithBackspace(createFromTemplateDialog.nameInput);
|
||||||
|
|
||||||
expect(await createFromTemplateDialog.getValidationMessage()).toEqual('Name is required');
|
expect(await createFromTemplateDialog.getValidationMessage()).toEqual('Name is required');
|
||||||
@@ -330,6 +330,7 @@ describe('Create file from template', () => {
|
|||||||
await createFromTemplateDialog.enterName(file2.name);
|
await createFromTemplateDialog.enterName(file2.name);
|
||||||
await createFromTemplateDialog.enterTitle(file2.title);
|
await createFromTemplateDialog.enterTitle(file2.title);
|
||||||
await createFromTemplateDialog.enterDescription(file2.description);
|
await createFromTemplateDialog.enterDescription(file2.description);
|
||||||
|
|
||||||
await BrowserActions.click(createFromTemplateDialog.createButton);
|
await BrowserActions.click(createFromTemplateDialog.createButton);
|
||||||
await createFromTemplateDialog.waitForDialogToClose();
|
await createFromTemplateDialog.waitForDialogToClose();
|
||||||
await page.dataTable.waitForHeader();
|
await page.dataTable.waitForHeader();
|
||||||
@@ -384,6 +385,7 @@ describe('Create file from template', () => {
|
|||||||
await createFromTemplateDialog.enterName(fileSite.name);
|
await createFromTemplateDialog.enterName(fileSite.name);
|
||||||
await createFromTemplateDialog.enterTitle(fileSite.title);
|
await createFromTemplateDialog.enterTitle(fileSite.title);
|
||||||
await createFromTemplateDialog.enterDescription(fileSite.description);
|
await createFromTemplateDialog.enterDescription(fileSite.description);
|
||||||
|
|
||||||
await BrowserActions.click(createFromTemplateDialog.createButton);
|
await BrowserActions.click(createFromTemplateDialog.createButton);
|
||||||
await createFromTemplateDialog.waitForDialogToClose();
|
await createFromTemplateDialog.waitForDialogToClose();
|
||||||
await page.dataTable.waitForHeader();
|
await page.dataTable.waitForHeader();
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ describe('Create folder from template', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C325147] Select template - dialog UI - with existing templates', async () => {
|
it('[C325147] Select template - dialog UI - with existing templates', async () => {
|
||||||
expect(await selectTemplateDialog.getTitle()).toEqual('Select a folder template');
|
expect(await selectTemplateDialog.getDialogTitle()).toEqual('Select a folder template');
|
||||||
expect(await selectTemplateDialog.dataTable.isEmpty()).toBe(false, 'Datatable is empty');
|
expect(await selectTemplateDialog.dataTable.isEmpty()).toBe(false, 'Datatable is empty');
|
||||||
expect(await selectTemplateDialog.dataTable.isItemPresent(templateFolder1)).toBe(true, 'template folder not displayed');
|
expect(await selectTemplateDialog.dataTable.isItemPresent(templateFolder1)).toBe(true, 'template folder not displayed');
|
||||||
expect(await selectTemplateDialog.dataTable.isItemPresent(templateFolder2)).toBe(true, 'template folder not displayed');
|
expect(await selectTemplateDialog.dataTable.isItemPresent(templateFolder2)).toBe(true, 'template folder not displayed');
|
||||||
@@ -235,7 +235,7 @@ describe('Create folder from template', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C325142] Create folder from template - dialog UI', async () => {
|
it('[C325142] Create folder from template - dialog UI', async () => {
|
||||||
expect(await createFromTemplateDialog.getTitle()).toEqual(`Create new folder from '${templateFolder1}'`);
|
expect(await createFromTemplateDialog.getDialogTitle()).toEqual(`Create new folder from '${templateFolder1}'`);
|
||||||
expect(await createFromTemplateDialog.nameInput.isDisplayed()).toBe(true, 'Name field not displayed');
|
expect(await createFromTemplateDialog.nameInput.isDisplayed()).toBe(true, 'Name field not displayed');
|
||||||
expect(await createFromTemplateDialog.titleInput.isDisplayed()).toBe(true, 'Title field not displayed');
|
expect(await createFromTemplateDialog.titleInput.isDisplayed()).toBe(true, 'Title field not displayed');
|
||||||
expect(await createFromTemplateDialog.descriptionTextArea.isDisplayed()).toBe(true, 'Description field not displayed');
|
expect(await createFromTemplateDialog.descriptionTextArea.isDisplayed()).toBe(true, 'Description field not displayed');
|
||||||
@@ -244,7 +244,7 @@ describe('Create folder from template', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C325143] Folder name is required', async () => {
|
it('[C325143] Folder name is required', async () => {
|
||||||
expect(await createFromTemplateDialog.getName()).toEqual(templateFolder1);
|
expect(await createFromTemplateDialog.getNameInputValue()).toEqual(templateFolder1);
|
||||||
await clearTextWithBackspace(createFromTemplateDialog.nameInput);
|
await clearTextWithBackspace(createFromTemplateDialog.nameInput);
|
||||||
|
|
||||||
expect(await createFromTemplateDialog.getValidationMessage()).toEqual('Name is required');
|
expect(await createFromTemplateDialog.getValidationMessage()).toEqual('Name is required');
|
||||||
@@ -316,6 +316,7 @@ describe('Create folder from template', () => {
|
|||||||
await createFromTemplateDialog.enterName(folder2.name);
|
await createFromTemplateDialog.enterName(folder2.name);
|
||||||
await createFromTemplateDialog.enterTitle(folder2.title);
|
await createFromTemplateDialog.enterTitle(folder2.title);
|
||||||
await createFromTemplateDialog.enterDescription(folder2.description);
|
await createFromTemplateDialog.enterDescription(folder2.description);
|
||||||
|
|
||||||
await BrowserActions.click(createFromTemplateDialog.createButton);
|
await BrowserActions.click(createFromTemplateDialog.createButton);
|
||||||
await createFromTemplateDialog.waitForDialogToClose();
|
await createFromTemplateDialog.waitForDialogToClose();
|
||||||
await page.dataTable.waitForHeader();
|
await page.dataTable.waitForHeader();
|
||||||
@@ -371,6 +372,7 @@ describe('Create folder from template', () => {
|
|||||||
await createFromTemplateDialog.enterName(folderSite.name);
|
await createFromTemplateDialog.enterName(folderSite.name);
|
||||||
await createFromTemplateDialog.enterTitle(folderSite.title);
|
await createFromTemplateDialog.enterTitle(folderSite.title);
|
||||||
await createFromTemplateDialog.enterDescription(folderSite.description);
|
await createFromTemplateDialog.enterDescription(folderSite.description);
|
||||||
|
|
||||||
await BrowserActions.click(createFromTemplateDialog.createButton);
|
await BrowserActions.click(createFromTemplateDialog.createButton);
|
||||||
await createFromTemplateDialog.waitForDialogToClose();
|
await createFromTemplateDialog.waitForDialogToClose();
|
||||||
await page.dataTable.waitForHeader();
|
await page.dataTable.waitForHeader();
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ describe('Create folder', () => {
|
|||||||
it('[C216345] dialog UI elements', async () => {
|
it('[C216345] dialog UI elements', async () => {
|
||||||
await openCreateFolderDialog(parent);
|
await openCreateFolderDialog(parent);
|
||||||
|
|
||||||
expect(await createDialog.getTitle()).toMatch('Create new folder');
|
expect(await createDialog.getDialogTitle()).toMatch('Create new folder');
|
||||||
expect(await createDialog.nameInput.isDisplayed()).toBe(true, 'Name input is not displayed');
|
expect(await createDialog.nameInput.isDisplayed()).toBe(true, 'Name input is not displayed');
|
||||||
expect(await createDialog.descriptionTextArea.isDisplayed()).toBe(true, 'Description field is not displayed');
|
expect(await createDialog.descriptionTextArea.isDisplayed()).toBe(true, 'Description field is not displayed');
|
||||||
expect(await createDialog.isCreateButtonEnabled()).toBe(false, 'Create button is not disabled');
|
expect(await createDialog.isCreateButtonEnabled()).toBe(false, 'Create button is not disabled');
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ describe('Create library', () => {
|
|||||||
await page.sidenav.openCreateLibraryDialog();
|
await page.sidenav.openCreateLibraryDialog();
|
||||||
await createDialog.waitForDialogToOpen();
|
await createDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await createDialog.getTitle()).toMatch('Create Library');
|
expect(await createDialog.getDialogTitle()).toMatch('Create Library');
|
||||||
expect(await createDialog.nameInput.isDisplayed()).toBe(true, 'Name input is not displayed');
|
expect(await createDialog.nameInput.isDisplayed()).toBe(true, 'Name input is not displayed');
|
||||||
expect(await createDialog.libraryIdInput.isDisplayed()).toBe(true, 'Library ID input is not displayed');
|
expect(await createDialog.libraryIdInput.isDisplayed()).toBe(true, 'Library ID input is not displayed');
|
||||||
expect(await createDialog.descriptionTextArea.isDisplayed()).toBe(true, 'Description field is not displayed');
|
expect(await createDialog.descriptionTextArea.isDisplayed()).toBe(true, 'Description field is not displayed');
|
||||||
|
|||||||
@@ -55,25 +55,24 @@ describe('Delete and undo delete', () => {
|
|||||||
const parent = `parentRF-${Utils.random()}`;
|
const parent = `parentRF-${Utils.random()}`;
|
||||||
let parentId: string;
|
let parentId: string;
|
||||||
|
|
||||||
const recentFile1 = `recentFile1-${Utils.random()}.txt`;
|
const random = Utils.random();
|
||||||
const recentFile2 = `recentFile2-${Utils.random()}.txt`;
|
const recentFile1 = `recentFile1-${random}.txt`;
|
||||||
const recentFile3 = `recentFile3-${Utils.random()}.txt`;
|
const recentFile2 = `recentFile2-${random}.txt`;
|
||||||
const recentFile4 = `recentFile4-${Utils.random()}.txt`;
|
const recentFile3 = `recentFile3-${random}.txt`;
|
||||||
const recentFile5 = `recentFile5-${Utils.random()}.txt`;
|
const recentFile4 = `recentFile4-${random}.txt`;
|
||||||
const recentFile6 = `recentFile6-${Utils.random()}.txt`;
|
const recentFile5 = `recentFile5-${random}.txt`;
|
||||||
|
const recentFile6 = `recentFile6-${random}.txt`;
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
|
parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
|
||||||
|
|
||||||
const initialRecentTotalItems = await apis.user.search.getTotalItems(username);
|
|
||||||
|
|
||||||
await apis.user.nodes.createFile(recentFile1, parentId);
|
await apis.user.nodes.createFile(recentFile1, parentId);
|
||||||
await apis.user.nodes.createFile(recentFile2, parentId);
|
await apis.user.nodes.createFile(recentFile2, parentId);
|
||||||
await apis.user.nodes.createFile(recentFile3, parentId);
|
await apis.user.nodes.createFile(recentFile3, parentId);
|
||||||
await apis.user.nodes.createFile(recentFile4, parentId);
|
await apis.user.nodes.createFile(recentFile4, parentId);
|
||||||
await apis.user.nodes.createFile(recentFile5, parentId);
|
await apis.user.nodes.createFile(recentFile5, parentId);
|
||||||
await apis.user.nodes.createFile(recentFile6, parentId);
|
await apis.user.nodes.createFile(recentFile6, parentId);
|
||||||
await apis.user.search.waitForApi(username, { expect: initialRecentTotalItems + 6 });
|
await apis.user.search.waitForNodes(random, { expect: 6 });
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
done();
|
done();
|
||||||
@@ -93,25 +92,25 @@ describe('Delete and undo delete', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C280528] delete a file and check notification', async () => {
|
it('[C280528] delete a file and check notification', async () => {
|
||||||
await dataTable.selectItem(recentFile1);
|
await dataTable.selectItem(recentFile1, parent);
|
||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
const message = await page.getSnackBarMessage();
|
const message = await page.getSnackBarMessage();
|
||||||
expect(message).toContain(`${recentFile1} deleted`);
|
expect(message).toContain(`${recentFile1} deleted`);
|
||||||
expect(message).toContain(`Undo`);
|
expect(message).toContain(`Undo`);
|
||||||
expect(await dataTable.isItemPresent(recentFile1)).toBe(false, 'Item was not removed from list');
|
expect(await dataTable.isItemPresent(recentFile1)).toBe(false, `${recentFile1} was not removed from list`);
|
||||||
await page.clickTrash();
|
await page.clickTrashAndWait();
|
||||||
expect(await dataTable.isItemPresent(recentFile1)).toBe(true, 'Item is not in trash');
|
expect(await dataTable.isItemPresent(recentFile1)).toBe(true, `${recentFile1} is not in trash`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280529] delete multiple files and check notification', async () => {
|
it('[C280529] delete multiple files and check notification', async () => {
|
||||||
await dataTable.selectMultipleItems([recentFile2, recentFile3]);
|
await dataTable.selectMultipleItems([recentFile2, recentFile3], parent);
|
||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
const message = await page.getSnackBarMessage();
|
const message = await page.getSnackBarMessage();
|
||||||
expect(message).toContain(`Deleted 2 items`);
|
expect(message).toContain(`Deleted 2 items`);
|
||||||
expect(message).toContain(`Undo`);
|
expect(message).toContain(`Undo`);
|
||||||
expect(await dataTable.isItemPresent(recentFile2)).toBe(false, `${recentFile2} was not removed from list`);
|
expect(await dataTable.isItemPresent(recentFile2)).toBe(false, `${recentFile2} was not removed from list`);
|
||||||
expect(await dataTable.isItemPresent(recentFile3)).toBe(false, `${recentFile3} was not removed from list`);
|
expect(await dataTable.isItemPresent(recentFile3)).toBe(false, `${recentFile3} was not removed from list`);
|
||||||
await page.clickTrash();
|
await page.clickTrashAndWait();
|
||||||
expect(await dataTable.isItemPresent(recentFile2)).toBe(true, `${recentFile2} is not in trash`);
|
expect(await dataTable.isItemPresent(recentFile2)).toBe(true, `${recentFile2} is not in trash`);
|
||||||
expect(await dataTable.isItemPresent(recentFile3)).toBe(true, `${recentFile3} is not in trash`);
|
expect(await dataTable.isItemPresent(recentFile3)).toBe(true, `${recentFile3} is not in trash`);
|
||||||
});
|
});
|
||||||
@@ -125,7 +124,7 @@ describe('Delete and undo delete', () => {
|
|||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
await page.clickSnackBarAction();
|
await page.clickSnackBarAction();
|
||||||
await page.clickTrash();
|
await page.clickTrash();
|
||||||
expect(await dataTable.isItemPresent(recentFile4)).toBe(false, 'Item is in Trash');
|
expect(await dataTable.isItemPresent(recentFile4)).toBe(false, `${recentFile4} is in Trash`);
|
||||||
});
|
});
|
||||||
|
|
||||||
// due to the fact that the search api is slow to update,
|
// due to the fact that the search api is slow to update,
|
||||||
@@ -220,7 +219,11 @@ describe('Delete and undo delete', () => {
|
|||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
try {
|
try {
|
||||||
await userActions.unlockNodes([fileLocked1Id, fileLocked2Id, fileLocked3Id, fileLocked4Id]);
|
await apis.user.nodes.unlockFile(fileLocked1Id);
|
||||||
|
await apis.user.nodes.unlockFile(fileLocked2Id);
|
||||||
|
await apis.user.nodes.unlockFile(fileLocked3Id);
|
||||||
|
await apis.user.nodes.unlockFile(fileLocked4Id);
|
||||||
|
|
||||||
await userActions.deleteNodes([parentId]);
|
await userActions.deleteNodes([parentId]);
|
||||||
await userActions.emptyTrashcan();
|
await userActions.emptyTrashcan();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -235,11 +238,11 @@ describe('Delete and undo delete', () => {
|
|||||||
const message = await page.getSnackBarMessage();
|
const message = await page.getSnackBarMessage();
|
||||||
expect(message).toContain(`${file1} deleted`);
|
expect(message).toContain(`${file1} deleted`);
|
||||||
expect(message).toContain(`Undo`);
|
expect(message).toContain(`Undo`);
|
||||||
expect(await dataTable.isItemPresent(file1)).toBe(false, 'Item was not removed from list');
|
expect(await dataTable.isItemPresent(file1)).toBe(false, `${file1} was not removed from list`);
|
||||||
items--;
|
items--;
|
||||||
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
||||||
await page.clickTrash();
|
await page.clickTrashAndWait();
|
||||||
expect(await dataTable.isItemPresent(file1)).toBe(true, 'Item is not in trash');
|
expect(await dataTable.isItemPresent(file1)).toBe(true, `${file1} is not in trash`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280502] delete multiple files and check notification', async () => {
|
it('[C280502] delete multiple files and check notification', async () => {
|
||||||
@@ -252,7 +255,7 @@ describe('Delete and undo delete', () => {
|
|||||||
expect(await dataTable.isItemPresent(file3)).toBe(false, `${file3} was not removed from list`);
|
expect(await dataTable.isItemPresent(file3)).toBe(false, `${file3} was not removed from list`);
|
||||||
items = items - 2;
|
items = items - 2;
|
||||||
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
||||||
await page.clickTrash();
|
await page.clickTrashAndWait();
|
||||||
expect(await dataTable.isItemPresent(file2)).toBe(true, `${file2} is not in trash`);
|
expect(await dataTable.isItemPresent(file2)).toBe(true, `${file2} is not in trash`);
|
||||||
expect(await dataTable.isItemPresent(file3)).toBe(true, `${file3} is not in trash`);
|
expect(await dataTable.isItemPresent(file3)).toBe(true, `${file3} is not in trash`);
|
||||||
});
|
});
|
||||||
@@ -261,12 +264,12 @@ describe('Delete and undo delete', () => {
|
|||||||
let items = await page.dataTable.getRowsCount();
|
let items = await page.dataTable.getRowsCount();
|
||||||
await dataTable.selectItem(folder1);
|
await dataTable.selectItem(folder1);
|
||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
expect(await dataTable.isItemPresent(folder1)).toBe(false, 'Item was not removed from list');
|
expect(await dataTable.isItemPresent(folder1)).toBe(false, `${folder1} was not removed from list`);
|
||||||
items--;
|
items--;
|
||||||
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
||||||
await page.clickTrash();
|
await page.clickTrashAndWait();
|
||||||
expect(await dataTable.isItemPresent(folder1)).toBe(true, 'Item is not in trash');
|
expect(await dataTable.isItemPresent(folder1)).toBe(true, `${folder1} is not in trash`);
|
||||||
expect(await dataTable.isItemPresent(file1InFolder)).toBe(false, 'Item is in trash');
|
expect(await dataTable.isItemPresent(file1InFolder)).toBe(false, `${file1InFolder} is in trash`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C217127] delete a folder containing locked files', async () => {
|
it('[C217127] delete a folder containing locked files', async () => {
|
||||||
@@ -275,10 +278,10 @@ describe('Delete and undo delete', () => {
|
|||||||
const message = await page.getSnackBarMessage();
|
const message = await page.getSnackBarMessage();
|
||||||
expect(message).toContain(`${folder2} couldn't be deleted`);
|
expect(message).toContain(`${folder2} couldn't be deleted`);
|
||||||
expect(message).not.toContain(`Undo`);
|
expect(message).not.toContain(`Undo`);
|
||||||
expect(await dataTable.isItemPresent(folder2)).toBe(true, 'Item was removed from list');
|
expect(await dataTable.isItemPresent(folder2)).toBe(true, `${folder2} was removed from list`);
|
||||||
await page.clickTrash();
|
await page.clickTrash();
|
||||||
expect(await dataTable.isItemPresent(folder2)).toBe(false, 'Item is in trash');
|
expect(await dataTable.isItemPresent(folder2)).toBe(false, `${folder2} is in trash`);
|
||||||
expect(await dataTable.isItemPresent(fileLocked1)).toBe(false, 'Item is in trash');
|
expect(await dataTable.isItemPresent(fileLocked1)).toBe(false, `${fileLocked1} is in trash`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C217129] notification on multiple items deletion - some items fail to delete', async () => {
|
it('[C217129] notification on multiple items deletion - some items fail to delete', async () => {
|
||||||
@@ -304,31 +307,29 @@ describe('Delete and undo delete', () => {
|
|||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
|
|
||||||
await page.clickSnackBarAction();
|
await page.clickSnackBarAction();
|
||||||
expect(await dataTable.isItemPresent(file5)).toBe(true, 'Item was not restored');
|
await dataTable.waitForBody();
|
||||||
|
expect(await dataTable.isItemPresent(file5)).toBe(true, `${file5} was not restored`);
|
||||||
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280503] undo delete of folder with content', async () => {
|
it('[C280503] undo delete of folder with content', async () => {
|
||||||
const items = await page.dataTable.getRowsCount();
|
|
||||||
|
|
||||||
await dataTable.selectItem(folder6);
|
await dataTable.selectItem(folder6);
|
||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
await page.clickSnackBarAction();
|
await page.clickSnackBarAction();
|
||||||
expect(await dataTable.isItemPresent(folder6)).toBe(true, 'Item was not restored');
|
await dataTable.waitForBody();
|
||||||
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
expect(await dataTable.isItemPresent(folder6)).toBe(true, `${folder6} was not restored`);
|
||||||
await dataTable.doubleClickOnRowByName(folder6);
|
await dataTable.doubleClickOnRowByName(folder6);
|
||||||
expect(await dataTable.isItemPresent(file2InFolder)).toBe(true, 'file from folder not restored');
|
await dataTable.waitForBody();
|
||||||
|
expect(await dataTable.isItemPresent(file2InFolder)).toBe(true, `${file2InFolder} from ${folder6} not restored`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280504] undo delete of multiple files', async () => {
|
it('[C280504] undo delete of multiple files', async () => {
|
||||||
const items = await page.dataTable.getRowsCount();
|
|
||||||
|
|
||||||
await dataTable.selectMultipleItems([file6, file7]);
|
await dataTable.selectMultipleItems([file6, file7]);
|
||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
await page.clickSnackBarAction();
|
await page.clickSnackBarAction();
|
||||||
expect(await dataTable.isItemPresent(file6)).toBe(true, `${file6} was not removed from list`);
|
await dataTable.waitForBody();
|
||||||
expect(await dataTable.isItemPresent(file7)).toBe(true, `${file7} was not removed from list`);
|
expect(await dataTable.isItemPresent(file6)).toBe(true, `${file6} was removed from list`);
|
||||||
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
expect(await dataTable.isItemPresent(file7)).toBe(true, `${file7} was removed from list`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -366,9 +367,8 @@ describe('Delete and undo delete', () => {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async () => {
|
||||||
await page.clickSharedFilesAndWait();
|
await page.clickSharedFilesAndWait();
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
@@ -386,9 +386,9 @@ describe('Delete and undo delete', () => {
|
|||||||
const message = await page.getSnackBarMessage();
|
const message = await page.getSnackBarMessage();
|
||||||
expect(message).toContain(`${sharedFile1} deleted`);
|
expect(message).toContain(`${sharedFile1} deleted`);
|
||||||
expect(message).toContain(`Undo`);
|
expect(message).toContain(`Undo`);
|
||||||
expect(await dataTable.isItemPresent(sharedFile1)).toBe(false, 'Item was not removed from list');
|
expect(await dataTable.isItemPresent(sharedFile1)).toBe(false, `${sharedFile1} was not removed from list`);
|
||||||
await page.clickTrash();
|
await page.clickTrashAndWait();
|
||||||
expect(await dataTable.isItemPresent(sharedFile1)).toBe(true, 'Item is not in trash');
|
expect(await dataTable.isItemPresent(sharedFile1)).toBe(true, `${sharedFile1} is not in trash`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280513] delete multiple files and check notification', async () => {
|
it('[C280513] delete multiple files and check notification', async () => {
|
||||||
@@ -399,7 +399,7 @@ describe('Delete and undo delete', () => {
|
|||||||
expect(message).toContain(`Undo`);
|
expect(message).toContain(`Undo`);
|
||||||
expect(await dataTable.isItemPresent(sharedFile2)).toBe(false, `${sharedFile2} was not removed from list`);
|
expect(await dataTable.isItemPresent(sharedFile2)).toBe(false, `${sharedFile2} was not removed from list`);
|
||||||
expect(await dataTable.isItemPresent(sharedFile3)).toBe(false, `${sharedFile3} was not removed from list`);
|
expect(await dataTable.isItemPresent(sharedFile3)).toBe(false, `${sharedFile3} was not removed from list`);
|
||||||
await page.clickTrash();
|
await page.clickTrashAndWait();
|
||||||
expect(await dataTable.isItemPresent(sharedFile2)).toBe(true, `${sharedFile2} is not in trash`);
|
expect(await dataTable.isItemPresent(sharedFile2)).toBe(true, `${sharedFile2} is not in trash`);
|
||||||
expect(await dataTable.isItemPresent(sharedFile3)).toBe(true, `${sharedFile3} is not in trash`);
|
expect(await dataTable.isItemPresent(sharedFile3)).toBe(true, `${sharedFile3} is not in trash`);
|
||||||
});
|
});
|
||||||
@@ -409,7 +409,7 @@ describe('Delete and undo delete', () => {
|
|||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
await page.clickSnackBarAction();
|
await page.clickSnackBarAction();
|
||||||
await page.clickTrash();
|
await page.clickTrash();
|
||||||
expect(await dataTable.isItemPresent(sharedFile4)).toBe(false, 'Item was not restored');
|
expect(await dataTable.isItemPresent(sharedFile4)).toBe(false, `${sharedFile4} was not restored`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280514] undo delete of multiple files', async () => {
|
it('[C280514] undo delete of multiple files', async () => {
|
||||||
@@ -468,8 +468,6 @@ describe('Delete and undo delete', () => {
|
|||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
|
parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
|
||||||
|
|
||||||
const initialFavoritesTotalItems = await apis.user.favorites.getFavoritesTotalItems();
|
|
||||||
|
|
||||||
favFile1Id = (await apis.user.nodes.createFile(favFile1, parentId)).entry.id;
|
favFile1Id = (await apis.user.nodes.createFile(favFile1, parentId)).entry.id;
|
||||||
favFile2Id = (await apis.user.nodes.createFile(favFile2, parentId)).entry.id;
|
favFile2Id = (await apis.user.nodes.createFile(favFile2, parentId)).entry.id;
|
||||||
favFile3Id = (await apis.user.nodes.createFile(favFile3, parentId)).entry.id;
|
favFile3Id = (await apis.user.nodes.createFile(favFile3, parentId)).entry.id;
|
||||||
@@ -497,6 +495,7 @@ describe('Delete and undo delete', () => {
|
|||||||
await apis.user.nodes.lockFile(fileLocked3Id, 'FULL');
|
await apis.user.nodes.lockFile(fileLocked3Id, 'FULL');
|
||||||
await apis.user.nodes.lockFile(fileLocked4Id, 'FULL');
|
await apis.user.nodes.lockFile(fileLocked4Id, 'FULL');
|
||||||
|
|
||||||
|
const initialFavoritesTotalItems = await apis.user.favorites.getFavoritesTotalItems();
|
||||||
await apis.user.favorites.addFavoritesByIds('file', [favFile1Id, favFile2Id, favFile3Id, favFile4Id, favFile5Id, favFile6Id, favFile7Id]);
|
await apis.user.favorites.addFavoritesByIds('file', [favFile1Id, favFile2Id, favFile3Id, favFile4Id, favFile5Id, favFile6Id, favFile7Id]);
|
||||||
await apis.user.favorites.addFavoritesByIds('folder', [favFolder1Id, favFolder2Id, favFolder3Id, favFolder4Id, favFolder5Id, favFolder6Id]);
|
await apis.user.favorites.addFavoritesByIds('folder', [favFolder1Id, favFolder2Id, favFolder3Id, favFolder4Id, favFolder5Id, favFolder6Id]);
|
||||||
await apis.user.favorites.waitForApi({ expect: initialFavoritesTotalItems + 13 });
|
await apis.user.favorites.waitForApi({ expect: initialFavoritesTotalItems + 13 });
|
||||||
@@ -512,7 +511,11 @@ describe('Delete and undo delete', () => {
|
|||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
try {
|
try {
|
||||||
await userActions.unlockNodes([fileLocked1Id, fileLocked2Id, fileLocked3Id, fileLocked4Id]);
|
await apis.user.nodes.unlockFile(fileLocked1Id);
|
||||||
|
await apis.user.nodes.unlockFile(fileLocked2Id);
|
||||||
|
await apis.user.nodes.unlockFile(fileLocked3Id);
|
||||||
|
await apis.user.nodes.unlockFile(fileLocked4Id);
|
||||||
|
|
||||||
await userActions.deleteNodes([parentId]);
|
await userActions.deleteNodes([parentId]);
|
||||||
await userActions.emptyTrashcan();
|
await userActions.emptyTrashcan();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -521,47 +524,37 @@ describe('Delete and undo delete', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C280516] delete a file and check notification', async () => {
|
it('[C280516] delete a file and check notification', async () => {
|
||||||
let items = await page.dataTable.getRowsCount();
|
|
||||||
|
|
||||||
await dataTable.selectItem(favFile1);
|
await dataTable.selectItem(favFile1);
|
||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
const message = await page.getSnackBarMessage();
|
const message = await page.getSnackBarMessage();
|
||||||
expect(message).toContain(`${favFile1} deleted`);
|
expect(message).toContain(`${favFile1} deleted`);
|
||||||
expect(message).toContain(`Undo`);
|
expect(message).toContain(`Undo`);
|
||||||
expect(await dataTable.isItemPresent(favFile1)).toBe(false, 'Item was not removed from list');
|
expect(await dataTable.isItemPresent(favFile1)).toBe(false, `${favFile1} was not removed from list`);
|
||||||
items--;
|
await page.clickTrashAndWait();
|
||||||
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
expect(await dataTable.isItemPresent(favFile1)).toBe(true, `${favFile1} is not in trash`);
|
||||||
await page.clickTrash();
|
|
||||||
expect(await dataTable.isItemPresent(favFile1)).toBe(true, 'Item is not in trash');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280517] delete multiple files and check notification', async () => {
|
it('[C280517] delete multiple files and check notification', async () => {
|
||||||
let items = await page.dataTable.getRowsCount();
|
await dataTable.selectMultipleItems([favFile2, favFile3], parent);
|
||||||
|
|
||||||
await dataTable.selectMultipleItems([favFile2, favFile3]);
|
|
||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
const message = await page.getSnackBarMessage();
|
const message = await page.getSnackBarMessage();
|
||||||
expect(message).toContain(`Deleted 2 items`);
|
expect(message).toContain(`Deleted 2 items`);
|
||||||
expect(message).toContain(`Undo`);
|
expect(message).toContain(`Undo`);
|
||||||
expect(await dataTable.isItemPresent(favFile2)).toBe(false, `${favFile2} was not removed from list`);
|
expect(await dataTable.isItemPresent(favFile2)).toBe(false, `${favFile2} was not removed from list`);
|
||||||
expect(await dataTable.isItemPresent(favFile3)).toBe(false, `${favFile3} was not removed from list`);
|
expect(await dataTable.isItemPresent(favFile3)).toBe(false, `${favFile3} was not removed from list`);
|
||||||
items = items - 2;
|
await page.clickTrashAndWait();
|
||||||
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
|
||||||
await page.clickTrash();
|
|
||||||
expect(await dataTable.isItemPresent(favFile2)).toBe(true, `${favFile2} is not in trash`);
|
expect(await dataTable.isItemPresent(favFile2)).toBe(true, `${favFile2} is not in trash`);
|
||||||
expect(await dataTable.isItemPresent(favFile3)).toBe(true, `${favFile3} is not in trash`);
|
expect(await dataTable.isItemPresent(favFile3)).toBe(true, `${favFile3} is not in trash`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280518] delete a folder with content', async () => {
|
it('[C280518] delete a folder with content', async () => {
|
||||||
let items = await page.dataTable.getRowsCount();
|
await dataTable.selectItem(favFolder1, parent);
|
||||||
await dataTable.selectItem(favFolder1);
|
|
||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
expect(await dataTable.isItemPresent(favFolder1)).toBe(false, 'Item was not removed from list');
|
await dataTable.waitForHeader();
|
||||||
items--;
|
expect(await dataTable.isItemPresent(favFolder1)).toBe(false, `${favFolder1} was not removed from list`);
|
||||||
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
await page.clickTrashAndWait();
|
||||||
await page.clickTrash();
|
expect(await dataTable.isItemPresent(favFolder1)).toBe(true, `${favFolder1} is not in trash`);
|
||||||
expect(await dataTable.isItemPresent(favFolder1)).toBe(true, 'Item is not in trash');
|
expect(await dataTable.isItemPresent(file1InFolder)).toBe(false, `${file1InFolder} is in trash`);
|
||||||
expect(await dataTable.isItemPresent(file1InFolder)).toBe(false, 'Item is in trash');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280519] delete a folder containing locked files', async () => {
|
it('[C280519] delete a folder containing locked files', async () => {
|
||||||
@@ -569,14 +562,14 @@ describe('Delete and undo delete', () => {
|
|||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
const message = await page.getSnackBarMessage();
|
const message = await page.getSnackBarMessage();
|
||||||
expect(message).toContain(`${favFolder2} couldn't be deleted`);
|
expect(message).toContain(`${favFolder2} couldn't be deleted`);
|
||||||
expect(await dataTable.isItemPresent(favFolder2)).toBe(true, 'Item was removed from list');
|
expect(await dataTable.isItemPresent(favFolder2)).toBe(true, `${favFolder2} was removed from list`);
|
||||||
await page.clickTrash();
|
await page.clickTrash();
|
||||||
expect(await dataTable.isItemPresent(favFolder2)).toBe(false, 'Item is in trash');
|
expect(await dataTable.isItemPresent(favFolder2)).toBe(false, `${favFolder2} is in trash`);
|
||||||
expect(await dataTable.isItemPresent(fileLocked1)).toBe(false, 'Item is in trash');
|
expect(await dataTable.isItemPresent(fileLocked1)).toBe(false, `${fileLocked1} is in trash`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280520] notification on multiple items deletion - some items fail to delete', async () => {
|
it('[C280520] notification on multiple items deletion - some items fail to delete', async () => {
|
||||||
await dataTable.selectMultipleItems([favFile4, favFolder3]);
|
await dataTable.selectMultipleItems([favFile4, favFolder3], parent);
|
||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
const message = await page.getSnackBarMessage();
|
const message = await page.getSnackBarMessage();
|
||||||
expect(message).toContain(`Deleted 1 item, 1 couldn't be deleted`);
|
expect(message).toContain(`Deleted 1 item, 1 couldn't be deleted`);
|
||||||
@@ -584,7 +577,7 @@ describe('Delete and undo delete', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C280521] notification on multiple items deletion - all items fail to delete', async () => {
|
it('[C280521] notification on multiple items deletion - all items fail to delete', async () => {
|
||||||
await dataTable.selectMultipleItems([favFolder4, favFolder5]);
|
await dataTable.selectMultipleItems([favFolder4, favFolder5], parent);
|
||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
const message = await page.getSnackBarMessage();
|
const message = await page.getSnackBarMessage();
|
||||||
expect(message).toEqual(`2 items couldn't be deleted`);
|
expect(message).toEqual(`2 items couldn't be deleted`);
|
||||||
@@ -592,36 +585,31 @@ describe('Delete and undo delete', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C280524] undo delete of file', async () => {
|
it('[C280524] undo delete of file', async () => {
|
||||||
const items = await page.dataTable.getRowsCount();
|
await dataTable.selectItem(favFile5, parent);
|
||||||
|
|
||||||
await dataTable.selectItem(favFile5);
|
|
||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
await page.clickSnackBarAction();
|
await page.clickSnackBarAction();
|
||||||
expect(await dataTable.isItemPresent(favFile5)).toBe(true, 'Item was not restored');
|
await dataTable.waitForBody();
|
||||||
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
expect(await dataTable.isItemPresent(favFile5)).toBe(true, `${favFile5} was not restored`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280526] undo delete of folder with content', async () => {
|
it('[C280526] undo delete of folder with content', async () => {
|
||||||
const items = await page.dataTable.getRowsCount();
|
|
||||||
|
|
||||||
await dataTable.selectItem(favFolder6);
|
await dataTable.selectItem(favFolder6);
|
||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
await page.clickSnackBarAction();
|
await page.clickSnackBarAction();
|
||||||
expect(await dataTable.isItemPresent(favFolder6)).toBe(true, 'Item was not restored');
|
await dataTable.waitForBody();
|
||||||
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
expect(await dataTable.isItemPresent(favFolder6)).toBe(true, `${favFolder6} was not restored`);
|
||||||
await dataTable.doubleClickOnRowByName(favFolder6);
|
await dataTable.doubleClickOnRowByName(favFolder6);
|
||||||
expect(await dataTable.isItemPresent(file2InFolder)).toBe(true, 'file from folder not restored');
|
await dataTable.waitForBody();
|
||||||
|
expect(await dataTable.isItemPresent(file2InFolder)).toBe(true, `${file2InFolder} from ${favFolder6} not restored`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C280525] undo delete of multiple files', async () => {
|
it('[C280525] undo delete of multiple files', async () => {
|
||||||
const items = await page.dataTable.getRowsCount();
|
|
||||||
|
|
||||||
await dataTable.selectMultipleItems([favFile6, favFile7]);
|
await dataTable.selectMultipleItems([favFile6, favFile7]);
|
||||||
await toolbar.clickMoreActionsDelete();
|
await toolbar.clickMoreActionsDelete();
|
||||||
await page.clickSnackBarAction();
|
await page.clickSnackBarAction();
|
||||||
expect(await dataTable.isItemPresent(favFile6)).toBe(true, `${favFile6} was not removed from list`);
|
await dataTable.waitForBody();
|
||||||
expect(await dataTable.isItemPresent(favFile7)).toBe(true, `${favFile7} was not removed from list`);
|
expect(await dataTable.isItemPresent(favFile6)).toBe(true, `${favFile6} was not restored`);
|
||||||
expect(await page.pagination.getRange()).toContain(`1-${items} of ${items}`);
|
expect(await dataTable.isItemPresent(favFile7)).toBe(true, `${favFile7} was not restored`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ describe('Permanently delete from Trash', () => {
|
|||||||
await page.waitForDialog();
|
await page.waitForDialog();
|
||||||
|
|
||||||
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Confirm delete dialog not open');
|
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Confirm delete dialog not open');
|
||||||
expect(await confirmDialog.getTitle()).toContain('Delete from trash');
|
expect(await confirmDialog.getDialogTitle()).toContain('Delete from trash');
|
||||||
expect(await confirmDialog.getText()).toContain('This will permanently remove the selected item(s)');
|
expect(await confirmDialog.getText()).toContain('This will permanently remove the selected item(s)');
|
||||||
expect(await confirmDialog.isDeleteEnabled()).toBe(true, 'DELETE button is not enabled');
|
expect(await confirmDialog.isDeleteEnabled()).toBe(true, 'DELETE button is not enabled');
|
||||||
expect(await confirmDialog.isKeepEnabled()).toBe(true, 'KEEP button is not enabled');
|
expect(await confirmDialog.isKeepEnabled()).toBe(true, 'KEEP button is not enabled');
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ describe('Edit folder', () => {
|
|||||||
await toolbar.openMoreMenu();
|
await toolbar.openMoreMenu();
|
||||||
await BrowserActions.click(toolbar.menu.editFolderAction);
|
await BrowserActions.click(toolbar.menu.editFolderAction);
|
||||||
|
|
||||||
expect(await editDialog.getTitle()).toEqual('Edit folder');
|
expect(await editDialog.getDialogTitle()).toEqual('Edit folder');
|
||||||
expect(await editDialog.getName()).toBe(folderName);
|
expect(await editDialog.getName()).toBe(folderName);
|
||||||
expect(await editDialog.getDescription()).toBe(folderDescription);
|
expect(await editDialog.getDescription()).toBe(folderDescription);
|
||||||
expect(await editDialog.isUpdateButtonEnabled()).toBe(true, 'upload button is not enabled');
|
expect(await editDialog.isUpdateButtonEnabled()).toBe(true, 'upload button is not enabled');
|
||||||
|
|||||||
@@ -29,30 +29,19 @@ describe('Edit offline', () => {
|
|||||||
const username = `user-${Utils.random()}`;
|
const username = `user-${Utils.random()}`;
|
||||||
|
|
||||||
const file1 = `file1-${Utils.random()}.docx`;
|
const file1 = `file1-${Utils.random()}.docx`;
|
||||||
let file1Id: string;
|
|
||||||
const fileLocked = `file-locked-${Utils.random()}.docx`;
|
const fileLocked = `file-locked-${Utils.random()}.docx`;
|
||||||
let fileLockedId: string;
|
|
||||||
const fileLocked2 = `file-locked2-${Utils.random()}.docx`;
|
const fileLocked2 = `file-locked2-${Utils.random()}.docx`;
|
||||||
let fileLocked2Id: string;
|
|
||||||
|
|
||||||
const searchRandom = Utils.random();
|
const searchRandom = Utils.random();
|
||||||
const fileSearch1 = `file-search-1-${searchRandom}.docx`;
|
const fileSearch1 = `file-search-1-${searchRandom}.docx`;
|
||||||
let fileSearch1Id: string;
|
|
||||||
const fileSearchLocked = `file-search-locked-${searchRandom}.docx`;
|
const fileSearchLocked = `file-search-locked-${searchRandom}.docx`;
|
||||||
let fileSearchLockedId: string;
|
|
||||||
const fileSearchLocked2 = `file-search-locked2-${searchRandom}.docx`;
|
const fileSearchLocked2 = `file-search-locked2-${searchRandom}.docx`;
|
||||||
let fileSearchLocked2Id: string;
|
|
||||||
|
|
||||||
const parentPF = `parentPersonal-${Utils.random()}`;
|
const parentPF = `parentPersonal-${Utils.random()}`;
|
||||||
let parentPFId: string;
|
|
||||||
const parentSF = `parentShared-${Utils.random()}`;
|
const parentSF = `parentShared-${Utils.random()}`;
|
||||||
let parentSFId: string;
|
|
||||||
const parentRF = `parentRecent-${Utils.random()}`;
|
const parentRF = `parentRecent-${Utils.random()}`;
|
||||||
let parentRFId: string;
|
|
||||||
const parentFav = `parentFav-${Utils.random()}`;
|
const parentFav = `parentFav-${Utils.random()}`;
|
||||||
let parentFavId: string;
|
|
||||||
const parentSearch = `parentSearch-${Utils.random()}`;
|
const parentSearch = `parentSearch-${Utils.random()}`;
|
||||||
let parentSearchId: string;
|
|
||||||
|
|
||||||
const apis = {
|
const apis = {
|
||||||
user: new RepoClient(username, username)
|
user: new RepoClient(username, username)
|
||||||
@@ -70,6 +59,11 @@ describe('Edit offline', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('on Personal Files', () => {
|
describe('on Personal Files', () => {
|
||||||
|
let parentPFId: string;
|
||||||
|
let file1Id: string;
|
||||||
|
let fileLockedId: string;
|
||||||
|
let fileLocked2Id: string;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
parentPFId = (await apis.user.nodes.createFolder(parentPF)).entry.id;
|
parentPFId = (await apis.user.nodes.createFolder(parentPF)).entry.id;
|
||||||
|
|
||||||
@@ -121,6 +115,11 @@ describe('Edit offline', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('on Shared Files', () => {
|
describe('on Shared Files', () => {
|
||||||
|
let parentSFId: string;
|
||||||
|
let file1Id: string;
|
||||||
|
let fileLockedId: string;
|
||||||
|
let fileLocked2Id: string;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
parentSFId = (await apis.user.nodes.createFolder(parentSF)).entry.id;
|
parentSFId = (await apis.user.nodes.createFolder(parentSF)).entry.id;
|
||||||
|
|
||||||
@@ -174,6 +173,11 @@ describe('Edit offline', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('on Recent Files', () => {
|
describe('on Recent Files', () => {
|
||||||
|
let parentRFId: string;
|
||||||
|
let file1Id: string;
|
||||||
|
let fileLockedId: string;
|
||||||
|
let fileLocked2Id: string;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
parentRFId = (await apis.user.nodes.createFolder(parentRF)).entry.id;
|
parentRFId = (await apis.user.nodes.createFolder(parentRF)).entry.id;
|
||||||
|
|
||||||
@@ -228,6 +232,11 @@ describe('Edit offline', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('on Favorite Files', () => {
|
describe('on Favorite Files', () => {
|
||||||
|
let parentFavId: string;
|
||||||
|
let file1Id: string;
|
||||||
|
let fileLockedId: string;
|
||||||
|
let fileLocked2Id: string;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
parentFavId = (await apis.user.nodes.createFolder(parentFav)).entry.id;
|
parentFavId = (await apis.user.nodes.createFolder(parentFav)).entry.id;
|
||||||
|
|
||||||
@@ -281,6 +290,11 @@ describe('Edit offline', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('on Search Results', () => {
|
describe('on Search Results', () => {
|
||||||
|
let parentSearchId: string;
|
||||||
|
let fileSearch1Id: string;
|
||||||
|
let fileSearchLockedId: string;
|
||||||
|
let fileSearchLocked2Id: string;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
parentSearchId = (await apis.user.nodes.createFolder(parentSearch)).entry.id;
|
parentSearchId = (await apis.user.nodes.createFolder(parentSearch)).entry.id;
|
||||||
|
|
||||||
@@ -312,7 +326,7 @@ describe('Edit offline', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C306953] File is locked and downloaded when clicking Edit Offline', async () => {
|
it('[C306953] File is locked and downloaded when clicking Edit Offline', async () => {
|
||||||
await dataTable.selectItem(fileSearch1);
|
await dataTable.selectItem(fileSearch1, parentSearch);
|
||||||
await toolbar.clickMoreActionsEditOffline();
|
await toolbar.clickMoreActionsEditOffline();
|
||||||
|
|
||||||
expect(await Utils.fileExistsOnOS(fileSearch1)).toBe(true, 'File not found in download location');
|
expect(await Utils.fileExistsOnOS(fileSearch1)).toBe(true, 'File not found in download location');
|
||||||
@@ -329,7 +343,7 @@ describe('Edit offline', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C306955] Cancel Editing unlocks the file', async () => {
|
it('[C306955] Cancel Editing unlocks the file', async () => {
|
||||||
await dataTable.selectItem(fileSearchLocked);
|
await dataTable.selectItem(fileSearchLocked, parentSearch);
|
||||||
await toolbar.clickMoreActionsCancelEditing();
|
await toolbar.clickMoreActionsCancelEditing();
|
||||||
await dataTable.unselectItem(fileSearchLocked);
|
await dataTable.unselectItem(fileSearchLocked);
|
||||||
|
|
||||||
|
|||||||
@@ -252,7 +252,7 @@ describe('Library actions', () => {
|
|||||||
await page.waitForDialog();
|
await page.waitForDialog();
|
||||||
|
|
||||||
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Confirm delete dialog not open');
|
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Confirm delete dialog not open');
|
||||||
expect(await confirmDialog.getTitle()).toContain('Leave this library?');
|
expect(await confirmDialog.getDialogTitle()).toContain('Leave this library?');
|
||||||
expect(await confirmDialog.getText()).toContain('Leaving will remove your access.');
|
expect(await confirmDialog.getText()).toContain('Leaving will remove your access.');
|
||||||
expect(await confirmDialog.isOkEnabled()).toBe(true, 'OK button is not enabled');
|
expect(await confirmDialog.isOkEnabled()).toBe(true, 'OK button is not enabled');
|
||||||
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'Cancel button is not enabled');
|
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'Cancel button is not enabled');
|
||||||
|
|||||||
@@ -43,23 +43,14 @@ describe('Share a file', () => {
|
|||||||
let parentId: string;
|
let parentId: string;
|
||||||
|
|
||||||
const file1 = `file1-${Utils.random()}.txt`;
|
const file1 = `file1-${Utils.random()}.txt`;
|
||||||
let file1Id: string;
|
|
||||||
const file2 = `file2-${Utils.random()}.txt`;
|
const file2 = `file2-${Utils.random()}.txt`;
|
||||||
let file2Id: string;
|
const file3 = `file3-${Utils.random()}.txt`;
|
||||||
let file3 = `file3-${Utils.random()}.txt`;
|
|
||||||
let file3Id: string;
|
|
||||||
const file4 = `file4-${Utils.random()}.txt`;
|
const file4 = `file4-${Utils.random()}.txt`;
|
||||||
let file4Id: string;
|
const file5 = `file5-${Utils.random()}.txt`;
|
||||||
let file5 = `file5-${Utils.random()}.txt`;
|
const file6 = `file6-${Utils.random()}.txt`;
|
||||||
let file5Id: string;
|
const file7 = `file7-${Utils.random()}.txt`;
|
||||||
let file6 = `file6-${Utils.random()}.txt`;
|
|
||||||
let file6Id: string;
|
|
||||||
let file7 = `file7-${Utils.random()}.txt`;
|
|
||||||
let file7Id: string;
|
|
||||||
const file8 = `file8-${Utils.random()}.txt`;
|
const file8 = `file8-${Utils.random()}.txt`;
|
||||||
let file8Id: string;
|
const file9 = `file9-${Utils.random()}.txt`;
|
||||||
let file9 = `file9-${Utils.random()}.txt`;
|
|
||||||
let file9Id: string;
|
|
||||||
|
|
||||||
const viewer = new Viewer();
|
const viewer = new Viewer();
|
||||||
const page = new BrowsingPage();
|
const page = new BrowsingPage();
|
||||||
@@ -73,22 +64,21 @@ describe('Share a file', () => {
|
|||||||
const adminApiActions = new AdminActions();
|
const adminApiActions = new AdminActions();
|
||||||
const userActions = new UserActions();
|
const userActions = new UserActions();
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async () => {
|
||||||
await adminApiActions.login();
|
await adminApiActions.login();
|
||||||
await adminApiActions.createUser({ username });
|
await adminApiActions.createUser({ username });
|
||||||
await userActions.login(username, username);
|
|
||||||
|
|
||||||
|
await userActions.login(username, username);
|
||||||
parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
|
parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async () => {
|
||||||
await apis.user.nodes.deleteNodeById(parentId);
|
await apis.user.nodes.deleteNodeById(parentId);
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when logged out', () => {
|
describe('when logged out', () => {
|
||||||
let file6SharedLink: string;
|
let file6SharedLink: string;
|
||||||
|
let file6Id: string;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
file6Id = (await apis.user.nodes.createFile(file6, parentId)).entry.id;
|
file6Id = (await apis.user.nodes.createFile(file6, parentId)).entry.id;
|
||||||
@@ -104,16 +94,17 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
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 () => {
|
||||||
await browser.get(file6SharedLink);
|
await browser.get(file6SharedLink);
|
||||||
expect(await viewer.isViewerOpened()).toBe(true, 'viewer is not open');
|
await viewer.waitForTxtViewerToLoad();
|
||||||
|
|
||||||
expect(await viewer.getFileTitle()).toEqual(file6);
|
expect(await viewer.getFileTitle()).toEqual(file6);
|
||||||
|
|
||||||
await BrowserActions.click(toolbar.downloadButton);
|
await BrowserActions.click(viewer.toolbar.downloadButton);
|
||||||
expect(await Utils.fileExistsOnOS(file6)).toBe(true, 'File not found in download location');
|
expect(await Utils.fileExistsOnOS(file6)).toBe(true, 'File not found in download location');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('when logged in', () => {
|
describe('when logged in', () => {
|
||||||
const expiryDate: any = '2020-12-25T18:30:00.000+0000';
|
const expiryDate: any = '2022-12-25T18:30:00.000+0000';
|
||||||
|
|
||||||
const loginPage = new LoginPage();
|
const loginPage = new LoginPage();
|
||||||
const shareDialog = new ShareDialog();
|
const shareDialog = new ShareDialog();
|
||||||
@@ -125,6 +116,16 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('from Personal Files', () => {
|
describe('from Personal Files', () => {
|
||||||
|
let file1Id: string;
|
||||||
|
let file2Id: string;
|
||||||
|
let file3Id: string;
|
||||||
|
let file4Id: string;
|
||||||
|
let file5Id: string;
|
||||||
|
let file6Id: string;
|
||||||
|
let file7Id: string;
|
||||||
|
let file8Id: string;
|
||||||
|
let file9Id: string;
|
||||||
|
|
||||||
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;
|
||||||
@@ -148,6 +149,7 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
afterEach(async () => {
|
afterEach(async () => {
|
||||||
await Utils.pressEscape();
|
await Utils.pressEscape();
|
||||||
|
await page.closeOpenDialogs();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
@@ -156,10 +158,12 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286327] Share dialog default values', async () => {
|
it('[C286327] Share dialog default values', async () => {
|
||||||
await dataTable.selectItem(file1);
|
await dataTable.selectItem(file1);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
await shareDialog.waitForDialogToOpen();
|
|
||||||
|
|
||||||
expect(await shareDialog.getTitle()).toEqual(`Share ${file1}`);
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file1Id]);
|
||||||
|
|
||||||
|
expect(await shareDialog.getDialogTitle()).toEqual(`Share ${file1}`);
|
||||||
expect(await shareDialog.getInfoText()).toEqual('Click the link below to copy it to the clipboard.');
|
expect(await shareDialog.getInfoText()).toEqual('Click the link below to copy it to the clipboard.');
|
||||||
expect(await shareDialog.labels.get(0).getText()).toEqual('Link to share');
|
expect(await shareDialog.labels.get(0).getText()).toEqual('Link to share');
|
||||||
expect(await shareDialog.getLinkUrl()).toContain(shareLinkPreUrl);
|
expect(await shareDialog.getLinkUrl()).toContain(shareLinkPreUrl);
|
||||||
@@ -172,8 +176,10 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286328] Close dialog', async () => {
|
it('[C286328] Close dialog', async () => {
|
||||||
await dataTable.selectItem(file2);
|
await dataTable.selectItem(file2);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file2Id]);
|
||||||
|
|
||||||
expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled');
|
expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled');
|
||||||
await shareDialog.clickClose();
|
await shareDialog.clickClose();
|
||||||
@@ -182,25 +188,29 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286329] Share a file', async () => {
|
it('[C286329] Share a file', async () => {
|
||||||
await dataTable.selectItem(file3);
|
await dataTable.selectItem(file3);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file3Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await Utils.pressEscape();
|
await shareDialog.clickClose();
|
||||||
|
|
||||||
const sharedId = await apis.user.nodes.getSharedId(file3Id);
|
const sharedId = await apis.user.nodes.getSharedId(file3Id);
|
||||||
expect(await apis.user.nodes.isFileShared(file3Id)).toBe(true, `${file3} is not shared`);
|
|
||||||
expect(url).toContain(sharedId);
|
expect(url).toContain(sharedId);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286330] Copy shared file URL', async () => {
|
it('[C286330] Copy shared file URL', async () => {
|
||||||
await dataTable.selectItem(file4);
|
await dataTable.selectItem(file4);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file4Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
expect(url).toContain(shareLinkPreUrl);
|
expect(url).toContain(shareLinkPreUrl);
|
||||||
|
|
||||||
await BrowserActions.click(shareDialog.urlAction);
|
await BrowserActions.click(shareDialog.urlAction);
|
||||||
|
|
||||||
expect(await page.getSnackBarMessage()).toBe('Link copied to the clipboard');
|
expect(await page.getSnackBarMessage()).toBe('Link copied to the clipboard');
|
||||||
|
|
||||||
await browser.get(url);
|
await browser.get(url);
|
||||||
@@ -212,15 +222,15 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286332] Share a file with expiration date', async () => {
|
it('[C286332] Share a file with expiration date', async () => {
|
||||||
await dataTable.selectItem(file5);
|
await dataTable.selectItem(file5);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file5Id]);
|
||||||
|
|
||||||
await BrowserActions.click(shareDialog.expireToggle);
|
await BrowserActions.click(shareDialog.expireToggle);
|
||||||
|
|
||||||
expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expire toggle not checked');
|
expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expire toggle not checked');
|
||||||
|
|
||||||
await BrowserActions.click(shareDialog.datetimePickerButton);
|
await BrowserActions.click(shareDialog.datetimePickerButton);
|
||||||
|
|
||||||
expect(await shareDialog.dateTimePicker.isCalendarOpen()).toBe(true, 'Calendar not opened');
|
expect(await shareDialog.dateTimePicker.isCalendarOpen()).toBe(true, 'Calendar not opened');
|
||||||
const date = await shareDialog.dateTimePicker.setDefaultDay();
|
const date = await shareDialog.dateTimePicker.setDefaultDay();
|
||||||
await shareDialog.dateTimePicker.waitForDateTimePickerToClose();
|
await shareDialog.dateTimePicker.waitForDateTimePickerToClose();
|
||||||
@@ -264,11 +274,13 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286335] Shared file URL is not changed when Share dialog is closed and opened again', async () => {
|
it('[C286335] Shared file URL is not changed when Share dialog is closed and opened again', async () => {
|
||||||
await dataTable.selectItem(file8);
|
await dataTable.selectItem(file8);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file8Id]);
|
||||||
|
|
||||||
const url1 = await shareDialog.getLinkUrl();
|
const url1 = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.clickClose();
|
await shareDialog.clickClose();
|
||||||
await shareDialog.waitForDialogToClose();
|
|
||||||
|
|
||||||
await page.dataTable.clearSelection();
|
await page.dataTable.clearSelection();
|
||||||
await dataTable.selectItem(file8);
|
await dataTable.selectItem(file8);
|
||||||
@@ -282,11 +294,14 @@ describe('Share a file', () => {
|
|||||||
it('[C286345] Share a file from the context menu', async () => {
|
it('[C286345] Share a file from the context menu', async () => {
|
||||||
await dataTable.rightClickOnItem(file9);
|
await dataTable.rightClickOnItem(file9);
|
||||||
await contextMenu.waitForMenuToOpen();
|
await contextMenu.waitForMenuToOpen();
|
||||||
await BrowserActions.click(contextMenu.shareAction);
|
await contextMenu.shareAction.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file9Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await Utils.pressEscape();
|
await shareDialog.clickClose();
|
||||||
|
|
||||||
const sharedId = await apis.user.nodes.getSharedId(file9Id);
|
const sharedId = await apis.user.nodes.getSharedId(file9Id);
|
||||||
expect(await apis.user.nodes.isFileShared(file9Id)).toBe(true, `${file9} is not shared`);
|
expect(await apis.user.nodes.isFileShared(file9Id)).toBe(true, `${file9} is not shared`);
|
||||||
expect(url).toContain(sharedId);
|
expect(url).toContain(sharedId);
|
||||||
@@ -297,20 +312,29 @@ 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 file1Id: string;
|
||||||
|
let file2Id: string;
|
||||||
|
let file3Id: string;
|
||||||
|
let file4Id: string;
|
||||||
|
let file5Id: string;
|
||||||
|
let file6Id: string;
|
||||||
|
let file7Id: string;
|
||||||
|
let file8Id: string;
|
||||||
|
let file9Id: string;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
|
await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
|
||||||
const docLibId = await apis.user.sites.getDocLibId(siteName);
|
const docLibId = await apis.user.sites.getDocLibId(siteName);
|
||||||
parentInSiteId = (await apis.user.nodes.createFolder(parentInSite, docLibId)).entry.id;
|
parentInSiteId = (await apis.user.nodes.createFolder(parentInSite, docLibId)).entry.id;
|
||||||
|
|
||||||
await apis.user.nodes.createFile(file1, parentInSiteId);
|
file1Id = (await apis.user.nodes.createFile(file1, parentInSiteId)).entry.id;
|
||||||
await apis.user.nodes.createFile(file2, parentInSiteId);
|
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;
|
||||||
await apis.user.nodes.createFile(file4, parentInSiteId);
|
file4Id = (await apis.user.nodes.createFile(file4, parentInSiteId)).entry.id;
|
||||||
file5Id = (await apis.user.nodes.createFile(file5, parentInSiteId)).entry.id;
|
file5Id = (await apis.user.nodes.createFile(file5, parentInSiteId)).entry.id;
|
||||||
file6Id = (await apis.user.nodes.createFile(file6, parentInSiteId)).entry.id;
|
file6Id = (await apis.user.nodes.createFile(file6, parentInSiteId)).entry.id;
|
||||||
file7Id = (await apis.user.nodes.createFile(file7, parentInSiteId)).entry.id;
|
file7Id = (await apis.user.nodes.createFile(file7, parentInSiteId)).entry.id;
|
||||||
await apis.user.nodes.createFile(file8, parentInSiteId);
|
file8Id = (await apis.user.nodes.createFile(file8, parentInSiteId)).entry.id;
|
||||||
file9Id = (await apis.user.nodes.createFile(file9, parentInSiteId)).entry.id;
|
file9Id = (await apis.user.nodes.createFile(file9, parentInSiteId)).entry.id;
|
||||||
|
|
||||||
await userActions.shareNodes([file6Id, file7Id], expiryDate);
|
await userActions.shareNodes([file6Id, file7Id], expiryDate);
|
||||||
@@ -327,7 +351,7 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
afterEach(async () => {
|
afterEach(async () => {
|
||||||
await Utils.pressEscape();
|
await Utils.pressEscape();
|
||||||
await page.clickPersonalFilesAndWait();
|
await page.closeOpenDialogs();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
@@ -336,10 +360,12 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286639] Share dialog default values', async () => {
|
it('[C286639] Share dialog default values', async () => {
|
||||||
await dataTable.selectItem(file1);
|
await dataTable.selectItem(file1);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
await shareDialog.waitForDialogToOpen();
|
|
||||||
|
|
||||||
expect(await shareDialog.getTitle()).toEqual(`Share ${file1}`);
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file1Id]);
|
||||||
|
|
||||||
|
expect(await shareDialog.getDialogTitle()).toEqual(`Share ${file1}`);
|
||||||
expect(await shareDialog.getInfoText()).toEqual('Click the link below to copy it to the clipboard.');
|
expect(await shareDialog.getInfoText()).toEqual('Click the link below to copy it to the clipboard.');
|
||||||
expect(await shareDialog.labels.get(0).getText()).toEqual('Link to share');
|
expect(await shareDialog.labels.get(0).getText()).toEqual('Link to share');
|
||||||
expect(await shareDialog.getLinkUrl()).toContain(shareLinkPreUrl);
|
expect(await shareDialog.getLinkUrl()).toContain(shareLinkPreUrl);
|
||||||
@@ -352,8 +378,10 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286640] Close dialog', async () => {
|
it('[C286640] Close dialog', async () => {
|
||||||
await dataTable.selectItem(file2);
|
await dataTable.selectItem(file2);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file2Id]);
|
||||||
|
|
||||||
expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled');
|
expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled');
|
||||||
await shareDialog.clickClose();
|
await shareDialog.clickClose();
|
||||||
@@ -362,11 +390,14 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286641] Share a file', async () => {
|
it('[C286641] Share a file', async () => {
|
||||||
await dataTable.selectItem(file3);
|
await dataTable.selectItem(file3);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file3Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await Utils.pressEscape();
|
await shareDialog.clickClose();
|
||||||
|
|
||||||
const sharedId = await apis.user.nodes.getSharedId(file3Id);
|
const sharedId = await apis.user.nodes.getSharedId(file3Id);
|
||||||
expect(await apis.user.nodes.isFileShared(file3Id)).toBe(true, `${file3} is not shared`);
|
expect(await apis.user.nodes.isFileShared(file3Id)).toBe(true, `${file3} is not shared`);
|
||||||
expect(url).toContain(sharedId);
|
expect(url).toContain(sharedId);
|
||||||
@@ -374,8 +405,11 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286642] Copy shared file URL', async () => {
|
it('[C286642] Copy shared file URL', async () => {
|
||||||
await dataTable.selectItem(file4);
|
await dataTable.selectItem(file4);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file4Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
expect(url).toContain(shareLinkPreUrl);
|
expect(url).toContain(shareLinkPreUrl);
|
||||||
|
|
||||||
@@ -391,8 +425,10 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286643] Share a file with expiration date', async () => {
|
it('[C286643] Share a file with expiration date', async () => {
|
||||||
await dataTable.selectItem(file5);
|
await dataTable.selectItem(file5);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file5Id]);
|
||||||
|
|
||||||
await BrowserActions.click(shareDialog.expireToggle);
|
await BrowserActions.click(shareDialog.expireToggle);
|
||||||
expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expire toggle not checked');
|
expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expire toggle not checked');
|
||||||
@@ -440,11 +476,13 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286646] Shared file URL is not changed when Share dialog is closed and opened again', async () => {
|
it('[C286646] Shared file URL is not changed when Share dialog is closed and opened again', async () => {
|
||||||
await dataTable.selectItem(file8);
|
await dataTable.selectItem(file8);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file8Id]);
|
||||||
|
|
||||||
const url1 = await shareDialog.getLinkUrl();
|
const url1 = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.clickClose();
|
await shareDialog.clickClose();
|
||||||
await shareDialog.waitForDialogToClose();
|
|
||||||
|
|
||||||
await page.dataTable.clearSelection();
|
await page.dataTable.clearSelection();
|
||||||
await dataTable.selectItem(file8);
|
await dataTable.selectItem(file8);
|
||||||
@@ -458,11 +496,14 @@ describe('Share a file', () => {
|
|||||||
it('[C286647] Share a file from the context menu', async () => {
|
it('[C286647] Share a file from the context menu', async () => {
|
||||||
await dataTable.rightClickOnItem(file9);
|
await dataTable.rightClickOnItem(file9);
|
||||||
await contextMenu.waitForMenuToOpen();
|
await contextMenu.waitForMenuToOpen();
|
||||||
await BrowserActions.click(contextMenu.shareAction);
|
await contextMenu.shareAction.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file9Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await Utils.pressEscape();
|
await shareDialog.clickClose();
|
||||||
|
|
||||||
const sharedId = await apis.user.nodes.getSharedId(file9Id);
|
const sharedId = await apis.user.nodes.getSharedId(file9Id);
|
||||||
expect(await apis.user.nodes.isFileShared(file9Id)).toBe(true, `${file9} is not shared`);
|
expect(await apis.user.nodes.isFileShared(file9Id)).toBe(true, `${file9} is not shared`);
|
||||||
expect(url).toContain(sharedId);
|
expect(url).toContain(sharedId);
|
||||||
@@ -470,6 +511,16 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('from Recent Files', () => {
|
describe('from Recent Files', () => {
|
||||||
|
let file1Id: string;
|
||||||
|
let file2Id: string;
|
||||||
|
let file3Id: string;
|
||||||
|
let file4Id: string;
|
||||||
|
let file5Id: string;
|
||||||
|
let file6Id: string;
|
||||||
|
let file7Id: string;
|
||||||
|
let file8Id: string;
|
||||||
|
let file9Id: string;
|
||||||
|
|
||||||
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;
|
||||||
@@ -490,8 +541,8 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async () => {
|
afterEach(async () => {
|
||||||
|
await page.closeOpenDialogs();
|
||||||
await Utils.pressEscape();
|
await Utils.pressEscape();
|
||||||
await page.clickPersonalFilesAndWait();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
@@ -499,11 +550,13 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C286657] Share dialog default values', async () => {
|
it('[C286657] Share dialog default values', async () => {
|
||||||
await dataTable.selectItem(file1);
|
await dataTable.selectItem(file1, parent);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
await shareDialog.waitForDialogToOpen();
|
|
||||||
|
|
||||||
expect(await shareDialog.getTitle()).toEqual(`Share ${file1}`);
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file1Id]);
|
||||||
|
|
||||||
|
expect(await shareDialog.getDialogTitle()).toEqual(`Share ${file1}`);
|
||||||
expect(await shareDialog.getInfoText()).toEqual('Click the link below to copy it to the clipboard.');
|
expect(await shareDialog.getInfoText()).toEqual('Click the link below to copy it to the clipboard.');
|
||||||
expect(await shareDialog.labels.get(0).getText()).toEqual('Link to share');
|
expect(await shareDialog.labels.get(0).getText()).toEqual('Link to share');
|
||||||
expect(await shareDialog.getLinkUrl()).toContain(shareLinkPreUrl);
|
expect(await shareDialog.getLinkUrl()).toContain(shareLinkPreUrl);
|
||||||
@@ -515,9 +568,11 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C286658] Close dialog', async () => {
|
it('[C286658] Close dialog', async () => {
|
||||||
await dataTable.selectItem(file2);
|
await dataTable.selectItem(file2, parent);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file2Id]);
|
||||||
|
|
||||||
expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled');
|
expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled');
|
||||||
await shareDialog.clickClose();
|
await shareDialog.clickClose();
|
||||||
@@ -525,21 +580,27 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C286659] Share a file', async () => {
|
it('[C286659] Share a file', async () => {
|
||||||
await dataTable.selectItem(file3);
|
await dataTable.selectItem(file3, parent);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file3Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await Utils.pressEscape();
|
await shareDialog.clickClose();
|
||||||
|
|
||||||
const sharedId = await apis.user.nodes.getSharedId(file3Id);
|
const sharedId = await apis.user.nodes.getSharedId(file3Id);
|
||||||
expect(await apis.user.nodes.isFileShared(file3Id)).toBe(true, `${file3} is not shared`);
|
expect(await apis.user.nodes.isFileShared(file3Id)).toBe(true, `${file3} is not shared`);
|
||||||
expect(url).toContain(sharedId);
|
expect(url).toContain(sharedId);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286660] Copy shared file URL', async () => {
|
it('[C286660] Copy shared file URL', async () => {
|
||||||
await dataTable.selectItem(file4);
|
await dataTable.selectItem(file4, parent);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file4Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
expect(url).toContain(shareLinkPreUrl);
|
expect(url).toContain(shareLinkPreUrl);
|
||||||
|
|
||||||
@@ -554,9 +615,11 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C286661] Share a file with expiration date', async () => {
|
it('[C286661] Share a file with expiration date', async () => {
|
||||||
await dataTable.selectItem(file5);
|
await dataTable.selectItem(file5, parent);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file5Id]);
|
||||||
|
|
||||||
await BrowserActions.click(shareDialog.expireToggle);
|
await BrowserActions.click(shareDialog.expireToggle);
|
||||||
expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expire toggle not checked');
|
expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expire toggle not checked');
|
||||||
@@ -576,7 +639,7 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C286662] Expire date is displayed correctly', async () => {
|
it('[C286662] Expire date is displayed correctly', async () => {
|
||||||
await dataTable.selectItem(file6);
|
await dataTable.selectItem(file6, parent);
|
||||||
await BrowserActions.click(toolbar.shareEditButton);
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
@@ -587,7 +650,7 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C286663] Disable the share link expiration', async () => {
|
it('[C286663] Disable the share link expiration', async () => {
|
||||||
await dataTable.selectItem(file7);
|
await dataTable.selectItem(file7, parent);
|
||||||
await BrowserActions.click(toolbar.shareEditButton);
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
@@ -604,11 +667,13 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286664] Shared file URL is not changed when Share dialog is closed and opened again', async () => {
|
it('[C286664] Shared file URL is not changed when Share dialog is closed and opened again', async () => {
|
||||||
await dataTable.selectItem(file8);
|
await dataTable.selectItem(file8);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file8Id]);
|
||||||
|
|
||||||
const url1 = await shareDialog.getLinkUrl();
|
const url1 = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.clickClose();
|
await shareDialog.clickClose();
|
||||||
await shareDialog.waitForDialogToClose();
|
|
||||||
|
|
||||||
await page.dataTable.clearSelection();
|
await page.dataTable.clearSelection();
|
||||||
await dataTable.selectItem(file8);
|
await dataTable.selectItem(file8);
|
||||||
@@ -622,11 +687,14 @@ describe('Share a file', () => {
|
|||||||
it('[C286665] Share a file from the context menu', async () => {
|
it('[C286665] Share a file from the context menu', async () => {
|
||||||
await dataTable.rightClickOnItem(file9);
|
await dataTable.rightClickOnItem(file9);
|
||||||
await contextMenu.waitForMenuToOpen();
|
await contextMenu.waitForMenuToOpen();
|
||||||
await BrowserActions.click(contextMenu.shareAction);
|
await contextMenu.shareAction.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file9Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await Utils.pressEscape();
|
await shareDialog.clickClose();
|
||||||
|
|
||||||
const sharedId = await apis.user.nodes.getSharedId(file9Id);
|
const sharedId = await apis.user.nodes.getSharedId(file9Id);
|
||||||
expect(await apis.user.nodes.isFileShared(file9Id)).toBe(true, `${file9} is not shared`);
|
expect(await apis.user.nodes.isFileShared(file9Id)).toBe(true, `${file9} is not shared`);
|
||||||
expect(url).toContain(sharedId);
|
expect(url).toContain(sharedId);
|
||||||
@@ -634,6 +702,14 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('from Shared Files', () => {
|
describe('from Shared Files', () => {
|
||||||
|
let file1Id: string;
|
||||||
|
let file2Id: string;
|
||||||
|
let file3Id: string;
|
||||||
|
let file4Id: string;
|
||||||
|
let file5Id: string;
|
||||||
|
let file6Id: string;
|
||||||
|
let file7Id: string;
|
||||||
|
|
||||||
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;
|
||||||
@@ -655,7 +731,7 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
afterEach(async () => {
|
afterEach(async () => {
|
||||||
await Utils.pressEscape();
|
await Utils.pressEscape();
|
||||||
await page.clickPersonalFilesAndWait();
|
await page.closeOpenDialogs();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
@@ -667,7 +743,7 @@ describe('Share a file', () => {
|
|||||||
await BrowserActions.click(toolbar.shareEditButton);
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.getTitle()).toEqual(`Share ${file1}`);
|
expect(await shareDialog.getDialogTitle()).toEqual(`Share ${file1}`);
|
||||||
expect(await shareDialog.getInfoText()).toEqual('Click the link below to copy it to the clipboard.');
|
expect(await shareDialog.getInfoText()).toEqual('Click the link below to copy it to the clipboard.');
|
||||||
expect(await shareDialog.labels.get(0).getText()).toEqual('Link to share');
|
expect(await shareDialog.labels.get(0).getText()).toEqual('Link to share');
|
||||||
expect(await shareDialog.getLinkUrl()).toContain(shareLinkPreUrl);
|
expect(await shareDialog.getLinkUrl()).toContain(shareLinkPreUrl);
|
||||||
@@ -738,7 +814,6 @@ describe('Share a file', () => {
|
|||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
const url1 = await shareDialog.getLinkUrl();
|
const url1 = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.clickClose();
|
await shareDialog.clickClose();
|
||||||
await shareDialog.waitForDialogToClose();
|
|
||||||
|
|
||||||
await page.dataTable.clearSelection();
|
await page.dataTable.clearSelection();
|
||||||
await dataTable.selectItem(file6);
|
await dataTable.selectItem(file6);
|
||||||
@@ -756,7 +831,7 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.getTitle()).toEqual(`Share ${file7}`);
|
expect(await shareDialog.getDialogTitle()).toEqual(`Share ${file7}`);
|
||||||
expect(await shareDialog.getInfoText()).toEqual('Click the link below to copy it to the clipboard.');
|
expect(await shareDialog.getInfoText()).toEqual('Click the link below to copy it to the clipboard.');
|
||||||
expect(await shareDialog.labels.get(0).getText()).toEqual('Link to share');
|
expect(await shareDialog.labels.get(0).getText()).toEqual('Link to share');
|
||||||
expect(await shareDialog.getLinkUrl()).toContain(shareLinkPreUrl);
|
expect(await shareDialog.getLinkUrl()).toContain(shareLinkPreUrl);
|
||||||
@@ -769,6 +844,16 @@ describe('Share a file', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('from Favorites', () => {
|
describe('from Favorites', () => {
|
||||||
|
let file1Id: string;
|
||||||
|
let file2Id: string;
|
||||||
|
let file3Id: string;
|
||||||
|
let file4Id: string;
|
||||||
|
let file5Id: string;
|
||||||
|
let file6Id: string;
|
||||||
|
let file7Id: string;
|
||||||
|
let file8Id: string;
|
||||||
|
let file9Id: string;
|
||||||
|
|
||||||
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;
|
||||||
@@ -793,7 +878,7 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
afterEach(async () => {
|
afterEach(async () => {
|
||||||
await Utils.pressEscape();
|
await Utils.pressEscape();
|
||||||
await page.clickPersonalFilesAndWait();
|
await page.closeOpenDialogs();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
@@ -802,10 +887,12 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286666] Share dialog default values', async () => {
|
it('[C286666] Share dialog default values', async () => {
|
||||||
await dataTable.selectItem(file1);
|
await dataTable.selectItem(file1);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
await shareDialog.waitForDialogToOpen();
|
|
||||||
|
|
||||||
expect(await shareDialog.getTitle()).toEqual(`Share ${file1}`);
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file1Id]);
|
||||||
|
|
||||||
|
expect(await shareDialog.getDialogTitle()).toEqual(`Share ${file1}`);
|
||||||
expect(await shareDialog.getInfoText()).toEqual('Click the link below to copy it to the clipboard.');
|
expect(await shareDialog.getInfoText()).toEqual('Click the link below to copy it to the clipboard.');
|
||||||
expect(await shareDialog.labels.get(0).getText()).toEqual('Link to share');
|
expect(await shareDialog.labels.get(0).getText()).toEqual('Link to share');
|
||||||
expect(await shareDialog.getLinkUrl()).toContain(shareLinkPreUrl);
|
expect(await shareDialog.getLinkUrl()).toContain(shareLinkPreUrl);
|
||||||
@@ -818,8 +905,10 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286667] Close dialog', async () => {
|
it('[C286667] Close dialog', async () => {
|
||||||
await dataTable.selectItem(file2);
|
await dataTable.selectItem(file2);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file2Id]);
|
||||||
|
|
||||||
expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled');
|
expect(await shareDialog.isCloseEnabled()).toBe(true, 'Close button is not enabled');
|
||||||
await shareDialog.clickClose();
|
await shareDialog.clickClose();
|
||||||
@@ -828,11 +917,14 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286668] Share a file', async () => {
|
it('[C286668] Share a file', async () => {
|
||||||
await dataTable.selectItem(file3);
|
await dataTable.selectItem(file3);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file3Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await Utils.pressEscape();
|
await shareDialog.clickClose();
|
||||||
|
|
||||||
const sharedId = await apis.user.nodes.getSharedId(file3Id);
|
const sharedId = await apis.user.nodes.getSharedId(file3Id);
|
||||||
expect(await apis.user.nodes.isFileShared(file3Id)).toBe(true, `${file3} is not shared`);
|
expect(await apis.user.nodes.isFileShared(file3Id)).toBe(true, `${file3} is not shared`);
|
||||||
expect(url).toContain(sharedId);
|
expect(url).toContain(sharedId);
|
||||||
@@ -840,8 +932,11 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286669] Copy shared file URL', async () => {
|
it('[C286669] Copy shared file URL', async () => {
|
||||||
await dataTable.selectItem(file4);
|
await dataTable.selectItem(file4);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file4Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
expect(url).toContain(shareLinkPreUrl);
|
expect(url).toContain(shareLinkPreUrl);
|
||||||
|
|
||||||
@@ -857,8 +952,10 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286670] Share a file with expiration date', async () => {
|
it('[C286670] Share a file with expiration date', async () => {
|
||||||
await dataTable.selectItem(file5);
|
await dataTable.selectItem(file5);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file5Id]);
|
||||||
|
|
||||||
await BrowserActions.click(shareDialog.expireToggle);
|
await BrowserActions.click(shareDialog.expireToggle);
|
||||||
expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expire toggle not checked');
|
expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expire toggle not checked');
|
||||||
@@ -906,11 +1003,13 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
it('[C286673] Shared file URL is not changed when Share dialog is closed and opened again', async () => {
|
it('[C286673] Shared file URL is not changed when Share dialog is closed and opened again', async () => {
|
||||||
await dataTable.selectItem(file8);
|
await dataTable.selectItem(file8);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file8Id]);
|
||||||
|
|
||||||
const url1 = await shareDialog.getLinkUrl();
|
const url1 = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.clickClose();
|
await shareDialog.clickClose();
|
||||||
await shareDialog.waitForDialogToClose();
|
|
||||||
|
|
||||||
await page.dataTable.clearSelection();
|
await page.dataTable.clearSelection();
|
||||||
await dataTable.selectItem(file8);
|
await dataTable.selectItem(file8);
|
||||||
@@ -924,11 +1023,14 @@ describe('Share a file', () => {
|
|||||||
it('[C286674] Share a file from the context menu', async () => {
|
it('[C286674] Share a file from the context menu', async () => {
|
||||||
await dataTable.rightClickOnItem(file9);
|
await dataTable.rightClickOnItem(file9);
|
||||||
await contextMenu.waitForMenuToOpen();
|
await contextMenu.waitForMenuToOpen();
|
||||||
await BrowserActions.click(contextMenu.shareAction);
|
await contextMenu.shareAction.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([file9Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await Utils.pressEscape();
|
await shareDialog.clickClose();
|
||||||
|
|
||||||
const sharedId = await apis.user.nodes.getSharedId(file9Id);
|
const sharedId = await apis.user.nodes.getSharedId(file9Id);
|
||||||
expect(await apis.user.nodes.isFileShared(file9Id)).toBe(true, `${file9} is not shared`);
|
expect(await apis.user.nodes.isFileShared(file9Id)).toBe(true, `${file9} is not shared`);
|
||||||
expect(url).toContain(sharedId);
|
expect(url).toContain(sharedId);
|
||||||
@@ -937,22 +1039,29 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
describe('from Search Results', () => {
|
describe('from Search Results', () => {
|
||||||
const searchRandom = Utils.random();
|
const searchRandom = Utils.random();
|
||||||
file3 = `search-file3-${searchRandom}.txt`;
|
|
||||||
file5 = `search-file5-${searchRandom}.txt`;
|
const fileSearch3 = `search-file3-${searchRandom}.txt`;
|
||||||
file6 = `search-file6-${searchRandom}.txt`;
|
const fileSearch5 = `search-file5-${searchRandom}.txt`;
|
||||||
file7 = `search-file7-${searchRandom}.txt`;
|
const fileSearch6 = `search-file6-${searchRandom}.txt`;
|
||||||
file9 = `search-file9-${searchRandom}.txt`;
|
const fileSearch7 = `search-file7-${searchRandom}.txt`;
|
||||||
|
const fileSearch9 = `search-file9-${searchRandom}.txt`;
|
||||||
|
|
||||||
|
let fileSearch3Id: string;
|
||||||
|
let fileSearch5Id: string;
|
||||||
|
let fileSearch6Id: string;
|
||||||
|
let fileSearch7Id: string;
|
||||||
|
let fileSearch9Id: string;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
file3Id = (await apis.user.nodes.createFile(file3, parentId)).entry.id;
|
fileSearch3Id = (await apis.user.nodes.createFile(fileSearch3, parentId)).entry.id;
|
||||||
file5Id = (await apis.user.nodes.createFile(file5, parentId)).entry.id;
|
fileSearch5Id = (await apis.user.nodes.createFile(fileSearch5, parentId)).entry.id;
|
||||||
file6Id = (await apis.user.nodes.createFile(file6, parentId)).entry.id;
|
fileSearch6Id = (await apis.user.nodes.createFile(fileSearch6, parentId)).entry.id;
|
||||||
file7Id = (await apis.user.nodes.createFile(file7, parentId)).entry.id;
|
fileSearch7Id = (await apis.user.nodes.createFile(fileSearch7, parentId)).entry.id;
|
||||||
file9Id = (await apis.user.nodes.createFile(file9, parentId)).entry.id;
|
fileSearch9Id = (await apis.user.nodes.createFile(fileSearch9, parentId)).entry.id;
|
||||||
await apis.user.search.waitForNodes(searchRandom, { expect: 5 });
|
await apis.user.search.waitForNodes(searchRandom, { expect: 5 });
|
||||||
|
|
||||||
await userActions.shareNodes([file6Id, file7Id], expiryDate);
|
await userActions.shareNodes([fileSearch6Id, fileSearch7Id], expiryDate);
|
||||||
await apis.user.shared.waitForFilesToBeShared([file6Id, file7Id]);
|
await apis.user.shared.waitForFilesToBeShared([fileSearch6Id, fileSearch7Id]);
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
@@ -964,29 +1073,34 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
afterEach(async () => {
|
afterEach(async () => {
|
||||||
await Utils.pressEscape();
|
await Utils.pressEscape();
|
||||||
await page.clickPersonalFilesAndWait();
|
await page.closeOpenDialogs();
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
await apis.user.nodes.deleteNodesById([file3Id, file5Id, file6Id, file7Id, file9Id]);
|
await apis.user.nodes.deleteNodesById([fileSearch3Id, fileSearch5Id, fileSearch6Id, fileSearch7Id, fileSearch9Id]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C306975] Share a file', async () => {
|
it('[C306975] Share a file', async () => {
|
||||||
await dataTable.selectItem(file3);
|
await dataTable.selectItem(fileSearch3);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([fileSearch3Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await Utils.pressEscape();
|
await shareDialog.clickClose();
|
||||||
const sharedId = await apis.user.nodes.getSharedId(file3Id);
|
|
||||||
expect(await apis.user.nodes.isFileShared(file3Id)).toBe(true, `${file3} is not shared`);
|
const sharedId = await apis.user.nodes.getSharedId(fileSearch3Id);
|
||||||
|
expect(await apis.user.nodes.isFileShared(fileSearch3Id)).toBe(true, `${fileSearch3} is not shared`);
|
||||||
expect(url).toContain(sharedId);
|
expect(url).toContain(sharedId);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C306977] Share a file with expiration date', async () => {
|
it('[C306977] Share a file with expiration date', async () => {
|
||||||
await dataTable.selectItem(file5);
|
await dataTable.selectItem(fileSearch5);
|
||||||
await BrowserActions.click(toolbar.shareButton);
|
await toolbar.shareButton.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([fileSearch5Id]);
|
||||||
|
|
||||||
await BrowserActions.click(shareDialog.expireToggle);
|
await BrowserActions.click(shareDialog.expireToggle);
|
||||||
expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expire toggle not checked');
|
expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expire toggle not checked');
|
||||||
@@ -1000,24 +1114,24 @@ describe('Share a file', () => {
|
|||||||
|
|
||||||
expect(new Date(inputDate)).toEqual(new Date(setDate));
|
expect(new Date(inputDate)).toEqual(new Date(setDate));
|
||||||
|
|
||||||
const expireDateProperty = await apis.user.nodes.getSharedExpiryDate(file5Id);
|
const expireDateProperty = await apis.user.nodes.getSharedExpiryDate(fileSearch5Id);
|
||||||
|
|
||||||
expect(Utils.formatDate(expireDateProperty)).toEqual(Utils.formatDate(inputDate));
|
expect(Utils.formatDate(expireDateProperty)).toEqual(Utils.formatDate(inputDate));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C306978] Expire date is displayed correctly', async () => {
|
it('[C306978] Expire date is displayed correctly', async () => {
|
||||||
await dataTable.selectItem(file6);
|
await dataTable.selectItem(fileSearch6);
|
||||||
await BrowserActions.click(toolbar.shareEditButton);
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
const expireProperty = await apis.user.nodes.getSharedExpiryDate(file6Id);
|
const expireProperty = await apis.user.nodes.getSharedExpiryDate(fileSearch6Id);
|
||||||
expect(expireProperty).toEqual(expiryDate);
|
expect(expireProperty).toEqual(expiryDate);
|
||||||
expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expiration is not checked');
|
expect(await shareDialog.isExpireToggleEnabled()).toBe(true, 'Expiration is not checked');
|
||||||
expect(Utils.formatDate(await shareDialog.getExpireDate())).toEqual(Utils.formatDate(expiryDate));
|
expect(Utils.formatDate(await shareDialog.getExpireDate())).toEqual(Utils.formatDate(expiryDate));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C306979] Disable the share link expiration', async () => {
|
it('[C306979] Disable the share link expiration', async () => {
|
||||||
await dataTable.selectItem(file7);
|
await dataTable.selectItem(fileSearch7);
|
||||||
await BrowserActions.click(toolbar.shareEditButton);
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
@@ -1030,20 +1144,22 @@ describe('Share a file', () => {
|
|||||||
expect(await shareDialog.getExpireDate()).toBe('', 'Expire date input is not empty');
|
expect(await shareDialog.getExpireDate()).toBe('', 'Expire date input is not empty');
|
||||||
|
|
||||||
await shareDialog.clickClose();
|
await shareDialog.clickClose();
|
||||||
expect(await apis.user.nodes.getSharedExpiryDate(file7Id)).toBe('', `${file7} link still has expiration`);
|
expect(await apis.user.nodes.getSharedExpiryDate(fileSearch7Id)).toBe('', `${fileSearch7} link still has expiration`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C306981] Share a file from the context menu', async () => {
|
it('[C306981] Share a file from the context menu', async () => {
|
||||||
await dataTable.rightClickOnItem(file9);
|
await dataTable.rightClickOnItem(fileSearch9);
|
||||||
await contextMenu.waitForMenuToOpen();
|
await contextMenu.waitForMenuToOpen();
|
||||||
await BrowserActions.click(contextMenu.shareAction);
|
await contextMenu.shareAction.click();
|
||||||
|
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([fileSearch9Id]);
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await Utils.pressEscape();
|
await shareDialog.clickClose();
|
||||||
const sharedId = await apis.user.nodes.getSharedId(file9Id);
|
|
||||||
expect(await apis.user.nodes.isFileShared(file9Id)).toBe(true, `${file9} is not shared`);
|
const sharedId = await apis.user.nodes.getSharedId(fileSearch9Id);
|
||||||
|
expect(await apis.user.nodes.isFileShared(fileSearch9Id)).toBe(true, `${fileSearch9} is not shared`);
|
||||||
expect(url).toContain(sharedId);
|
expect(url).toContain(sharedId);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import {
|
|||||||
Viewer,
|
Viewer,
|
||||||
Utils
|
Utils
|
||||||
} from '@alfresco/aca-testing-shared';
|
} from '@alfresco/aca-testing-shared';
|
||||||
|
import { BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
describe('Unshare a file from Search Results', () => {
|
describe('Unshare a file from Search Results', () => {
|
||||||
const username = `user-${Utils.random()}`;
|
const username = `user-${Utils.random()}`;
|
||||||
@@ -128,14 +129,14 @@ describe('Unshare a file from Search Results', () => {
|
|||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
|
|
||||||
await dataTable.selectItem(file1);
|
await dataTable.selectItem(file1);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked');
|
expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked');
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
|
||||||
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open');
|
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open');
|
||||||
expect(await confirmDialog.getTitle()).toContain('Remove this shared link');
|
expect(await confirmDialog.getDialogTitle()).toContain('Remove this shared link');
|
||||||
expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared');
|
expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared');
|
||||||
expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled');
|
expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled');
|
||||||
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled');
|
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled');
|
||||||
@@ -148,10 +149,11 @@ describe('Unshare a file from Search Results', () => {
|
|||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
|
|
||||||
await dataTable.selectItem(file2);
|
await dataTable.selectItem(file2);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -173,11 +175,12 @@ describe('Unshare a file from Search Results', () => {
|
|||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
|
|
||||||
await dataTable.selectItem(file3);
|
await dataTable.selectItem(file3);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
const urlBefore = await shareDialog.getLinkUrl();
|
const urlBefore = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.cancelButton.click();
|
await confirmDialog.cancelButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -196,10 +199,11 @@ describe('Unshare a file from Search Results', () => {
|
|||||||
|
|
||||||
await dataTable.rightClickOnItem(file4);
|
await dataTable.rightClickOnItem(file4);
|
||||||
await contextMenu.waitForMenuToOpen();
|
await contextMenu.waitForMenuToOpen();
|
||||||
await contextMenu.shareEditAction.click();
|
await BrowserActions.click(contextMenu.shareEditAction);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -220,12 +224,13 @@ describe('Unshare a file from Search Results', () => {
|
|||||||
await searchInput.searchFor(fileSite1);
|
await searchInput.searchFor(fileSite1);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
await dataTable.selectItem(fileSite1);
|
await dataTable.selectItem(fileSite1);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
||||||
|
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
|
|
||||||
const msg = await page.getSnackBarMessage();
|
const msg = await page.getSnackBarMessage();
|
||||||
@@ -238,12 +243,13 @@ describe('Unshare a file from Search Results', () => {
|
|||||||
await searchInput.searchFor(fileSite2);
|
await searchInput.searchFor(fileSite2);
|
||||||
await dataTable.waitForBody();
|
await dataTable.waitForBody();
|
||||||
await dataTable.selectItem(fileSite2);
|
await dataTable.selectItem(fileSite2);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
||||||
|
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
await shareDialog.waitForDialogToClose();
|
await shareDialog.waitForDialogToClose();
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import {
|
|||||||
Viewer,
|
Viewer,
|
||||||
Utils
|
Utils
|
||||||
} from '@alfresco/aca-testing-shared';
|
} from '@alfresco/aca-testing-shared';
|
||||||
|
import { BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
describe('Unshare a file', () => {
|
describe('Unshare a file', () => {
|
||||||
const username = `user-${Utils.random()}`;
|
const username = `user-${Utils.random()}`;
|
||||||
@@ -115,14 +116,14 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286339] Unshare dialog UI', async () => {
|
it('[C286339] Unshare dialog UI', async () => {
|
||||||
await dataTable.selectItem(file1);
|
await dataTable.selectItem(file1);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked');
|
expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked');
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
|
||||||
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open');
|
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open');
|
||||||
expect(await confirmDialog.getTitle()).toContain('Remove this shared link');
|
expect(await confirmDialog.getDialogTitle()).toContain('Remove this shared link');
|
||||||
expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared');
|
expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared');
|
||||||
expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled');
|
expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled');
|
||||||
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled');
|
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled');
|
||||||
@@ -130,10 +131,11 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286340] Unshare a file', async () => {
|
it('[C286340] Unshare a file', async () => {
|
||||||
await dataTable.selectItem(file2);
|
await dataTable.selectItem(file2);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -150,11 +152,12 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286341] Cancel the Unshare action', async () => {
|
it('[C286341] Cancel the Unshare action', async () => {
|
||||||
await dataTable.selectItem(file3);
|
await dataTable.selectItem(file3);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
const urlBefore = await shareDialog.getLinkUrl();
|
const urlBefore = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.cancelButton.click();
|
await confirmDialog.cancelButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -167,10 +170,11 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286359] Unshare a file from the context menu', async () => {
|
it('[C286359] Unshare a file from the context menu', async () => {
|
||||||
await dataTable.rightClickOnItem(file4);
|
await dataTable.rightClickOnItem(file4);
|
||||||
await contextMenu.shareEditAction.click();
|
await BrowserActions.click(contextMenu.shareEditAction);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -237,14 +241,14 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286679] Unshare dialog UI', async () => {
|
it('[C286679] Unshare dialog UI', async () => {
|
||||||
await dataTable.selectItem(file1);
|
await dataTable.selectItem(file1);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked');
|
expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked');
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
|
||||||
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open');
|
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open');
|
||||||
expect(await confirmDialog.getTitle()).toContain('Remove this shared link');
|
expect(await confirmDialog.getDialogTitle()).toContain('Remove this shared link');
|
||||||
expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared');
|
expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared');
|
||||||
expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled');
|
expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled');
|
||||||
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled');
|
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled');
|
||||||
@@ -252,10 +256,11 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286680] Unshare a file', async () => {
|
it('[C286680] Unshare a file', async () => {
|
||||||
await dataTable.selectItem(file2);
|
await dataTable.selectItem(file2);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -272,11 +277,12 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286681] Cancel the Unshare action', async () => {
|
it('[C286681] Cancel the Unshare action', async () => {
|
||||||
await dataTable.selectItem(file3);
|
await dataTable.selectItem(file3);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
const urlBefore = await shareDialog.getLinkUrl();
|
const urlBefore = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.cancelButton.click();
|
await confirmDialog.cancelButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -289,10 +295,11 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286683] Unshare a file from the context menu', async () => {
|
it('[C286683] Unshare a file from the context menu', async () => {
|
||||||
await dataTable.rightClickOnItem(file4);
|
await dataTable.rightClickOnItem(file4);
|
||||||
await contextMenu.shareEditAction.click();
|
await BrowserActions.click(contextMenu.shareEditAction);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -347,14 +354,14 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286689] Unshare dialog UI', async () => {
|
it('[C286689] Unshare dialog UI', async () => {
|
||||||
await dataTable.selectItem(file1);
|
await dataTable.selectItem(file1);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked');
|
expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked');
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
|
||||||
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open');
|
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open');
|
||||||
expect(await confirmDialog.getTitle()).toContain('Remove this shared link');
|
expect(await confirmDialog.getDialogTitle()).toContain('Remove this shared link');
|
||||||
expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared');
|
expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared');
|
||||||
expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled');
|
expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled');
|
||||||
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled');
|
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled');
|
||||||
@@ -362,10 +369,11 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286690] Unshare a file', async () => {
|
it('[C286690] Unshare a file', async () => {
|
||||||
await dataTable.selectItem(file2);
|
await dataTable.selectItem(file2);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -382,11 +390,12 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286691] Cancel the Unshare action', async () => {
|
it('[C286691] Cancel the Unshare action', async () => {
|
||||||
await dataTable.selectItem(file3);
|
await dataTable.selectItem(file3);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
const urlBefore = await shareDialog.getLinkUrl();
|
const urlBefore = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.cancelButton.click();
|
await confirmDialog.cancelButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -399,10 +408,11 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286693] Unshare a file from the context menu', async () => {
|
it('[C286693] Unshare a file from the context menu', async () => {
|
||||||
await dataTable.rightClickOnItem(file4);
|
await dataTable.rightClickOnItem(file4);
|
||||||
await contextMenu.shareEditAction.click();
|
await BrowserActions.click(contextMenu.shareEditAction);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -457,14 +467,14 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286684] Unshare dialog UI', async () => {
|
it('[C286684] Unshare dialog UI', async () => {
|
||||||
await dataTable.selectItem(file1);
|
await dataTable.selectItem(file1);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked');
|
expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked');
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
|
||||||
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open');
|
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open');
|
||||||
expect(await confirmDialog.getTitle()).toContain('Remove this shared link');
|
expect(await confirmDialog.getDialogTitle()).toContain('Remove this shared link');
|
||||||
expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared');
|
expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared');
|
||||||
expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled');
|
expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled');
|
||||||
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled');
|
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled');
|
||||||
@@ -472,10 +482,11 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286685] Unshare a file', async () => {
|
it('[C286685] Unshare a file', async () => {
|
||||||
await dataTable.selectItem(file2);
|
await dataTable.selectItem(file2);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -492,11 +503,12 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286686] Cancel the Unshare action', async () => {
|
it('[C286686] Cancel the Unshare action', async () => {
|
||||||
await dataTable.selectItem(file3);
|
await dataTable.selectItem(file3);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
const urlBefore = await shareDialog.getLinkUrl();
|
const urlBefore = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.cancelButton.click();
|
await confirmDialog.cancelButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -509,10 +521,12 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286688] Unshare a file from the context menu', async () => {
|
it('[C286688] Unshare a file from the context menu', async () => {
|
||||||
await dataTable.rightClickOnItem(file4);
|
await dataTable.rightClickOnItem(file4);
|
||||||
await contextMenu.shareEditAction.click();
|
await BrowserActions.click(contextMenu.shareEditAction);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -521,7 +535,8 @@ describe('Unshare a file', () => {
|
|||||||
expect(await apis.user.nodes.isFileShared(file4Id)).toBe(false, `${file4} is shared`);
|
expect(await apis.user.nodes.isFileShared(file4Id)).toBe(false, `${file4} is shared`);
|
||||||
|
|
||||||
await browser.get(url);
|
await browser.get(url);
|
||||||
expect(await viewer.isViewerOpened()).toBe(true, 'viewer is not open');
|
await viewer.waitForViewerToOpen();
|
||||||
|
|
||||||
expect(await viewer.getFileTitle()).not.toEqual(file4);
|
expect(await viewer.getFileTitle()).not.toEqual(file4);
|
||||||
|
|
||||||
await page.load();
|
await page.load();
|
||||||
@@ -574,14 +589,14 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286694] Unshare dialog UI', async () => {
|
it('[C286694] Unshare dialog UI', async () => {
|
||||||
await dataTable.selectItem(file1);
|
await dataTable.selectItem(file1);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked');
|
expect(await shareDialog.isShareToggleChecked()).toBe(true, 'Share toggle not checked');
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
|
||||||
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open');
|
expect(await confirmDialog.isDialogOpen()).toBe(true, 'Unshare dialog is not open');
|
||||||
expect(await confirmDialog.getTitle()).toContain('Remove this shared link');
|
expect(await confirmDialog.getDialogTitle()).toContain('Remove this shared link');
|
||||||
expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared');
|
expect(await confirmDialog.getText()).toContain('This link will be deleted and a new link will be created next time this file is shared');
|
||||||
expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled');
|
expect(await confirmDialog.isRemoveEnabled()).toBe(true, 'REMOVE button is not enabled');
|
||||||
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled');
|
expect(await confirmDialog.isCancelEnabled()).toBe(true, 'CANCEL button is not enabled');
|
||||||
@@ -589,10 +604,11 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286695] Unshare a file', async () => {
|
it('[C286695] Unshare a file', async () => {
|
||||||
await dataTable.selectItem(file2);
|
await dataTable.selectItem(file2);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -609,11 +625,12 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286696] Cancel the Unshare action', async () => {
|
it('[C286696] Cancel the Unshare action', async () => {
|
||||||
await dataTable.selectItem(file3);
|
await dataTable.selectItem(file3);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
const urlBefore = await shareDialog.getLinkUrl();
|
const urlBefore = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.cancelButton.click();
|
await confirmDialog.cancelButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -626,10 +643,11 @@ describe('Unshare a file', () => {
|
|||||||
|
|
||||||
it('[C286698] Unshare a file from the context menu', async () => {
|
it('[C286698] Unshare a file from the context menu', async () => {
|
||||||
await dataTable.rightClickOnItem(file4);
|
await dataTable.rightClickOnItem(file4);
|
||||||
await contextMenu.shareEditAction.click();
|
await BrowserActions.click(contextMenu.shareEditAction);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
const url = await shareDialog.getLinkUrl();
|
const url = await shareDialog.getLinkUrl();
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
@@ -706,12 +724,13 @@ describe('Unshare a file', () => {
|
|||||||
await dataTable.doubleClickOnRowByName(sitePrivate);
|
await dataTable.doubleClickOnRowByName(sitePrivate);
|
||||||
await dataTable.waitForHeader();
|
await dataTable.waitForHeader();
|
||||||
await dataTable.selectItem(file1FileLib);
|
await dataTable.selectItem(file1FileLib);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
||||||
|
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
|
|
||||||
const msg = await page.getSnackBarMessage();
|
const msg = await page.getSnackBarMessage();
|
||||||
@@ -723,12 +742,13 @@ describe('Unshare a file', () => {
|
|||||||
await dataTable.doubleClickOnRowByName(sitePrivate);
|
await dataTable.doubleClickOnRowByName(sitePrivate);
|
||||||
await dataTable.waitForHeader();
|
await dataTable.waitForHeader();
|
||||||
await dataTable.selectItem(file2FileLib);
|
await dataTable.selectItem(file2FileLib);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
||||||
|
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
await shareDialog.waitForDialogToClose();
|
await shareDialog.waitForDialogToClose();
|
||||||
@@ -740,12 +760,13 @@ describe('Unshare a file', () => {
|
|||||||
it('[C286687] on Shared Files - file shared by other user', async () => {
|
it('[C286687] on Shared Files - file shared by other user', async () => {
|
||||||
await page.clickSharedFilesAndWait();
|
await page.clickSharedFilesAndWait();
|
||||||
await dataTable.selectItem(file1Shared);
|
await dataTable.selectItem(file1Shared);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
||||||
|
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
|
|
||||||
const msg = await page.getSnackBarMessage();
|
const msg = await page.getSnackBarMessage();
|
||||||
@@ -755,12 +776,13 @@ describe('Unshare a file', () => {
|
|||||||
it('[C286702] on Shared Files - file shared by the user', async () => {
|
it('[C286702] on Shared Files - file shared by the user', async () => {
|
||||||
await page.clickSharedFilesAndWait();
|
await page.clickSharedFilesAndWait();
|
||||||
await dataTable.selectItem(file2Shared);
|
await dataTable.selectItem(file2Shared);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
||||||
|
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
await shareDialog.waitForDialogToClose();
|
await shareDialog.waitForDialogToClose();
|
||||||
@@ -772,12 +794,13 @@ describe('Unshare a file', () => {
|
|||||||
it('[C286697] on Favorites - file shared by other user', async () => {
|
it('[C286697] on Favorites - file shared by other user', async () => {
|
||||||
await page.clickFavoritesAndWait();
|
await page.clickFavoritesAndWait();
|
||||||
await dataTable.selectItem(file1Fav);
|
await dataTable.selectItem(file1Fav);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
||||||
|
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
|
|
||||||
const msg = await page.getSnackBarMessage();
|
const msg = await page.getSnackBarMessage();
|
||||||
@@ -787,12 +810,13 @@ describe('Unshare a file', () => {
|
|||||||
it('[C286703] on Favorites - file shared by the user', async () => {
|
it('[C286703] on Favorites - file shared by the user', async () => {
|
||||||
await page.clickFavoritesAndWait();
|
await page.clickFavoritesAndWait();
|
||||||
await dataTable.selectItem(file2Fav);
|
await dataTable.selectItem(file2Fav);
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
await shareDialog.waitForDialogToOpen();
|
await shareDialog.waitForDialogToOpen();
|
||||||
|
|
||||||
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
expect(await shareDialog.isShareToggleDisabled()).toBe(false, 'Share toggle disabled for consumer');
|
||||||
|
|
||||||
await shareDialog.shareToggle.click();
|
await BrowserActions.click(shareDialog.shareToggle);
|
||||||
|
await confirmDialog.waitForDialogToOpen();
|
||||||
await confirmDialog.removeButton.click();
|
await confirmDialog.removeButton.click();
|
||||||
await confirmDialog.waitForDialogToClose();
|
await confirmDialog.waitForDialogToClose();
|
||||||
await shareDialog.waitForDialogToClose();
|
await shareDialog.waitForDialogToClose();
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ describe('Upload new version', () => {
|
|||||||
await Utils.uploadFileNewVersion(fileToUpload1);
|
await Utils.uploadFileNewVersion(fileToUpload1);
|
||||||
await page.waitForDialog();
|
await page.waitForDialog();
|
||||||
|
|
||||||
expect(await uploadNewVersionDialog.getTitle()).toEqual('Upload New Version');
|
expect(await uploadNewVersionDialog.getDialogTitle()).toEqual('Upload New Version');
|
||||||
expect(await uploadNewVersionDialog.description.isDisplayed()).toBe(true, 'Description not displayed');
|
expect(await uploadNewVersionDialog.description.isDisplayed()).toBe(true, 'Description not displayed');
|
||||||
expect(await uploadNewVersionDialog.minorOption.isDisplayed()).toBe(true, 'Minor option not displayed');
|
expect(await uploadNewVersionDialog.minorOption.isDisplayed()).toBe(true, 'Minor option not displayed');
|
||||||
expect(await uploadNewVersionDialog.majorOption.isDisplayed()).toBe(true, 'Major option not displayed');
|
expect(await uploadNewVersionDialog.majorOption.isDisplayed()).toBe(true, 'Major option not displayed');
|
||||||
@@ -328,7 +328,7 @@ describe('Upload new version', () => {
|
|||||||
await Utils.uploadFileNewVersion(fileToUpload1);
|
await Utils.uploadFileNewVersion(fileToUpload1);
|
||||||
await page.waitForDialog();
|
await page.waitForDialog();
|
||||||
|
|
||||||
expect(await uploadNewVersionDialog.getTitle()).toEqual('Upload New Version');
|
expect(await uploadNewVersionDialog.getDialogTitle()).toEqual('Upload New Version');
|
||||||
expect(await uploadNewVersionDialog.description.isDisplayed()).toBe(true, 'Description not displayed');
|
expect(await uploadNewVersionDialog.description.isDisplayed()).toBe(true, 'Description not displayed');
|
||||||
expect(await uploadNewVersionDialog.minorOption.isDisplayed()).toBe(true, 'Minor option not displayed');
|
expect(await uploadNewVersionDialog.minorOption.isDisplayed()).toBe(true, 'Minor option not displayed');
|
||||||
expect(await uploadNewVersionDialog.majorOption.isDisplayed()).toBe(true, 'Major option not displayed');
|
expect(await uploadNewVersionDialog.majorOption.isDisplayed()).toBe(true, 'Major option not displayed');
|
||||||
@@ -476,7 +476,7 @@ describe('Upload new version', () => {
|
|||||||
await Utils.uploadFileNewVersion(fileToUpload1);
|
await Utils.uploadFileNewVersion(fileToUpload1);
|
||||||
await page.waitForDialog();
|
await page.waitForDialog();
|
||||||
|
|
||||||
expect(await uploadNewVersionDialog.getTitle()).toEqual('Upload New Version');
|
expect(await uploadNewVersionDialog.getDialogTitle()).toEqual('Upload New Version');
|
||||||
expect(await uploadNewVersionDialog.description.isDisplayed()).toBe(true, 'Description not displayed');
|
expect(await uploadNewVersionDialog.description.isDisplayed()).toBe(true, 'Description not displayed');
|
||||||
expect(await uploadNewVersionDialog.minorOption.isDisplayed()).toBe(true, 'Minor option not displayed');
|
expect(await uploadNewVersionDialog.minorOption.isDisplayed()).toBe(true, 'Minor option not displayed');
|
||||||
expect(await uploadNewVersionDialog.majorOption.isDisplayed()).toBe(true, 'Major option not displayed');
|
expect(await uploadNewVersionDialog.majorOption.isDisplayed()).toBe(true, 'Major option not displayed');
|
||||||
@@ -624,7 +624,7 @@ describe('Upload new version', () => {
|
|||||||
await Utils.uploadFileNewVersion(fileToUpload1);
|
await Utils.uploadFileNewVersion(fileToUpload1);
|
||||||
await page.waitForDialog();
|
await page.waitForDialog();
|
||||||
|
|
||||||
expect(await uploadNewVersionDialog.getTitle()).toEqual('Upload New Version');
|
expect(await uploadNewVersionDialog.getDialogTitle()).toEqual('Upload New Version');
|
||||||
expect(await uploadNewVersionDialog.description.isDisplayed()).toBe(true, 'Description not displayed');
|
expect(await uploadNewVersionDialog.description.isDisplayed()).toBe(true, 'Description not displayed');
|
||||||
expect(await uploadNewVersionDialog.minorOption.isDisplayed()).toBe(true, 'Minor option not displayed');
|
expect(await uploadNewVersionDialog.minorOption.isDisplayed()).toBe(true, 'Minor option not displayed');
|
||||||
expect(await uploadNewVersionDialog.majorOption.isDisplayed()).toBe(true, 'Major option not displayed');
|
expect(await uploadNewVersionDialog.majorOption.isDisplayed()).toBe(true, 'Major option not displayed');
|
||||||
@@ -775,7 +775,7 @@ describe('Upload new version', () => {
|
|||||||
await Utils.uploadFileNewVersion(fileToUpload1);
|
await Utils.uploadFileNewVersion(fileToUpload1);
|
||||||
await page.waitForDialog();
|
await page.waitForDialog();
|
||||||
|
|
||||||
expect(await uploadNewVersionDialog.getTitle()).toEqual('Upload New Version');
|
expect(await uploadNewVersionDialog.getDialogTitle()).toEqual('Upload New Version');
|
||||||
expect(await uploadNewVersionDialog.description.isDisplayed()).toBe(true, 'Description not displayed');
|
expect(await uploadNewVersionDialog.description.isDisplayed()).toBe(true, 'Description not displayed');
|
||||||
expect(await uploadNewVersionDialog.minorOption.isDisplayed()).toBe(true, 'Minor option not displayed');
|
expect(await uploadNewVersionDialog.minorOption.isDisplayed()).toBe(true, 'Minor option not displayed');
|
||||||
expect(await uploadNewVersionDialog.majorOption.isDisplayed()).toBe(true, 'Major option not displayed');
|
expect(await uploadNewVersionDialog.majorOption.isDisplayed()).toBe(true, 'Major option not displayed');
|
||||||
|
|||||||
@@ -71,6 +71,8 @@ describe('Version actions', () => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await apis.user.shared.waitForFilesToBeShared([fileId]);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
await dataTable.doubleClickOnRowByName(parentFolder);
|
await dataTable.doubleClickOnRowByName(parentFolder);
|
||||||
await dataTable.waitForHeader();
|
await dataTable.waitForHeader();
|
||||||
@@ -107,24 +109,23 @@ describe('Version actions', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C586768] Should be possible to download a previous document version', async () => {
|
it('[C586768] Should be possible to download a previous document version', async () => {
|
||||||
await viewerPage.clickDownloadButton();
|
await viewerPage.toolbar.downloadButton.click();
|
||||||
|
|
||||||
expect(await Utils.fileExistsOnOS(filesToUpload[0])).toBe(true, 'File not found in download location');
|
expect(await Utils.fileExistsOnOS(filesToUpload[0])).toBe(true, 'File not found in download location');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('on Shared Files', () => {
|
describe('on Shared Files', () => {
|
||||||
beforeEach(async (done) => {
|
beforeEach(async () => {
|
||||||
await page.clickSharedFilesAndWait();
|
await page.clickSharedFilesAndWait();
|
||||||
await dataTable.selectItem(filesToUpload[4], parentFolder);
|
await dataTable.selectItem(filesToUpload[4], parentFolder);
|
||||||
await toolbar.clickMoreActionsManageVersions();
|
await toolbar.clickMoreActionsManageVersions();
|
||||||
await versionManagePage.viewFileVersion('2.0');
|
await versionManagePage.viewFileVersion('2.0');
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(async () => {
|
||||||
await viewerPage.clickCloseButton();
|
await page.closeOpenDialogs();
|
||||||
done();
|
await Utils.pressEscape();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C586776] Should be possible to view a previous document version', async () => {
|
it('[C586776] Should be possible to view a previous document version', async () => {
|
||||||
@@ -136,24 +137,23 @@ describe('Version actions', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C586778] Should be possible to download a previous document version', async () => {
|
it('[C586778] Should be possible to download a previous document version', async () => {
|
||||||
await viewerPage.clickDownloadButton();
|
await viewerPage.toolbar.downloadButton.click();
|
||||||
|
|
||||||
expect(await Utils.fileExistsOnOS(filesToUpload[1])).toBe(true, 'File not found in download location');
|
expect(await Utils.fileExistsOnOS(filesToUpload[1])).toBe(true, 'File not found in download location');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('on Recent Files', () => {
|
describe('on Recent Files', () => {
|
||||||
beforeEach(async (done) => {
|
beforeEach(async () => {
|
||||||
await page.clickRecentFilesAndWait();
|
await page.clickRecentFilesAndWait();
|
||||||
await dataTable.selectItem(filesToUpload[4], parentFolder);
|
await dataTable.selectItem(filesToUpload[4], parentFolder);
|
||||||
await toolbar.clickMoreActionsManageVersions();
|
await toolbar.clickMoreActionsManageVersions();
|
||||||
await versionManagePage.viewFileVersion('3.0');
|
await versionManagePage.viewFileVersion('3.0');
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(async () => {
|
||||||
await viewerPage.clickCloseButton();
|
await page.closeOpenDialogs();
|
||||||
done();
|
await Utils.pressEscape();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C586769] Should be possible to view a previous document version', async () => {
|
it('[C586769] Should be possible to view a previous document version', async () => {
|
||||||
@@ -165,24 +165,23 @@ describe('Version actions', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C586771] Should be possible to download a previous document version', async () => {
|
it('[C586771] Should be possible to download a previous document version', async () => {
|
||||||
await viewerPage.clickDownloadButton();
|
await viewerPage.toolbar.downloadButton.click();
|
||||||
|
|
||||||
expect(await Utils.fileExistsOnOS(filesToUpload[2])).toBe(true, 'File not found in download location');
|
expect(await Utils.fileExistsOnOS(filesToUpload[2])).toBe(true, 'File not found in download location');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('on Favorite Files', () => {
|
describe('on Favorite Files', () => {
|
||||||
beforeEach(async (done) => {
|
beforeEach(async () => {
|
||||||
await page.clickFavoritesAndWait();
|
await page.clickFavoritesAndWait();
|
||||||
await dataTable.selectItem(filesToUpload[4], parentFolder);
|
await dataTable.selectItem(filesToUpload[4], parentFolder);
|
||||||
await toolbar.clickMoreActionsManageVersions();
|
await toolbar.clickMoreActionsManageVersions();
|
||||||
await versionManagePage.viewFileVersion('4.0');
|
await versionManagePage.viewFileVersion('4.0');
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(async () => {
|
||||||
await viewerPage.clickCloseButton();
|
await page.closeOpenDialogs();
|
||||||
done();
|
await Utils.pressEscape();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C586772] Should be possible to view a previous document version', async () => {
|
it('[C586772] Should be possible to view a previous document version', async () => {
|
||||||
@@ -194,14 +193,14 @@ describe('Version actions', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C586774] Should be possible to download a previous document version', async () => {
|
it('[C586774] Should be possible to download a previous document version', async () => {
|
||||||
await viewerPage.clickDownloadButton();
|
await viewerPage.toolbar.downloadButton.click();
|
||||||
|
|
||||||
expect(await Utils.fileExistsOnOS(filesToUpload[3])).toBe(true, 'File not found in download location');
|
expect(await Utils.fileExistsOnOS(filesToUpload[3])).toBe(true, 'File not found in download location');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('on Search Results', () => {
|
describe('on Search Results', () => {
|
||||||
beforeEach(async (done) => {
|
beforeEach(async () => {
|
||||||
await page.clickPersonalFiles();
|
await page.clickPersonalFiles();
|
||||||
await searchInput.clickSearchButton();
|
await searchInput.clickSearchButton();
|
||||||
await searchInput.checkOnlyFiles();
|
await searchInput.checkOnlyFiles();
|
||||||
@@ -211,12 +210,11 @@ describe('Version actions', () => {
|
|||||||
await dataTable.selectItem(filesToUpload[4], parentFolder);
|
await dataTable.selectItem(filesToUpload[4], parentFolder);
|
||||||
await toolbar.clickMoreActionsManageVersions();
|
await toolbar.clickMoreActionsManageVersions();
|
||||||
await versionManagePage.viewFileVersion('5.0');
|
await versionManagePage.viewFileVersion('5.0');
|
||||||
done();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(async (done) => {
|
afterEach(async () => {
|
||||||
await viewerPage.clickCloseButton();
|
await page.closeOpenDialogs();
|
||||||
done();
|
await Utils.pressEscape();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C586779] Should be possible to view a previous document version', async () => {
|
it('[C586779] Should be possible to view a previous document version', async () => {
|
||||||
@@ -228,7 +226,7 @@ describe('Version actions', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('[C586781] Should be possible to download a previous document version', async () => {
|
it('[C586781] Should be possible to download a previous document version', async () => {
|
||||||
await viewerPage.clickDownloadButton();
|
await viewerPage.toolbar.downloadButton.click();
|
||||||
|
|
||||||
expect(await Utils.fileExistsOnOS(filesToUpload[4])).toBe(true, 'File not found in download location');
|
expect(await Utils.fileExistsOnOS(filesToUpload[4])).toBe(true, 'File not found in download location');
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -42,26 +42,22 @@ describe('Pagination on multiple pages', () => {
|
|||||||
.fill('site')
|
.fill('site')
|
||||||
.map((name, index): string => `${name}-${index + 1}-${random}`);
|
.map((name, index): string => `${name}-${index + 1}-${random}`);
|
||||||
|
|
||||||
let initialSitesTotalItems: number;
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
try {
|
try {
|
||||||
await adminApiActions.createUser({ username });
|
await adminApiActions.createUser({ username });
|
||||||
|
|
||||||
initialSitesTotalItems = await userApi.sites.getSitesTotalItems();
|
|
||||||
await userApi.sites.createSitesPrivate(sites);
|
await userApi.sites.createSitesPrivate(sites);
|
||||||
await userApi.sites.waitForApi({ expect: initialSitesTotalItems + 51 });
|
await userApi.sites.waitForSitesToBeCreated(sites);
|
||||||
|
|
||||||
await loginPage.loginWith(username);
|
await loginPage.loginWith(username);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Logger.error(`----- beforeAll failed : ${error}`);
|
Logger.error(`----- beforeAll failed : ${error}`);
|
||||||
}
|
}
|
||||||
});
|
}, 400000);
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
try {
|
try {
|
||||||
await userApi.sites.deleteSites(sites);
|
await userApi.sites.deleteSites(sites);
|
||||||
await userApi.sites.waitForApi({ expect: initialSitesTotalItems });
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Logger.error(`----- afterAll failed : ${error}`);
|
Logger.error(`----- afterAll failed : ${error}`);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ import {
|
|||||||
ManageVersionsDialog,
|
ManageVersionsDialog,
|
||||||
UploadNewVersionDialog
|
UploadNewVersionDialog
|
||||||
} from '@alfresco/aca-testing-shared';
|
} from '@alfresco/aca-testing-shared';
|
||||||
|
import { BrowserActions } from '@alfresco/adf-testing';
|
||||||
|
|
||||||
describe('Viewer actions', () => {
|
describe('Viewer actions', () => {
|
||||||
const username = `user-${Utils.random()}`;
|
const username = `user-${Utils.random()}`;
|
||||||
@@ -252,6 +253,7 @@ describe('Viewer actions', () => {
|
|||||||
await page.waitForDialog();
|
await page.waitForDialog();
|
||||||
|
|
||||||
await uploadNewVersionDialog.uploadButton.click();
|
await uploadNewVersionDialog.uploadButton.click();
|
||||||
|
await uploadNewVersionDialog.waitForDialogToClose();
|
||||||
|
|
||||||
await toolbar.openMoreMenu();
|
await toolbar.openMoreMenu();
|
||||||
expect(await toolbar.menu.cancelEditingAction.isPresent()).toBe(false, `'Cancel Editing' button shouldn't be shown`);
|
expect(await toolbar.menu.cancelEditingAction.isPresent()).toBe(false, `'Cancel Editing' button shouldn't be shown`);
|
||||||
@@ -267,7 +269,7 @@ describe('Viewer actions', () => {
|
|||||||
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is closed after pressing Full screen');
|
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is closed after pressing Full screen');
|
||||||
const browserLogAfter = await Utils.getBrowserLog();
|
const browserLogAfter = await Utils.getBrowserLog();
|
||||||
|
|
||||||
expect(browserLogAfter.length).toEqual(0, browserLogAfter.entries);
|
expect(browserLogAfter.length).toBe(0, browserLogAfter.entries);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('[C286313] Share action', async () => {
|
it('[C286313] Share action', async () => {
|
||||||
@@ -863,7 +865,7 @@ describe('Viewer actions', () => {
|
|||||||
await dataTable.doubleClickOnRowByName(docxSharedFiles);
|
await dataTable.doubleClickOnRowByName(docxSharedFiles);
|
||||||
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
|
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
|
||||||
|
|
||||||
await toolbar.shareEditButton.click();
|
await BrowserActions.click(toolbar.shareEditButton);
|
||||||
expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
|
expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
|
||||||
await shareDialog.clickClose();
|
await shareDialog.clickClose();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -190,6 +190,7 @@ export class DataTable extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async hasCheckMarkIcon(itemName: string, location: string = ''): Promise<boolean> {
|
async hasCheckMarkIcon(itemName: string, location: string = ''): Promise<boolean> {
|
||||||
|
Logger.info(`--- check if item already selected : ${itemName} ${location}`);
|
||||||
const row = this.getRowByName(itemName, location);
|
const row = this.getRowByName(itemName, location);
|
||||||
return row.element(by.css('.mat-icon[class*="selected"]')).isPresent();
|
return row.element(by.css('.mat-icon[class*="selected"]')).isPresent();
|
||||||
}
|
}
|
||||||
@@ -235,6 +236,7 @@ export class DataTable extends Component {
|
|||||||
const isSelected = await this.hasCheckMarkIcon(name, location);
|
const isSelected = await this.hasCheckMarkIcon(name, location);
|
||||||
if (!isSelected) {
|
if (!isSelected) {
|
||||||
try {
|
try {
|
||||||
|
Logger.info(`--- selecting item : ${name} ${location}`);
|
||||||
const item = this.getRowFirstCell(name, location);
|
const item = this.getRowFirstCell(name, location);
|
||||||
await item.click();
|
await item.click();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
@@ -61,14 +61,18 @@ export class CreateFromTemplateDialog extends GenericDialog {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async getName(): Promise<string> {
|
async getNameInputValue(): Promise<string> {
|
||||||
return BrowserActions.getInputValue(this.nameInput);
|
return BrowserActions.getInputValue(this.nameInput);
|
||||||
}
|
}
|
||||||
|
|
||||||
async getDescription(): Promise<string> {
|
async getDescriptionValue(): Promise<string> {
|
||||||
return BrowserActions.getInputValue(this.descriptionTextArea);
|
return BrowserActions.getInputValue(this.descriptionTextArea);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async getTitleInputValue(): Promise<string> {
|
||||||
|
return BrowserActions.getInputValue(this.titleInput);
|
||||||
|
}
|
||||||
|
|
||||||
async enterName(name: string): Promise<void> {
|
async enterName(name: string): Promise<void> {
|
||||||
await typeText(this.nameInput, name);
|
await typeText(this.nameInput, name);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ export abstract class GenericDialog {
|
|||||||
return isPresentAndDisplayed(this.rootElem);
|
return isPresentAndDisplayed(this.rootElem);
|
||||||
}
|
}
|
||||||
|
|
||||||
async getTitle(): Promise<string> {
|
async getDialogTitle(): Promise<string> {
|
||||||
return this.title.getText();
|
return this.title.getText();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ export class ShareDialog extends GenericDialog {
|
|||||||
super('.adf-share-dialog');
|
super('.adf-share-dialog');
|
||||||
}
|
}
|
||||||
|
|
||||||
async getTitle(): Promise<string> {
|
async getDialogTitle(): Promise<string> {
|
||||||
return this.dialogTitle.getText();
|
return this.dialogTitle.getText();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ export class Toolbar extends Component {
|
|||||||
await BrowserActions.click(moreMenu);
|
await BrowserActions.click(moreMenu);
|
||||||
|
|
||||||
await this.menu.waitForMenuToOpen();
|
await this.menu.waitForMenuToOpen();
|
||||||
|
await browser.sleep(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
async closeMoreMenu() {
|
async closeMoreMenu() {
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ export class Viewer extends Component {
|
|||||||
fileTitle = this.byCss('.adf-viewer__file-title');
|
fileTitle = this.byCss('.adf-viewer__file-title');
|
||||||
viewerExtensionContent = this.byCss('adf-preview-extension');
|
viewerExtensionContent = this.byCss('adf-preview-extension');
|
||||||
pdfViewerContentPages = this.allByCss('.adf-pdf-viewer__content .page');
|
pdfViewerContentPages = this.allByCss('.adf-pdf-viewer__content .page');
|
||||||
|
txtViewerContent = this.byCss('.adf-txt-viewer-content');
|
||||||
|
|
||||||
toolbar = new Toolbar('adf-viewer');
|
toolbar = new Toolbar('adf-viewer');
|
||||||
|
|
||||||
@@ -44,7 +45,7 @@ export class Viewer extends Component {
|
|||||||
super('adf-viewer', ancestor);
|
super('adf-viewer', ancestor);
|
||||||
}
|
}
|
||||||
|
|
||||||
async waitForViewerToOpen() {
|
async waitForViewerToOpen(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
await waitForPresence(this.viewerContainer);
|
await waitForPresence(this.viewerContainer);
|
||||||
await waitForPresence(this.viewerLayout);
|
await waitForPresence(this.viewerLayout);
|
||||||
@@ -53,6 +54,15 @@ export class Viewer extends Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async waitForTxtViewerToLoad(): Promise<void> {
|
||||||
|
try {
|
||||||
|
await this.waitForViewerToOpen();
|
||||||
|
await waitForPresence(this.txtViewerContent);
|
||||||
|
} catch (error) {
|
||||||
|
Logger.error('\n-----> catch waitForTxtViewerToLoad <-----\n', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async isViewerOpened() {
|
async isViewerOpened() {
|
||||||
return browser.isElementPresent(this.viewerLayout);
|
return browser.isElementPresent(this.viewerLayout);
|
||||||
}
|
}
|
||||||
@@ -94,11 +104,6 @@ export class Viewer extends Component {
|
|||||||
return count > 0;
|
return count > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
async clickDownloadButton(): Promise<void> {
|
|
||||||
const downloadButton: ElementFinder = element(by.id(`app.viewer.download`));
|
|
||||||
await BrowserActions.click(downloadButton);
|
|
||||||
}
|
|
||||||
|
|
||||||
async clickCloseButton(): Promise<void> {
|
async clickCloseButton(): Promise<void> {
|
||||||
const closeButton: ElementFinder = element(by.css('button[data-automation-id="adf-toolbar-back"]'));
|
const closeButton: ElementFinder = element(by.css('button[data-automation-id="adf-toolbar-back"]'));
|
||||||
await BrowserActions.click(closeButton);
|
await BrowserActions.click(closeButton);
|
||||||
|
|||||||
+7
-1
@@ -25,6 +25,7 @@ const SAVE_SCREENSHOT = process.env.SAVE_SCREENSHOT === 'true';
|
|||||||
const API_CONTENT_HOST = process.env.API_CONTENT_HOST || 'http://localhost:8080';
|
const API_CONTENT_HOST = process.env.API_CONTENT_HOST || 'http://localhost:8080';
|
||||||
const MAXINSTANCES = process.env.MAXINSTANCES || 1;
|
const MAXINSTANCES = process.env.MAXINSTANCES || 1;
|
||||||
const MAX_RETRIES = process.env.MAX_RETRIES || 1;
|
const MAX_RETRIES = process.env.MAX_RETRIES || 1;
|
||||||
|
const LOG_LEVEL = process.env.LOG_LEVEL || 'ERROR';
|
||||||
|
|
||||||
const appConfig = {
|
const appConfig = {
|
||||||
hostEcm: API_CONTENT_HOST,
|
hostEcm: API_CONTENT_HOST,
|
||||||
@@ -41,7 +42,12 @@ exports.config = {
|
|||||||
downloadFolder: downloadFolder,
|
downloadFolder: downloadFolder,
|
||||||
ADMIN_USERNAME: process.env.ADMIN_EMAIL || 'admin',
|
ADMIN_USERNAME: process.env.ADMIN_EMAIL || 'admin',
|
||||||
ADMIN_PASSWORD: process.env.ADMIN_PASSWORD || 'admin',
|
ADMIN_PASSWORD: process.env.ADMIN_PASSWORD || 'admin',
|
||||||
e2eRootPath: e2eFolder
|
e2eRootPath: e2eFolder,
|
||||||
|
testConfig: {
|
||||||
|
appConfig: {
|
||||||
|
log: LOG_LEVEL
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
specs: [
|
specs: [
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ echo "====== Check content UP ====="
|
|||||||
|
|
||||||
./node_modules/@alfresco/adf-cli/bin/adf-cli check-cs-env --host "$API_CONTENT_HOST" -u "$ADMIN_EMAIL" -p "$ADMIN_PASSWORD" || exit 1
|
./node_modules/@alfresco/adf-cli/bin/adf-cli check-cs-env --host "$API_CONTENT_HOST" -u "$ADMIN_EMAIL" -p "$ADMIN_PASSWORD" || exit 1
|
||||||
|
|
||||||
echo "====== Download artifacts ====="
|
echo "====== Download artifacts ====="
|
||||||
# Download built application artifact from S3
|
# Download built application artifact from S3
|
||||||
./scripts/ci/utils/artifact-from-s3.sh -a "$FROM" -o "$TO"
|
./scripts/ci/utils/artifact-from-s3.sh -a "$FROM" -o "$TO"
|
||||||
node "./scripts/app-config-replace.js" --config="$TO/app.config.json" $PARAMS
|
node "./scripts/app-config-replace.js" --config="$TO/app.config.json" $PARAMS
|
||||||
|
|||||||
Reference in New Issue
Block a user