diff --git a/e2e/components/data-table/data-table.ts b/e2e/components/data-table/data-table.ts
index fc130716b..69e485ca8 100755
--- a/e2e/components/data-table/data-table.ts
+++ b/e2e/components/data-table/data-table.ts
@@ -48,7 +48,9 @@ export class DataTable extends Component {
nameLink: '.adf-datatable-link',
libraryRole: 'adf-library-role-column',
- selectedIcon: '.mat-icon',
+ selectedIcon: '.mat-icon[class*="selected"]',
+ lockIcon: 'img[src*="lock"]',
+ lockOwner: '.aca-locked-by',
emptyListContainer: 'div.adf-no-content-container',
emptyFolderDragAndDrop: '.adf-empty-list_template .adf-empty-folder',
@@ -60,9 +62,7 @@ export class DataTable extends Component {
head: ElementFinder = this.component.element(by.css(DataTable.selectors.head));
body: ElementFinder = this.component.element(by.css(DataTable.selectors.body));
- cell = by.css(DataTable.selectors.cell);
- locationLink = by.css(DataTable.selectors.locationLink);
- nameLink: ElementFinder = browser.element(by.css(DataTable.selectors.nameLink));
+
emptyList: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyListContainer));
emptyFolderDragAndDrop: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyFolderDragAndDrop));
emptyListTitle: ElementFinder = this.component.element(by.css(DataTable.selectors.emptyListTitle));
@@ -160,7 +160,8 @@ export class DataTable extends Component {
getRowByName(name: string, location: string = '') {
if (location) {
return this.body.all(by.cssContainingText(DataTable.selectors.row, name))
- .filter(async (elem) => await browser.isElementPresent(elem.element(by.cssContainingText(DataTable.selectors.cell, location))));
+ .filter(async (elem) => await browser.isElementPresent(elem.element(by.cssContainingText(DataTable.selectors.cell, location))))
+ .first();
}
return this.body.element(by.cssContainingText(DataTable.selectors.row, name));
}
@@ -181,8 +182,27 @@ export class DataTable extends Component {
return await this.getRowNameCellText(name).getAttribute('title');
}
- async hasCheckMarkIcon(itemName: string) {
- return await this.getRowByName(itemName).element(by.css(DataTable.selectors.selectedIcon)).isPresent();
+ async hasCheckMarkIcon(itemName: string, location: string = '') {
+ const row = this.getRowByName(itemName, location);
+ return await row.element(by.css(DataTable.selectors.selectedIcon)).isPresent();
+ }
+
+ async hasLockIcon(itemName: string, location: string = '') {
+ const row = this.getRowByName(itemName, location);
+ return await row.element(by.css(DataTable.selectors.lockIcon)).isPresent();
+ }
+
+ async hasLockOwnerInfo(itemName: string, location: string = '') {
+ const row = this.getRowByName(itemName, location);
+ return await row.element(by.css(DataTable.selectors.lockOwner)).isPresent();
+ }
+
+ async getLockOwner(itemName: string, location: string = '') {
+ if (await this.hasLockOwnerInfo(itemName, location)) {
+ const row = this.getRowByName(itemName, location);
+ return await row.$(DataTable.selectors.lockOwner).$('.locked_by--name').getText();
+ }
+ return '';
}
getNameLink(itemName: string) {
@@ -252,7 +272,7 @@ export class DataTable extends Component {
}
getItemLocationEl(name: string) {
- return this.getRowByName(name).element(this.locationLink);
+ return this.getRowByName(name).element(by.css(DataTable.selectors.locationLink));
}
async getItemLocation(name: string) {
@@ -330,7 +350,7 @@ export class DataTable extends Component {
async getEntireDataTableText() {
return this.getRows().map((row) => {
- return row.all(this.cell).map(async cell => await cell.getText());
+ return row.all(by.css(DataTable.selectors.cell)).map(async cell => await cell.getText());
});
}
diff --git a/e2e/components/dialog/upload-new-version-dialog.ts b/e2e/components/dialog/upload-new-version-dialog.ts
new file mode 100755
index 000000000..24d6dc7f7
--- /dev/null
+++ b/e2e/components/dialog/upload-new-version-dialog.ts
@@ -0,0 +1,121 @@
+/*!
+ * @license
+ * Alfresco Example Content Application
+ *
+ * Copyright (C) 2005 - 2018 Alfresco Software Limited
+ *
+ * This file is part of the Alfresco Example Content Application.
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
+ * provided under the following open source license terms:
+ *
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+
+import { ElementFinder, by, browser, ExpectedConditions as EC } from 'protractor';
+import { BROWSER_WAIT_TIMEOUT } from '../../configs';
+import { Component } from '../component';
+import { Utils } from '../../utilities/utils';
+
+export class UploadNewVersionDialog extends Component {
+ private static selectors = {
+ root: '.aca-node-version-upload-dialog',
+
+ title: '.mat-dialog-title',
+ content: '.mat-dialog-content',
+ button: '.mat-button',
+
+ radioButton: `.mat-radio-label`,
+
+ descriptionTextArea: 'textarea'
+ };
+
+ title: ElementFinder = this.component.element(by.css(UploadNewVersionDialog.selectors.title));
+ content: ElementFinder = this.component.element(by.css(UploadNewVersionDialog.selectors.content));
+ cancelButton: ElementFinder = this.component.element(by.cssContainingText(UploadNewVersionDialog.selectors.button, 'Cancel'));
+ uploadButton: ElementFinder = this.component.element(by.cssContainingText(UploadNewVersionDialog.selectors.button, 'Upload'));
+
+ majorOption: ElementFinder = this.component.element(by.cssContainingText(UploadNewVersionDialog.selectors.radioButton, 'Major'));
+ minorOption: ElementFinder = this.component.element(by.cssContainingText(UploadNewVersionDialog.selectors.radioButton, 'Minor'));
+
+ description: ElementFinder = this.component.element(by.css(UploadNewVersionDialog.selectors.descriptionTextArea));
+
+ constructor(ancestor?: ElementFinder) {
+ super(UploadNewVersionDialog.selectors.root, ancestor);
+ }
+
+ async waitForDialogToClose() {
+ return await browser.wait(EC.stalenessOf(this.title), BROWSER_WAIT_TIMEOUT);
+ }
+
+ async isDialogOpen() {
+ return await browser.$(UploadNewVersionDialog.selectors.root).isDisplayed();
+ }
+
+ async getTitle() {
+ return await this.title.getText();
+ }
+
+ async getText() {
+ return await this.content.getText();
+ }
+
+
+ async isDescriptionDisplayed() {
+ return await this.description.isDisplayed();
+ }
+
+ async isMinorOptionDisplayed() {
+ return await this.minorOption.isDisplayed();
+ }
+
+ async isMajorOptionDisplayed() {
+ return await this.majorOption.isDisplayed();
+ }
+
+ async isCancelButtonEnabled() {
+ return this.cancelButton.isEnabled();
+ }
+
+ async isUploadButtonEnabled() {
+ return this.uploadButton.isEnabled();
+ }
+
+
+ async clickCancel() {
+ await this.cancelButton.click();
+ await this.waitForDialogToClose();
+ }
+
+ async clickUpload() {
+ await this.uploadButton.click();
+ await this.waitForDialogToClose();
+ }
+
+
+ async clickMajor() {
+ return await this.majorOption.click();
+ }
+
+ async clickMinor() {
+ return await this.minorOption.click();
+ }
+
+
+ async enterDescription(description: string) {
+ await this.description.clear();
+ await Utils.typeInField(this.description, description);
+ }
+
+}
diff --git a/e2e/components/menu/menu.ts b/e2e/components/menu/menu.ts
index a805a1f6b..dc62df128 100755
--- a/e2e/components/menu/menu.ts
+++ b/e2e/components/menu/menu.ts
@@ -61,6 +61,7 @@ export class Menu extends Component {
leaveAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Leave'));
managePermissionsAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Permissions'));
manageVersionsAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Manage Versions'));
+ uploadNewVersionAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Upload new version'));
moveAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Move'));
permanentDeleteAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Permanently delete'));
restoreAction: ElementFinder = this.component.element(by.cssContainingText(Menu.selectors.item, 'Restore'));
@@ -251,6 +252,10 @@ export class Menu extends Component {
return await this.manageVersionsAction.isPresent();
}
+ async isUploadNewVersionPresent() {
+ return await this.uploadNewVersionAction.isPresent();
+ }
+
async isFavoritePresent() {
return await this.favoriteAction.isPresent();
}
diff --git a/e2e/components/toolbar/toolbar.ts b/e2e/components/toolbar/toolbar.ts
index 2fecb66c4..ed1ff9cf7 100755
--- a/e2e/components/toolbar/toolbar.ts
+++ b/e2e/components/toolbar/toolbar.ts
@@ -217,6 +217,21 @@ export class Toolbar extends Component {
return await this.menu.clickMenuItem('Copy');
}
+ async clickMoreActionsEditOffline() {
+ await this.openMoreMenu();
+ return await this.menu.clickMenuItem('Edit offline');
+ }
+
+ async clickMoreActionsCancelEditing() {
+ await this.openMoreMenu();
+ return await this.menu.clickMenuItem('Cancel editing');
+ }
+
+ async clickMoreActionsUploadNewVersion() {
+ await this.openMoreMenu();
+ return await this.menu.clickMenuItem('Upload new version');
+ }
+
async clickFullScreen() {
return await this.fullScreenButton.click();
diff --git a/e2e/configs.ts b/e2e/configs.ts
index 30a79b28f..75d218fc4 100755
--- a/e2e/configs.ts
+++ b/e2e/configs.ts
@@ -109,7 +109,9 @@ export const SITE_ROLES = {
export const FILES = {
docxFile: 'file-docx.docx',
+ docxFile2: 'file2-docx.docx',
xlsxFile: 'file-xlsx.xlsx',
+ xlsxFile2: 'file2-xlsx.xlsx',
pdfFile: 'file-pdf.pdf',
unsupportedFile: 'file_unsupported.3DS'
};
diff --git a/e2e/resources/test-files/file2-docx.docx b/e2e/resources/test-files/file2-docx.docx
new file mode 100644
index 000000000..c0d0614a8
Binary files /dev/null and b/e2e/resources/test-files/file2-docx.docx differ
diff --git a/e2e/resources/test-files/file2-xlsx.xlsx b/e2e/resources/test-files/file2-xlsx.xlsx
new file mode 100644
index 000000000..3039a7cdc
Binary files /dev/null and b/e2e/resources/test-files/file2-xlsx.xlsx differ
diff --git a/e2e/suites/actions/context-menu-multiple-selection.test.ts b/e2e/suites/actions/context-menu-multiple-selection.test.ts
index 7684136db..6e37b01e5 100755
--- a/e2e/suites/actions/context-menu-multiple-selection.test.ts
+++ b/e2e/suites/actions/context-menu-multiple-selection.test.ts
@@ -175,9 +175,10 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
- it('correct actions appear when multiple locked files are selected - []', async () => {
+ it('correct actions appear when multiple locked files are selected - [C297627]', async () => {
await dataTable.selectMultipleItems([fileLocked1, fileLocked2]);
await dataTable.rightClickOnMultipleSelection();
@@ -190,6 +191,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
it('correct actions appear when multiple folders are selected - [C280632]', async () => {
@@ -206,6 +208,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
it('correct actions appear when both files and folders are selected - [C280631]', async () => {
@@ -222,6 +225,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
});
@@ -253,9 +257,10 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
- it('correct actions appear when multiple locked files are selected - []', async () => {
+ it('correct actions appear when multiple locked files are selected - [C297628]', async () => {
await dataTable.selectMultipleItems([ fileLocked1Site, fileLocked2Site ]);
await dataTable.rightClickOnMultipleSelection();
@@ -269,6 +274,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
it('correct actions appear when multiple folders are selected - [C280574]', async () => {
@@ -285,6 +291,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
it('correct actions appear when both files and folders are selected - [C280642]', async () => {
@@ -301,6 +308,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
});
@@ -331,9 +339,10 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is not displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
- it('correct actions appear when multiple locked files are selected - []', async () => {
+ it('correct actions appear when multiple locked files are selected - [C297629]', async () => {
await dataTable.selectMultipleItems([ fileLocked1, fileLocked2 ]);
await dataTable.rightClickOnMultipleSelection();
@@ -347,6 +356,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is not displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
});
@@ -377,9 +387,10 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
- it('correct actions appear when multiple locked files are selected - []', async () => {
+ it('correct actions appear when multiple locked files are selected - [C297630]', async () => {
await dataTable.selectMultipleItems([ fileLocked1, fileLocked2 ]);
await dataTable.rightClickOnMultipleSelection();
@@ -393,6 +404,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
});
@@ -423,9 +435,10 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
- it('correct actions appear when multiple locked files are selected - []', async () => {
+ it('correct actions appear when multiple locked files are selected - [C297631]', async () => {
await dataTable.selectMultipleItems([ fileLocked1, fileLocked2 ]);
await dataTable.rightClickOnMultipleSelection();
@@ -439,6 +452,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
it('correct actions appear when multiple folders are selected - [C280664]', async () => {
@@ -455,6 +469,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
it('correct actions appear when both files and folders are selected - [C280657]', async () => {
@@ -471,6 +486,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
});
@@ -503,6 +519,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
it('correct actions appear when multiple folders are selected - [C286274]', async () => {
@@ -521,6 +538,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
it('correct actions appear when both files and folders are selected - [C286275]', async () => {
@@ -539,6 +557,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
});
@@ -571,9 +590,10 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
- it('correct actions appear when multiple locked files are selected - []', async () => {
+ it('correct actions appear when multiple locked files are selected - [C297632]', async () => {
await searchInput.clickSearchButton();
await searchInput.checkOnlyFiles();
await searchInput.searchForTextAndCloseSearchOptions('my-inSite-file');
@@ -590,6 +610,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
it('correct actions appear when multiple folders are selected - [C291832]', async () => {
@@ -609,6 +630,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
it('correct actions appear when both files and folders are selected - [C291833]', async () => {
@@ -628,6 +650,7 @@ describe('Context menu actions - multiple selection : ', () => {
expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
});
});
});
diff --git a/e2e/suites/actions/context-menu-single-selection.test.ts b/e2e/suites/actions/context-menu-single-selection.test.ts
index b20e5b0be..02e79d066 100755
--- a/e2e/suites/actions/context-menu-single-selection.test.ts
+++ b/e2e/suites/actions/context-menu-single-selection.test.ts
@@ -189,12 +189,13 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`);
expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileUser}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${fileUser}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileUser}`);
expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileUser}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileUser}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileUser}`);
});
- it('Context menu has the correct actions for a locked file - []', async () => {
+ it('Context menu has the correct actions for a locked file - [C297633]', async () => {
await dataTable.rightClickOnItem(fileLocked);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`);
@@ -207,6 +208,7 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`);
expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileLocked}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${fileLocked}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileLocked}`);
expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileLocked}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileLocked}`);
@@ -224,6 +226,7 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${folderUser}`);
expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folderUser}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${folderUser}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folderUser}`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folderUser}`);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderUser}`);
expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folderUser}`);
@@ -257,12 +260,13 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileSiteUser}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version not displayed for ${fileSiteUser}`);
expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileSiteUser}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileSiteUser}`);
});
- it('Context menu has the correct actions for a locked file - []', async () => {
+ it('Context menu has the correct actions for a locked file - [C297634]', async () => {
await dataTable.rightClickOnItem(fileLockedInSite);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is not displayed for ${fileLockedInSite}`);
@@ -275,6 +279,7 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLockedInSite}`);
expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileLockedInSite}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileLockedInSite}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version not displayed for ${fileLockedInSite}`);
expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileLockedInSite}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLockedInSite}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileLockedInSite}`);
@@ -292,6 +297,7 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folderSiteUser}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions displayed for ${folderSiteUser}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version displayed for ${folderSiteUser}`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folderSiteUser}`);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderSiteUser}`);
expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folderSiteUser}`);
@@ -413,12 +419,13 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`);
expect(await contextMenu.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed for ${fileUser}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileUser}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version not displayed for ${fileUser}`);
expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileUser}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileUser}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileUser}`);
});
- it('Context menu has the correct actions for a locked file - []', async () => {
+ it('Context menu has the correct actions for a locked file - [C297635]', async () => {
await dataTable.rightClickOnItem(fileLocked);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`);
@@ -432,6 +439,7 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`);
expect(await contextMenu.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed for ${fileLocked}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileLocked}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version not displayed for ${fileLocked}`);
expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileLocked}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileLocked}`);
@@ -463,12 +471,13 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`);
expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileUser}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileUser}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version not displayed for ${fileUser}`);
expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileUser}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileUser}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileUser}`);
});
- it('Context menu has the correct actions for a locked file - []', async () => {
+ it('Context menu has the correct actions for a locked file - [C297636]', async () => {
await dataTable.rightClickOnItem(fileLocked);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`);
@@ -481,6 +490,7 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`);
expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileLocked}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileLocked}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version not displayed for ${fileLocked}`);
expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileLocked}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileLocked}`);
@@ -513,11 +523,12 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileUser}`);
expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileUser}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${fileUser}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileUser}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileUser}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileUser}`);
});
- it('Context menu has the correct actions for a locked file - []', async () => {
+ it('Context menu has the correct actions for a locked file - [C297637]', async () => {
await dataTable.rightClickOnItem(fileLocked);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`);
@@ -531,6 +542,7 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`);
expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileLocked}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${fileLocked}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileLocked}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileLocked}`);
});
@@ -546,6 +558,7 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is not displayed for ${folderUser}`);
expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folderUser}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${folderUser}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folderUser}`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folderUser}`);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderUser}`);
expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folderUser}`);
@@ -577,6 +590,7 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${fileInTrash}`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${fileInTrash}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${fileInTrash}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${fileInTrash}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileInTrash}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileInTrash}`);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileInTrash}`);
@@ -596,6 +610,7 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${folderInTrash}`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folderInTrash}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${folderInTrash}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folderInTrash}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${folderInTrash}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${folderInTrash}`);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderInTrash}`);
@@ -630,12 +645,13 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${fileSiteUser}`);
expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileSiteUser}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version not displayed for ${fileSiteUser}`);
expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileSiteUser}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileSiteUser}`);
});
- it('Context menu has the correct actions for a locked file - []', async () => {
+ it('Context menu has the correct actions for a locked file - [C297638]', async () => {
await searchInput.clickSearchButton();
await searchInput.checkOnlyFiles();
await searchInput.searchForTextAndCloseSearchOptions(fileLocked);
@@ -651,6 +667,7 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${fileLocked}`);
expect(await contextMenu.isSharePresent()).toBe(true, `Share is not displayed for ${fileLocked}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions not displayed for ${fileLocked}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version not displayed for ${fileLocked}`);
expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${fileLocked}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${fileLocked}`);
@@ -671,6 +688,7 @@ describe('Context menu actions - single selection : ', () => {
expect(await contextMenu.isManagePermissionsPresent()).toBe(true, `Permissions is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folderSiteUser}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions displayed for ${folderSiteUser}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version displayed for ${folderSiteUser}`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folderSiteUser}`);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folderSiteUser}`);
expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folderSiteUser}`);
diff --git a/e2e/suites/actions/edit-offline.test.ts b/e2e/suites/actions/edit-offline.test.ts
new file mode 100755
index 000000000..889d0f137
--- /dev/null
+++ b/e2e/suites/actions/edit-offline.test.ts
@@ -0,0 +1,270 @@
+/*!
+ * @license
+ * Alfresco Example Content Application
+ *
+ * Copyright (C) 2005 - 2018 Alfresco Software Limited
+ *
+ * This file is part of the Alfresco Example Content Application.
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
+ * provided under the following open source license terms:
+ *
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+
+import { LoginPage, BrowsingPage } from '../../pages/pages';
+import { FILES } from '../../configs';
+import { RepoClient } from '../../utilities/repo-client/repo-client';
+import { Utils } from '../../utilities/utils';
+
+describe('Edit offline', () => {
+ const username = `user-${Utils.random()}`;
+
+ const file1 = `file1-${Utils.random()}.docx`; let file1Id;
+ const fileLocked = `file-locked-${Utils.random()}.docx`; let fileLockedId;
+ const fileLocked2 = `file-locked2-${Utils.random()}.docx`; let fileLocked2Id;
+
+ const parentPF = `parentPersonal-${Utils.random()}`; let parentPFId;
+ const parentSF = `parentShared-${Utils.random()}`; let parentSFId;
+ const parentRF = `parentRecent-${Utils.random()}`; let parentRFId;
+ const parentFav = `parentFav-${Utils.random()}`; let parentFavId;
+
+ const apis = {
+ admin: new RepoClient(),
+ user: new RepoClient(username, username)
+ };
+
+ const loginPage = new LoginPage();
+ const page = new BrowsingPage();
+ const { dataTable, toolbar } = page;
+
+ beforeAll(async (done) => {
+ await apis.admin.people.createUser({ username });
+
+ parentPFId = (await apis.user.nodes.createFolder(parentPF)).entry.id;
+ parentSFId = (await apis.user.nodes.createFolder(parentSF)).entry.id;
+ parentRFId = (await apis.user.nodes.createFolder(parentRF)).entry.id;
+ parentFavId = (await apis.user.nodes.createFolder(parentFav)).entry.id;
+
+ done();
+ });
+
+ afterAll(async (done) => {
+ await apis.user.nodes.deleteNodeById(parentPFId);
+ await apis.user.nodes.deleteNodeById(parentSFId);
+ await apis.user.nodes.deleteNodeById(parentRFId);
+ await apis.user.nodes.deleteNodeById(parentFavId);
+ done();
+ });
+
+ describe('on Personal Files', () => {
+ beforeAll(async (done) => {
+ file1Id = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentPFId, file1)).entry.id;
+ fileLockedId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentPFId, fileLocked)).entry.id;
+ fileLocked2Id = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentPFId, fileLocked2)).entry.id;
+
+ await apis.user.nodes.lockFile(fileLockedId);
+ await apis.user.nodes.lockFile(fileLocked2Id);
+
+ await loginPage.loginWith(username);
+ done();
+ });
+
+ beforeEach(async (done) => {
+ await page.clickPersonalFilesAndWait();
+ await dataTable.doubleClickOnRowByName(parentPF);
+ done();
+ });
+
+ afterEach(async (done) => {
+ await Utils.pressEscape();
+ done();
+ });
+
+ it('File is locked and downloaded when clicking Edit Offline - [C297538]', async () => {
+ await dataTable.selectItem(file1);
+ await toolbar.clickMoreActionsEditOffline();
+
+ expect(await Utils.fileExistsOnOS(file1)).toBe(true, 'File not found in download location');
+ expect(await apis.user.nodes.isFileLockedWrite(file1Id)).toBe(true, `${file1} is not locked`);
+ });
+
+ it('Lock information is displayed - [C297539]', async () => {
+ expect(await dataTable.isItemPresent(fileLocked2)).toBe(true, `${fileLocked2} is not displayed`);
+ expect(await dataTable.hasLockIcon(fileLocked2)).toBe(true, `${fileLocked2} does not have a lock icon`);
+ expect(await dataTable.getLockOwner(fileLocked2)).toContain(username, `${fileLocked2} does not have correct lock owner info`);
+ });
+
+ it('Cancel Editing unlocks the file - [C297540]', async () => {
+ await dataTable.selectItem(fileLocked);
+ await toolbar.clickMoreActionsCancelEditing();
+ await dataTable.clearSelection();
+
+ expect(await apis.user.nodes.isFileLockedWrite(fileLockedId)).toBe(false, `${fileLocked} is still locked`);
+ expect(await dataTable.hasLockIcon(fileLocked)).toBe(false, `${fileLocked} has a lock icon`);
+ });
+ });
+
+ // TODO: enable tests when ACA-2173 is done
+ xdescribe('on Shared Files', () => {
+ beforeAll(async (done) => {
+ file1Id = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentSFId, file1)).entry.id;
+ fileLockedId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentSFId, fileLocked)).entry.id;
+ fileLocked2Id = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentSFId, fileLocked2)).entry.id;
+
+ await apis.user.nodes.lockFile(fileLockedId);
+ await apis.user.nodes.lockFile(fileLocked2Id);
+
+ await apis.user.shared.shareFilesByIds([file1Id, fileLockedId, fileLocked2Id]);
+ await apis.user.shared.waitForApi({ expect: 3 });
+
+ await loginPage.loginWith(username);
+ done();
+ });
+
+ beforeEach(async (done) => {
+ await page.clickSharedFilesAndWait();
+ done();
+ });
+
+ afterEach(async (done) => {
+ await Utils.pressEscape();
+ done();
+ });
+
+ xit('File is locked and downloaded when clicking Edit Offline - []', async () => {
+ await dataTable.selectItem(file1, parentSF);
+ await toolbar.clickMoreActionsEditOffline();
+
+ expect(await Utils.fileExistsOnOS(file1)).toBe(true, 'File not found in download location');
+ expect(await apis.user.nodes.isFileLockedWrite(file1Id)).toBe(true, `${file1} is not locked`);
+ });
+
+ xit('Lock information is displayed - []', async () => {
+ expect(await dataTable.isItemPresent(fileLocked2, parentSF)).toBe(true, `${fileLocked2} is not displayed`);
+ expect(await dataTable.hasLockIcon(fileLocked2, parentSF)).toBe(true, `${fileLocked2} does not have a lock icon`);
+ expect(await dataTable.getLockOwner(fileLocked2, parentSF)).toContain(username, `${fileLocked2} does not have correct lock owner info`);
+ });
+
+ xit('Cancel Editing unlocks the file - []', async () => {
+ await dataTable.selectItem(fileLocked);
+ await toolbar.clickMoreActionsCancelEditing();
+ await dataTable.clearSelection();
+
+ expect(await apis.user.nodes.isFileLockedWrite(fileLockedId)).toBe(false, `${fileLocked} is still locked`);
+ expect(await dataTable.hasLockIcon(fileLocked, parentSF)).toBe(false, `${fileLocked} has a lock icon`);
+ });
+ });
+
+ describe('on Recent Files', () => {
+ beforeAll(async (done) => {
+ file1Id = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentRFId, file1)).entry.id;
+ fileLockedId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentRFId, fileLocked)).entry.id;
+ fileLocked2Id = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentRFId, fileLocked2)).entry.id;
+
+ await apis.user.nodes.lockFile(fileLockedId);
+ await apis.user.nodes.lockFile(fileLocked2Id);
+
+ await apis.user.search.waitForApi(username, { expect: 6 });
+
+ await loginPage.loginWith(username);
+ done();
+ });
+
+ beforeEach(async (done) => {
+ await page.clickRecentFilesAndWait();
+ done();
+ });
+
+ afterEach(async (done) => {
+ await Utils.pressEscape();
+ done();
+ });
+
+ it('File is locked and downloaded when clicking Edit Offline - [C297541]', async () => {
+ await dataTable.selectItem(file1, parentRF);
+ await toolbar.clickMoreActionsEditOffline();
+
+ expect(await Utils.fileExistsOnOS(file1)).toBe(true, 'File not found in download location');
+ expect(await apis.user.nodes.isFileLockedWrite(file1Id)).toBe(true, `${file1} is not locked`);
+ });
+
+ it('Lock information is displayed - [C297542]', async () => {
+ expect(await dataTable.isItemPresent(fileLocked2, parentRF)).toBe(true, `${fileLocked2} is not displayed`);
+ expect(await dataTable.hasLockIcon(fileLocked2, parentRF)).toBe(true, `${fileLocked2} does not have a lock icon`);
+ expect(await dataTable.getLockOwner(fileLocked2, parentRF)).toContain(username, `${fileLocked2} does not have correct lock owner info`);
+ });
+
+ it('Cancel Editing unlocks the file - [C297543]', async () => {
+ await dataTable.selectItem(fileLocked, parentRF);
+ await toolbar.clickMoreActionsCancelEditing();
+ await dataTable.clearSelection();
+
+ expect(await apis.user.nodes.isFileLockedWrite(fileLockedId)).toBe(false, `${fileLocked} is still locked`);
+ expect(await dataTable.hasLockIcon(fileLocked, parentRF)).toBe(false, `${fileLocked} has a lock icon`);
+ });
+ });
+
+ // TODO: enable tests when ACA-2174 is done
+ xdescribe('on Favorite Files', () => {
+ beforeAll(async (done) => {
+ file1Id = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentFavId, file1)).entry.id;
+ fileLockedId = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentFavId, fileLocked)).entry.id;
+ fileLocked2Id = (await apis.user.upload.uploadFileWithRename(FILES.docxFile, parentFavId, fileLocked2)).entry.id;
+
+ await apis.user.nodes.lockFile(fileLockedId);
+ await apis.user.nodes.lockFile(fileLocked2Id);
+
+ await apis.user.favorites.addFavoritesByIds('file', [file1Id, fileLockedId, fileLocked2Id]);
+ await apis.user.favorites.waitForApi({ expect: 3 });
+
+ await loginPage.loginWith(username);
+ done();
+ });
+
+ beforeEach(async (done) => {
+ await page.clickFavoritesAndWait();
+ done();
+ });
+
+ afterEach(async (done) => {
+ await Utils.pressEscape();
+ done();
+ });
+
+ xit('File is locked and downloaded when clicking Edit Offline - []', async () => {
+ await dataTable.selectItem(file1);
+ await toolbar.clickMoreActionsEditOffline();
+
+ expect(await Utils.fileExistsOnOS(file1)).toBe(true, 'File not found in download location');
+ expect(await apis.user.nodes.isFileLockedWrite(file1Id)).toBe(true, `${file1} is not locked`);
+ });
+
+ xit('Lock information is displayed - []', async () => {
+ expect(await dataTable.isItemPresent(fileLocked2)).toBe(true, `${fileLocked2} is not displayed`);
+ expect(await dataTable.hasLockIcon(fileLocked2)).toBe(true, `${fileLocked2} does not have a lock icon`);
+ expect(await dataTable.getLockOwner(fileLocked2)).toContain(username, `${fileLocked2} does not have correct lock owner info`);
+ });
+
+ xit('Cancel Editing unlocks the file - []', async () => {
+ await dataTable.selectItem(fileLocked);
+ await toolbar.clickMoreActionsCancelEditing();
+ await dataTable.clearSelection();
+
+ expect(await apis.user.nodes.isFileLockedWrite(fileLockedId)).toBe(false, `${fileLocked} is still locked`);
+ expect(await dataTable.hasLockIcon(fileLocked)).toBe(false, `${fileLocked} has a lock icon`);
+ });
+ });
+
+});
diff --git a/e2e/suites/actions/special-permissions-available-actions.test.ts b/e2e/suites/actions/special-permissions-available-actions.test.ts
index 0f4826bde..e0f7b3c79 100755
--- a/e2e/suites/actions/special-permissions-available-actions.test.ts
+++ b/e2e/suites/actions/special-permissions-available-actions.test.ts
@@ -29,7 +29,7 @@ import { RepoClient } from '../../utilities/repo-client/repo-client';
import { Utils } from '../../utilities/utils';
import { Viewer } from '../../components/viewer/viewer';
-describe('Granular permissions available actions : ', () => {
+describe('Special permissions available actions : ', () => {
const userConsumer = `consumer-${Utils.random()}`;
const userManager = `manager-${Utils.random()}`;
const userCollaborator = `collaborator-${Utils.random()}`;
@@ -112,6 +112,8 @@ describe('Granular permissions available actions : ', () => {
await apis.userCollaborator.favorites.addFavoritesByIds('file', [file1Id, docxFileId]);
await apis.userCollaborator.favorites.waitForApi({ expect: 2 });
+ await apis.admin.favorites.addFavoriteById('file', fileLockedId);
+
done();
});
@@ -159,6 +161,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for selected files`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for selected files`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for selected files`);
await toolbar.closeMoreMenu();
});
@@ -181,6 +184,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for selected files`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for selected files`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for selected files`);
await toolbar.closeMoreMenu();
});
@@ -205,6 +209,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed for selected files`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for selected files`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for selected files`);
await toolbar.closeMoreMenu();
});
@@ -229,6 +234,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for selected files`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for selected files`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for selected files`);
await toolbar.closeMoreMenu();
});
@@ -268,6 +274,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${file1}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${file1}`);
await toolbar.closeMoreMenu();
});
@@ -291,6 +298,8 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${file1}`);
+ // TODO: change expect to false when ACA-2173 is done
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is displayed for ${file1}`);
await toolbar.closeMoreMenu();
});
@@ -317,6 +326,8 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed for ${file1}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${file1}`);
+ // TODO: change expect to false when ACA-1737 is done
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is displayed for ${file1}`);
await toolbar.closeMoreMenu();
});
@@ -342,6 +353,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${file1}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${file1}`);
await toolbar.closeMoreMenu();
});
@@ -381,6 +393,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${folder1}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folder1}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folder1}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folder1}`);
await toolbar.closeMoreMenu();
});
@@ -407,6 +420,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed for ${folder1}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folder1}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folder1}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folder1}`);
await toolbar.closeMoreMenu();
});
@@ -432,6 +446,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${folder1}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folder1}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folder1}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folder1}`);
await toolbar.closeMoreMenu();
});
@@ -470,6 +485,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -492,6 +508,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for selected files`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -516,6 +533,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed for selected files`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for selected files`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -540,6 +558,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -578,6 +597,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -602,6 +622,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -626,6 +647,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -664,6 +686,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -688,6 +711,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -712,6 +736,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -745,6 +770,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`);
expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${file1}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${file1}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${file1}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${file1}`);
expect(await contextMenu.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`);
@@ -764,6 +790,8 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${file1}`);
expect(await contextMenu.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed for ${file1}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${file1}`);
+ // TODO: change expect to false when ACA-2173 is done
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version is displayed for ${file1}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${file1}`);
});
@@ -785,6 +813,8 @@ describe('Granular permissions available actions : ', () => {
// TODO: replace with isSharedLinkSettingsPresent when ACA-2175 is done
expect(await toolbar.isSharePresent()).toBe(true, `Share is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${file1}`);
+ // TODO: change expect to false when ACA-1737 is done
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(true, `Upload new version is displayed for ${file1}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${file1}`);
});
@@ -805,6 +835,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${file1}`);
expect(await contextMenu.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(true, `Manage Versions is not displayed for ${file1}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${file1}`);
expect(await contextMenu.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${file1}`);
expect(await contextMenu.isViewDetailsPresent()).toBe(false, `View details is displayed for ${file1}`);
});
@@ -837,6 +868,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${folder1}`);
expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folder1}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${folder1}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folder1}`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folder1}`);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folder1}`);
expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folder1}`);
@@ -857,6 +889,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(true, `Delete is displayed for ${folder1}`);
expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folder1}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${folder1}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folder1}`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folder1}`);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folder1}`);
expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folder1}`);
@@ -876,6 +909,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isDeletePresent()).toBe(false, `Delete is displayed for ${folder1}`);
expect(await contextMenu.isViewPresent()).toBe(false, `View is displayed for ${folder1}`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed for ${folder1}`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folder1}`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed for ${folder1}`);
expect(await contextMenu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${folder1}`);
expect(await contextMenu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed for ${folder1}`);
@@ -911,6 +945,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`);
});
@@ -928,6 +963,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`);
});
@@ -947,6 +983,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`);
});
@@ -966,6 +1003,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`);
});
});
@@ -1000,6 +1038,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`);
});
@@ -1020,6 +1059,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`);
});
@@ -1040,6 +1080,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`);
});
});
@@ -1073,6 +1114,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`);
});
@@ -1092,6 +1134,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isMovePresent()).toBe(true, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`);
});
@@ -1111,6 +1154,7 @@ describe('Granular permissions available actions : ', () => {
expect(await contextMenu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await contextMenu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isManageVersionsPresent()).toBe(false, `Manage Versions is displayed`);
+ expect(await contextMenu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
expect(await contextMenu.isSharePresent()).toBe(false, `Share is displayed`);
});
});
@@ -1152,6 +1196,7 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`);
expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -1178,6 +1223,7 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`);
expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -1204,6 +1250,7 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`);
expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -1216,7 +1263,7 @@ describe('Granular permissions available actions : ', () => {
done();
});
- it('on File Libraries - []', async () => {
+ it('on File Libraries - [C297647]', async () => {
await page.clickFileLibrariesAndWait();
await dataTable.doubleClickOnRowByName(siteName);
await dataTable.waitForHeader();
@@ -1237,11 +1284,12 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
- it('on Shared Files - []', async () => {
+ it('on Shared Files - [C297651]', async () => {
await page.clickSharedFilesAndWait();
await page.dataTable.selectItem(file1);
@@ -1261,11 +1309,12 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
- it('on Favorites - []', async () => {
+ it('on Favorites - [C297652]', async () => {
await page.clickFavoritesAndWait();
await dataTable.selectItem(file1);
@@ -1288,11 +1337,12 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed for ${file1}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
- it('on Search Results - []', async () => {
+ it('on Search Results - [C297653]', async () => {
await searchInput.clickSearchButton();
await searchInput.checkOnlyFiles();
await searchInput.searchForTextAndCloseSearchOptions(file1);
@@ -1313,6 +1363,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${file1}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${file1}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
@@ -1330,7 +1381,7 @@ describe('Granular permissions available actions : ', () => {
done();
});
- it('file opened from File Libraries - []', async () => {
+ it('file opened from File Libraries - [C297654]', async () => {
await page.clickFileLibrariesAndWait();
await dataTable.doubleClickOnRowByName(siteName);
await dataTable.waitForHeader();
@@ -1354,11 +1405,12 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`);
expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await viewerToolbar.closeMoreMenu();
});
- it('file opened from Shared Files - []', async () => {
+ it('file opened from Shared Files - [C297655]', async () => {
await page.clickSharedFilesAndWait();
await dataTable.doubleClickOnRowByName(docxFile);
await viewer.waitForViewerToOpen();
@@ -1380,11 +1432,12 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`);
expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await viewerToolbar.closeMoreMenu();
});
- it('file opened from Favorites - []', async () => {
+ it('file opened from Favorites - [C297656]', async () => {
await page.clickFavoritesAndWait();
await dataTable.doubleClickOnRowByName(docxFile);
await viewer.waitForViewerToOpen();
@@ -1406,6 +1459,7 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`);
expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await viewerToolbar.closeMoreMenu();
});
@@ -1418,7 +1472,7 @@ describe('Granular permissions available actions : ', () => {
done();
});
- it('on File Libraries - []', async () => {
+ it('on File Libraries - [C297657]', async () => {
await page.clickFileLibrariesAndWait();
await dataTable.doubleClickOnRowByName(siteName);
await dataTable.waitForHeader();
@@ -1439,11 +1493,12 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${fileLocked}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed');
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is not displayed');
await toolbar.closeMoreMenu();
});
- it('on Shared Files - []', async () => {
+ it('on Shared Files - [C297658]', async () => {
await page.clickSharedFilesAndWait();
await page.dataTable.selectItem(fileLocked);
@@ -1463,11 +1518,12 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${fileLocked}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed');
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is not displayed');
await toolbar.closeMoreMenu();
});
- it('on Favorites - []', async () => {
+ it('on Favorites - [C297659]', async () => {
await page.clickFavoritesAndWait();
await dataTable.selectItem(fileLocked);
@@ -1490,11 +1546,12 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is displayed for ${fileLocked}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed');
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is not displayed');
await toolbar.closeMoreMenu();
});
- it('on Search Results - []', async () => {
+ it('on Search Results - [C297660]', async () => {
await searchInput.clickSearchButton();
await searchInput.checkOnlyFiles();
await searchInput.searchForTextAndCloseSearchOptions(fileLocked);
@@ -1515,6 +1572,7 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${fileLocked}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed');
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is not displayed');
await toolbar.closeMoreMenu();
});
@@ -1532,7 +1590,7 @@ describe('Granular permissions available actions : ', () => {
done();
});
- it('file opened from File Libraries - []', async () => {
+ it('file opened from File Libraries - [C297661]', async () => {
await page.clickFileLibrariesAndWait();
await dataTable.doubleClickOnRowByName(siteName);
await dataTable.waitForHeader();
@@ -1556,11 +1614,12 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`);
expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await viewerToolbar.closeMoreMenu();
});
- it('file opened from Shared Files - []', async () => {
+ it('file opened from Shared Files - [C297662]', async () => {
await page.clickSharedFilesAndWait();
await dataTable.doubleClickOnRowByName(fileLocked);
await viewer.waitForViewerToOpen();
@@ -1582,11 +1641,12 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`);
expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await viewerToolbar.closeMoreMenu();
});
- it('file opened from Favorites - []', async () => {
+ it('file opened from Favorites - [C297663]', async () => {
await page.clickFavoritesAndWait();
await dataTable.doubleClickOnRowByName(fileLocked);
await viewer.waitForViewerToOpen();
@@ -1609,6 +1669,217 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.menu.isMovePresent()).toBe(false, `Move is displayed`);
expect(await viewerToolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed`);
expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
+
+ await viewerToolbar.closeMoreMenu();
+ });
+ });
+ });
+
+ describe('File locked - manager : ', () => {
+ beforeAll(async (done) => {
+ await loginPage.loginWithAdmin();
+ done();
+ });
+
+ it('on File Libraries - [C297664]', async () => {
+ await page.clickFileLibrariesAndWait();
+ await dataTable.doubleClickOnRowByName(siteName);
+ await dataTable.waitForHeader();
+ await dataTable.selectItem(fileLocked);
+
+ expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`);
+ expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`);
+ expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${fileLocked}`);
+ expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`);
+ expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`);
+
+ await toolbar.openMoreMenu();
+
+ expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed');
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, 'Upload new version is displayed');
+
+ await toolbar.closeMoreMenu();
+ });
+
+ it('on Shared Files - [C297665]', async () => {
+ await page.clickSharedFilesAndWait();
+ await page.dataTable.selectItem(fileLocked);
+
+ expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`);
+ expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`);
+ expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${fileLocked}`);
+ expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`);
+ expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`);
+
+ await toolbar.openMoreMenu();
+
+ expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`);
+ // TODO: change expect to true when ACA-2173 is done
+ expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed');
+ // TODO: change expect to false when ACA-2173 is done
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is displayed');
+
+ await toolbar.closeMoreMenu();
+ });
+
+ it('on Favorites - [C297666]', async () => {
+ await page.clickFavoritesAndWait();
+ await dataTable.selectItem(fileLocked);
+
+ expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`);
+ expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`);
+ expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${fileLocked}`);
+ expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`);
+ // TODO: replace with isSharedLinkSettingsPresent when ACA-2175 is done
+ expect(await toolbar.isSharePresent()).toBe(true, `Share is not displayed`);
+
+ await toolbar.openMoreMenu();
+
+ expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`);
+ // TODO: change expect to true when ACA-2174 is fixed
+ expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed');
+ // TODO: change expect to false when ACA-1737 is done
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, 'Upload new version is displayed');
+
+ await toolbar.closeMoreMenu();
+ });
+
+ it('on Search Results - [C297667]', async () => {
+ await searchInput.clickSearchButton();
+ await searchInput.checkOnlyFiles();
+ await searchInput.searchForTextAndCloseSearchOptions(fileLocked);
+ await dataTable.selectItem(fileLocked);
+
+ expect(await toolbar.isViewPresent()).toBe(true, `View is not displayed for ${fileLocked}`);
+ expect(await toolbar.isDownloadPresent()).toBe(true, `Download is not displayed for ${fileLocked}`);
+ expect(await toolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed for ${fileLocked}`);
+ expect(await toolbar.isEditFolderPresent()).toBe(false, `Edit folder is displayed for ${fileLocked}`);
+ expect(await toolbar.isSharedLinkSettingsPresent()).toBe(true, `Shared link settings is not displayed`);
+
+ await toolbar.openMoreMenu();
+
+ expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isDeletePresent()).toBe(false, `Delete is displayed for ${fileLocked} in Search Results`);
+ expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${fileLocked} in Search Results`);
+ expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, 'Manage versions is not displayed');
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, 'Upload new version is displayed');
+
+ await toolbar.closeMoreMenu();
+ });
+
+ describe('in the viewer', () => {
+ beforeEach(async (done) => {
+ await Utils.pressEscape();
+ await dataTable.clearSelection();
+ await page.clickPersonalFiles();
+ done();
+ });
+
+ afterAll(async (done) => {
+ await Utils.pressEscape();
+ done();
+ });
+
+ it('file opened from File Libraries - [C297671]', async () => {
+ await page.clickFileLibrariesAndWait();
+ await dataTable.doubleClickOnRowByName(siteName);
+ await dataTable.waitForHeader();
+ await dataTable.doubleClickOnRowByName(fileLocked);
+ await viewer.waitForViewerToOpen();
+
+ expect(await viewerToolbar.isViewPresent()).toBe(false, `View is displayed`);
+ expect(await viewerToolbar.isDownloadPresent()).toBe(true, `Download is not displayed`);
+ expect(await viewerToolbar.isPrintPresent()).toBe(true, `Print is not displayed`);
+ expect(await viewerToolbar.isFullScreenPresent()).toBe(true, `Full screen is not displayed`);
+ expect(await viewerToolbar.isSharedLinkSettingsPresent()).toBe(true, 'Shared link settings is not displayed');
+ expect(await viewerToolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed`);
+
+ await viewerToolbar.openMoreMenu();
+
+ expect(await viewerToolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
+ expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed`);
+ expect(await viewerToolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
+ expect(await viewerToolbar.menu.isSharePresent()).toBe(false, `Share is displayed in More actions`);
+ expect(await viewerToolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`);
+ expect(await viewerToolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`);
+ expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`);
+ expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
+
+ await viewerToolbar.closeMoreMenu();
+ });
+
+ it('file opened from Shared Files - [C297672]', async () => {
+ await page.clickSharedFilesAndWait();
+ await dataTable.doubleClickOnRowByName(fileLocked);
+ await viewer.waitForViewerToOpen();
+
+ expect(await viewerToolbar.isViewPresent()).toBe(false, `View is displayed`);
+ expect(await viewerToolbar.isDownloadPresent()).toBe(true, `Download is not displayed`);
+ expect(await viewerToolbar.isPrintPresent()).toBe(true, `Print is not displayed`);
+ expect(await viewerToolbar.isFullScreenPresent()).toBe(true, `Full screen is not displayed`);
+ expect(await viewerToolbar.isSharedLinkSettingsPresent()).toBe(true, 'Shared link settings is not displayed');
+ expect(await viewerToolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed`);
+
+ await viewerToolbar.openMoreMenu();
+
+ expect(await viewerToolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
+ expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed`);
+ expect(await viewerToolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
+ expect(await viewerToolbar.menu.isSharePresent()).toBe(false, `Share is displayed in More actions`);
+ expect(await viewerToolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`);
+ expect(await viewerToolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`);
+ expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`);
+ expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
+
+ await viewerToolbar.closeMoreMenu();
+ });
+
+ it('file opened from Favorites - [C297673]', async () => {
+ await page.clickFavoritesAndWait();
+ await dataTable.doubleClickOnRowByName(fileLocked);
+ await viewer.waitForViewerToOpen();
+
+ expect(await viewerToolbar.isEmpty()).toBe(false, `viewer toolbar is empty`);
+ expect(await viewerToolbar.isViewPresent()).toBe(false, `View is displayed`);
+ expect(await viewerToolbar.isDownloadPresent()).toBe(true, `Download is not displayed`);
+ expect(await viewerToolbar.isPrintPresent()).toBe(true, `Print is not displayed`);
+ expect(await viewerToolbar.isFullScreenPresent()).toBe(true, `Full screen is not displayed`);
+ expect(await viewerToolbar.isSharedLinkSettingsPresent()).toBe(true, 'Shared link settings is not displayed');
+ expect(await viewerToolbar.isViewDetailsPresent()).toBe(true, `View details is not displayed`);
+
+ await viewerToolbar.openMoreMenu();
+
+ expect(await viewerToolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
+ expect(await viewerToolbar.menu.isCancelEditingPresent()).toBe(true, `Cancel editing is not displayed`);
+ expect(await viewerToolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed`);
+ expect(await viewerToolbar.menu.isSharePresent()).toBe(false, `Share is displayed in More actions`);
+ expect(await viewerToolbar.menu.isCopyPresent()).toBe(true, `Copy is not displayed`);
+ expect(await viewerToolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`);
+ expect(await viewerToolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`);
+ expect(await viewerToolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await viewerToolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await viewerToolbar.closeMoreMenu();
});
diff --git a/e2e/suites/actions/toolbar-multiple-selection.test.ts b/e2e/suites/actions/toolbar-multiple-selection.test.ts
index 28120420d..31c2f4ba4 100755
--- a/e2e/suites/actions/toolbar-multiple-selection.test.ts
+++ b/e2e/suites/actions/toolbar-multiple-selection.test.ts
@@ -181,11 +181,12 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
- it('correct actions appear when multiple locked files are selected - []', async () => {
+ it('correct actions appear when multiple locked files are selected - [C297619]', async () => {
await dataTable.selectMultipleItems([fileLocked1, fileLocked2]);
expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed');
@@ -201,6 +202,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -221,6 +223,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -241,6 +244,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -276,11 +280,12 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
- it('correct actions appear when multiple locked files are selected - []', async () => {
+ it('correct actions appear when multiple locked files are selected - [C297620]', async () => {
await dataTable.selectMultipleItems([fileLocked1InSite, fileLocked2InSite]);
expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed for selected files');
@@ -296,6 +301,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -316,6 +322,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -336,6 +343,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -370,11 +378,12 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
- it('correct actions appear when multiple locked files are selected - []', async () => {
+ it('correct actions appear when multiple locked files are selected - [C297623]', async () => {
await dataTable.selectMultipleItems([fileLocked1, fileLocked2]);
expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed');
@@ -390,6 +399,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -424,11 +434,12 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
- it('correct actions appear when multiple locked files are selected - []', async () => {
+ it('correct actions appear when multiple locked files are selected - [C297624]', async () => {
await dataTable.selectMultipleItems([fileLocked1, fileLocked2]);
expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed');
@@ -444,6 +455,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -478,11 +490,12 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
- it('correct actions appear when multiple locked files are selected - []', async () => {
+ it('correct actions appear when multiple locked files are selected - [C297625]', async () => {
await dataTable.selectMultipleItems([fileLocked1, fileLocked2]);
expect(await toolbar.isViewPresent()).toBe(false, 'View is displayed');
@@ -498,6 +511,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -518,6 +532,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -538,6 +553,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -607,11 +623,12 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
- it('correct actions appear when multiple locked files are selected - []', async () => {
+ it('correct actions appear when multiple locked files are selected - [C297626]', async () => {
await searchInput.clickSearchButton();
await searchInput.checkOnlyFiles();
await searchInput.searchForTextAndCloseSearchOptions('my-fileLockedInSite');
@@ -630,6 +647,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -653,6 +671,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
@@ -676,6 +695,7 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.menu.isEditOfflinePresent()).toBe(false, `Edit offline is displayed`);
expect(await toolbar.menu.isCancelEditingPresent()).toBe(false, `Cancel editing is displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed`);
await toolbar.closeMoreMenu();
});
diff --git a/e2e/suites/actions/toolbar-single-selection.test.ts b/e2e/suites/actions/toolbar-single-selection.test.ts
index 565339c04..d2b930f44 100755
--- a/e2e/suites/actions/toolbar-single-selection.test.ts
+++ b/e2e/suites/actions/toolbar-single-selection.test.ts
@@ -151,11 +151,12 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload New Version is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu();
});
- it('correct actions appear when a locked file is selected - []', async () => {
+ it('correct actions appear when a locked file is selected - [C297612]', async () => {
await dataTable.selectItem(fileLocked);
expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileLocked}`);
@@ -172,6 +173,7 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileLocked}`);
await toolbar.closeMoreMenu();
});
@@ -193,6 +195,7 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${folderUser}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folderUser}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folderUser}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folderUser}`);
await toolbar.closeMoreMenu();
});
@@ -233,11 +236,12 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileInSite}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileInSite}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileInSite}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileInSite}`);
await toolbar.closeMoreMenu();
});
- it('correct actions appear when a locked file is selected - []', async () => {
+ it('correct actions appear when a locked file is selected - [C297614]', async () => {
await dataTable.selectItem(fileLockedInSite);
expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileLockedInSite}`);
@@ -254,6 +258,7 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLockedInSite}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLockedInSite}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLockedInSite}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileLockedInSite}`);
await toolbar.closeMoreMenu();
});
@@ -275,6 +280,7 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${folderInSite}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folderInSite}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folderInSite}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folderInSite}`);
await toolbar.closeMoreMenu();
});
@@ -446,11 +452,12 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu();
});
- it('correct actions appear when a locked file is selected - []', async () => {
+ it('correct actions appear when a locked file is selected - [C297615]', async () => {
await page.dataTable.selectItem(fileLocked);
expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileLocked}`);
@@ -469,6 +476,7 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileLocked}`);
await toolbar.closeMoreMenu();
});
@@ -507,11 +515,12 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu();
});
- it('correct actions appear when a locked file is selected - []', async () => {
+ it('correct actions appear when a locked file is selected - [C297616]', async () => {
await dataTable.selectItem(fileLocked);
expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileLocked}`);
@@ -528,6 +537,7 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileLocked}`);
await toolbar.closeMoreMenu();
});
@@ -567,11 +577,12 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu();
});
- it('correct actions appear when a locked file is selected - []', async () => {
+ it('correct actions appear when a locked file is selected - [C297617]', async () => {
await dataTable.selectItem(fileLocked);
expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileLocked}`);
@@ -589,6 +600,7 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${fileLocked}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileLocked}`);
await toolbar.closeMoreMenu();
});
@@ -610,6 +622,7 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed for ${folderUser}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folderUser}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folderUser}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folderUser}`);
await toolbar.closeMoreMenu();
});
@@ -688,11 +701,12 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${fileUser}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileUser}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileUser}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu();
});
- it('correct actions appear when a locked file is selected - []', async () => {
+ it('correct actions appear when a locked file is selected - [C297618]', async () => {
await searchInput.clickSearchButton();
await searchInput.checkOnlyFiles();
await searchInput.searchForTextAndCloseSearchOptions(fileLocked);
@@ -712,6 +726,7 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${fileLocked}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${fileLocked}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed for ${fileLocked}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed for ${fileLocked}`);
await toolbar.closeMoreMenu();
});
@@ -736,6 +751,7 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.menu.isMovePresent()).toBe(false, `Move is displayed for ${folderUser}`);
expect(await toolbar.menu.isFavoritePresent()).toBe(true, `Favorite is not displayed for ${folderUser}`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(false, `Manage versions is displayed for ${folderUser}`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(false, `Upload new version is displayed for ${folderUser}`);
await toolbar.closeMoreMenu();
});
diff --git a/e2e/suites/actions/upload-new-version.test.ts b/e2e/suites/actions/upload-new-version.test.ts
new file mode 100755
index 000000000..e36e3960e
--- /dev/null
+++ b/e2e/suites/actions/upload-new-version.test.ts
@@ -0,0 +1,672 @@
+/*!
+ * @license
+ * Alfresco Example Content Application
+ *
+ * Copyright (C) 2005 - 2018 Alfresco Software Limited
+ *
+ * This file is part of the Alfresco Example Content Application.
+ * If the software was purchased under a paid Alfresco license, the terms of
+ * the paid license agreement will prevail. Otherwise, the software is
+ * provided under the following open source license terms:
+ *
+ * The Alfresco Example Content Application is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * The Alfresco Example Content Application is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
+
+import { LoginPage, BrowsingPage } from '../../pages/pages';
+import { FILES } from '../../configs';
+import { RepoClient } from '../../utilities/repo-client/repo-client';
+import { Utils } from '../../utilities/utils';
+import { UploadNewVersionDialog } from '../../components/dialog/upload-new-version-dialog';
+
+describe('Upload new version', () => {
+ const username = `user-${Utils.random()}`;
+
+ const file1 = `file1-${Utils.random()}.docx`; let file1Id;
+ const file2 = `file2-${Utils.random()}.docx`; let file2Id;
+ const file3 = `file3-${Utils.random()}.docx`; let file3Id;
+ const file4 = `file4-${Utils.random()}.docx`; let file4Id;
+ const fileLocked1 = `file-locked1-${Utils.random()}.docx`; let fileLocked1Id;
+ const fileLocked2 = `file-locked2-${Utils.random()}.docx`; let fileLocked2Id;
+
+ const parentPF = `parentPersonal-${Utils.random()}`; let parentPFId;
+ const parentSF = `parentShared-${Utils.random()}`; let parentSFId;
+ const parentRF = `parentRecent-${Utils.random()}`; let parentRFId;
+ const parentFav = `parentFav-${Utils.random()}`; let parentFavId;
+
+ const file = FILES.pdfFile; let fileId;
+ const fileToUpload1 = FILES.docxFile;
+ const fileToUpload2 = FILES.xlsxFile;
+ const fileToUpload3 = FILES.pdfFile;
+ const fileToUpload4 = FILES.docxFile2;
+ const fileToUpload5 = FILES.xlsxFile2;
+
+ const apis = {
+ admin: new RepoClient(),
+ user: new RepoClient(username, username)
+ };
+
+ const loginPage = new LoginPage();
+ const page = new BrowsingPage();
+ const { dataTable, toolbar } = page;
+ const uploadNewVersionDialog = new UploadNewVersionDialog();
+
+ beforeAll(async (done) => {
+ await apis.admin.people.createUser({ username });
+
+ parentPFId = (await apis.user.nodes.createFolder(parentPF)).entry.id;
+ parentSFId = (await apis.user.nodes.createFolder(parentSF)).entry.id;
+ parentRFId = (await apis.user.nodes.createFolder(parentRF)).entry.id;
+ parentFavId = (await apis.user.nodes.createFolder(parentFav)).entry.id;
+
+ done();
+ });
+
+ afterAll(async (done) => {
+ await apis.user.nodes.deleteNodeById(parentPFId);
+ await apis.user.nodes.deleteNodeById(parentSFId);
+ await apis.user.nodes.deleteNodeById(parentRFId);
+ await apis.user.nodes.deleteNodeById(parentFavId);
+ done();
+ });
+
+ describe('on Personal Files', () => {
+ beforeAll(async (done) => {
+ fileId = (await apis.user.upload.uploadFile(file, parentPFId)).entry.id;
+ file1Id = (await apis.user.nodes.createFile(file1, parentPFId)).entry.id;
+ file2Id = (await apis.user.nodes.createFile(file2, parentPFId)).entry.id;
+ file3Id = (await apis.user.nodes.createFile(file3, parentPFId)).entry.id;
+ file4Id = (await apis.user.nodes.createFile(file4, parentPFId)).entry.id;
+
+ fileLocked1Id = (await apis.user.nodes.createFile(fileLocked1, parentPFId)).entry.id;
+ fileLocked2Id = (await apis.user.nodes.createFile(fileLocked2, parentPFId)).entry.id;
+
+ await apis.user.nodes.lockFile(fileLocked1Id);
+ await apis.user.nodes.lockFile(fileLocked2Id);
+
+ await loginPage.loginWith(username);
+ done();
+ });
+
+ beforeEach(async (done) => {
+ await page.clickPersonalFilesAndWait();
+ await dataTable.doubleClickOnRowByName(parentPF);
+ done();
+ });
+
+ afterEach(async (done) => {
+ // await Utils.pressEscape();
+ await page.refresh();
+ done();
+ });
+
+ it('dialog UI defaults - [C297544]', async () => {
+ await dataTable.selectItem(file);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload1);
+ await page.waitForDialog();
+
+ expect(await uploadNewVersionDialog.getTitle()).toEqual('Upload New Version');
+ expect(await uploadNewVersionDialog.getText()).toContain('What level of changes were made to this version?');
+ expect(await uploadNewVersionDialog.isDescriptionDisplayed()).toBe(true, 'Description not displayed');
+ expect(await uploadNewVersionDialog.isMinorOptionDisplayed()).toBe(true, 'Minor option not displayed');
+ expect(await uploadNewVersionDialog.isMajorOptionDisplayed()).toBe(true, 'Major option not displayed');
+ expect(await uploadNewVersionDialog.isCancelButtonEnabled()).toBe(true, 'Cancel button not enabled');
+ expect(await uploadNewVersionDialog.isUploadButtonEnabled()).toBe(true, 'Update button not enabled');
+ });
+
+ it('file is updated after uploading a new version - major - [C297545]', async () => {
+ await dataTable.selectItem(file1);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload1);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMajor();
+ await uploadNewVersionDialog.enterDescription('new major version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await dataTable.isItemPresent(fileToUpload1)).toBe(true, 'File not updated');
+ expect(await apis.user.nodes.getFileVersionType(file1Id)).toEqual('MAJOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file1Id)).toEqual('1.0', 'File has incorrect version label');
+ });
+
+ it('file is updated after uploading a new version - minor - [C297546]', async () => {
+ await dataTable.selectItem(file2);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload2);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new minor version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await dataTable.isItemPresent(fileToUpload2)).toBe(true, 'File not updated');
+ expect(await apis.user.nodes.getFileVersionType(file2Id)).toEqual('MINOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file2Id)).toEqual('0.1', 'File has incorrect version label');
+ });
+
+ it('file is not updated when clicking Cancel - [C297547]', async () => {
+ await dataTable.selectItem(file3);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload3);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickCancel();
+
+ expect(await dataTable.isItemPresent(file3)).toBe(true, 'File was updated');
+ expect(await apis.user.nodes.getFileVersionType(file3Id)).toEqual('', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file3Id)).toEqual('', 'File has incorrect version label');
+ });
+
+ it('upload new version fails when new file name already exists - [C297548]', async () => {
+ await dataTable.selectItem(file4);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(file);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ await page.refresh();
+
+ expect(await dataTable.isItemPresent(file4)).toBe(true, 'File was updated');
+ expect(await apis.user.nodes.getFileVersionType(file4Id)).toEqual('', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file4Id)).toEqual('', 'File has incorrect version label');
+ });
+
+ it('file is unlocked after uploading a new version - [C297549]', async () => {
+ await dataTable.selectItem(fileLocked1);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload4);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await dataTable.isItemPresent(fileToUpload4)).toBe(true, 'File name was not changed');
+ expect(await apis.user.nodes.isFileLockedWrite(fileLocked1Id)).toBe(false, `${fileLocked1} is still locked`);
+ expect(await apis.user.nodes.getFileVersionType(fileLocked1Id)).toEqual('MINOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(fileLocked1Id)).toEqual('0.1', 'File has incorrect version label');
+ });
+
+ it('file remains locked after canceling of uploading a new version - [C297550]', async () => {
+ await dataTable.selectItem(fileLocked2);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload5);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickCancel();
+
+ expect(await dataTable.isItemPresent(fileToUpload5)).toBe(false, 'File was updated');
+ expect(await dataTable.isItemPresent(fileLocked2)).toBe(true, 'File not displayed');
+ expect(await apis.user.nodes.isFileLockedWrite(fileLocked2Id)).toBe(true, `${fileLocked2} was unlocked`);
+ });
+ });
+
+ describe('on Shared Files', () => {
+ beforeAll(async (done) => {
+ fileId = (await apis.user.upload.uploadFile(file, parentSFId)).entry.id;
+ file1Id = (await apis.user.nodes.createFile(file1, parentSFId)).entry.id;
+ file2Id = (await apis.user.nodes.createFile(file2, parentSFId)).entry.id;
+ file3Id = (await apis.user.nodes.createFile(file3, parentSFId)).entry.id;
+ file4Id = (await apis.user.nodes.createFile(file4, parentSFId)).entry.id;
+
+ fileLocked1Id = (await apis.user.nodes.createFile(fileLocked1, parentSFId)).entry.id;
+ fileLocked2Id = (await apis.user.nodes.createFile(fileLocked2, parentSFId)).entry.id;
+
+ await apis.user.nodes.lockFile(fileLocked1Id);
+ await apis.user.nodes.lockFile(fileLocked2Id);
+
+ await apis.user.shared.shareFilesByIds([fileId, file1Id, file2Id, file3Id, file4Id, fileLocked1Id, fileLocked2Id]);
+ await apis.user.shared.waitForApi({ expect: 7 });
+
+ await loginPage.loginWith(username);
+ done();
+ });
+
+ beforeEach(async (done) => {
+ await page.clickSharedFilesAndWait();
+ done();
+ });
+
+ afterEach(async (done) => {
+ // await Utils.pressEscape();
+ await page.refresh();
+ done();
+ });
+
+ it('dialog UI defaults - [C297551]', async () => {
+ await dataTable.selectItem(file);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload1);
+ await page.waitForDialog();
+
+ expect(await uploadNewVersionDialog.getTitle()).toEqual('Upload New Version');
+ expect(await uploadNewVersionDialog.getText()).toContain('What level of changes were made to this version?');
+ expect(await uploadNewVersionDialog.isDescriptionDisplayed()).toBe(true, 'Description not displayed');
+ expect(await uploadNewVersionDialog.isMinorOptionDisplayed()).toBe(true, 'Minor option not displayed');
+ expect(await uploadNewVersionDialog.isMajorOptionDisplayed()).toBe(true, 'Major option not displayed');
+ expect(await uploadNewVersionDialog.isCancelButtonEnabled()).toBe(true, 'Cancel button not enabled');
+ expect(await uploadNewVersionDialog.isUploadButtonEnabled()).toBe(true, 'Update button not enabled');
+ });
+
+ it('file is updated after uploading a new version - major - [C297552]', async () => {
+ await dataTable.selectItem(file1);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload1);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMajor();
+ await uploadNewVersionDialog.enterDescription('new major version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await dataTable.isItemPresent(fileToUpload1)).toBe(true, 'File not updated');
+ expect(await apis.user.nodes.getFileVersionType(file1Id)).toEqual('MAJOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file1Id)).toEqual('1.0', 'File has incorrect version label');
+ });
+
+ it('file is updated after uploading a new version - minor - [C297553]', async () => {
+ await dataTable.selectItem(file2);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload2);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new minor version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await dataTable.isItemPresent(fileToUpload2)).toBe(true, 'File not updated');
+ expect(await apis.user.nodes.getFileVersionType(file2Id)).toEqual('MINOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file2Id)).toEqual('0.1', 'File has incorrect version label');
+ });
+
+ it('file is not updated when clicking Cancel - [C297554]', async () => {
+ await dataTable.selectItem(file3);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload3);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickCancel();
+
+ expect(await dataTable.isItemPresent(file3)).toBe(true, 'File was updated');
+ expect(await apis.user.nodes.getFileVersionType(file3Id)).toEqual('', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file3Id)).toEqual('', 'File has incorrect version label');
+ });
+
+ it('upload new version fails when new file name already exists - [C297555]', async () => {
+ await dataTable.selectItem(file4);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(file);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ await page.refresh();
+
+ expect(await dataTable.isItemPresent(file4)).toBe(true, 'File was updated');
+ expect(await apis.user.nodes.getFileVersionType(file4Id)).toEqual('', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file4Id)).toEqual('', 'File has incorrect version label');
+ });
+
+ it('file is unlocked after uploading a new version - [C297556]', async () => {
+ await dataTable.selectItem(fileLocked1);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload4);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await dataTable.isItemPresent(fileToUpload4)).toBe(true, 'File name was not changed');
+ expect(await apis.user.nodes.isFileLockedWrite(fileLocked1Id)).toBe(false, `${fileLocked1} is still locked`);
+ expect(await apis.user.nodes.getFileVersionType(fileLocked1Id)).toEqual('MINOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(fileLocked1Id)).toEqual('0.1', 'File has incorrect version label');
+ });
+
+ it('file remains locked after canceling of uploading a new version - [C297557]', async () => {
+ await dataTable.selectItem(fileLocked2);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload5);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickCancel();
+
+ expect(await dataTable.isItemPresent(fileToUpload5)).toBe(false, 'File was updated');
+ expect(await dataTable.isItemPresent(fileLocked2)).toBe(true, 'File not displayed');
+ expect(await apis.user.nodes.isFileLockedWrite(fileLocked2Id)).toBe(true, `${fileLocked2} was unlocked`);
+ });
+ });
+
+ describe('on Recent Files', () => {
+ beforeAll(async (done) => {
+ fileId = (await apis.user.upload.uploadFile(file, parentRFId)).entry.id;
+ file1Id = (await apis.user.nodes.createFile(file1, parentRFId)).entry.id;
+ file2Id = (await apis.user.nodes.createFile(file2, parentRFId)).entry.id;
+ file3Id = (await apis.user.nodes.createFile(file3, parentRFId)).entry.id;
+ file4Id = (await apis.user.nodes.createFile(file4, parentRFId)).entry.id;
+
+ fileLocked1Id = (await apis.user.nodes.createFile(fileLocked1, parentRFId)).entry.id;
+ fileLocked2Id = (await apis.user.nodes.createFile(fileLocked2, parentRFId)).entry.id;
+
+ await apis.user.nodes.lockFile(fileLocked1Id);
+ await apis.user.nodes.lockFile(fileLocked2Id);
+
+ await apis.user.search.waitForApi(username, { expect: 21 });
+
+ await loginPage.loginWith(username);
+ done();
+ });
+
+ beforeEach(async (done) => {
+ await page.clickRecentFilesAndWait();
+ done();
+ });
+
+ afterEach(async (done) => {
+ // await Utils.pressEscape();
+ await page.refresh();
+ done();
+ });
+
+ it('dialog UI defaults - [C297558]', async () => {
+ await dataTable.selectItem(file, parentRF);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload1);
+ await page.waitForDialog();
+
+ expect(await uploadNewVersionDialog.getTitle()).toEqual('Upload New Version');
+ expect(await uploadNewVersionDialog.getText()).toContain('What level of changes were made to this version?');
+ expect(await uploadNewVersionDialog.isDescriptionDisplayed()).toBe(true, 'Description not displayed');
+ expect(await uploadNewVersionDialog.isMinorOptionDisplayed()).toBe(true, 'Minor option not displayed');
+ expect(await uploadNewVersionDialog.isMajorOptionDisplayed()).toBe(true, 'Major option not displayed');
+ expect(await uploadNewVersionDialog.isCancelButtonEnabled()).toBe(true, 'Cancel button not enabled');
+ expect(await uploadNewVersionDialog.isUploadButtonEnabled()).toBe(true, 'Update button not enabled');
+ });
+
+ it('file is updated after uploading a new version - major - [C297559]', async () => {
+ await dataTable.selectItem(file1, parentRF);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload1);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMajor();
+ await uploadNewVersionDialog.enterDescription('new major version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await dataTable.isItemPresent(fileToUpload1, parentRF)).toBe(true, 'File not updated');
+ expect(await apis.user.nodes.getFileVersionType(file1Id)).toEqual('MAJOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file1Id)).toEqual('1.0', 'File has incorrect version label');
+ });
+
+ it('file is updated after uploading a new version - minor - [C297560]', async () => {
+ await dataTable.selectItem(file2, parentRF);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload2);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new minor version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await dataTable.isItemPresent(fileToUpload2, parentRF)).toBe(true, 'File not updated');
+ expect(await apis.user.nodes.getFileVersionType(file2Id)).toEqual('MINOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file2Id)).toEqual('0.1', 'File has incorrect version label');
+ });
+
+ it('file is not updated when clicking Cancel - [C297561]', async () => {
+ await dataTable.selectItem(file3, parentRF);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload3);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickCancel();
+
+ expect(await dataTable.isItemPresent(file3, parentRF)).toBe(true, 'File was updated');
+ expect(await apis.user.nodes.getFileVersionType(file3Id)).toEqual('', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file3Id)).toEqual('', 'File has incorrect version label');
+ });
+
+ it('upload new version fails when new file name already exists - [C297562]', async () => {
+ await dataTable.selectItem(file4, parentRF);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(file);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ await page.refresh();
+
+ expect(await dataTable.isItemPresent(file4, parentRF)).toBe(true, 'File was updated');
+ expect(await apis.user.nodes.getFileVersionType(file4Id)).toEqual('', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file4Id)).toEqual('', 'File has incorrect version label');
+ });
+
+ it('file is unlocked after uploading a new version - [C297563]', async () => {
+ await dataTable.selectItem(fileLocked1, parentRF);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload4);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await dataTable.isItemPresent(fileToUpload4, parentRF)).toBe(true, 'File name was not changed');
+ expect(await apis.user.nodes.isFileLockedWrite(fileLocked1Id)).toBe(false, `${fileLocked1} is still locked`);
+ expect(await apis.user.nodes.getFileVersionType(fileLocked1Id)).toEqual('MINOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(fileLocked1Id)).toEqual('0.1', 'File has incorrect version label');
+ });
+
+ it('file remains locked after canceling of uploading a new version - [C297564]', async () => {
+ await dataTable.selectItem(fileLocked2, parentRF);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload5);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickCancel();
+
+ expect(await dataTable.isItemPresent(fileToUpload5, parentRF)).toBe(false, 'File was updated');
+ expect(await dataTable.isItemPresent(fileLocked2, parentRF)).toBe(true, 'File not displayed');
+ expect(await apis.user.nodes.isFileLockedWrite(fileLocked2Id)).toBe(true, `${fileLocked2} was unlocked`);
+ });
+ });
+
+ describe('on Favorite Files', () => {
+ beforeAll(async (done) => {
+ fileId = (await apis.user.upload.uploadFile(file, parentFavId)).entry.id;
+ file1Id = (await apis.user.nodes.createFile(file1, parentFavId)).entry.id;
+ file2Id = (await apis.user.nodes.createFile(file2, parentFavId)).entry.id;
+ file3Id = (await apis.user.nodes.createFile(file3, parentFavId)).entry.id;
+ file4Id = (await apis.user.nodes.createFile(file4, parentFavId)).entry.id;
+
+ fileLocked1Id = (await apis.user.nodes.createFile(fileLocked1, parentFavId)).entry.id;
+ fileLocked2Id = (await apis.user.nodes.createFile(fileLocked2, parentFavId)).entry.id;
+
+ await apis.user.nodes.lockFile(fileLocked1Id);
+ await apis.user.nodes.lockFile(fileLocked2Id);
+
+ await apis.user.favorites.addFavoritesByIds('file', [fileId, file1Id, file2Id, file3Id, file4Id, fileLocked1Id, fileLocked2Id]);
+ await apis.user.favorites.waitForApi({ expect: 7 });
+
+ await loginPage.loginWith(username);
+ done();
+ });
+
+ beforeEach(async (done) => {
+ await page.clickFavoritesAndWait();
+ done();
+ });
+
+ afterEach(async (done) => {
+ // await Utils.pressEscape();
+ await page.refresh();
+ done();
+ });
+
+ it('dialog UI defaults - [C297565]', async () => {
+ await dataTable.selectItem(file);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload1);
+ await page.waitForDialog();
+
+ expect(await uploadNewVersionDialog.getTitle()).toEqual('Upload New Version');
+ expect(await uploadNewVersionDialog.getText()).toContain('What level of changes were made to this version?');
+ expect(await uploadNewVersionDialog.isDescriptionDisplayed()).toBe(true, 'Description not displayed');
+ expect(await uploadNewVersionDialog.isMinorOptionDisplayed()).toBe(true, 'Minor option not displayed');
+ expect(await uploadNewVersionDialog.isMajorOptionDisplayed()).toBe(true, 'Major option not displayed');
+ expect(await uploadNewVersionDialog.isCancelButtonEnabled()).toBe(true, 'Cancel button not enabled');
+ expect(await uploadNewVersionDialog.isUploadButtonEnabled()).toBe(true, 'Update button not enabled');
+ });
+
+ it('file is updated after uploading a new version - major - [C297566]', async () => {
+ await dataTable.selectItem(file1);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload1);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMajor();
+ await uploadNewVersionDialog.enterDescription('new major version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await dataTable.isItemPresent(fileToUpload1)).toBe(true, 'File not updated');
+ expect(await apis.user.nodes.getFileVersionType(file1Id)).toEqual('MAJOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file1Id)).toEqual('1.0', 'File has incorrect version label');
+ });
+
+ it('file is updated after uploading a new version - minor - [C297567]', async () => {
+ await dataTable.selectItem(file2);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload2);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new minor version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await dataTable.isItemPresent(fileToUpload2)).toBe(true, 'File not updated');
+ expect(await apis.user.nodes.getFileVersionType(file2Id)).toEqual('MINOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file2Id)).toEqual('0.1', 'File has incorrect version label');
+ });
+
+ it('file is not updated when clicking Cancel - [C297568]', async () => {
+ await dataTable.selectItem(file3);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload3);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickCancel();
+
+ expect(await dataTable.isItemPresent(file3)).toBe(true, 'File was updated');
+ expect(await apis.user.nodes.getFileVersionType(file3Id)).toEqual('', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file3Id)).toEqual('', 'File has incorrect version label');
+ });
+
+ it('upload new version fails when new file name already exists - [C297569]', async () => {
+ await dataTable.selectItem(file4);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(file);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ await page.refresh();
+
+ expect(await dataTable.isItemPresent(file4)).toBe(true, 'File was updated');
+ expect(await apis.user.nodes.getFileVersionType(file4Id)).toEqual('', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(file4Id)).toEqual('', 'File has incorrect version label');
+ });
+
+ it('file is unlocked after uploading a new version - [C297570]', async () => {
+ await dataTable.selectItem(fileLocked1);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload4);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await dataTable.isItemPresent(fileToUpload4)).toBe(true, 'File name was not changed');
+ expect(await apis.user.nodes.isFileLockedWrite(fileLocked1Id)).toBe(false, `${fileLocked1} is still locked`);
+ expect(await apis.user.nodes.getFileVersionType(fileLocked1Id)).toEqual('MINOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(fileLocked1Id)).toEqual('0.1', 'File has incorrect version label');
+ });
+
+ it('file remains locked after canceling of uploading a new version - [C297571]', async () => {
+ await dataTable.selectItem(fileLocked2);
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(fileToUpload5);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMinor();
+ await uploadNewVersionDialog.enterDescription('new version description');
+ await uploadNewVersionDialog.clickCancel();
+
+ expect(await dataTable.isItemPresent(fileToUpload5)).toBe(false, 'File was updated');
+ expect(await dataTable.isItemPresent(fileLocked2)).toBe(true, 'File not displayed');
+ expect(await apis.user.nodes.isFileLockedWrite(fileLocked2Id)).toBe(true, `${fileLocked2} was unlocked`);
+ });
+ });
+
+});
diff --git a/e2e/suites/list-views/tooltips.test.ts b/e2e/suites/list-views/tooltips.test.ts
index 421e7a6f6..c9ae1105b 100755
--- a/e2e/suites/list-views/tooltips.test.ts
+++ b/e2e/suites/list-views/tooltips.test.ts
@@ -166,7 +166,7 @@ describe('File / folder tooltips', () => {
});
// disabled until ACA-518 is done
- describe('on Shared Files', () => {
+ xdescribe('on Shared Files', () => {
beforeAll(async (done) => {
await apis.user.shared.waitForApi({ expect: 8 });
await page.clickSharedFilesAndWait();
diff --git a/e2e/suites/viewer/viewer-actions.test.ts b/e2e/suites/viewer/viewer-actions.test.ts
index 43145adb2..2355cabe0 100755
--- a/e2e/suites/viewer/viewer-actions.test.ts
+++ b/e2e/suites/viewer/viewer-actions.test.ts
@@ -31,11 +31,13 @@ import { Viewer } from '../../components/viewer/viewer';
import { CopyMoveDialog } from './../../components/dialog/copy-move-dialog';
import { ShareDialog } from './../../components/dialog/share-dialog';
import { ManageVersionsDialog } from './../../components/dialog/manage-versions-dialog';
+import { UploadNewVersionDialog } from './../../components/dialog/upload-new-version-dialog';
describe('Viewer actions', () => {
const username = `user-${Utils.random()}`;
const docxFile = FILES.docxFile;
+ const docxFile2 = FILES.docxFile2;
const xlsxFileForMove = FILES.xlsxFile;
const pdfFileForDelete = FILES.pdfFile;
@@ -52,13 +54,14 @@ describe('Viewer actions', () => {
const copyMoveDialog = new CopyMoveDialog();
const shareDialog = new ShareDialog();
const manageVersionsDialog = new ManageVersionsDialog();
+ const uploadNewVersionDialog = new UploadNewVersionDialog();
beforeAll(async done => {
await apis.admin.people.createUser({ username });
done();
});
- describe('file opened from Personal Files', () => {
+ describe('from Personal Files', () => {
const parent = `parentPF-${Utils.random()}`; let parentId;
const destination = `destPF-${Utils.random()}`; let destinationId;
@@ -66,15 +69,28 @@ describe('Viewer actions', () => {
const docxLockedPersonalFiles = `docxLockedPF-${Utils.random()}.docx`; let docxLockedId;
const xlsxPersonalFiles = `xlsxPF-${Utils.random()}.xlsx`;
const pdfPersonalFiles = `pdfPF-${Utils.random()}.pdf`;
+ const filePersonalFiles = docxFile2; let filePersonalFilesId;
+
+ const fileForEditOffline = `file1-${Utils.random()}.docx`; let fileForEditOfflineId;
+ const fileForCancelEditing = `file2-${Utils.random()}.docx`; let fileForCancelEditingId;
+ const fileForUploadNewVersion = `file3-${Utils.random()}.docx`; let fileForUploadNewVersionId;
beforeAll(async (done) => {
parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
destinationId = (await apis.user.nodes.createFolder(destination)).entry.id;
+
docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxPersonalFiles)).entry.id;
docxLockedId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxLockedPersonalFiles)).entry.id;
+ filePersonalFilesId = (await apis.user.upload.uploadFile(docxFile2, parentId)).entry.id;
await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxPersonalFiles);
await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfPersonalFiles);
+ fileForEditOfflineId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, fileForEditOffline)).entry.id;
+ fileForCancelEditingId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, fileForCancelEditing)).entry.id;
+ fileForUploadNewVersionId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, fileForUploadNewVersion)).entry.id;
+
+ await apis.user.nodes.lockFile(fileForCancelEditingId);
+ await apis.user.nodes.lockFile(fileForUploadNewVersionId);
await apis.user.nodes.lockFile(docxLockedId);
await loginPage.loginWith(username);
@@ -121,11 +137,12 @@ describe('Viewer actions', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
- it('Correct actions appear in the viewer toolbar for a locked file - []', async () => {
+ it('Correct actions appear in the viewer toolbar for a locked file - [C297583]', async () => {
await dataTable.doubleClickOnRowByName(docxLockedPersonalFiles);
await viewer.waitForViewerToOpen();
@@ -146,21 +163,23 @@ describe('Viewer actions', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
it('Download action - [C268129]', async () => {
await dataTable.doubleClickOnRowByName(docxPersonalFiles);
- expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
+ await viewer.waitForViewerToOpen();
await toolbar.clickDownload();
+
expect(await Utils.fileExistsOnOS(docxPersonalFiles)).toBe(true, 'File not found in download location');
});
- it('Copy action - [C268130]', async (done) => {
+ it('Copy action - [C268130]', async () => {
await dataTable.doubleClickOnRowByName(docxPersonalFiles);
- expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
+ await viewer.waitForViewerToOpen();
await toolbar.clickMoreActionsCopy();
expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
@@ -175,12 +194,11 @@ describe('Viewer actions', () => {
expect(await dataTable.isItemPresent(docxPersonalFiles)).toBe(true, 'Item is not present in destination');
await apis.user.nodes.deleteNodeChildren(destinationId);
- done();
});
it('Move action - [C268131]', async () => {
await dataTable.doubleClickOnRowByName(xlsxPersonalFiles);
- expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
+ await viewer.waitForViewerToOpen();
await toolbar.clickMoreActionsMove();
expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
@@ -197,7 +215,7 @@ describe('Viewer actions', () => {
it('Favorite action - [C268132]', async () => {
await dataTable.doubleClickOnRowByName(docxPersonalFiles);
- expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
+ await viewer.waitForViewerToOpen();
await toolbar.clickMoreActionsFavorite();
await viewer.clickClose();
@@ -208,7 +226,7 @@ describe('Viewer actions', () => {
it('Delete action - [C268133]', async () => {
await dataTable.doubleClickOnRowByName(pdfPersonalFiles);
- expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
+ await viewer.waitForViewerToOpen();
await toolbar.clickMoreActionsDelete();
expect(await page.getSnackBarMessage()).toContain(`${pdfPersonalFiles} deleted`);
@@ -218,9 +236,46 @@ describe('Viewer actions', () => {
expect(await dataTable.isItemPresent(pdfPersonalFiles)).toBe(true, 'Item is not present in Trash');
});
+ it('Edit Offline action - [C297584]', async () => {
+ await dataTable.doubleClickOnRowByName(fileForEditOffline);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsEditOffline();
+
+ expect(await Utils.fileExistsOnOS(fileForEditOffline)).toBe(true, 'File not found in download location');
+ expect(await apis.user.nodes.isFileLockedWrite(fileForEditOfflineId)).toBe(true, `${fileForEditOffline} is not locked`);
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ });
+
+ it('Cancel Editing action - [C297585]', async () => {
+ await dataTable.doubleClickOnRowByName(fileForCancelEditing);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsCancelEditing();
+
+ expect(await apis.user.nodes.isFileLockedWrite(fileForCancelEditingId)).toBe(false, `${fileForCancelEditing} is still locked`);
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ });
+
+ it('Upload new version action - [C297586]', async () => {
+ await dataTable.doubleClickOnRowByName(filePersonalFiles);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(docxFile2);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMajor();
+ await uploadNewVersionDialog.enterDescription('new major version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ expect(await viewer.getFileTitle()).toContain(docxFile2);
+ expect(await apis.user.nodes.getFileVersionType(filePersonalFilesId)).toEqual('MAJOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(filePersonalFilesId)).toEqual('2.0', 'File has incorrect version label');
+ });
+
it('Full screen action - [C279282]', async () => {
await dataTable.doubleClickOnRowByName(docxPersonalFiles);
- expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
+ await viewer.waitForViewerToOpen();
await Utils.getBrowserLog();
await toolbar.clickFullScreen();
@@ -232,7 +287,7 @@ describe('Viewer actions', () => {
it('Share action - [C286313]', async () => {
await dataTable.doubleClickOnRowByName(docxPersonalFiles);
- expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
+ await viewer.waitForViewerToOpen();
await toolbar.clickShare();
expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
@@ -241,7 +296,7 @@ describe('Viewer actions', () => {
it('Manage Versions action - [C286316]', async () => {
await dataTable.doubleClickOnRowByName(docxPersonalFiles);
- expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
+ await viewer.waitForViewerToOpen();
await toolbar.clickMoreActionsManageVersions();
expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
@@ -251,7 +306,7 @@ describe('Viewer actions', () => {
// TODO: disabled until ACA-2176 is done
xit('Pressing ESC in the viewer closes only the action dialog - [C286314]', async () => {
await dataTable.doubleClickOnRowByName(docxPersonalFiles);
- expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
+ await viewer.waitForViewerToOpen();
await toolbar.clickShare();
expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
@@ -261,7 +316,7 @@ describe('Viewer actions', () => {
});
});
- describe('file opened from File Libraries', () => {
+ describe('from File Libraries', () => {
const siteName = `site-${Utils.random()}`;
const destination = `destFL-${Utils.random()}`; let destinationId;
@@ -269,6 +324,11 @@ describe('Viewer actions', () => {
const docxLockedLibraries = `docxLockedFL-${Utils.random()}.docx`; let docxLockedId;
const xlsxLibraries = `xlsxFL-${Utils.random()}.xlsx`;
const pdfLibraries = `pdfFL-${Utils.random()}.pdf`;
+ const fileLibraries = docxFile2; let fileLibrariesId;
+
+ const fileForEditOffline = `file1-${Utils.random()}.docx`; let fileForEditOfflineId;
+ const fileForCancelEditing = `file2-${Utils.random()}.docx`; let fileForCancelEditingId;
+ const fileForUploadNewVersion = `file3-${Utils.random()}.docx`; let fileForUploadNewVersionId;
beforeAll(async (done) => {
await apis.user.sites.createSite(siteName);
@@ -276,10 +336,18 @@ describe('Viewer actions', () => {
destinationId = (await apis.user.nodes.createFolder(destination)).entry.id;
docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, docLibId, docxLibraries)).entry.id;
docxLockedId = (await apis.user.upload.uploadFileWithRename(docxFile, docLibId, docxLockedLibraries)).entry.id;
+ fileLibrariesId = (await apis.user.upload.uploadFile(docxFile2, docLibId)).entry.id;
await apis.user.nodes.lockFile(docxLockedId);
await apis.user.upload.uploadFileWithRename(xlsxFileForMove, docLibId, xlsxLibraries);
await apis.user.upload.uploadFileWithRename(pdfFileForDelete, docLibId, pdfLibraries);
+ fileForEditOfflineId = (await apis.user.upload.uploadFileWithRename(docxFile, docLibId, fileForEditOffline)).entry.id;
+ fileForCancelEditingId = (await apis.user.upload.uploadFileWithRename(docxFile, docLibId, fileForCancelEditing)).entry.id;
+ fileForUploadNewVersionId = (await apis.user.upload.uploadFileWithRename(docxFile, docLibId, fileForUploadNewVersion)).entry.id;
+
+ await apis.user.nodes.lockFile(fileForCancelEditingId);
+ await apis.user.nodes.lockFile(fileForUploadNewVersionId);
+
await loginPage.loginWith(username);
done();
});
@@ -303,7 +371,7 @@ describe('Viewer actions', () => {
done();
});
- it('Correct actions appear in the viewer toolbar - []', async () => {
+ it('Correct actions appear in the viewer toolbar - [C297587]', async () => {
await dataTable.doubleClickOnRowByName(docxLibraries);
await viewer.waitForViewerToOpen();
@@ -324,11 +392,12 @@ describe('Viewer actions', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
- it('Correct actions appear in the viewer toolbar for a locked file - []', async () => {
+ it('Correct actions appear in the viewer toolbar for a locked file - [C297588]', async () => {
await dataTable.doubleClickOnRowByName(docxLockedLibraries);
await viewer.waitForViewerToOpen();
@@ -349,6 +418,7 @@ describe('Viewer actions', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
@@ -421,6 +491,43 @@ describe('Viewer actions', () => {
expect(await dataTable.isItemPresent(pdfLibraries)).toBe(true, 'Item is not present in Trash');
});
+ it('Edit Offline action - [C297589]', async () => {
+ await dataTable.doubleClickOnRowByName(fileForEditOffline);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsEditOffline();
+
+ expect(await Utils.fileExistsOnOS(fileForEditOffline)).toBe(true, 'File not found in download location');
+ expect(await apis.user.nodes.isFileLockedWrite(fileForEditOfflineId)).toBe(true, `${fileForEditOffline} is not locked`);
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ });
+
+ it('Cancel Editing action - [C297590]', async () => {
+ await dataTable.doubleClickOnRowByName(fileForCancelEditing);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsCancelEditing();
+
+ expect(await apis.user.nodes.isFileLockedWrite(fileForCancelEditingId)).toBe(false, `${fileForCancelEditing} is still locked`);
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ });
+
+ it('Upload new version action - [C297591]', async () => {
+ await dataTable.doubleClickOnRowByName(fileLibraries);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(docxFile2);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMajor();
+ await uploadNewVersionDialog.enterDescription('new major version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ expect(await viewer.getFileTitle()).toContain(docxFile2);
+ expect(await apis.user.nodes.getFileVersionType(fileLibrariesId)).toEqual('MAJOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(fileLibrariesId)).toEqual('2.0', 'File has incorrect version label');
+ });
+
it('Share action - [C286374]', async () => {
await dataTable.doubleClickOnRowByName(docxLibraries);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
@@ -440,7 +547,7 @@ describe('Viewer actions', () => {
});
});
- describe('file opened from Recent Files', () => {
+ describe('from Recent Files', () => {
const parent = `parentRF-${Utils.random()}`; let parentId;
const destination = `destRF-${Utils.random()}`; let destinationId;
@@ -448,6 +555,11 @@ describe('Viewer actions', () => {
const docxLockedRecentFiles = `docxLockedRF-${Utils.random()}.docx`; let docxLockedId;
const xlsxRecentFiles = `xlsxRF-${Utils.random()}.xlsx`;
const pdfRecentFiles = `pdfRF-${Utils.random()}.pdf`;
+ const fileRecent = docxFile2; let fileRecentId;
+
+ const fileForEditOffline = `file1-${Utils.random()}.docx`; let fileForEditOfflineId;
+ const fileForCancelEditing = `file2-${Utils.random()}.docx`; let fileForCancelEditingId;
+ const fileForUploadNewVersion = `file3-${Utils.random()}.docx`; let fileForUploadNewVersionId;
beforeAll(async (done) => {
await apis.user.search.waitForApi(username, {expect: 0});
@@ -455,11 +567,20 @@ describe('Viewer actions', () => {
destinationId = (await apis.user.nodes.createFolder(destination)).entry.id;
docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxRecentFiles)).entry.id;
docxLockedId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxLockedRecentFiles)).entry.id;
+ fileRecentId = (await apis.user.upload.uploadFile(docxFile2, parentId)).entry.id;
+
+ fileForEditOfflineId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, fileForEditOffline)).entry.id;
+ fileForCancelEditingId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, fileForCancelEditing)).entry.id;
+ fileForUploadNewVersionId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, fileForUploadNewVersion)).entry.id;
+
+ await apis.user.nodes.lockFile(fileForCancelEditingId);
+ await apis.user.nodes.lockFile(fileForUploadNewVersionId);
+
await apis.user.nodes.lockFile(docxLockedId);
await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxRecentFiles);
await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfRecentFiles);
- await apis.user.search.waitForApi(username, {expect: 4});
+ await apis.user.search.waitForApi(username, {expect: 8});
await loginPage.loginWith(username);
done();
@@ -482,7 +603,7 @@ describe('Viewer actions', () => {
done();
});
- it('Correct actions appear in the viewer toolbar - []', async () => {
+ it('Correct actions appear in the viewer toolbar - [C297592]', async () => {
await dataTable.doubleClickOnRowByName(docxRecentFiles);
await viewer.waitForViewerToOpen();
@@ -503,11 +624,12 @@ describe('Viewer actions', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
- it('Correct actions appear in the viewer toolbar for a locked file - []', async () => {
+ it('Correct actions appear in the viewer toolbar for a locked file - [C297593]', async () => {
await dataTable.doubleClickOnRowByName(docxLockedRecentFiles);
await viewer.waitForViewerToOpen();
@@ -528,6 +650,7 @@ describe('Viewer actions', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
@@ -601,6 +724,43 @@ describe('Viewer actions', () => {
expect(await dataTable.isItemPresent(pdfRecentFiles)).toBe(true, 'Item is not present in Trash');
});
+ it('Edit Offline action - [C297594]', async () => {
+ await dataTable.doubleClickOnRowByName(fileForEditOffline);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsEditOffline();
+
+ expect(await Utils.fileExistsOnOS(fileForEditOffline)).toBe(true, 'File not found in download location');
+ expect(await apis.user.nodes.isFileLockedWrite(fileForEditOfflineId)).toBe(true, `${fileForEditOffline} is not locked`);
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ });
+
+ it('Cancel Editing action - [C297595]', async () => {
+ await dataTable.doubleClickOnRowByName(fileForCancelEditing);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsCancelEditing();
+
+ expect(await apis.user.nodes.isFileLockedWrite(fileForCancelEditingId)).toBe(false, `${fileForCancelEditing} is still locked`);
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ });
+
+ it('Upload new version action - [C297596]', async () => {
+ await dataTable.doubleClickOnRowByName(fileRecent);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(docxFile2);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMajor();
+ await uploadNewVersionDialog.enterDescription('new major version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ expect(await viewer.getFileTitle()).toContain(docxFile2);
+ expect(await apis.user.nodes.getFileVersionType(fileRecentId)).toEqual('MAJOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(fileRecentId)).toEqual('2.0', 'File has incorrect version label');
+ });
+
it('Share action - [C286388]', async () => {
await dataTable.doubleClickOnRowByName(docxRecentFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
@@ -620,7 +780,7 @@ describe('Viewer actions', () => {
});
});
- describe('file opened from Shared Files', () => {
+ describe('from Shared Files', () => {
const parent = `parentSF-${Utils.random()}`; let parentId;
const destination = `destSF-${Utils.random()}`; let destinationId;
@@ -628,6 +788,11 @@ describe('Viewer actions', () => {
const docxLockedSharedFiles = `docxLockedSF-${Utils.random()}.docx`; let docxLockedId;
const xlsxSharedFiles = `xlsxSF-${Utils.random()}.xlsx`; let xlsxFileId;
const pdfSharedFiles = `pdfSF-${Utils.random()}.pdf`; let pdfFileId;
+ const fileShared = docxFile2; let fileSharedId;
+
+ const fileForEditOffline = `file1-${Utils.random()}.docx`; let fileForEditOfflineId;
+ const fileForCancelEditing = `file2-${Utils.random()}.docx`; let fileForCancelEditingId;
+ const fileForUploadNewVersion = `file3-${Utils.random()}.docx`; let fileForUploadNewVersionId;
beforeAll(async (done) => {
parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
@@ -636,10 +801,18 @@ describe('Viewer actions', () => {
docxLockedId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxLockedSharedFiles)).entry.id;
xlsxFileId = (await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxSharedFiles)).entry.id;
pdfFileId = (await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfSharedFiles)).entry.id;
+ fileSharedId = (await apis.user.upload.uploadFile(docxFile2, parentId)).entry.id;
+
+ fileForEditOfflineId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, fileForEditOffline)).entry.id;
+ fileForCancelEditingId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, fileForCancelEditing)).entry.id;
+ fileForUploadNewVersionId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, fileForUploadNewVersion)).entry.id;
+
+ await apis.user.nodes.lockFile(fileForCancelEditingId);
+ await apis.user.nodes.lockFile(fileForUploadNewVersionId);
await apis.user.nodes.lockFile(docxLockedId);
- await apis.user.shared.shareFilesByIds([docxFileId, docxLockedId, xlsxFileId, pdfFileId])
- await apis.user.shared.waitForApi({expect: 4});
+ await apis.user.shared.shareFilesByIds([docxFileId, docxLockedId, xlsxFileId, pdfFileId, fileForCancelEditingId, fileForEditOfflineId, fileForUploadNewVersionId, fileSharedId])
+ await apis.user.shared.waitForApi({expect: 8});
await loginPage.loginWith(username);
done();
@@ -662,7 +835,7 @@ describe('Viewer actions', () => {
done();
});
- it('Correct actions appear in the viewer toolbar - []', async () => {
+ it('Correct actions appear in the viewer toolbar - [C297597]', async () => {
await dataTable.doubleClickOnRowByName(docxSharedFiles);
await viewer.waitForViewerToOpen();
@@ -683,11 +856,12 @@ describe('Viewer actions', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
- it('Correct actions appear in the viewer toolbar for a locked file - []', async () => {
+ it('Correct actions appear in the viewer toolbar for a locked file - [C297598]', async () => {
await dataTable.doubleClickOnRowByName(docxLockedSharedFiles);
await viewer.waitForViewerToOpen();
@@ -708,6 +882,7 @@ describe('Viewer actions', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
@@ -781,6 +956,43 @@ describe('Viewer actions', () => {
expect(await dataTable.isItemPresent(pdfSharedFiles)).toBe(true, 'Item is not present in Trash');
});
+ it('Edit Offline action - [C297601]', async () => {
+ await dataTable.doubleClickOnRowByName(fileForEditOffline);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsEditOffline();
+
+ expect(await Utils.fileExistsOnOS(fileForEditOffline)).toBe(true, 'File not found in download location');
+ expect(await apis.user.nodes.isFileLockedWrite(fileForEditOfflineId)).toBe(true, `${fileForEditOffline} is not locked`);
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ });
+
+ it('Cancel Editing action - [C297602]', async () => {
+ await dataTable.doubleClickOnRowByName(fileForCancelEditing);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsCancelEditing();
+
+ expect(await apis.user.nodes.isFileLockedWrite(fileForCancelEditingId)).toBe(false, `${fileForCancelEditing} is still locked`);
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ });
+
+ it('Upload new version action - [C297603]', async () => {
+ await dataTable.doubleClickOnRowByName(fileShared);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(docxFile2);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMajor();
+ await uploadNewVersionDialog.enterDescription('new major version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ expect(await viewer.getFileTitle()).toContain(docxFile2);
+ expect(await apis.user.nodes.getFileVersionType(fileSharedId)).toEqual('MAJOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(fileSharedId)).toEqual('2.0', 'File has incorrect version label');
+ });
+
it('Share action - [C286381]', async () => {
await dataTable.doubleClickOnRowByName(docxSharedFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
@@ -800,7 +1012,7 @@ describe('Viewer actions', () => {
});
});
- describe('file opened from Favorites', () => {
+ describe('from Favorites', () => {
const parent = `parentFav-${Utils.random()}`;
let parentId;
const destination = `destFav-${Utils.random()}`;
@@ -810,6 +1022,11 @@ describe('Viewer actions', () => {
const docxLockedFavorites = `docxLockedFav-${Utils.random()}.docx`; let docxLockedId;
const xlsxFavorites = `xlsxFav-${Utils.random()}.xlsx`; let xlsxFileId;
const pdfFavorites = `pdfFav-${Utils.random()}.pdf`; let pdfFileId;
+ const fileFav = docxFile2; let fileFavId;
+
+ const fileForEditOffline = `file1-${Utils.random()}.docx`; let fileForEditOfflineId;
+ const fileForCancelEditing = `file2-${Utils.random()}.docx`; let fileForCancelEditingId;
+ const fileForUploadNewVersion = `file3-${Utils.random()}.docx`; let fileForUploadNewVersionId;
beforeAll(async (done) => {
parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
@@ -818,10 +1035,18 @@ describe('Viewer actions', () => {
docxLockedId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxLockedFavorites)).entry.id;
xlsxFileId = (await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxFavorites)).entry.id;
pdfFileId = (await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfFavorites)).entry.id;
+ fileFavId = (await apis.user.upload.uploadFile(docxFile2, parentId)).entry.id;
+
+ fileForEditOfflineId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, fileForEditOffline)).entry.id;
+ fileForCancelEditingId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, fileForCancelEditing)).entry.id;
+ fileForUploadNewVersionId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, fileForUploadNewVersion)).entry.id;
+
+ await apis.user.nodes.lockFile(fileForCancelEditingId);
+ await apis.user.nodes.lockFile(fileForUploadNewVersionId);
await apis.user.nodes.lockFile(docxLockedId);
- await apis.user.favorites.addFavoritesByIds('file', [docxFileId, docxLockedId, xlsxFileId, pdfFileId])
- await apis.user.favorites.waitForApi({expect: 4});
+ await apis.user.favorites.addFavoritesByIds('file', [docxFileId, docxLockedId, xlsxFileId, pdfFileId, fileForEditOfflineId, fileForCancelEditingId, fileForUploadNewVersionId, fileFavId])
+ await apis.user.favorites.waitForApi({expect: 8});
await loginPage.loginWith(username);
done();
@@ -844,7 +1069,7 @@ describe('Viewer actions', () => {
done();
});
- it('Correct actions appear in the viewer toolbar - []', async () => {
+ it('Correct actions appear in the viewer toolbar - [C297599]', async () => {
await dataTable.doubleClickOnRowByName(docxFavorites);
await viewer.waitForViewerToOpen();
@@ -865,11 +1090,12 @@ describe('Viewer actions', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
- it('Correct actions appear in the viewer toolbar for a locked file - []', async () => {
+ it('Correct actions appear in the viewer toolbar for a locked file - [C297600]', async () => {
await dataTable.doubleClickOnRowByName(docxLockedFavorites);
await viewer.waitForViewerToOpen();
@@ -890,6 +1116,7 @@ describe('Viewer actions', () => {
expect(await toolbar.menu.isMovePresent()).toBe(true, `Move is not displayed`);
expect(await toolbar.menu.isDeletePresent()).toBe(true, `Delete is not displayed`);
expect(await toolbar.menu.isManageVersionsPresent()).toBe(true, `Manage versions is not displayed`);
+ expect(await toolbar.menu.isUploadNewVersionPresent()).toBe(true, `Upload new version is not displayed`);
await toolbar.closeMoreMenu();
});
@@ -963,6 +1190,43 @@ describe('Viewer actions', () => {
expect(await dataTable.isItemPresent(pdfFavorites)).toBe(true, 'Item is not present in Trash');
});
+ it('Edit Offline action - [C297604]', async () => {
+ await dataTable.doubleClickOnRowByName(fileForEditOffline);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsEditOffline();
+
+ expect(await Utils.fileExistsOnOS(fileForEditOffline)).toBe(true, 'File not found in download location');
+ expect(await apis.user.nodes.isFileLockedWrite(fileForEditOfflineId)).toBe(true, `${fileForEditOffline} is not locked`);
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ });
+
+ it('Cancel Editing action - [C297605]', async () => {
+ await dataTable.doubleClickOnRowByName(fileForCancelEditing);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsCancelEditing();
+
+ expect(await apis.user.nodes.isFileLockedWrite(fileForCancelEditingId)).toBe(false, `${fileForCancelEditing} is still locked`);
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ });
+
+ it('Upload new version action - [C297606]', async () => {
+ await dataTable.doubleClickOnRowByName(fileFav);
+ await viewer.waitForViewerToOpen();
+ await toolbar.clickMoreActionsUploadNewVersion();
+
+ await Utils.uploadFileNewVersion(docxFile2);
+ await page.waitForDialog();
+
+ await uploadNewVersionDialog.clickMajor();
+ await uploadNewVersionDialog.enterDescription('new major version description');
+ await uploadNewVersionDialog.clickUpload();
+
+ expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not open');
+ expect(await viewer.getFileTitle()).toContain(docxFile2);
+ expect(await apis.user.nodes.getFileVersionType(fileFavId)).toEqual('MAJOR', 'File has incorrect version type');
+ expect(await apis.user.nodes.getFileVersionLabel(fileFavId)).toEqual('2.0', 'File has incorrect version label');
+ });
+
it('Share action - [C286395]', async () => {
await dataTable.doubleClickOnRowByName(docxFavorites);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
diff --git a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts
index cc6bb1786..a42966463 100755
--- a/e2e/utilities/repo-client/apis/nodes/nodes-api.ts
+++ b/e2e/utilities/repo-client/apis/nodes/nodes-api.ts
@@ -58,6 +58,21 @@ export class NodesApi extends RepoApi {
return '';
}
+ async getFileVersionType(nodeId: string) {
+ const prop = await this.getNodeProperty(nodeId, 'cm:versionType');
+ if ( prop ) {
+ return prop;
+ }
+ return '';
+ }
+ async getFileVersionLabel(nodeId: string) {
+ const prop = await this.getNodeProperty(nodeId, 'cm:versionLabel');
+ if ( prop ) {
+ return prop;
+ }
+ return '';
+ }
+
async getSharedId(nodeId: string) {
return await this.getNodeProperty(nodeId, 'qshare:sharedId');
@@ -121,7 +136,7 @@ export class NodesApi extends RepoApi {
return await this.createNode('cm:content', name, parentId, title, description, imageProps);
}
- async createNode(nodeType: string, name: string, parentId: string = '-my-', title: string = '', description: string = '', imageProps: any = null) {
+ async createNode(nodeType: string, name: string, parentId: string = '-my-', title: string = '', description: string = '', imageProps: any = null, majorVersion: boolean = true) {
const nodeBody = {
name,
nodeType,
@@ -135,11 +150,11 @@ export class NodesApi extends RepoApi {
}
await this.apiAuth();
- return await this.nodesApi.createNode(parentId, nodeBody);
+ return await this.nodesApi.createNode(parentId, nodeBody, { majorVersion: true });
}
- async createFile(name: string, parentId: string = '-my-', title: string = '', description: string = '') {
- return await this.createNode('cm:content', name, parentId, title, description);
+ async createFile(name: string, parentId: string = '-my-', title: string = '', description: string = '', majorVersion: boolean = true) {
+ return await this.createNode('cm:content', name, parentId, title, description, majorVersion);
}
async createImage(name: string, parentId: string = '-my-', title: string = '', description: string = '') {
@@ -220,4 +235,17 @@ export class NodesApi extends RepoApi {
await this.apiAuth();
return await this.nodesApi.unlockNode(nodeId);
}
+
+ async getLockType(nodeId: string) {
+ return await this.getNodeProperty(nodeId, 'cm:lockType');
+ }
+
+ async getLockOwner(nodeId: string) {
+ return await this.getNodeProperty(nodeId, 'cm:lockOwner');
+ }
+
+ async isFileLockedWrite(nodeId: string) {
+ await this.apiAuth();
+ return (await this.getLockType(nodeId)) === 'WRITE_LOCK';
+ }
}
diff --git a/e2e/utilities/utils.ts b/e2e/utilities/utils.ts
index ec2c4c992..d77ed9196 100755
--- a/e2e/utilities/utils.ts
+++ b/e2e/utilities/utils.ts
@@ -23,11 +23,13 @@
* along with Alfresco. If not, see .
*/
-import { browser, protractor, promise, ElementFinder, ExpectedConditions as EC } from 'protractor';
+import { browser, protractor, promise, ElementFinder, ExpectedConditions as EC, by } from 'protractor';
import { BROWSER_WAIT_TIMEOUT, E2E_ROOT_PATH, EXTENSIBILITY_CONFIGS } from '../configs';
+
const path = require('path');
const fs = require('fs');
+
export class Utils {
static string257 = 'assembly doctor offender limit clearance inspiration baker fraud active apples trait brainstorm concept breaks down presidential \
reluctance summary communication patience books opponent banana economist head develop project swear unanimous read conservation';
@@ -130,4 +132,10 @@ export class Utils {
return new Date(date).toLocaleDateString('en-US');
}
+
+ static async uploadFileNewVersion(fileFromOS: string) {
+ const el = browser.element(by.id('app-upload-file-version'));
+ await el.sendKeys(`${E2E_ROOT_PATH}/resources/test-files/${fileFromOS}`);
+ }
+
}