[ACA-1628] async await (#693)

* async / await on login component and utils

* more async / awaits

* remove fdescribe

* expect for exact totalItems in waitForApi methods
other async / awaits

* pagination tests

* more tries

* disable selenium promise manager

* try to fix shared-links tests

* re-enable selenium_promise_manager and some more fixes

* add target es2017 to e2e

* set target to es2017 on tsconfig.spec.json

* other tries

* forgotten console.log

* disable pagination tests

* some fixes for pagination

* temporary fix viewer actions tests

* fix some actions tests

* fix some tests for actions

* fix some tests for undo action

* try to fix some more tests

* fixes for toolbar actions

* fix NoSuchElementError for openMoreMenu

* fix NoSuchElementError for rightClickOnMultipleSelection

* fixes for mark as favourite

* more fixes

* more fixes

* change order of some expects

* forgot describe
This commit is contained in:
Adina Parpalita 2018-10-08 11:21:02 +03:00 committed by Denys Vuika
parent 0d4795bfa8
commit 7d73ae309c
53 changed files with 1553 additions and 1662 deletions

View File

@ -44,39 +44,43 @@ export class Breadcrumb extends Component {
return this.items.get(nth - 1); return this.items.get(nth - 1);
} }
getNthItemName(nth: number) { async getNthItemName(nth: number) {
return this.getNthItem(nth).getText(); return await this.getNthItem(nth).getText();
} }
getItemsCount(): promise.Promise<number> { async getItemsCount() {
return this.items.count(); return await this.items.count();
} }
getAllItems() { async getAllItems() {
return this.items.map(elem => elem.getText().then(str => str.split('\nchevron_right')[0])); return this.items.map(async elem => {
const str = await elem.getText();
return str.split('\nchevron_right')[0];
});
} }
getFirstItemName(): promise.Promise<string> { async getFirstItemName() {
return this.items.get(0).getText(); return await this.items.get(0).getText();
} }
getCurrentItem() { getCurrentItem() {
return this.currentItem; return this.currentItem;
} }
getCurrentItemName(): promise.Promise<string> { async getCurrentItemName() {
return this.currentItem.getText(); return await this.currentItem.getText();
} }
clickItem(name: string) { async clickItem(name: string) {
return this.component.element(by.css(`${Breadcrumb.selectors.item}[title=${name}]`)).click(); const elem = this.component.element(by.css(`${Breadcrumb.selectors.item}[title=${name}]`));
await elem.click();
} }
clickNthItem(nth: number) { async clickNthItem(nth: number) {
return this.getNthItem(nth).click(); await this.getNthItem(nth).click();
} }
getNthItemTooltip(nth: number) { async getNthItemTooltip(nth: number) {
return this.getNthItem(nth).getAttribute('title'); return await this.getNthItem(nth).getAttribute('title');
} }
} }

View File

@ -23,7 +23,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { ElementFinder, element, by, ExpectedConditions as EC, browser } from 'protractor'; import { ElementFinder, ExpectedConditions as EC, browser } from 'protractor';
import { BROWSER_WAIT_TIMEOUT } from '../configs'; import { BROWSER_WAIT_TIMEOUT } from '../configs';
export abstract class Component { export abstract class Component {
@ -37,7 +37,7 @@ export abstract class Component {
: browser.$$(locator).first(); : browser.$$(locator).first();
} }
wait() { async wait() {
return browser.wait(EC.presenceOf(this.component), BROWSER_WAIT_TIMEOUT); await browser.wait(EC.presenceOf(this.component), BROWSER_WAIT_TIMEOUT);
} }
} }

View File

@ -23,7 +23,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { ElementFinder, ElementArrayFinder, promise, by, browser, ExpectedConditions as EC, protractor } from 'protractor'; import { ElementFinder, ElementArrayFinder, by, browser, ExpectedConditions as EC, protractor } from 'protractor';
import { BROWSER_WAIT_TIMEOUT } from '../../configs'; import { BROWSER_WAIT_TIMEOUT } from '../../configs';
import { Component } from '../component'; import { Component } from '../component';
import { Menu } from '../menu/menu'; import { Menu } from '../menu/menu';
@ -76,252 +76,243 @@ export class DataTable extends Component {
// Wait methods (waits for elements) // Wait methods (waits for elements)
waitForHeader() { waitForHeader() {
try {
return browser.wait(EC.presenceOf(this.head), BROWSER_WAIT_TIMEOUT); return browser.wait(EC.presenceOf(this.head), BROWSER_WAIT_TIMEOUT);
} catch (error) {
console.log('----- wait for header catch : ', error);
}
} }
waitForEmptyState() { async waitForEmptyState() {
return browser.wait(EC.presenceOf(this.emptyList), BROWSER_WAIT_TIMEOUT); await browser.wait(EC.presenceOf(this.emptyList), BROWSER_WAIT_TIMEOUT);
} }
// Header/Column methods // Header/Column methods
getColumnHeaders(): ElementArrayFinder { getColumnHeaders() {
const locator = by.css(DataTable.selectors.columnHeader); const locator = by.css(DataTable.selectors.columnHeader);
return this.head.all(locator); return this.head.all(locator);
} }
getNthColumnHeader(nth: number): ElementFinder { async getHeaderText() {
const el = this.getColumnHeaders();
return await el.getText();
}
getNthColumnHeader(nth: number) {
return this.getColumnHeaders().get(nth - 1); return this.getColumnHeaders().get(nth - 1);
} }
getColumnHeaderByLabel(label: string): ElementFinder { getColumnHeaderByLabel(label: string) {
const locator = by.cssContainingText(DataTable.selectors.columnHeader, label); const locator = by.cssContainingText(DataTable.selectors.columnHeader, label);
return this.head.element(locator); return this.head.element(locator);
} }
getSortedColumnHeader(): ElementFinder { getSortedColumnHeader() {
const locator = by.css(DataTable.selectors.sortedColumnHeader); const locator = by.css(DataTable.selectors.sortedColumnHeader);
return this.head.element(locator); return this.head.element(locator);
} }
getSortingOrder() { async getSortedColumnHeaderText() {
return this.getSortedColumnHeader() return await this.getSortedColumnHeader().getText();
.getAttribute('class') }
.then(str => {
async getSortingOrder() {
const str = await this.getSortedColumnHeader().getAttribute('class');
if (str.includes('asc')) { if (str.includes('asc')) {
return 'asc'; return 'asc';
} else { }
else {
if (str.includes('desc')) { if (str.includes('desc')) {
return 'desc'; return 'desc';
} }
} }
});
} }
sortByColumn(columnName: string): promise.Promise<void> { async sortByColumn(columnName: string) {
const column = this.getColumnHeaderByLabel(columnName); const column = this.getColumnHeaderByLabel(columnName);
const click = browser const click = browser.actions().mouseMove(column).click();
.actions()
.mouseMove(column)
.click();
return click.perform(); await click.perform();
} }
// Rows methods // Rows methods
getRows(): ElementArrayFinder { getRows() {
return this.body.all(by.css(DataTable.selectors.row)); return this.body.all(by.css(DataTable.selectors.row));
} }
countRows(): promise.Promise<number> { async countRows() {
return this.getRows().count(); return await this.getRows().count();
} }
getSelectedRows(): ElementArrayFinder { getSelectedRows() {
return this.body.all(by.css(DataTable.selectors.selectedRow)); return this.body.all(by.css(DataTable.selectors.selectedRow));
} }
countSelectedRows(): promise.Promise<number> { async countSelectedRows() {
return this.getSelectedRows().count(); return await this.getSelectedRows().count();
} }
getNthRow(nth: number): ElementFinder { getNthRow(nth: number) {
return this.getRows().get(nth - 1); return this.getRows().get(nth - 1);
} }
getRowByName(name: string): ElementFinder { getRowByName(name: string) {
return this.body.element(by.cssContainingText(DataTable.selectors.row, name)); return this.body.element(by.cssContainingText(DataTable.selectors.row, name));
} }
getRowFirstCell(name: string) { getRowFirstCell(name: string) {
return this.getRowByName(name) return this.getRowByName(name).all(by.css(DataTable.selectors.cell)).get(0);
.all(by.css(DataTable.selectors.cell))
.get(0);
} }
getRowNameCell(name: string) { getRowNameCell(name: string) {
return this.getRowByName(name) return this.getRowByName(name).all(by.css(DataTable.selectors.cell)).get(1);
.all(by.css(DataTable.selectors.cell))
.get(1);
} }
getRowNameCellText(name: string) { getRowNameCellText(name: string) {
return this.getRowNameCell(name).$('span'); return this.getRowNameCell(name).$('span');
} }
getItemNameTooltip(name: string): promise.Promise<string> { async getItemNameTooltip(name: string) {
return this.getRowNameCellText(name).getAttribute('title'); return await this.getRowNameCellText(name).getAttribute('title');
} }
hasCheckMarkIcon(itemName: string) { async hasCheckMarkIcon(itemName: string) {
return this.getRowByName(itemName) return await this.getRowByName(itemName).element(by.css(DataTable.selectors.selectedIcon)).isPresent();
.element(by.css(DataTable.selectors.selectedIcon))
.isPresent();
} }
getNameLink(itemName: string) { getNameLink(itemName: string) {
return this.getRowNameCell(itemName).$(DataTable.selectors.nameLink); return this.getRowNameCell(itemName).$(DataTable.selectors.nameLink);
} }
hasLinkOnName(itemName: string) { async hasLinkOnName(itemName: string) {
return this.getNameLink(itemName).isPresent(); return await this.getNameLink(itemName).isPresent();
} }
// Navigation/selection methods // Navigation/selection methods
doubleClickOnRowByName(name: string): promise.Promise<any> { async doubleClickOnRowByName(name: string) {
const item = this.getRowFirstCell(name); const item = this.getRowFirstCell(name);
return Utils.waitUntilElementClickable(item).then(() => await Utils.waitUntilElementClickable(item);
browser await browser.actions().mouseMove(item).perform();
.actions() await browser.actions().click().click().perform();
.mouseMove(item)
.click()
.click()
.perform()
);
} }
selectItem(name: string): promise.Promise<any> { async selectItem(name: string) {
try{
const item = this.getRowFirstCell(name); const item = this.getRowFirstCell(name);
return Utils.waitUntilElementClickable(item).then(() => item.click()); // await Utils.waitUntilElementClickable(item);
await item.click();
} catch (e) {
console.log('--- select item catch : ', e);
}
} }
clickNameLink(itemName: string) { async clickNameLink(itemName: string) {
return this.getNameLink(itemName).click(); await this.getNameLink(itemName).click();
} }
selectMultipleItems(names: string[]): promise.Promise<void> { async selectMultipleItems(names: string[]) {
return this.clearSelection() await this.clearSelection();
.then(() => await browser.actions().sendKeys(protractor.Key.COMMAND).perform();
browser for (const name of names) {
.actions() await this.selectItem(name);
.sendKeys(protractor.Key.COMMAND) }
.perform() await browser.actions().sendKeys(protractor.Key.NULL).perform();
)
.then(() => {
names.forEach(name => {
this.selectItem(name);
});
})
.then(() =>
browser
.actions()
.sendKeys(protractor.Key.NULL)
.perform()
);
} }
clearSelection(): promise.Promise<void> { async clearSelection() {
return this.getSelectedRows() try {
.count() const count = await this.countSelectedRows();
.then(count => {
if (count !== 0) { if (count !== 0) {
browser.refresh().then(() => this.waitForHeader()); await browser.refresh();
await this.waitForHeader();
}
} catch (error) {
console.log('------ clearSelection catch : ', error);
} }
});
} }
async rightClickOnItem(itemName: string) { async rightClickOnItem(itemName: string) {
const item = this.getRowFirstCell(itemName); const item = this.getRowFirstCell(itemName);
await browser await browser.actions().click(item, protractor.Button.RIGHT).perform();
.actions()
.click(item, protractor.Button.RIGHT)
.perform();
} }
async rightClickOnMultipleSelection() { async rightClickOnMultipleSelection() {
await this.waitForHeader();
const itemFromSelection = this.getSelectedRows().get(0); const itemFromSelection = this.getSelectedRows().get(0);
await browser await browser.actions().click(itemFromSelection, protractor.Button.RIGHT).perform();
.actions()
.click(itemFromSelection, protractor.Button.RIGHT)
.perform();
} }
getItemLocation(name: string) { getItemLocationEl(name: string) {
return this.getRowByName(name).element(this.locationLink); return this.getRowByName(name).element(this.locationLink);
} }
getItemLocationTooltip(name: string): promise.Promise<string> { async getItemLocation(name: string) {
return this.getItemLocation(name) return await this.getItemLocationEl(name).getText();
.$('a')
.getAttribute('title');
} }
getItemLocationTileAttr(name: string) { async getItemLocationTooltip(name: string) {
const location = this.getItemLocation(name).$('a'); return await this.getItemLocationEl(name).$('a').getAttribute('title');
}
async getItemLocationTileAttr(name: string) {
const location = this.getItemLocationEl(name).$('a');
const condition = () => location.getAttribute('title').then(value => value && value.length > 0); const condition = () => location.getAttribute('title').then(value => value && value.length > 0);
browser await browser.actions().mouseMove(location).perform();
.actions()
.mouseMove(location)
.perform();
browser.wait(condition, BROWSER_WAIT_TIMEOUT); await browser.wait(condition, BROWSER_WAIT_TIMEOUT);
return location.getAttribute('title'); return await location.getAttribute('title');
} }
clickItemLocation(name: string) { async clickItemLocation(name: string) {
return this.getItemLocation(name).click(); await this.getItemLocationEl(name).click();
} }
// empty state methods // empty state methods
isEmptyList(): promise.Promise<boolean> { async isEmptyList() {
return this.emptyList.isPresent(); return await this.emptyList.isPresent();
} }
isEmptyWithDragAndDrop(): promise.Promise<boolean> { async isEmptyWithDragAndDrop() {
return this.emptyFolderDragAndDrop.isDisplayed(); return await this.emptyFolderDragAndDrop.isDisplayed();
} }
getEmptyDragAndDropText(): promise.Promise<string> { async getEmptyDragAndDropText() {
return this.isEmptyWithDragAndDrop().then(() => { const isEmpty = await this.isEmptyWithDragAndDrop();
return this.emptyFolderDragAndDrop.getText(); if (isEmpty) {
}); return await this.emptyFolderDragAndDrop.getText();
}
} }
getEmptyStateTitle(): promise.Promise<string> { async getEmptyStateTitle() {
return this.isEmptyList().then(() => { const isEmpty = await this.isEmptyList();
return this.emptyListTitle.getText(); if (isEmpty) {
}); return await this.emptyListTitle.getText();
}
} }
getEmptyStateSubtitle(): promise.Promise<string> { async getEmptyStateSubtitle() {
return this.isEmptyList().then(() => { const isEmpty = await this.isEmptyList();
return this.emptyListSubtitle.getText(); if (isEmpty) {
}); return await this.emptyListSubtitle.getText();
}
} }
getEmptyStateText(): promise.Promise<string> { async getEmptyStateText() {
return this.isEmptyList().then(() => { const isEmpty = await this.isEmptyList();
return this.emptyListText.getText(); if (isEmpty) {
}); return await this.emptyListText.getText();
}
} }
getCellsContainingName(name: string) { async getCellsContainingName(name: string) {
return this.getRows() const rows = this.getRows().all(by.cssContainingText(DataTable.selectors.cell, name));
.all(by.cssContainingText(DataTable.selectors.cell, name)) return rows.map(async cell => await cell.getText());
.map(cell => cell.getText());
} }
async hasContextMenu() { async hasContextMenu() {
return (await this.menu.getItemsCount()) > 0; const count = await this.menu.getItemsCount();
return count > 0;
} }
} }

View File

@ -47,7 +47,7 @@ export class ConfirmDialog extends Component {
} }
async waitForDialogToClose() { async waitForDialogToClose() {
return await browser.wait(EC.stalenessOf(this.title), BROWSER_WAIT_TIMEOUT); await browser.wait(EC.stalenessOf(this.title), BROWSER_WAIT_TIMEOUT);
} }
async getTitle() { async getTitle() {

View File

@ -51,58 +51,53 @@ export class CreateOrEditFolderDialog extends Component {
super(CreateOrEditFolderDialog.selectors.root, ancestor); super(CreateOrEditFolderDialog.selectors.root, ancestor);
} }
waitForDialogToOpen() { async waitForDialogToOpen() {
return browser.wait(EC.presenceOf(this.title), BROWSER_WAIT_TIMEOUT) await browser.wait(EC.presenceOf(this.title), BROWSER_WAIT_TIMEOUT);
.then(() => browser.wait(EC.presenceOf(browser.element(by.css('.cdk-overlay-backdrop'))), BROWSER_WAIT_TIMEOUT)); await browser.wait(EC.presenceOf(browser.element(by.css('.cdk-overlay-backdrop'))), BROWSER_WAIT_TIMEOUT);
} }
waitForDialogToClose() { async waitForDialogToClose() {
return browser.wait(EC.stalenessOf(this.title), BROWSER_WAIT_TIMEOUT); await browser.wait(EC.stalenessOf(this.title), BROWSER_WAIT_TIMEOUT);
} }
getTitle(): promise.Promise<string> { async getTitle() {
return this.title.getText(); return await this.title.getText();
} }
isValidationMessageDisplayed(): promise.Promise<boolean> { async isValidationMessageDisplayed() {
return this.validationMessage.isDisplayed(); return await this.validationMessage.isDisplayed();
} }
getValidationMessage(): promise.Promise<string> { async getValidationMessage() {
return this.isValidationMessageDisplayed() await this.isValidationMessageDisplayed();
.then(() => this.validationMessage.getText()); return await this.validationMessage.getText();
} }
enterName(name: string) { async enterName(name: string) {
return this.nameInput.clear() await this.nameInput.clear();
// .then(() => this.nameInput.sendKeys(name)); await Utils.typeInField(this.nameInput, name);
.then(() => Utils.typeInField(this.nameInput, name));
} }
enterDescription(description: string) { async enterDescription(description: string) {
return this.descriptionTextArea.clear() await this.descriptionTextArea.clear();
// .then(() => this.descriptionTextArea.sendKeys(description)); await Utils.typeInField(this.descriptionTextArea, description);
.then(() => Utils.typeInField(this.descriptionTextArea, description));
} }
deleteNameWithBackspace(): promise.Promise<void> { async deleteNameWithBackspace() {
return this.nameInput.clear() await this.nameInput.clear();
.then(() => { await this.nameInput.sendKeys(' ', protractor.Key.CONTROL, 'a', protractor.Key.NULL, protractor.Key.BACK_SPACE);
return this.nameInput.sendKeys(' ', protractor.Key.CONTROL, 'a', protractor.Key.NULL, protractor.Key.BACK_SPACE);
});
} }
clickCreate() { async clickCreate() {
return this.createButton.click(); await this.createButton.click();
} }
clickCancel() { async clickCancel() {
return this.cancelButton.click() await this.cancelButton.click();
.then(() => this.waitForDialogToClose()); await this.waitForDialogToClose();
} }
clickUpdate() { async clickUpdate() {
return this.updateButton.click(); await this.updateButton.click();
} }
} }

View File

@ -45,7 +45,7 @@ export class ShareDialog extends Component {
} }
async waitForDialogToClose() { async waitForDialogToClose() {
return await browser.wait(EC.stalenessOf(this.title), BROWSER_WAIT_TIMEOUT); await browser.wait(EC.stalenessOf(this.title), BROWSER_WAIT_TIMEOUT);
} }
async isDialogOpen() { async isDialogOpen() {

View File

@ -46,18 +46,18 @@ export class Header extends Component {
super('adf-layout-header', ancestor); super('adf-layout-header', ancestor);
} }
searchForText(text: string) { async searchForText(text: string) {
return this.searchBar.clear() await this.searchBar.clear();
.then(() => this.searchBar.sendKeys(text)) await this.searchBar.sendKeys(text);
.then(() => this.searchBar.sendKeys(protractor.Key.ENTER)); await this.searchBar.sendKeys(protractor.Key.ENTER);
} }
async waitForSearchButton() { async waitForSearchButton() {
return await Utils.waitUntilElementClickable(this.searchButton); await Utils.waitUntilElementClickable(this.searchButton);
} }
async waitForSearchBar() { async waitForSearchBar() {
return await Utils.waitUntilElementClickable(this.searchBar); await Utils.waitUntilElementClickable(this.searchBar);
} }
} }

View File

@ -23,7 +23,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { ElementFinder, by, promise } from 'protractor'; import { ElementFinder, by } from 'protractor';
import { Menu } from '../menu/menu'; import { Menu } from '../menu/menu';
import { Component } from '../component'; import { Component } from '../component';
@ -43,22 +43,20 @@ export class UserInfo extends Component {
super('aca-current-user', ancestor); super('aca-current-user', ancestor);
} }
openMenu(): promise.Promise<Menu> { async openMenu() {
const { menu, avatar } = this; const { menu, avatar } = this;
return avatar.click() await avatar.click();
.then(() => menu.wait()) await menu.wait();
.then(() => menu); return menu;
} }
get name(): promise.Promise<string> { getName() {
return this.fullName.getText(); return this.fullName.getText();
} }
signOut(): promise.Promise<void> { async signOut() {
return this.openMenu() const menu = await this.openMenu();
.then(menu => { await menu.clickMenuItem('Sign out');
menu.clickMenuItem('Sign out');
});
} }
} }

View File

@ -23,7 +23,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { ElementFinder, ElementArrayFinder, by, protractor, browser, ExpectedConditions as EC } from 'protractor'; import { ElementFinder, ElementArrayFinder, by, browser, ExpectedConditions as EC } from 'protractor';
import { Component } from '../component'; import { Component } from '../component';
import { BROWSER_WAIT_TIMEOUT } from '../../configs'; import { BROWSER_WAIT_TIMEOUT } from '../../configs';
@ -58,7 +58,7 @@ export class InfoDrawer extends Component {
} }
async waitForInfoDrawerToOpen() { async waitForInfoDrawerToOpen() {
return browser.wait(EC.presenceOf(this.header), BROWSER_WAIT_TIMEOUT); return await browser.wait(EC.presenceOf(this.header), BROWSER_WAIT_TIMEOUT);
} }
async isEmpty() { async isEmpty() {
@ -85,7 +85,7 @@ export class InfoDrawer extends Component {
} }
async clickTab(title: string) { async clickTab(title: string) {
return await this.getTabByTitle(title).click(); await this.getTabByTitle(title).click();
} }
async getComponentIdOfTab(title: string) { async getComponentIdOfTab(title: string) {

View File

@ -23,7 +23,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { by, ElementFinder, promise } from 'protractor'; import { by, ElementFinder } from 'protractor';
import { Component } from '../component'; import { Component } from '../component';
export class LoginComponent extends Component { export class LoginComponent extends Component {
@ -49,57 +49,50 @@ export class LoginComponent extends Component {
super(LoginComponent.selector, ancestor); super(LoginComponent.selector, ancestor);
} }
enterUsername(username: string): LoginComponent { async enterUsername(username: string) {
const { usernameInput } = this; const { usernameInput } = this;
usernameInput.clear(); await usernameInput.clear();
usernameInput.sendKeys(username); await usernameInput.sendKeys(username);
return this;
} }
enterPassword(password: string): LoginComponent { async enterPassword(password: string) {
const { passwordInput } = this; const { passwordInput } = this;
passwordInput.clear(); await passwordInput.clear();
passwordInput.sendKeys(password); await passwordInput.sendKeys(password);
return this;
} }
enterCredentials(username: string, password: string) { async enterCredentials(username: string, password: string) {
this.enterUsername(username).enterPassword(password); await this.enterUsername(username);
await this.enterPassword(password);
return this;
} }
submit(): promise.Promise<void> { submit() {
return this.submitButton.click(); return this.submitButton.click();
} }
getPasswordVisibility() { async getPasswordVisibility() {
return this.passwordVisibility.getText() const text = await this.passwordVisibility.getText();
.then(text => {
if (text.endsWith('visibility_off')) { if (text.endsWith('visibility_off')) {
return false; return false;
} else { }
else {
if (text.endsWith('visibility')) { if (text.endsWith('visibility')) {
return true; return true;
} }
} }
});
} }
isPasswordShown() { async isPasswordShown() {
return this.passwordInput.getAttribute('type') const type = await this.passwordInput.getAttribute('type');
.then(type => {
if (type === 'text') { if (type === 'text') {
return true; return true;
} else { }
else {
if (type === 'password') { if (type === 'password') {
return false; return false;
} }
} }
});
} }
} }

View File

@ -23,9 +23,10 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { ElementFinder, ElementArrayFinder, by, browser, ExpectedConditions as EC, promise } from 'protractor'; import { ElementFinder, ElementArrayFinder, by, browser, ExpectedConditions as EC } from 'protractor';
import { BROWSER_WAIT_TIMEOUT } from '../../configs'; import { BROWSER_WAIT_TIMEOUT } from '../../configs';
import { Component } from '../component'; import { Component } from '../component';
import { Utils } from '../../utilities/utils'
export class Menu extends Component { export class Menu extends Component {
private static selectors = { private static selectors = {
@ -43,29 +44,30 @@ export class Menu extends Component {
super(Menu.selectors.root, ancestor); super(Menu.selectors.root, ancestor);
} }
waitForMenuToOpen() { async waitForMenuToOpen() {
return browser.wait(EC.presenceOf(browser.element(by.css('.cdk-overlay-backdrop'))), BROWSER_WAIT_TIMEOUT) await browser.wait(EC.presenceOf(browser.element(by.css('.cdk-overlay-backdrop'))), BROWSER_WAIT_TIMEOUT);
.then(() => browser.wait(EC.presenceOf(browser.element(by.css('.mat-menu-panel'))), BROWSER_WAIT_TIMEOUT)) await browser.wait(EC.presenceOf(browser.element(by.css('.mat-menu-panel'))), BROWSER_WAIT_TIMEOUT);
.then(() => browser.wait(EC.visibilityOf(this.items.get(0)), BROWSER_WAIT_TIMEOUT)); await browser.wait(EC.visibilityOf(this.items.get(0)), BROWSER_WAIT_TIMEOUT);
} }
waitForMenuToClose() { async waitForMenuToClose() {
return browser.wait(EC.not(EC.presenceOf(browser.element(by.css('.mat-menu-panel')))), BROWSER_WAIT_TIMEOUT); await browser.wait(EC.not(EC.presenceOf(browser.element(by.css('.mat-menu-panel')))), BROWSER_WAIT_TIMEOUT);
} }
closeMenu() { async closeMenu() {
if (this.backdrop.isPresent()) { // if (await this.backdrop.isPresent()) {
return this.backdrop.click(); // return await this.backdrop.click();
} else { // } else {
return browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform(); // return await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform();
} // }
return Utils.pressEscape();
} }
getNthItem(nth: number): ElementFinder { getNthItem(nth: number) {
return this.items.get(nth - 1); return this.items.get(nth - 1);
} }
getItemByLabel(menuItem: string): ElementFinder { getItemByLabel(menuItem: string) {
return this.component.element(by.cssContainingText(Menu.selectors.item, menuItem)); return this.component.element(by.cssContainingText(Menu.selectors.item, menuItem));
} }
@ -73,39 +75,41 @@ export class Menu extends Component {
return this.component.element(by.id(id)); return this.component.element(by.id(id));
} }
getItemTooltip(menuItem: string): promise.Promise<string> { async getItemTooltip(menuItem: string) {
return this.getItemByLabel(menuItem).getAttribute('title'); return await this.getItemByLabel(menuItem).getAttribute('title');
} }
getItemIconText(menuItem: string) { async getItemIconText(menuItem: string) {
return this.getItemByLabel(menuItem).element(by.css(Menu.selectors.icon)).getText(); return await this.getItemByLabel(menuItem).element(by.css(Menu.selectors.icon)).getText();
} }
getItemIdAttribute(menuItem: string) { async getItemIdAttribute(menuItem: string) {
return this.getItemByLabel(menuItem).getAttribute('id'); return await this.getItemByLabel(menuItem).getAttribute('id');
} }
getItemsCount(): promise.Promise<number> { async getItemsCount() {
return this.items.count(); return await this.items.count();
} }
clickNthItem(nth: number): promise.Promise<any> { async clickNthItem(nth: number) {
const elem = this.getNthItem(nth); const elem = this.getNthItem(nth);
return browser.wait(EC.elementToBeClickable(elem), BROWSER_WAIT_TIMEOUT) await browser.wait(EC.elementToBeClickable(elem), BROWSER_WAIT_TIMEOUT);
.then(() => browser.actions().mouseMove(elem).click().perform()) await browser.actions().mouseMove(elem).click().perform();
.then(() => this.waitForMenuToClose()); await this.waitForMenuToClose();
} }
clickMenuItem(menuItem: string): promise.Promise<any> { async clickMenuItem(menuItem: string) {
try {
const elem = this.getItemByLabel(menuItem); const elem = this.getItemByLabel(menuItem);
return browser.wait(EC.elementToBeClickable(elem), BROWSER_WAIT_TIMEOUT) await browser.wait(EC.elementToBeClickable(elem), BROWSER_WAIT_TIMEOUT);
.then(() => elem.click()) await elem.click();
.then(() => this.waitForMenuToClose()); } catch (e) {
console.log('___click menu item catch___', e);
}
} }
isMenuItemPresent(title: string): promise.Promise<boolean> { async isMenuItemPresent(title: string) {
return this.component.element(by.cssContainingText(Menu.selectors.item, title)).isPresent(); return await this.component.element(by.cssContainingText(Menu.selectors.item, title)).isPresent();
} }
uploadFile() { uploadFile() {

View File

@ -23,7 +23,7 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { ElementFinder, promise, by } from 'protractor'; import { ElementFinder, by } from 'protractor';
import { Menu } from '../menu/menu'; import { Menu } from '../menu/menu';
import { Component } from '../component'; import { Component } from '../component';
@ -56,43 +56,43 @@ export class Pagination extends Component {
super(Pagination.selectors.root, ancestor); super(Pagination.selectors.root, ancestor);
} }
openMaxItemsMenu(): promise.Promise<Menu> { async openMaxItemsMenu() {
const { menu, maxItemsButton } = this; const { menu, maxItemsButton } = this;
return maxItemsButton.click() await maxItemsButton.click();
.then(() => menu.waitForMenuToOpen()) await menu.waitForMenuToOpen();
.then(() => menu); // return menu;
} }
openCurrentPageMenu(): promise.Promise<Menu> { async openCurrentPageMenu() {
const { menu, pagesButton } = this; const { menu, pagesButton } = this;
return pagesButton.click() await pagesButton.click();
.then(() => menu.waitForMenuToOpen()) await menu.waitForMenuToOpen();
.then(() => menu); // return menu;
} }
getText(elem: ElementFinder) { async getText(elem: ElementFinder) {
return elem.getText(); return await elem.getText();
} }
resetToDefaultPageSize(): promise.Promise<any> { async resetToDefaultPageSize() {
return this.openMaxItemsMenu() await this.openMaxItemsMenu();
.then(menu => menu.clickMenuItem('25')) await this.menu.clickMenuItem('25');
.then(() => this.menu.waitForMenuToClose()); await this.menu.waitForMenuToClose();
} }
resetToDefaultPageNumber(): promise.Promise<any> { async resetToDefaultPageNumber() {
return this.openCurrentPageMenu() await this.openCurrentPageMenu();
.then(menu => menu.clickMenuItem('1')) await this.menu.clickMenuItem('1');
.then(() => this.menu.waitForMenuToClose()); await this.menu.waitForMenuToClose();
} }
clickNext(): promise.Promise<any> { async clickNext() {
return this.nextButton.click(); await this.nextButton.click();
} }
clickPrevious(): promise.Promise<any> { async clickPrevious() {
return this.previousButton.click(); await this.previousButton.click();
} }
} }

View File

@ -23,9 +23,10 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { ElementFinder, ElementArrayFinder, by, promise } from 'protractor'; import { ElementFinder, ElementArrayFinder, by } from 'protractor';
import { Menu } from '../menu/menu'; import { Menu } from '../menu/menu';
import { Component } from '../component'; import { Component } from '../component';
import { Utils } from '../../utilities/utils';
export class Sidenav extends Component { export class Sidenav extends Component {
private static selectors = { private static selectors = {
@ -46,37 +47,44 @@ export class Sidenav extends Component {
super(Sidenav.selectors.root, ancestor); super(Sidenav.selectors.root, ancestor);
} }
openNewMenu(): promise.Promise<Menu> { async openNewMenu() {
const { menu, newButton } = this; const { menu, newButton } = this;
return newButton.click() await newButton.click();
.then(() => menu.waitForMenuToOpen()) await menu.waitForMenuToOpen();
.then(() => menu);
} }
openCreateDialog(): any { async openCreateDialog() {
return this.openNewMenu() await this.openNewMenu();
.then(() => this.menu.clickMenuItem('Create folder')); await this.menu.clickMenuItem('Create folder');
} }
isActiveByLabel(label: string): promise.Promise<boolean> { async isActiveByLabel(label: string) {
return this.getLinkByLabel(label).getAttribute('class') const className = await this.getLinkByLabel(label).getAttribute('class');
.then(className => className.includes(Sidenav.selectors.activeLink.replace('.', ''))); return className.includes(Sidenav.selectors.activeLink.replace('.', ''));
} }
getLink(label: string): ElementFinder { getLink(label: string) {
return this.component.element(by.cssContainingText(Sidenav.selectors.link, label)); return this.component.element(by.cssContainingText(Sidenav.selectors.link, label));
} }
getLinkByLabel(label: string): ElementFinder { getLinkByLabel(label: string) {
return this.component.element(by.cssContainingText(Sidenav.selectors.label, label)); return this.component.element(by.cssContainingText(Sidenav.selectors.label, label));
// return browser.element(by.xpath(`.//*[.="${label}" and class="${Sidenav.selectors.label}"]`))
} }
getLinkTooltip(label: string): promise.Promise<string> { async getLinkTooltip(label: string) {
return this.getLink(label).getAttribute('title'); return await this.getLink(label).getAttribute('title');
} }
navigateToLinkByLabel(label: string): promise.Promise<any> { async navigateToLinkByLabel(label: string) {
return this.getLinkByLabel(label).click(); try{
const link = this.getLinkByLabel(label);
await Utils.waitUntilElementClickable(link);
return await link.click();
} catch (e){
console.log('---- sidebar navigation catch : ', e);
}
} }
} }

View File

@ -41,11 +41,13 @@ export class Toolbar extends Component {
} }
async isEmpty() { async isEmpty() {
return await this.buttons.count() === 0; const count = await this.buttons.count();
return count === 0;
} }
async isButtonPresent(title: string) { async isButtonPresent(title: string) {
return await this.component.element(by.css(`${Toolbar.selectors.button}[title="${title}"]`)).isPresent(); const elem = this.component.element(by.css(`${Toolbar.selectors.button}[title="${title}"]`));
return await elem.isPresent();
} }
getButtonByLabel(label: string) { getButtonByLabel(label: string) {
@ -61,13 +63,15 @@ export class Toolbar extends Component {
} }
async openMoreMenu() { async openMoreMenu() {
await this.getButtonByTitleAttribute('More actions').click(); await this.isButtonPresent('More actions');
const moreMenu = this.getButtonByTitleAttribute('More actions');
await moreMenu.click();
await this.menu.waitForMenuToOpen(); await this.menu.waitForMenuToOpen();
return this.menu; // return this.menu;
} }
async closeMoreMenu() { async closeMoreMenu() {
return await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
} }
async getButtonTooltip(button: ElementFinder) { async getButtonTooltip(button: ElementFinder) {

View File

@ -54,12 +54,12 @@ export class Viewer extends Component {
} }
async waitForViewerToOpen() { async waitForViewerToOpen() {
return await browser.wait(EC.presenceOf(this.viewerContainer), BROWSER_WAIT_TIMEOUT) await browser.wait(EC.presenceOf(this.viewerContainer), BROWSER_WAIT_TIMEOUT);
.catch(err => err);
} }
async isViewerOpened() { async isViewerOpened() {
return await browser.isElementPresent(this.viewerLayout); return await browser.isElementPresent(this.viewerLayout);
// return await this.viewerLayout.isPresent();
} }
async isViewerContentDisplayed() { async isViewerContentDisplayed() {
@ -79,7 +79,7 @@ export class Viewer extends Component {
} }
async clickClose() { async clickClose() {
return await this.closeButton.click(); await this.closeButton.click();
} }
async getCloseButtonTooltip() { async getCloseButtonTooltip() {

View File

@ -35,7 +35,7 @@ export class BrowsingPage extends Page {
dataTable = new DataTable(this.app); dataTable = new DataTable(this.app);
pagination = new Pagination(this.app); pagination = new Pagination(this.app);
signOut(): promise.Promise<void> { async signOut() {
return this.header.userInfo.signOut(); await this.header.userInfo.signOut();
} }
} }

View File

@ -22,17 +22,12 @@
* You should have received a copy of the GNU Lesser General Public License * You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { browser, ExpectedConditions as EC, promise } from 'protractor'; import { browser, ExpectedConditions as EC } from 'protractor';
import { LoginComponent } from '../components/components'; import { LoginComponent } from '../components/components';
import { Page } from './page'; import { Page } from './page';
import { Utils } from '../utilities/utils'; import { Utils } from '../utilities/utils';
import { import { ADMIN_USERNAME, ADMIN_PASSWORD, BROWSER_WAIT_TIMEOUT, APP_ROUTES } from '../configs';
ADMIN_USERNAME,
ADMIN_PASSWORD,
BROWSER_WAIT_TIMEOUT,
APP_ROUTES
} from '../configs';
export class LoginPage extends Page { export class LoginPage extends Page {
login: LoginComponent = new LoginComponent(this.app); login: LoginComponent = new LoginComponent(this.app);
@ -43,33 +38,31 @@ export class LoginPage extends Page {
} }
/** @override */ /** @override */
load(): promise.Promise<any> { async load() {
return super.load().then(() => { await super.load();
const { submitButton } = this.login; const { submitButton } = this.login;
const hasSubmitButton = EC.presenceOf(submitButton); const hasSubmitButton = EC.presenceOf(submitButton);
return browser.wait(hasSubmitButton, BROWSER_WAIT_TIMEOUT);
return browser.wait(hasSubmitButton, BROWSER_WAIT_TIMEOUT)
.then(() => Utils.clearLocalStorage())
.then(() => browser.manage().deleteAllCookies());
});
} }
loginWith(username: string, password?: string): promise.Promise<any> { async loginWith(username: string, password?: string) {
const pass = password || username; const pass = password || username;
return this.load() await this.load();
.then(() => this.login.enterCredentials(username, pass).submit()) await this.login.enterCredentials(username, pass)
.then(() => super.waitForApp()); await this.login.submit();
return super.waitForApp();
} }
loginWithAdmin(): promise.Promise<any> { async loginWithAdmin() {
return this.load() await this.load();
.then(() => this.loginWith(ADMIN_USERNAME, ADMIN_PASSWORD)); return this.loginWith(ADMIN_USERNAME, ADMIN_PASSWORD);
} }
tryLoginWith(username: string, password?: string): promise.Promise<void> { async tryLoginWith(username: string, password?: string) {
const pass = password || username; const pass = password || username;
return this.load() await this.load();
.then(() => this.login.enterCredentials(username, pass).submit()) await this.login.enterCredentials(username, pass);
.then(() => browser.wait(EC.presenceOf(this.login.errorMessage), BROWSER_WAIT_TIMEOUT)); await this.login.submit();
return browser.wait(EC.presenceOf(this.login.errorMessage), BROWSER_WAIT_TIMEOUT);
} }
} }

View File

@ -23,7 +23,6 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { promise } from 'protractor';
import { Page } from './page'; import { Page } from './page';
import { APP_ROUTES } from '../configs'; import { APP_ROUTES } from '../configs';
import { Utils } from '../utilities/utils'; import { Utils } from '../utilities/utils';
@ -35,9 +34,9 @@ export class LogoutPage extends Page {
} }
/** @override */ /** @override */
load(): promise.Promise<any> { load() {
return Utils.clearLocalStorage() // await Utils.clearLocalStorage();
.then(() => Utils.clearSessionStorage()) // await Utils.clearSessionStorage();
.then(() => super.load()); return super.load();
} }
} }

View File

@ -28,7 +28,6 @@ import {
element, element,
by, by,
ElementFinder, ElementFinder,
promise,
ExpectedConditions as EC ExpectedConditions as EC
} from 'protractor'; } from 'protractor';
import { BROWSER_WAIT_TIMEOUT, USE_HASH_STRATEGY } from './../configs'; import { BROWSER_WAIT_TIMEOUT, USE_HASH_STRATEGY } from './../configs';
@ -62,14 +61,13 @@ export abstract class Page {
constructor(public url: string = '') {} constructor(public url: string = '') {}
get title(): promise.Promise<string> { getTitle() {
return browser.getTitle(); return browser.getTitle();
} }
load(relativeUrl: string = ''): promise.Promise<void> { load(relativeUrl: string = '') {
const hash = USE_HASH_STRATEGY ? '/#' : ''; const hash = USE_HASH_STRATEGY ? '/#' : '';
const path = `${browser.baseUrl}${hash}${this.url}${relativeUrl}`; const path = `${browser.baseUrl}${hash}${this.url}${relativeUrl}`;
return browser.get(path); return browser.get(path);
} }
@ -78,68 +76,58 @@ export abstract class Page {
} }
waitForSnackBarToAppear() { waitForSnackBarToAppear() {
return browser.wait( return browser.wait(EC.visibilityOf(this.snackBarContainer), BROWSER_WAIT_TIMEOUT);
EC.visibilityOf(this.snackBarContainer),
BROWSER_WAIT_TIMEOUT
);
} }
waitForSnackBarToClose() { async waitForSnackBarToClose() {
return browser.wait( await browser.wait(EC.not(EC.visibilityOf(this.snackBarContainer)), BROWSER_WAIT_TIMEOUT);
EC.not(EC.visibilityOf(this.snackBarContainer)),
BROWSER_WAIT_TIMEOUT
);
} }
waitForDialog() { async waitForDialog() {
return browser.wait( await browser.wait(EC.visibilityOf(this.dialogContainer), BROWSER_WAIT_TIMEOUT);
EC.visibilityOf(this.dialogContainer),
BROWSER_WAIT_TIMEOUT
);
} }
waitForDialogToClose() { async waitForDialogToClose() {
return browser.wait( await browser.wait(EC.not(EC.visibilityOf(this.dialogContainer)), BROWSER_WAIT_TIMEOUT);
EC.not(EC.visibilityOf(this.dialogContainer)),
BROWSER_WAIT_TIMEOUT
);
} }
refresh(): promise.Promise<void> { async refresh() {
return browser.refresh(); await browser.refresh();
await this.waitForApp();
} }
getDialogActionByLabel(label) { getDialogActionByLabel(label) {
return element(by.cssContainingText('.mat-button-wrapper', label)); return element(by.cssContainingText('.mat-button-wrapper', label));
} }
isSnackBarDisplayed(): promise.Promise<boolean> { async isSnackBarDisplayed() {
return this.snackBar.isDisplayed(); return await this.snackBar.isDisplayed();
} }
getSnackBarMessage(): promise.Promise<string> { async getSnackBarMessage() {
return this.waitForSnackBarToAppear().then(() => // await this.waitForSnackBarToAppear();
this.snackBar.getAttribute('innerText') return await this.snackBar.getAttribute('innerText');
);
} }
getSnackBarAction() { async clickSnackBarAction() {
return this.waitForSnackBarToAppear().then(() => this.snackBarAction); try {
// await this.waitForSnackBarToAppear();
// return browser.executeScript(function (elem) {
// elem.click();
// }, this.snackBarAction);
return await this.snackBarAction.click();
} catch (e) {
console.log(e, '.......failed on click snack bar action.........');
}
} }
clickSnackBarAction() { async isGenericErrorDisplayed() {
return this.waitForSnackBarToAppear().then(() => { return await this.genericError.isDisplayed();
return browser.executeScript(function(elem) {
elem.click();
}, this.snackBarAction);
});
} }
isGenericErrorDisplayed() { async getGenericErrorTitle() {
return this.genericError.isDisplayed(); return await this.genericErrorTitle.getText();
}
getGenericErrorTitle() {
return this.genericErrorTitle.getText();
} }
} }

View File

@ -23,7 +23,6 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { browser, protractor } from 'protractor';
import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages';
import { SITE_VISIBILITY, SIDEBAR_LABELS } from '../../configs'; import { SITE_VISIBILITY, SIDEBAR_LABELS } from '../../configs';
import { RepoClient } from '../../utilities/repo-client/repo-client'; import { RepoClient } from '../../utilities/repo-client/repo-client';
@ -79,7 +78,7 @@ describe('Context menu actions - multiple selection : ', () => {
await apis.user.favorites.addFavoritesByIds('file', [ file1Id, file2Id ]); await apis.user.favorites.addFavoritesByIds('file', [ file1Id, file2Id ]);
await apis.user.favorites.addFavoritesByIds('folder', [ folder1Id, folder2Id ]); await apis.user.favorites.addFavoritesByIds('folder', [ folder1Id, folder2Id ]);
await apis.user.favorites.waitForApi({ expect: 4 }); await apis.user.favorites.waitForApi({ expect: 4 + 1 });
fileInTrash1Id = (await apis.user.nodes.createFile(fileInTrash1)).entry.id; fileInTrash1Id = (await apis.user.nodes.createFile(fileInTrash1)).entry.id;
fileInTrash2Id = (await apis.user.nodes.createFile(fileInTrash2)).entry.id; fileInTrash2Id = (await apis.user.nodes.createFile(fileInTrash2)).entry.id;
@ -92,12 +91,10 @@ describe('Context menu actions - multiple selection : ', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.nodes.deleteNodesById([ file1Id, file2Id, folder1Id, folder2Id ]);
apis.user.nodes.deleteNodesById([ file1Id, file2Id, folder1Id, folder2Id ]), await apis.user.sites.deleteSite(siteName);
apis.user.sites.deleteSite(siteName), await apis.user.trashcan.emptyTrash();
apis.user.trashcan.emptyTrash(), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });
@ -105,7 +102,7 @@ describe('Context menu actions - multiple selection : ', () => {
describe('Generic tests', () => { describe('Generic tests', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection(); await dataTable.clearSelection();
@ -133,6 +130,7 @@ describe('Context menu actions - multiple selection : ', () => {
describe('on Personal Files', () => { describe('on Personal Files', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection(); await dataTable.clearSelection();
@ -180,12 +178,12 @@ describe('Context menu actions - multiple selection : ', () => {
describe('on File Libraries', () => { describe('on File Libraries', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await dataTable.clearSelection();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.doubleClickOnRowByName(siteName); await dataTable.doubleClickOnRowByName(siteName);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -231,10 +229,10 @@ describe('Context menu actions - multiple selection : ', () => {
describe('on Shared Files', () => { describe('on Shared Files', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await dataTable.clearSelection();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -254,10 +252,10 @@ describe('Context menu actions - multiple selection : ', () => {
describe('Recent Files', () => { describe('Recent Files', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await dataTable.clearSelection();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -277,10 +275,10 @@ describe('Context menu actions - multiple selection : ', () => {
describe('Favorites', () => { describe('Favorites', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await dataTable.clearSelection();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -329,10 +327,10 @@ describe('Context menu actions - multiple selection : ', () => {
describe('Trash', () => { describe('Trash', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await dataTable.clearSelection();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });

View File

@ -73,20 +73,18 @@ describe('Context menu actions - single selection : ', () => {
await apis.user.favorites.addFavoriteById('file', fileUserId); await apis.user.favorites.addFavoriteById('file', fileUserId);
await apis.user.favorites.addFavoriteById('folder', folderUserId); await apis.user.favorites.addFavoriteById('folder', folderUserId);
await apis.user.favorites.waitForApi({ expect: 2 }); await apis.user.favorites.waitForApi({ expect: 3 });
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.nodes.deleteNodeById(fileUserId);
apis.user.nodes.deleteNodeById(fileUserId), await apis.user.nodes.deleteNodeById(folderUserId);
apis.user.nodes.deleteNodeById(folderUserId), await apis.user.sites.deleteSite(siteName);
apis.user.sites.deleteSite(siteName), await apis.user.trashcan.emptyTrash();
apis.user.trashcan.emptyTrash(), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });
@ -94,7 +92,7 @@ describe('Context menu actions - single selection : ', () => {
describe('Generic tests', () => { describe('Generic tests', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
done(); done();
@ -142,10 +140,10 @@ describe('Context menu actions - single selection : ', () => {
describe('on Personal Files', () => { describe('on Personal Files', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await dataTable.clearSelection();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -181,7 +179,7 @@ describe('Context menu actions - single selection : ', () => {
describe('File Libraries', () => { describe('File Libraries', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.doubleClickOnRowByName(siteName); await dataTable.doubleClickOnRowByName(siteName);
@ -221,7 +219,7 @@ describe('Context menu actions - single selection : ', () => {
describe('Shared Files', () => { describe('Shared Files', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
done(); done();
@ -246,7 +244,7 @@ describe('Context menu actions - single selection : ', () => {
describe('Recent Files', () => { describe('Recent Files', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
done(); done();
@ -270,7 +268,7 @@ describe('Context menu actions - single selection : ', () => {
describe('Favorites', () => { describe('Favorites', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
done(); done();
@ -310,7 +308,7 @@ describe('Context menu actions - single selection : ', () => {
describe('Trash', () => { describe('Trash', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
done(); done();

View File

@ -28,6 +28,7 @@ import { browser } from 'protractor';
import { SIDEBAR_LABELS, SITE_VISIBILITY, SITE_ROLES } from '../../configs'; import { SIDEBAR_LABELS, SITE_VISIBILITY, SITE_ROLES } from '../../configs';
import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages';
import { CreateOrEditFolderDialog } from '../../components/dialog/create-edit-folder-dialog'; import { CreateOrEditFolderDialog } from '../../components/dialog/create-edit-folder-dialog';
import { Menu } from '../../components/menu/menu';
import { Utils } from '../../utilities/utils'; import { Utils } from '../../utilities/utils';
import { RepoClient } from '../../utilities/repo-client/repo-client'; import { RepoClient } from '../../utilities/repo-client/repo-client';
@ -53,6 +54,7 @@ describe('Create folder', () => {
const personalFilesPage = new BrowsingPage(); const personalFilesPage = new BrowsingPage();
const createDialog = new CreateOrEditFolderDialog(); const createDialog = new CreateOrEditFolderDialog();
const { dataTable } = personalFilesPage; const { dataTable } = personalFilesPage;
const menu = new Menu();
beforeAll(async (done) => { beforeAll(async (done) => {
await apis.admin.people.createUser({ username }); await apis.admin.people.createUser({ username });
@ -67,11 +69,9 @@ describe('Create folder', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.admin.sites.deleteSite(siteName);
apis.admin.sites.deleteSite(siteName), await apis.user.nodes.deleteNodeById(parentId);
apis.user.nodes.deleteNodeById(parentId), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });
@ -83,13 +83,13 @@ describe('Create folder', () => {
}); });
afterEach(async (done) => { afterEach(async (done) => {
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform(); await Utils.pressEscape();
done(); done();
}); });
it('option is enabled when having enough permissions - [C216339]', async () => { it('option is enabled when having enough permissions - [C216339]', async () => {
await personalFilesPage.dataTable.doubleClickOnRowByName(parent); await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
const menu = await personalFilesPage.sidenav.openNewMenu(); await personalFilesPage.sidenav.openNewMenu();
const isEnabled = await menu.getItemByLabel('Create folder').isEnabled(); const isEnabled = await menu.getItemByLabel('Create folder').isEnabled();
expect(isEnabled).toBe(true, 'Create folder is not enabled'); expect(isEnabled).toBe(true, 'Create folder is not enabled');
}); });
@ -123,7 +123,7 @@ describe('Create folder', () => {
it('enabled option tooltip - [C216342]', async () => { it('enabled option tooltip - [C216342]', async () => {
await personalFilesPage.dataTable.doubleClickOnRowByName(parent); await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
const menu = await personalFilesPage.sidenav.openNewMenu(); await personalFilesPage.sidenav.openNewMenu();
await browser.actions().mouseMove(menu.getItemByLabel('Create folder')).perform(); await browser.actions().mouseMove(menu.getItemByLabel('Create folder')).perform();
expect(await menu.getItemTooltip('Create folder')).toContain('Create new folder'); expect(await menu.getItemTooltip('Create folder')).toContain('Create new folder');
}); });
@ -239,14 +239,14 @@ describe('Create folder', () => {
}); });
afterEach(async (done) => { afterEach(async (done) => {
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform(); await Utils.pressEscape();
done(); done();
}); });
it('option is disabled when not enough permissions - [C280397]', async () => { it('option is disabled when not enough permissions - [C280397]', async () => {
await fileLibrariesPage.dataTable.doubleClickOnRowByName(siteName); await fileLibrariesPage.dataTable.doubleClickOnRowByName(siteName);
await fileLibrariesPage.dataTable.doubleClickOnRowByName(folderName1); await fileLibrariesPage.dataTable.doubleClickOnRowByName(folderName1);
const menu = await fileLibrariesPage.sidenav.openNewMenu(); await fileLibrariesPage.sidenav.openNewMenu();
const isEnabled = await menu.getItemByLabel('Create folder').isEnabled(); const isEnabled = await menu.getItemByLabel('Create folder').isEnabled();
expect(isEnabled).toBe(false, 'Create folder is not disabled'); expect(isEnabled).toBe(false, 'Create folder is not disabled');
}); });
@ -254,7 +254,7 @@ describe('Create folder', () => {
it('disabled option tooltip - [C280398]', async () => { it('disabled option tooltip - [C280398]', async () => {
await fileLibrariesPage.dataTable.doubleClickOnRowByName(siteName); await fileLibrariesPage.dataTable.doubleClickOnRowByName(siteName);
await fileLibrariesPage.dataTable.doubleClickOnRowByName(folderName1); await fileLibrariesPage.dataTable.doubleClickOnRowByName(folderName1);
const menu = await fileLibrariesPage.sidenav.openNewMenu(); await fileLibrariesPage.sidenav.openNewMenu();
await browser.actions().mouseMove(menu.getItemByLabel('Create folder')).perform(); await browser.actions().mouseMove(menu.getItemByLabel('Create folder')).perform();
const tooltip = await menu.getItemTooltip('Create folder'); const tooltip = await menu.getItemTooltip('Create folder');
expect(tooltip).toContain(`Folders cannot be created whilst viewing the current items`); expect(tooltip).toContain(`Folders cannot be created whilst viewing the current items`);

View File

@ -23,9 +23,9 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { browser } from 'protractor'; import { browser, ExpectedConditions as EC } from 'protractor';
import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages';
import { SIDEBAR_LABELS } from '../../configs'; import { BROWSER_WAIT_TIMEOUT, SIDEBAR_LABELS } from '../../configs';
import { RepoClient } from '../../utilities/repo-client/repo-client'; import { RepoClient } from '../../utilities/repo-client/repo-client';
import { Utils } from '../../utilities/utils'; import { Utils } from '../../utilities/utils';
@ -91,14 +91,10 @@ describe('Delete and undo delete', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.nodes.unlockFile(file4Id);
apis.user.nodes.unlockFile(file4Id), await apis.user.nodes.unlockFile(fileLocked1Id);
apis.user.nodes.unlockFile(fileLocked1Id) await logoutPage.load();
]); await apis.user.nodes.deleteNodesById([file1Id, file2Id, folder1Id, folder2Id, fileLocked1Id]);
await Promise.all([
logoutPage.load(),
apis.user.nodes.deleteNodesById([file1Id, file2Id, folder1Id, folder2Id, fileLocked1Id])
]);
await apis.user.search.waitForApi(username, {expect: 0}); await apis.user.search.waitForApi(username, {expect: 0});
done(); done();
}); });
@ -209,7 +205,9 @@ describe('Delete and undo delete', () => {
await dataTable.selectItem(file1); await dataTable.selectItem(file1);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Delete'); await toolbar.menu.clickMenuItem('Delete');
await page.clickSnackBarAction(); await page.clickSnackBarAction();
expect(await dataTable.getRowByName(file1).isPresent()).toBe(true, 'Item was not restored'); expect(await dataTable.getRowByName(file1).isPresent()).toBe(true, 'Item was not restored');
expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`); expect(await page.pagination.range.getText()).toContain(`1-${items} of ${items}`);
@ -271,10 +269,8 @@ describe('Delete and undo delete', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await logoutPage.load();
logoutPage.load(), await apis.user.nodes.deleteNodesById([sharedFile1Id, sharedFile2Id, sharedFile3Id, sharedFile4Id]);
apis.user.nodes.deleteNodesById([sharedFile1Id, sharedFile2Id, sharedFile3Id, sharedFile4Id])
]);
await apis.user.search.waitForApi(username, {expect: 0}); await apis.user.search.waitForApi(username, {expect: 0});
done(); done();
}); });
@ -383,15 +379,11 @@ describe('Delete and undo delete', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.nodes.unlockFile(favoriteFile4Id);
apis.user.nodes.unlockFile(favoriteFile4Id), await apis.user.nodes.unlockFile(favoriteFileLocked1Id);
apis.user.nodes.unlockFile(favoriteFileLocked1Id) await logoutPage.load();
]); await apis.user.nodes.deleteNodesById([
await Promise.all([
logoutPage.load(),
apis.user.nodes.deleteNodesById([
favoriteFile1Id, favoriteFile2Id, favoriteFolder1Id, favoriteFolder2Id, favoriteFileLocked1Id favoriteFile1Id, favoriteFile2Id, favoriteFolder1Id, favoriteFolder2Id, favoriteFileLocked1Id
])
]); ]);
await apis.user.search.waitForApi(username, {expect: 0}); await apis.user.search.waitForApi(username, {expect: 0});
done(); done();
@ -555,6 +547,7 @@ describe('Delete and undo delete', () => {
if (empty) { if (empty) {
await browser.sleep(6000); await browser.sleep(6000);
await browser.refresh(); await browser.refresh();
await page.waitForApp();
} }
done(); done();
}); });
@ -571,10 +564,8 @@ describe('Delete and undo delete', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await logoutPage.load();
logoutPage.load(), await apis.user.nodes.deleteNodesById([recentFile1Id, recentFile2Id, recentFile3Id, recentFile4Id]);
apis.user.nodes.deleteNodesById([recentFile1Id, recentFile2Id, recentFile3Id, recentFile4Id])
]);
done(); done();
}); });

View File

@ -27,22 +27,22 @@ import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages';
import { SIDEBAR_LABELS, SITE_VISIBILITY } from '../../configs'; import { SIDEBAR_LABELS, SITE_VISIBILITY } from '../../configs';
import { RepoClient } from '../../utilities/repo-client/repo-client'; import { RepoClient } from '../../utilities/repo-client/repo-client';
import { Utils } from '../../utilities/utils'; import { Utils } from '../../utilities/utils';
import { browser } from 'protractor';
describe('Mark items as favorites', () => { describe('Mark items as favorites', () => {
const username = `user-${Utils.random()}`; const username = `user-${Utils.random()}`;
const file1NotFav = `file-${Utils.random()}.txt`; const file1NotFav = `file1-${Utils.random()}.txt`;
const file2NotFav = `file-${Utils.random()}.txt`; const file2NotFav = `file2-${Utils.random()}.txt`;
const file3Fav = `file-${Utils.random()}.txt`; const file3Fav = `file3-${Utils.random()}.txt`;
const file4Fav = `file-${Utils.random()}.txt`; const file4Fav = `file4-${Utils.random()}.txt`;
const folder1 = `folder-${Utils.random()}`; const folder1 = `folder-${Utils.random()}`;
const siteName = `site-public-${Utils.random()}`; const siteName = `site-public-${Utils.random()}`;
const fileSiteNotFav1 = `file-site${Utils.random()}.txt`; const fileSiteNotFav1 = `file1-site-${Utils.random()}.txt`;
const fileSiteNotFav2 = `file-site${Utils.random()}.txt`; const fileSiteNotFav2 = `file2-site-${Utils.random()}.txt`;
const folderSite = `folder-${Utils.random()}`; const folderSite = `folder-site-${Utils.random()}`;
const fileSiteFav1 = `file-${Utils.random()}.txt`; const fileSiteFav1 = `file3-${Utils.random()}.txt`;
const fileSiteFav2 = `file-${Utils.random()}.txt`; const fileSiteFav2 = `file4-${Utils.random()}.txt`;
let file1Id, file2Id, file3Id, file4Id, folder1Id, fileSiteNotFav1Id, fileSiteNotFav2Id, folderSiteId, fileSiteFav1Id, fileSiteFav2Id; let file1Id, file2Id, file3Id, file4Id, folder1Id, fileSiteNotFav1Id, fileSiteNotFav2Id, folderSiteId, fileSiteFav1Id, fileSiteFav2Id;
@ -67,8 +67,21 @@ describe('Mark items as favorites', () => {
await apis.user.favorites.addFavoriteById('file', file3Id); await apis.user.favorites.addFavoriteById('file', file3Id);
await apis.user.favorites.addFavoriteById('file', file4Id); await apis.user.favorites.addFavoriteById('file', file4Id);
await apis.user.search.waitForApi(username, { expect: 4 }); await apis.user.shared.shareFilesByIds([ file1Id, file2Id, file3Id, file4Id ]);
await apis.user.favorites.waitForApi({ expect: 2 });
await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
const docLibId = await apis.user.sites.getDocLibId(siteName);
folderSiteId = (await apis.user.nodes.createFolder(folderSite, docLibId)).entry.id;
fileSiteNotFav1Id = (await apis.user.nodes.createFile(fileSiteNotFav1, folderSiteId)).entry.id;
fileSiteFav1Id = (await apis.user.nodes.createFile(fileSiteFav1, folderSiteId)).entry.id;
fileSiteNotFav2Id = (await apis.user.nodes.createFile(fileSiteNotFav2, folderSiteId)).entry.id;
fileSiteFav2Id = (await apis.user.nodes.createFile(fileSiteFav2, folderSiteId)).entry.id;
await apis.user.favorites.addFavoriteById('file', fileSiteFav1Id);
await apis.user.favorites.addFavoriteById('file', fileSiteFav2Id);
await apis.user.favorites.waitForApi({ expect: 5 });
await apis.user.search.waitForApi(username, { expect: 8 });
await apis.user.shared.waitForApi({ expect: 4 });
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
@ -86,17 +99,13 @@ describe('Mark items as favorites', () => {
xit(''); xit('');
describe('on Personal Files', () => { describe('on Personal Files', () => {
beforeAll(async (done) => { beforeEach(async (done) => {
await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
done(); done();
}); });
beforeEach(async (done) => {
await toolbar.closeMoreMenu();
done();
});
it('Favorite action has empty star icon for an item not marked as favorite - [C217186]', async () => { it('Favorite action has empty star icon for an item not marked as favorite - [C217186]', async () => {
await dataTable.selectItem(file1NotFav); await dataTable.selectItem(file1NotFav);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
@ -119,288 +128,279 @@ describe('Mark items as favorites', () => {
await dataTable.selectItem(file1NotFav); await dataTable.selectItem(file1NotFav);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 3 }); await apis.user.favorites.waitForApi({ expect: 6 });
const isFavorite = await apis.user.favorites.isFavorite(file1Id); const isFavorite = await apis.user.favorites.isFavorite(file1Id);
expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`); expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`);
await apis.user.favorites.removeFavoriteById(file1Id); await apis.user.favorites.removeFavoriteById(file1Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('favorite a folder - [C280390]', async () => { it('favorite a folder - [C280390]', async () => {
await dataTable.selectItem(folder1); await dataTable.selectItem(folder1);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 3 }); await apis.user.favorites.waitForApi({ expect: 6 });
const isFavorite = await apis.user.favorites.isFavorite(folder1Id); const isFavorite = await apis.user.favorites.isFavorite(folder1Id);
expect(isFavorite).toBe(true, `${folder1} not marked as favorite`); expect(isFavorite).toBe(true, `${folder1} not marked as favorite`);
await apis.user.favorites.removeFavoriteById(folder1Id); await apis.user.favorites.removeFavoriteById(folder1Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('unfavorite an item - [C217190]', async () => { it('unfavorite an item - [C217190]', async () => {
await dataTable.selectItem(file3Fav); await dataTable.selectItem(file3Fav);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 1 }); await apis.user.favorites.waitForApi({ expect: 4 });
const isFavorite = await apis.user.favorites.isFavorite(file3Id); const isFavorite = await apis.user.favorites.isFavorite(file3Id);
expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`); expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`);
await apis.user.favorites.addFavoriteById('file', file3Id); await apis.user.favorites.addFavoriteById('file', file3Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('favorite multiple items - all unfavorite - [C217192]', async () => { it('favorite multiple items - all unfavorite - [C217192]', async () => {
await dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]); await dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 4 }); await apis.user.favorites.waitForApi({ expect: 7 });
const resp = await Promise.all([ const isFile1Fav = await apis.user.favorites.isFavorite(file1Id);
apis.user.favorites.isFavorite(file1Id), const isFile2Fav = await apis.user.favorites.isFavorite(file2Id);
apis.user.favorites.isFavorite(file2Id) expect(isFile1Fav).toBe(true, 'item not marked as favorite');
]); expect(isFile2Fav).toBe(true, 'item not marked as favorite');
expect(resp[0]).toBe(true, 'item not marked as favorite');
expect(resp[1]).toBe(true, 'item not marked as favorite');
await apis.user.favorites.removeFavoriteById(file1Id); await apis.user.favorites.removeFavoriteById(file1Id);
await apis.user.favorites.removeFavoriteById(file2Id); await apis.user.favorites.removeFavoriteById(file2Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('favorite multiple items - some favorite and some unfavorite - [C217194]', async () => { it('favorite multiple items - some favorite and some unfavorite - [C217194]', async () => {
await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]); await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 3 }); await apis.user.favorites.waitForApi({ expect: 6 });
const resp = await Promise.all([ const isFile1Fav = await apis.user.favorites.isFavorite(file1Id);
apis.user.favorites.isFavorite(file1Id), const isFile2Fav = await apis.user.favorites.isFavorite(file3Id);
apis.user.favorites.isFavorite(file3Id) expect(isFile1Fav).toBe(true, 'item not marked as favorite');
]); expect(isFile2Fav).toBe(true, 'item not marked as favorite');
expect(resp[0]).toBe(true, 'item not marked as favorite');
expect(resp[1]).toBe(true, 'item not marked as favorite');
await apis.user.favorites.removeFavoriteById(file1Id); await apis.user.favorites.removeFavoriteById(file1Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('unfavorite multiple items - [C217193]', async () => { it('unfavorite multiple items - [C217193]', async () => {
await dataTable.selectMultipleItems([ file3Fav, file4Fav ]) await dataTable.selectMultipleItems([ file3Fav, file4Fav ])
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await browser.sleep(2000); await apis.user.favorites.waitForApi({ expect: 3 });
const resp = await Promise.all([ const isFile1Fav = await apis.user.favorites.isFavorite(file3Id);
apis.user.favorites.isFavorite(file3Id), const isFile2Fav = await apis.user.favorites.isFavorite(file4Id);
apis.user.favorites.isFavorite(file4Id) expect(isFile1Fav).toBe(false, 'item marked as favorite');
]); expect(isFile2Fav).toBe(false, 'item marked as favorite');
expect(resp[0]).toBe(false, 'item marked as favorite');
expect(resp[1]).toBe(false, 'item marked as favorite');
await apis.user.favorites.addFavoriteById('file', file3Id); await apis.user.favorites.addFavoriteById('file', file3Id);
await apis.user.favorites.addFavoriteById('file', file4Id); await apis.user.favorites.addFavoriteById('file', file4Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
}); });
describe('on Recent Files', () => { describe('on Recent Files', () => {
beforeAll(async (done) => { beforeEach(async (done) => {
await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
done(); done();
}); });
beforeEach(async (done) => {
await toolbar.closeMoreMenu();
done();
});
it('favorite a file - [C280352]', async () => { it('favorite a file - [C280352]', async () => {
await dataTable.selectItem(file1NotFav); await dataTable.selectItem(file1NotFav);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 3 }); await apis.user.favorites.waitForApi({ expect: 6 });
const isFavorite = await apis.user.favorites.isFavorite(file1Id); const isFavorite = await apis.user.favorites.isFavorite(file1Id);
expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`); expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`);
await apis.user.favorites.removeFavoriteById(file1Id); await apis.user.favorites.removeFavoriteById(file1Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('unfavorite an item - [C280353]', async () => { it('unfavorite an item - [C280353]', async () => {
await dataTable.selectItem(file3Fav); await dataTable.selectItem(file3Fav);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 1 }); await apis.user.favorites.waitForApi({ expect: 4 });
const isFavorite = await apis.user.favorites.isFavorite(file3Id); const isFavorite = await apis.user.favorites.isFavorite(file3Id);
expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`); expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`);
await apis.user.favorites.addFavoriteById('file', file3Id); await apis.user.favorites.addFavoriteById('file', file3Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('favorite multiple items - all unfavorite - [C280355]', async () => { it('favorite multiple items - all unfavorite - [C280355]', async () => {
await dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]); await dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 4 }); await apis.user.favorites.waitForApi({ expect: 7 });
const resp = await Promise.all([ const isFile1Fav = await apis.user.favorites.isFavorite(file1Id);
apis.user.favorites.isFavorite(file1Id), const isFile2Fav = await apis.user.favorites.isFavorite(file2Id);
apis.user.favorites.isFavorite(file2Id) expect(isFile1Fav).toBe(true, 'item not marked as favorite');
]); expect(isFile2Fav).toBe(true, 'item not marked as favorite');
expect(resp[0]).toBe(true, 'item not marked as favorite');
expect(resp[1]).toBe(true, 'item not marked as favorite');
await apis.user.favorites.removeFavoriteById(file1Id); await apis.user.favorites.removeFavoriteById(file1Id);
await apis.user.favorites.removeFavoriteById(file2Id); await apis.user.favorites.removeFavoriteById(file2Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('favorite multiple items - some favorite and some unfavorite - [C280357]', async () => { it('favorite multiple items - some favorite and some unfavorite - [C280357]', async () => {
await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]); await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 3 }); await apis.user.favorites.waitForApi({ expect: 6 });
const resp = await Promise.all([ const isFile1Fav = await apis.user.favorites.isFavorite(file1Id);
apis.user.favorites.isFavorite(file1Id), const isFile2Fav = await apis.user.favorites.isFavorite(file3Id);
apis.user.favorites.isFavorite(file3Id) expect(isFile1Fav).toBe(true, 'item not marked as favorite');
]); expect(isFile2Fav).toBe(true, 'item not marked as favorite');
expect(resp[0]).toBe(true, 'item not marked as favorite');
expect(resp[1]).toBe(true, 'item not marked as favorite');
await apis.user.favorites.removeFavoriteById(file1Id); await apis.user.favorites.removeFavoriteById(file1Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('unfavorite multiple items - [C280356]', async () => { it('unfavorite multiple items - [C280356]', async () => {
await dataTable.selectMultipleItems([ file3Fav, file4Fav ]); await dataTable.selectMultipleItems([ file3Fav, file4Fav ]);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await browser.sleep(2000); await apis.user.favorites.waitForApi({ expect: 3 });
const resp = await Promise.all([ const isFile1Fav = await apis.user.favorites.isFavorite(file3Id);
apis.user.favorites.isFavorite(file3Id), const isFile2Fav = await apis.user.favorites.isFavorite(file4Id);
apis.user.favorites.isFavorite(file4Id) expect(isFile1Fav).toBe(false, 'item marked as favorite');
]); expect(isFile2Fav).toBe(false, 'item marked as favorite');
expect(resp[0]).toBe(false, 'item marked as favorite');
expect(resp[1]).toBe(false, 'item marked as favorite');
await apis.user.favorites.addFavoriteById('file', file3Id); await apis.user.favorites.addFavoriteById('file', file3Id);
await apis.user.favorites.addFavoriteById('file', file4Id); await apis.user.favorites.addFavoriteById('file', file4Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
}); });
describe('on Shared Files', () => { describe('on Shared Files', () => {
beforeAll(async (done) => { beforeAll(async (done) => {
await apis.user.shared.shareFilesByIds([ file1Id, file2Id, file3Id, file4Id ]); await page.refresh();
await apis.user.shared.waitForApi({ expect: 4 }); done();
});
beforeEach(async (done) => {
await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
done(); done();
}); });
afterEach(async (done) => {
// browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done);
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform();
done();
});
it('favorite a file - [C280362]', async () => { it('favorite a file - [C280362]', async () => {
await dataTable.selectItem(file1NotFav) await dataTable.selectItem(file1NotFav);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 3 }); await apis.user.favorites.waitForApi({ expect: 6 });
const isFavorite = await apis.user.favorites.isFavorite(file1Id); const isFavorite = await apis.user.favorites.isFavorite(file1Id);
expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`); expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`);
await apis.user.favorites.removeFavoriteById(file1Id); await apis.user.favorites.removeFavoriteById(file1Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('unfavorite an item - [C280363]', async () => { it('unfavorite an item - [C280363]', async () => {
await dataTable.selectItem(file3Fav); await dataTable.selectItem(file3Fav);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 1 }); await apis.user.favorites.waitForApi({ expect: 4 });
const isFavorite = await apis.user.favorites.isFavorite(file3Id); const isFavorite = await apis.user.favorites.isFavorite(file3Id);
expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`); expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`);
await apis.user.favorites.addFavoriteById('file', file3Id); await apis.user.favorites.addFavoriteById('file', file3Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('favorite multiple items - all unfavorite - [C280365]', async () => { it('favorite multiple items - all unfavorite - [C280365]', async () => {
await dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]); await dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 4 }); await apis.user.favorites.waitForApi({ expect: 7 });
const resp = await Promise.all([ const isFile1Fav = await apis.user.favorites.isFavorite(file1Id);
apis.user.favorites.isFavorite(file1Id), const isFile2Fav = await apis.user.favorites.isFavorite(file2Id);
apis.user.favorites.isFavorite(file2Id) expect(isFile1Fav).toBe(true, 'item not marked as favorite');
]); expect(isFile2Fav).toBe(true, 'item not marked as favorite');
expect(resp[0]).toBe(true, 'item not marked as favorite');
expect(resp[1]).toBe(true, 'item not marked as favorite');
await apis.user.favorites.removeFavoriteById(file1Id); await apis.user.favorites.removeFavoriteById(file1Id);
await apis.user.favorites.removeFavoriteById(file2Id); await apis.user.favorites.removeFavoriteById(file2Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('favorite multiple items - some favorite and some unfavorite - [C280367]', async () => { it('favorite multiple items - some favorite and some unfavorite - [C280367]', async () => {
await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]); await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 3 }); await apis.user.favorites.waitForApi({ expect: 6 });
const resp = await Promise.all([ const isFile1Fav = await apis.user.favorites.isFavorite(file1Id);
apis.user.favorites.isFavorite(file1Id), const isFile2Fav = await apis.user.favorites.isFavorite(file3Id);
apis.user.favorites.isFavorite(file3Id) expect(isFile1Fav).toBe(true, 'item not marked as favorite');
]); expect(isFile2Fav).toBe(true, 'item not marked as favorite');
expect(resp[0]).toBe(true, 'item not marked as favorite');
expect(resp[1]).toBe(true, 'item not marked as favorite');
await apis.user.favorites.removeFavoriteById(file1Id); await apis.user.favorites.removeFavoriteById(file1Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('unfavorite multiple items - [C280366]', async () => { it('unfavorite multiple items - [C280366]', async () => {
await dataTable.selectMultipleItems([ file3Fav, file4Fav ]); await dataTable.selectMultipleItems([ file3Fav, file4Fav ]);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await browser.sleep(2000); await apis.user.favorites.waitForApi({ expect: 3 });
const resp = await Promise.all([ const isFile1Fav = await apis.user.favorites.isFavorite(file3Id);
apis.user.favorites.isFavorite(file3Id), const isFile2Fav = await apis.user.favorites.isFavorite(file4Id);
apis.user.favorites.isFavorite(file4Id) expect(isFile1Fav).toBe(false, 'item marked as favorite');
]); expect(isFile2Fav).toBe(false, 'item marked as favorite');
expect(resp[0]).toBe(false, 'item marked as favorite');
expect(resp[1]).toBe(false, 'item marked as favorite');
await apis.user.favorites.addFavoriteById('file', file3Id); await apis.user.favorites.addFavoriteById('file', file3Id);
await apis.user.favorites.addFavoriteById('file', file4Id); await apis.user.favorites.addFavoriteById('file', file4Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
}); });
describe('on Favorites', () => { describe('on Favorites', () => {
beforeAll(async (done) => { beforeEach(async (done) => {
await Utils.pressEscape();
await page.refresh();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
done(); done();
}); });
afterEach(async (done) => {
await page.refresh();
done();
});
it('unfavorite an item - [C280368]', async () => { it('unfavorite an item - [C280368]', async () => {
await dataTable.selectItem(file3Fav); await dataTable.selectItem(file3Fav);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 1 }); await apis.user.favorites.waitForApi({ expect: 4 });
const isFavorite = await apis.user.favorites.isFavorite(file3Id); const isFavorite = await apis.user.favorites.isFavorite(file3Id);
expect(isFavorite).toBe(false, 'item is marked as favorite'); expect(isFavorite).toBe(false, 'item is marked as favorite');
expect(await dataTable.getRowByName(file3Fav).isPresent()).toBe(false, 'item still displayed'); expect(await dataTable.getRowByName(file3Fav).isPresent()).toBe(false, 'item still displayed');
await apis.user.favorites.addFavoriteById('file', file3Id); await apis.user.favorites.addFavoriteById('file', file3Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('unfavorite multiple items - [C280374]', async () => { it('unfavorite multiple items - [C280374]', async () => {
await dataTable.selectMultipleItems([ file3Fav, file4Fav ]); await dataTable.selectMultipleItems([ file3Fav, file4Fav ]);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await browser.sleep(2000); await apis.user.favorites.waitForApi({ expect: 3 });
const isFavorite3 = await apis.user.favorites.isFavorite(file3Id); const isFavorite3 = await apis.user.favorites.isFavorite(file3Id);
expect(isFavorite3).toBe(false, 'file3 marked as favorite');
expect(await dataTable.getRowByName(file3Fav).isPresent()).toBe(false, 'file3 still displayed');
const isFavorite4 = await apis.user.favorites.isFavorite(file4Id); const isFavorite4 = await apis.user.favorites.isFavorite(file4Id);
expect(isFavorite3).toBe(false, 'file3 marked as favorite');
expect(isFavorite4).toBe(false, 'file4 marked as favorite'); expect(isFavorite4).toBe(false, 'file4 marked as favorite');
expect(await dataTable.getRowByName(file3Fav).isPresent()).toBe(false, 'file3 still displayed');
expect(await dataTable.getRowByName(file4Fav).isPresent()).toBe(false, 'file4 still displayed'); expect(await dataTable.getRowByName(file4Fav).isPresent()).toBe(false, 'file4 still displayed');
await apis.user.favorites.addFavoriteById('file', file3Id); await apis.user.favorites.addFavoriteById('file', file3Id);
await apis.user.favorites.addFavoriteById('file', file4Id); await apis.user.favorites.addFavoriteById('file', file4Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('Favorite action has full star icon for items marked as favorite - [C280371]', async () => { it('Favorite action has full star icon for items marked as favorite - [C280371]', async () => {
@ -411,32 +411,12 @@ describe('Mark items as favorites', () => {
}); });
describe ('on File Libraries', () => { describe ('on File Libraries', () => {
const fileLibrariesPage = new BrowsingPage();
beforeAll(async (done) => {
await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
const docLibId = await apis.user.sites.getDocLibId(siteName);
folderSiteId = (await apis.user.nodes.createFolder(folderSite, docLibId)).entry.id;
fileSiteNotFav1Id = (await apis.user.nodes.createFile(fileSiteNotFav1, folderSiteId)).entry.id;
fileSiteFav1Id = (await apis.user.nodes.createFile(fileSiteFav1, folderSiteId)).entry.id;
fileSiteNotFav2Id = (await apis.user.nodes.createFile(fileSiteNotFav2, folderSiteId)).entry.id;
fileSiteFav2Id = (await apis.user.nodes.createFile(fileSiteFav2, folderSiteId)).entry.id;
await apis.user.favorites.addFavoriteById('file', fileSiteFav1Id);
await apis.user.favorites.addFavoriteById('file', fileSiteFav2Id);
done();
});
beforeEach(async (done) => { beforeEach(async (done) => {
await fileLibrariesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES); await Utils.pressEscape();
await fileLibrariesPage.dataTable.waitForHeader(); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
await fileLibrariesPage.dataTable.doubleClickOnRowByName(siteName); await page.dataTable.waitForHeader();
await fileLibrariesPage.dataTable.waitForHeader(); await page.dataTable.doubleClickOnRowByName(siteName);
await toolbar.closeMoreMenu(); await page.dataTable.waitForHeader();
done();
});
afterEach(async (done) => {
await browser.refresh();
done(); done();
}); });
@ -444,78 +424,81 @@ describe('Mark items as favorites', () => {
await dataTable.selectItem(folderSite); await dataTable.selectItem(folderSite);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 3 }); await apis.user.favorites.waitForApi({ expect: 6 });
const isFavorite = await apis.user.favorites.isFavorite(folderSiteId); const isFavorite = await apis.user.favorites.isFavorite(folderSiteId);
expect(isFavorite).toBe(true, `${folderSite} not marked as favorite`); expect(isFavorite).toBe(true, `${folderSite} not marked as favorite`);
await apis.user.favorites.removeFavoriteById(folderSiteId); await apis.user.favorites.removeFavoriteById(folderSiteId);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('Favorite a file - [C280342]', async () => { it('Favorite a file - [C280342]', async () => {
await fileLibrariesPage.dataTable.doubleClickOnRowByName(folderSite); await page.dataTable.doubleClickOnRowByName(folderSite);
await dataTable.selectItem(fileSiteNotFav1); await dataTable.selectItem(fileSiteNotFav1);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 3 }); await apis.user.favorites.waitForApi({ expect: 6 });
const isFavorite = await apis.user.favorites.isFavorite(fileSiteNotFav1Id); const isFavorite = await apis.user.favorites.isFavorite(fileSiteNotFav1Id);
expect(isFavorite).toBe(true, `${fileSiteNotFav1} not marked as favorite`); expect(isFavorite).toBe(true, `${fileSiteNotFav1} not marked as favorite`);
await apis.user.favorites.removeFavoriteById(fileSiteNotFav1Id); await apis.user.favorites.removeFavoriteById(fileSiteNotFav1Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('Unfavorite an item - [C280343]', async () => { it('Unfavorite an item - [C280343]', async () => {
await fileLibrariesPage.dataTable.doubleClickOnRowByName(folderSite); await page.dataTable.doubleClickOnRowByName(folderSite);
await dataTable.selectItem(fileSiteFav1); await dataTable.selectItem(fileSiteFav1);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 3 }); await apis.user.favorites.waitForApi({ expect: 4 });
const isFavorite = await apis.user.favorites.isFavorite(fileSiteFav1Id); const isFavorite = await apis.user.favorites.isFavorite(fileSiteFav1Id);
expect(isFavorite).toBe(false, `${fileSiteFav1} is marked as favorite`); expect(isFavorite).toBe(false, `${fileSiteFav1} is marked as favorite`);
await apis.user.favorites.addFavoriteById('file', fileSiteFav1Id); await apis.user.favorites.addFavoriteById('file', fileSiteFav1Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('Favorite multiple items - all unfavorite - [C280345]', async () => { it('Favorite multiple items - all unfavorite - [C280345]', async () => {
await fileLibrariesPage.dataTable.doubleClickOnRowByName(folderSite); await page.dataTable.doubleClickOnRowByName(folderSite);
await dataTable.selectMultipleItems([ fileSiteNotFav1, fileSiteNotFav2 ]); await dataTable.selectMultipleItems([ fileSiteNotFav1, fileSiteNotFav2 ]);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 4 }); await apis.user.favorites.waitForApi({ expect: 7 });
const listItems1 = await Promise.all([
apis.user.favorites.isFavorite(fileSiteNotFav1Id), const isFile1Fav = await apis.user.favorites.isFavorite(fileSiteNotFav1Id);
apis.user.favorites.isFavorite(fileSiteNotFav2Id) const isFile2Fav = await apis.user.favorites.isFavorite(fileSiteNotFav2Id);
]); expect(isFile1Fav).toBe(true, 'item not marked as favorite');
expect(listItems1[0]).toBe(true, 'item not marked as favorite'); expect(isFile2Fav).toBe(true, 'item not marked as favorite');
expect(listItems1[1]).toBe(true, 'item not marked as favorite');
await apis.user.favorites.removeFavoriteById(fileSiteNotFav1Id); await apis.user.favorites.removeFavoriteById(fileSiteNotFav1Id);
await apis.user.favorites.removeFavoriteById(fileSiteNotFav2Id); await apis.user.favorites.removeFavoriteById(fileSiteNotFav2Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('Unfavorite multiple items - [C280346]', async () => { it('Unfavorite multiple items - [C280346]', async () => {
await fileLibrariesPage.dataTable.doubleClickOnRowByName(folderSite); await page.dataTable.doubleClickOnRowByName(folderSite);
await dataTable.selectMultipleItems([ fileSiteFav1, fileSiteFav2 ]); await dataTable.selectMultipleItems([ fileSiteFav1, fileSiteFav2 ]);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
const listItems2 = await Promise.all([ await apis.user.favorites.waitForApi({ expect: 3 });
apis.user.favorites.isFavorite(fileSiteFav1Id), const isFile1Fav = await apis.user.favorites.isFavorite(fileSiteFav1Id);
apis.user.favorites.isFavorite(fileSiteFav2Id) const isFile2Fav = await apis.user.favorites.isFavorite(fileSiteFav2Id);
]); expect(isFile1Fav).toBe(false, 'item marked as favorite');
expect(listItems2[0]).toBe(false, 'item marked as favorite'); expect(isFile2Fav).toBe(false, 'item marked as favorite');
expect(listItems2[1]).toBe(false, 'item marked as favorite');
await apis.user.favorites.addFavoriteById('file', fileSiteFav1Id); await apis.user.favorites.addFavoriteById('file', fileSiteFav1Id);
await apis.user.favorites.addFavoriteById('file', fileSiteFav2Id); await apis.user.favorites.addFavoriteById('file', fileSiteFav2Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
it('Favorite multiple items - some favorite and some unfavorite - [C280347]', async () => { it('Favorite multiple items - some favorite and some unfavorite - [C280347]', async () => {
await fileLibrariesPage.dataTable.doubleClickOnRowByName(folderSite); await page.dataTable.doubleClickOnRowByName(folderSite);
await dataTable.selectMultipleItems([ fileSiteNotFav1, fileSiteFav1 ]); await dataTable.selectMultipleItems([ fileSiteNotFav1, fileSiteFav1 ]);
await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await toolbar.menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
await apis.user.favorites.waitForApi({ expect: 3 }); await apis.user.favorites.waitForApi({ expect: 6 });
const listItems3 = await Promise.all([
apis.user.favorites.isFavorite(fileSiteNotFav1Id), const isFile1Fav = await apis.user.favorites.isFavorite(fileSiteNotFav1Id);
apis.user.favorites.isFavorite(fileSiteFav1) const isFile2Fav = await apis.user.favorites.isFavorite(fileSiteFav1);
]); expect(isFile1Fav).toBe(true, 'item not marked as favorite');
expect(listItems3[0]).toBe(true, 'item not marked as favorite'); expect(isFile2Fav).toBe(true, 'item not marked as favorite');
expect(listItems3[1]).toBe(true, 'item not marked as favorite');
await apis.user.favorites.removeFavoriteById(fileSiteNotFav1Id); await apis.user.favorites.removeFavoriteById(fileSiteNotFav1Id);
await apis.user.favorites.waitForApi({ expect: 5 });
}); });
}); });
}); });

View File

@ -23,7 +23,6 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { browser, protractor } from 'protractor';
import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages';
import { Viewer } from '../../components/viewer/viewer'; import { Viewer } from '../../components/viewer/viewer';
import { SIDEBAR_LABELS } from '../../configs'; import { SIDEBAR_LABELS } from '../../configs';
@ -72,20 +71,18 @@ describe('Single click on item name', () => {
await apis.user.favorites.addFavoriteById('file', file1Id); await apis.user.favorites.addFavoriteById('file', file1Id);
await apis.user.favorites.addFavoriteById('folder', folder1Id); await apis.user.favorites.addFavoriteById('folder', folder1Id);
await apis.user.favorites.waitForApi({ expect: 2 }); await apis.user.favorites.waitForApi({ expect: 2 + 1 });
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.sites.deleteSite(siteName);
apis.user.sites.deleteSite(siteName), await apis.user.nodes.deleteNodeById(folder1Id);
apis.user.nodes.deleteNodeById(folder1Id), await apis.user.nodes.deleteNodeById(file1Id);
apis.user.nodes.deleteNodeById(file1Id), await apis.user.trashcan.emptyTrash();
apis.user.trashcan.emptyTrash(), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });
@ -113,7 +110,7 @@ describe('Single click on item name', () => {
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
}); });
it('Navigate inside the folder when clicking the hyperlink - [C280034]', async () => { it('Navigate inside the folder when clicking the hyperlink - [C280034]', async () => {
@ -158,7 +155,7 @@ describe('Single click on item name', () => {
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
}); });
}); });
@ -178,7 +175,7 @@ describe('Single click on item name', () => {
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
}); });
}); });
@ -198,7 +195,7 @@ describe('Single click on item name', () => {
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
}); });
it('Navigate inside the folder when clicking the hyperlink - [C284911]', async () => { it('Navigate inside the folder when clicking the hyperlink - [C284911]', async () => {

View File

@ -98,7 +98,8 @@ describe('Granular permissions available actions : ', () => {
}); });
afterAll(async done => { afterAll(async done => {
await Promise.all([apis.admin.sites.deleteSite(siteName), logoutPage.load()]); await apis.admin.sites.deleteSite(siteName);
await logoutPage.load();
done(); done();
}); });
@ -119,11 +120,11 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -134,11 +135,11 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -149,12 +150,12 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
// TODO: enable when ACA-1737 is done // TODO: enable when ACA-1737 is done
// expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); // expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`);
// expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); // expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
}); });
@ -176,11 +177,11 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${file1}`); expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${file1}`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${file1}`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${file1}`);
expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${file1}`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${file1}`);
expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${file1}`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${file1}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${file1}`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${file1}`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -192,12 +193,12 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${file1}`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${file1}`);
expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${file1}`); expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${file1}`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${file1}`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${file1}`);
expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${file1}`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${file1}`);
expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${file1}`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${file1}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${file1}`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${file1}`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -209,12 +210,12 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${file1}`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${file1}`);
expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${file1}`); expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${file1}`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${file1}`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${file1}`);
// TODO: enable when ACA-1737 is done // TODO: enable when ACA-1737 is done
// expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${file1}`); // expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${file1}`);
// expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${file1}`); // expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${file1}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${file1}`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${file1}`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
}); });
@ -236,11 +237,11 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${folder1}`); expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${folder1}`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${folder1}`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${folder1}`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folder1}`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folder1}`);
expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${folder1}`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${folder1}`);
expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${folder1}`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${folder1}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folder1}`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folder1}`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -253,18 +254,18 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${folder1}`); expect(await toolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed for ${folder1}`);
// TODO: enable when ACA-1737 is done // TODO: enable when ACA-1737 is done
// expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${folder1}`); // expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${folder1}`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folder1}`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folder1}`);
// TODO: enable when ACA-1737 is done // TODO: enable when ACA-1737 is done
// expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${folder1}`); // expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for ${folder1}`);
// expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${folder1}`); // expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for ${folder1}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folder1}`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folder1}`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
}); });
describe('toolbar actions appear correctly for multiple selection of files - consumer', () => { describe('toolbar actions appear correctly for multiple selection of files - consumer', () => {
beforeEach(async done => { beforeEach(async (done) => {
await Utils.pressEscape(); await Utils.pressEscape();
await dataTable.clearSelection(); await dataTable.clearSelection();
done(); done();
@ -279,11 +280,11 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`);
expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -294,11 +295,11 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -309,18 +310,18 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
// TODO: enable when ACA-1737 is done // TODO: enable when ACA-1737 is done
// expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); // expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`);
// expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); // expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
}); });
describe('toolbar actions appear correctly for multiple selection of folders - consumer', () => { describe('toolbar actions appear correctly for multiple selection of folders - consumer', () => {
beforeEach(async done => { beforeEach(async (done) => {
await Utils.pressEscape(); await Utils.pressEscape();
await dataTable.clearSelection(); await dataTable.clearSelection();
done(); done();
@ -335,11 +336,11 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`);
expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -350,12 +351,12 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
// TODO: enable when ACA-1737 is done // TODO: enable when ACA-1737 is done
// expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); // expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`);
// expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); // expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
}); });
@ -376,11 +377,11 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`);
expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -391,18 +392,18 @@ describe('Granular permissions available actions : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`); expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for selected files`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for selected files`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for selected files`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
// TODO: enable when ACA-1737 is done // TODO: enable when ACA-1737 is done
// expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`); // expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed for selected files`);
// expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`); // expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
}); });
describe('context menu actions are correct for a file - consumer', () => { describe('context menu actions are correct for a file - consumer', () => {
beforeEach(async done => { beforeEach(async (done) => {
await Utils.pressEscape(); await Utils.pressEscape();
done(); done();
}); });
@ -465,7 +466,7 @@ describe('Granular permissions available actions : ', () => {
}); });
describe('context menu actions are correct for a folder - consumer', () => { describe('context menu actions are correct for a folder - consumer', () => {
beforeEach(async done => { beforeEach(async (done) => {
await Utils.pressEscape(); await Utils.pressEscape();
done(); done();
}); });
@ -509,7 +510,7 @@ describe('Granular permissions available actions : ', () => {
}); });
describe('context menu actions are correct for multiple selection of files - consumer', () => { describe('context menu actions are correct for multiple selection of files - consumer', () => {
beforeEach(async done => { beforeEach(async (done) => {
await Utils.pressEscape(); await Utils.pressEscape();
await dataTable.clearSelection(); await dataTable.clearSelection();
done(); done();
@ -562,7 +563,7 @@ describe('Granular permissions available actions : ', () => {
}); });
describe('context menu actions are correct for multiple selection of folders - consumer', () => { describe('context menu actions are correct for multiple selection of folders - consumer', () => {
beforeEach(async done => { beforeEach(async (done) => {
await Utils.pressEscape(); await Utils.pressEscape();
await dataTable.clearSelection(); await dataTable.clearSelection();
done(); done();
@ -601,7 +602,7 @@ describe('Granular permissions available actions : ', () => {
}); });
describe('context menu actions are correct when both files and folders are selected - consumer', () => { describe('context menu actions are correct when both files and folders are selected - consumer', () => {
beforeEach(async done => { beforeEach(async (done) => {
await Utils.pressEscape(); await Utils.pressEscape();
await dataTable.clearSelection(); await dataTable.clearSelection();
done(); done();
@ -640,7 +641,7 @@ describe('Granular permissions available actions : ', () => {
}); });
describe('toolbar actions appear correctly in the viewer - consumer', () => { describe('toolbar actions appear correctly in the viewer - consumer', () => {
beforeEach(async done => { beforeEach(async (done) => {
await Utils.pressEscape(); await Utils.pressEscape();
done(); done();
}); });
@ -659,14 +660,14 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.isButtonPresent('Print')).toBe(true, `Print is not displayed`); expect(await viewerToolbar.isButtonPresent('Print')).toBe(true, `Print is not displayed`);
expect(await viewerToolbar.isButtonPresent('Activate full-screen mode')).toBe(true, `Full screen is not displayed`); expect(await viewerToolbar.isButtonPresent('Activate full-screen mode')).toBe(true, `Full screen is not displayed`);
expect(await viewerToolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed`); expect(await viewerToolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed`);
const menu = await viewerToolbar.openMoreMenu(); await viewerToolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await menu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed`);
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`);
expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`);
expect(await menu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage versions is displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage versions is displayed`);
expect(await menu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -682,13 +683,13 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.isButtonPresent('Print')).toBe(true, `Print is not displayed`); expect(await viewerToolbar.isButtonPresent('Print')).toBe(true, `Print is not displayed`);
expect(await viewerToolbar.isButtonPresent('Activate full-screen mode')).toBe(true, `Full screen is not displayed`); expect(await viewerToolbar.isButtonPresent('Activate full-screen mode')).toBe(true, `Full screen is not displayed`);
expect(await viewerToolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed`); expect(await viewerToolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed`);
const menu = await viewerToolbar.openMoreMenu(); await viewerToolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`);
expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`);
expect(await menu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage versions is displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage versions is displayed`);
expect(await menu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -704,15 +705,15 @@ describe('Granular permissions available actions : ', () => {
expect(await viewerToolbar.isButtonPresent('Print')).toBe(true, `Print is not displayed`); expect(await viewerToolbar.isButtonPresent('Print')).toBe(true, `Print is not displayed`);
expect(await viewerToolbar.isButtonPresent('Activate full-screen mode')).toBe(true, `Full screen is not displayed`); expect(await viewerToolbar.isButtonPresent('Activate full-screen mode')).toBe(true, `Full screen is not displayed`);
expect(await viewerToolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed`); expect(await viewerToolbar.isButtonPresent('View details')).toBe(true, `View details is not displayed`);
const menu = await viewerToolbar.openMoreMenu(); await viewerToolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await menu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed`);
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
// TODO: enable when ACA-1737 is done // TODO: enable when ACA-1737 is done
// expect(await menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`); // expect(await viewerToolbar.menu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`);
// expect(await menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`); // expect(await viewerToolbar.menu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`);
expect(await menu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage versions is displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage versions is displayed`);
expect(await menu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`); expect(await viewerToolbar.menu.isMenuItemPresent('Permissions')).toBe(false, `Permissions is displayed`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
}); });

View File

@ -32,14 +32,14 @@ import { Utils } from '../../utilities/utils';
describe('Toolbar actions - multiple selection : ', () => { describe('Toolbar actions - multiple selection : ', () => {
const username = `user-${Utils.random()}`; const username = `user-${Utils.random()}`;
const file1 = `file-${Utils.random()}.txt`; const file1 = `file1-${Utils.random()}.txt`;
let file1Id; let file1Id;
const file2 = `file-${Utils.random()}.txt`; const file2 = `file2-${Utils.random()}.txt`;
let file2Id; let file2Id;
const folder1 = `folder-${Utils.random()}`; const folder1 = `folder1-${Utils.random()}`;
let folder1Id; let folder1Id;
const folder2 = `folder-${Utils.random()}`; const folder2 = `folder2-${Utils.random()}`;
let folder2Id; let folder2Id;
const fileForDelete1 = `file-${Utils.random()}.txt`; const fileForDelete1 = `file-${Utils.random()}.txt`;
@ -87,15 +87,16 @@ describe('Toolbar actions - multiple selection : ', () => {
await apis.user.favorites.waitForApi({ expect: 4 }); await apis.user.favorites.waitForApi({ expect: 4 });
await apis.user.nodes.deleteNodesById([fileForDelete1Id, fileForDelete2Id, folderForDelete1Id, folderForDelete2Id], false); await apis.user.nodes.deleteNodesById([fileForDelete1Id, fileForDelete2Id, folderForDelete1Id, folderForDelete2Id], false);
await apis.user.trashcan.waitForApi({ expect: 4 });
await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE); await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE);
const docLibId = await apis.user.sites.getDocLibId(siteName); const docLibId = await apis.user.sites.getDocLibId(siteName);
await Promise.all([ await apis.user.nodes.createFile(file1InSite, docLibId);
apis.user.nodes.createFile(file1InSite, docLibId), await apis.user.nodes.createFile(file2InSite, docLibId);
apis.user.nodes.createFile(file2InSite, docLibId), await apis.user.nodes.createFolder(folder1InSite, docLibId);
apis.user.nodes.createFolder(folder1InSite, docLibId), await apis.user.nodes.createFolder(folder2InSite, docLibId);
apis.user.nodes.createFolder(folder2InSite, docLibId) await apis.user.search.waitForApi(username, { expect: 4 });
]);
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
}); });
@ -114,9 +115,10 @@ describe('Toolbar actions - multiple selection : ', () => {
describe('Personal Files', () => { describe('Personal Files', () => {
beforeEach(async done => { beforeEach(async done => {
await dataTable.clearSelection(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -148,11 +150,11 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -161,11 +163,11 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -174,23 +176,24 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
}); });
describe('File Libraries', () => { describe('File Libraries', () => {
beforeEach(async done => { beforeEach(async done => {
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform(); // await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform();
await dataTable.clearSelection(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.doubleClickOnRowByName(siteName); await dataTable.doubleClickOnRowByName(siteName);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -199,11 +202,11 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed for selected files'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed for selected files');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
}); });
it('correct actions appear when multiple folders are selected - [C280462]', async () => { it('correct actions appear when multiple folders are selected - [C280462]', async () => {
@ -211,11 +214,11 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
}); });
it('correct actions appear when both files and folders are selected - [C280463]', async () => { it('correct actions appear when both files and folders are selected - [C280463]', async () => {
@ -223,20 +226,21 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
}); });
}); });
describe('Shared Files', () => { describe('Shared Files', () => {
beforeEach(async done => { beforeEach(async done => {
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform(); // await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform();
await dataTable.clearSelection(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -245,20 +249,21 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed for selected files');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
}); });
}); });
describe('Recent Files', () => { describe('Recent Files', () => {
beforeEach(async done => { beforeEach(async done => {
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform(); // await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform();
await dataTable.clearSelection(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -267,20 +272,21 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
}); });
}); });
describe('Favorites', () => { describe('Favorites', () => {
beforeEach(async done => { beforeEach(async done => {
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform(); // await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform();
await dataTable.clearSelection(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -289,11 +295,11 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
}); });
it('correct actions appear when multiple folders are selected - [C280470]', async () => { it('correct actions appear when multiple folders are selected - [C280470]', async () => {
@ -301,11 +307,11 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
}); });
it('correct actions appear when both files and folders are selected - [C280471]', async () => { it('correct actions appear when both files and folders are selected - [C280471]', async () => {
@ -313,19 +319,20 @@ describe('Toolbar actions - multiple selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed'); expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files'); expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files');
expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed'); expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for selected files`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for selected files`);
}); });
}); });
describe('Trash', () => { describe('Trash', () => {
beforeEach(async done => { beforeEach(async done => {
await dataTable.clearSelection(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });

View File

@ -23,7 +23,6 @@
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>. * along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/ */
import { browser, protractor } from 'protractor';
import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages';
import { SITE_VISIBILITY, SIDEBAR_LABELS } from '../../configs'; import { SITE_VISIBILITY, SIDEBAR_LABELS } from '../../configs';
import { RepoClient } from '../../utilities/repo-client/repo-client'; import { RepoClient } from '../../utilities/repo-client/repo-client';
@ -110,10 +109,10 @@ describe('Toolbar actions - single selection : ', () => {
describe('Personal Files', () => { describe('Personal Files', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await dataTable.clearSelection();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -127,11 +126,11 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -141,22 +140,23 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for ${folderUser}`); expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for ${folderUser}`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`);
expect(await toolbar.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`); expect(await toolbar.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderUser}`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderUser}`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
}); });
describe('File Libraries', () => { describe('File Libraries', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.doubleClickOnRowByName(siteName); await dataTable.doubleClickOnRowByName(siteName);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -170,11 +170,11 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileInSite}`); expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileInSite}`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileInSite}`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileInSite}`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileInSite}`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileInSite}`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileInSite}`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileInSite}`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileInSite}`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileInSite}`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileInSite}`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileInSite}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileInSite}`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileInSite}`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -184,20 +184,21 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for ${folderInSite}`); expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for ${folderInSite}`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderInSite}`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderInSite}`);
expect(await toolbar.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderInSite}`); expect(await toolbar.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderInSite}`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderInSite}`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderInSite}`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderInSite}`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderInSite}`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderInSite}`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderInSite}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderInSite}`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderInSite}`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
}); });
describe('Shared Files', () => { describe('Shared Files', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
await page.dataTable.waitForHeader(); await page.dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -211,20 +212,21 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
}); });
describe('Recent Files', () => { describe('Recent Files', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -238,20 +240,21 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
}); });
describe('Favorites', () => { describe('Favorites', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });
@ -265,11 +268,11 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`);
expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -279,20 +282,21 @@ describe('Toolbar actions - single selection : ', () => {
expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for ${folderUser}`); expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for ${folderUser}`);
expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`);
expect(await toolbar.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`); expect(await toolbar.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderUser}`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderUser}`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
}); });
describe('Trash', () => { describe('Trash', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE); await Utils.pressEscape();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
await dataTable.clearSelection();
done(); done();
}); });

View File

@ -60,13 +60,11 @@ describe('Login', () => {
const newPassword = 'new password'; const newPassword = 'new password';
beforeAll(async (done) => { beforeAll(async (done) => {
await Promise.all([ await peopleApi.createUser({ username: testUser });
peopleApi.createUser({ username: testUser }), await peopleApi.createUser(russianUser);
peopleApi.createUser(russianUser), await peopleApi.createUser(johnDoe);
peopleApi.createUser(johnDoe), await peopleApi.createUser({ username: disabledUser });
peopleApi.createUser({ username: disabledUser }), await peopleApi.createUser(testUser2);
peopleApi.createUser(testUser2)
]);
await peopleApi.disableUser(disabledUser); await peopleApi.disableUser(disabledUser);
done(); done();
}); });
@ -114,7 +112,7 @@ describe('Login', () => {
const { username, firstName, lastName } = johnDoe; const { username, firstName, lastName } = johnDoe;
await loginPage.loginWith(username); await loginPage.loginWith(username);
expect(userInfo.name).toEqual(`${firstName} ${lastName}`); expect(await userInfo.getName()).toEqual(`${firstName} ${lastName}`);
}); });
it(`logs in with user having username containing "@" - [C213096]`, async () => { it(`logs in with user having username containing "@" - [C213096]`, async () => {
@ -126,9 +124,10 @@ describe('Login', () => {
const { username, password } = russianUser; const { username, password } = russianUser;
await loginPage.loginWith(username, password); await loginPage.loginWith(username, password);
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES); expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
}); });
// TODO: ACA-245
xit('redirects to Home Page when navigating to the Login page while already logged in - [C213107]', async () => { xit('redirects to Home Page when navigating to the Login page while already logged in - [C213107]', async () => {
const { username } = johnDoe; const { username } = johnDoe;

View File

@ -104,8 +104,9 @@ describe('Extensions - Info Drawer', () => {
await page.toolbar.getButtonByTitleAttribute('View details').click(); await page.toolbar.getButtonByTitleAttribute('View details').click();
await infoDrawer.waitForInfoDrawerToOpen(); await infoDrawer.waitForInfoDrawerToOpen();
const val = await infoDrawer.getTabTitle(custom_tab.order);
expect(await infoDrawer.isTabPresent(custom_tab.title)).toBe(true, `${custom_tab.title} tab is not present`); expect(await infoDrawer.isTabPresent(custom_tab.title)).toBe(true, `${custom_tab.title} tab is not present`);
expect(await infoDrawer.getTabTitle(custom_tab.order)).toEqual(`${custom_tab.icon}\n${custom_tab.title}\n`); expect(val).toEqual(`${custom_tab.icon}\n${custom_tab.title}\n`);
}); });
it('Remove existing tab - [C284647]', async () => { it('Remove existing tab - [C284647]', async () => {

View File

@ -90,10 +90,8 @@ describe('Extensions - Viewer', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.nodes.deleteNodesById([ pdfFileId, docxFileId ]);
apis.user.nodes.deleteNodesById([ pdfFileId, docxFileId ]), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });
@ -106,7 +104,7 @@ describe('Extensions - Viewer', () => {
afterEach(async (done) => { afterEach(async (done) => {
await Utils.pressEscape(); await Utils.pressEscape();
done(); done();
}) });
xit(''); xit('');

View File

@ -63,13 +63,11 @@ describe('Favorites', () => {
const file3Id = (await apis.user.nodes.createFile(fileName3, parentId)).entry.id; const file3Id = (await apis.user.nodes.createFile(fileName3, parentId)).entry.id;
const file4Id = (await apis.user.nodes.createFile(fileName4, parentId)).entry.id; const file4Id = (await apis.user.nodes.createFile(fileName4, parentId)).entry.id;
await Promise.all([ await apis.user.favorites.addFavoriteById('file', file1Id);
apis.user.favorites.addFavoriteById('file', file1Id), await apis.user.favorites.addFavoriteById('folder', folderId);
apis.user.favorites.addFavoriteById('folder', folderId), await apis.user.favorites.addFavoriteById('file', file2Id);
apis.user.favorites.addFavoriteById('file', file2Id), await apis.user.favorites.addFavoriteById('file', file3Id);
apis.user.favorites.addFavoriteById('file', file3Id), await apis.user.favorites.addFavoriteById('file', file4Id);
apis.user.favorites.addFavoriteById('file', file4Id)
]);
await apis.user.nodes.deleteNodeById(file3Id, false); await apis.user.nodes.deleteNodeById(file3Id, false);
await apis.user.nodes.deleteNodeById(file4Id, false); await apis.user.nodes.deleteNodeById(file4Id, false);
await apis.user.trashcan.restore(file4Id); await apis.user.trashcan.restore(file4Id);
@ -85,24 +83,20 @@ describe('Favorites', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.admin.sites.deleteSite(siteName);
apis.admin.sites.deleteSite(siteName), await apis.user.nodes.deleteNodes([ favFolderName, parentFolder ]);
apis.user.nodes.deleteNodes([ favFolderName, parentFolder ]), await apis.admin.trashcan.emptyTrash();
apis.admin.trashcan.emptyTrash(), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });
it('has the correct columns - [C280482]', async () => { it('has the correct columns - [C280482]', async () => {
const labels = [ 'Name', 'Location', 'Size', 'Modified', 'Modified by' ]; const expectedHeader = [ 'Thumbnail', 'Name', 'Location', 'Size', 'Modified', 'Modified by' ];
const elements = labels.map(label => dataTable.getColumnHeaderByLabel(label)); const headers = dataTable.getColumnHeaders();
const count = await headers.count();
expect(count).toBe(5 + 1, 'Incorrect number of columns');
expect(await dataTable.getColumnHeaders().count()).toBe(5 + 1, 'Incorrect number of columns'); expect(await dataTable.getHeaderText()).toEqual(expectedHeader);
await elements.forEach(async (element, index) => {
expect(await element.isPresent()).toBe(true, `"${labels[index]}" is missing`);
});
}); });
it('displays the favorite files and folders - [C213226]', async () => { it('displays the favorite files and folders - [C213226]', async () => {
@ -121,9 +115,9 @@ describe('Favorites', () => {
}); });
it('Location column displays the parent folder of the files - [C213231]', async () => { it('Location column displays the parent folder of the files - [C213231]', async () => {
expect(await dataTable.getItemLocation(fileName1).getText()).toEqual(siteName); expect(await dataTable.getItemLocation(fileName1)).toEqual(siteName);
expect(await dataTable.getItemLocation(fileName2).getText()).toEqual(parentFolder); expect(await dataTable.getItemLocation(fileName2)).toEqual(parentFolder);
expect(await dataTable.getItemLocation(favFolderName).getText()).toEqual('Personal Files'); expect(await dataTable.getItemLocation(favFolderName)).toEqual('Personal Files');
}); });
it('Location column displays a tooltip with the entire path of the file - [C213671]', async () => { it('Location column displays a tooltip with the entire path of the file - [C213671]', async () => {
@ -144,7 +138,7 @@ describe('Favorites', () => {
it('Location column redirect - file in site - [C280485]', async () => { it('Location column redirect - file in site - [C280485]', async () => {
await dataTable.clickItemLocation(fileName1); await dataTable.clickItemLocation(fileName1);
expect(await breadcrumb.getAllItems()).toEqual([ 'File Libraries', siteName ]); expect(breadcrumb.getAllItems()).toEqual([ 'File Libraries', siteName ]);
}); });
it('Navigate into folder from Favorites - [C213230]', async () => { it('Navigate into folder from Favorites - [C213230]', async () => {

View File

@ -53,22 +53,18 @@ describe('File Libraries', () => {
const { dataTable } = fileLibrariesPage; const { dataTable } = fileLibrariesPage;
beforeAll(async (done) => { beforeAll(async (done) => {
await Promise.all([ await apis.admin.people.createUser({ username });
apis.admin.people.createUser({ username }), await apis.admin.sites.createSite(sitePublic, SITE_VISIBILITY.PUBLIC);
apis.admin.sites.createSite(sitePublic, SITE_VISIBILITY.PUBLIC), await apis.admin.sites.createSite(siteModerated, SITE_VISIBILITY.MODERATED, siteDescription);
apis.admin.sites.createSite(siteModerated, SITE_VISIBILITY.MODERATED, siteDescription), await apis.admin.sites.createSite(sitePrivate, SITE_VISIBILITY.PRIVATE, null);
apis.admin.sites.createSite(sitePrivate, SITE_VISIBILITY.PRIVATE, null), await apis.admin.sites.createSite(adminSite, SITE_VISIBILITY.PUBLIC);
apis.admin.sites.createSite(adminSite, SITE_VISIBILITY.PUBLIC), await apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC, null, siteId1);
apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC, null, siteId1), await apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC, null, siteId2);
apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC, null, siteId2) await apis.admin.sites.addSiteMember(sitePublic, username, SITE_ROLES.SITE_CONSUMER);
]); await apis.admin.sites.addSiteMember(siteModerated, username, SITE_ROLES.SITE_MANAGER);
await Promise.all([ await apis.admin.sites.addSiteMember(sitePrivate, username, SITE_ROLES.SITE_CONTRIBUTOR);
apis.admin.sites.addSiteMember(sitePublic, username, SITE_ROLES.SITE_CONSUMER), await apis.admin.sites.addSiteMember(siteId1, username, SITE_ROLES.SITE_CONTRIBUTOR);
apis.admin.sites.addSiteMember(siteModerated, username, SITE_ROLES.SITE_MANAGER), await apis.admin.sites.addSiteMember(siteId2, username, SITE_ROLES.SITE_CONTRIBUTOR);
apis.admin.sites.addSiteMember(sitePrivate, username, SITE_ROLES.SITE_CONTRIBUTOR),
apis.admin.sites.addSiteMember(siteId1, username, SITE_ROLES.SITE_CONTRIBUTOR),
apis.admin.sites.addSiteMember(siteId2, username, SITE_ROLES.SITE_CONTRIBUTOR)
]);
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
@ -81,10 +77,8 @@ describe('File Libraries', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.admin.sites.deleteSites([ sitePublic, siteModerated, sitePrivate, adminSite, siteId1, siteId2 ]);
apis.admin.sites.deleteSites([ sitePublic, siteModerated, sitePrivate, adminSite, siteId1, siteId2 ]), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });

View File

@ -60,11 +60,9 @@ describe('Generic errors', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.nodes.deleteNodeById(parentId);
apis.user.nodes.deleteNodeById(parentId), await apis.user.trashcan.emptyTrash();
apis.user.trashcan.emptyTrash(), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });
@ -82,7 +80,7 @@ describe('Generic errors', () => {
}); });
it('Invalid URL - [C217315]', async () => { it('Invalid URL - [C217315]', async () => {
await page.load('invalid page'); await page.load('/invalid page');
expect(await page.isGenericErrorDisplayed()).toBe(true, 'Generic error page not displayed'); expect(await page.isGenericErrorDisplayed()).toBe(true, 'Generic error page not displayed');
expect(await page.getGenericErrorTitle()).toContain(`This file or folder no longer exists or you don't have permission to view it.`); expect(await page.getGenericErrorTitle()).toContain(`This file or folder no longer exists or you don't have permission to view it.`);

View File

@ -144,21 +144,21 @@ describe('Special permissions', () => {
await recentFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES); await recentFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
expect(await dataTable.countRows()).toBe(1, 'Incorrect number of items'); expect(await dataTable.countRows()).toBe(1, 'Incorrect number of items');
expect(await dataTable.getItemLocation(fileName).getText()).toEqual(''); expect(await dataTable.getItemLocation(fileName)).toEqual('');
}); });
it(`on Favorites - [C213672]`, async () => { it(`on Favorites - [C213672]`, async () => {
await favoritesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); await favoritesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
expect(await dataTable.countRows()).toBe(1, 'Incorrect number of items'); expect(await dataTable.countRows()).toBe(1, 'Incorrect number of items');
expect(await dataTable.getItemLocation(fileName).getText()).toEqual(''); expect(await dataTable.getItemLocation(fileName)).toEqual('');
}); });
it(`on Shared Files - [C213668]`, async () => { it(`on Shared Files - [C213668]`, async () => {
await sharedPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES); await sharedPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
expect(await dataTable.countRows()).toBe(1, 'Incorrect number of items'); expect(await dataTable.countRows()).toBe(1, 'Incorrect number of items');
expect(await dataTable.getItemLocation(fileName).getText()).toEqual(''); expect(await dataTable.getItemLocation(fileName)).toEqual('');
}); });
}); });
}); });

View File

@ -76,12 +76,10 @@ describe('Recent Files', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.nodes.deleteNodesById([ folderId, file2Id ]);
apis.user.nodes.deleteNodesById([ folderId, file2Id ]), await apis.user.sites.deleteSite(siteName);
apis.user.sites.deleteSite(siteName), await apis.admin.trashcan.emptyTrash();
apis.admin.trashcan.emptyTrash(), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });
@ -113,9 +111,9 @@ describe('Recent Files', () => {
}); });
it('Location column displays the parent folder of the file - [C213175]', async () => { it('Location column displays the parent folder of the file - [C213175]', async () => {
expect(await dataTable.getItemLocation(fileName1).getText()).toEqual(folderName); expect(await dataTable.getItemLocation(fileName1)).toEqual(folderName);
expect(await dataTable.getItemLocation(fileName2).getText()).toEqual('Personal Files'); expect(await dataTable.getItemLocation(fileName2)).toEqual('Personal Files');
expect(await dataTable.getItemLocation(fileSite).getText()).toEqual(folderSite); expect(await dataTable.getItemLocation(fileSite)).toEqual(folderSite);
}); });
it('Location column displays a tooltip with the entire path of the file - [C213177]', async () => { it('Location column displays a tooltip with the entire path of the file - [C213177]', async () => {

View File

@ -33,9 +33,9 @@ describe('Shared Files', () => {
const password = username; const password = username;
const siteName = `site-${Utils.random()}`; const siteName = `site-${Utils.random()}`;
const fileAdmin = `file-${Utils.random()}.txt`; const fileAdmin = `fileSite-${Utils.random()}.txt`;
const folderUser = `folder-${Utils.random()}`; const folderUser = `folder-${Utils.random()}`; let folderId;
const file1User = `file1-${Utils.random()}.txt`; let file1Id; const file1User = `file1-${Utils.random()}.txt`; let file1Id;
const file2User = `file2-${Utils.random()}.txt`; let file2Id; const file2User = `file2-${Utils.random()}.txt`; let file2Id;
const file3User = `file3-${Utils.random()}.txt`; let file3Id; const file3User = `file3-${Utils.random()}.txt`; let file3Id;
@ -59,16 +59,17 @@ describe('Shared Files', () => {
const nodeId = (await apis.admin.nodes.createFile(fileAdmin, docLibId)).entry.id; const nodeId = (await apis.admin.nodes.createFile(fileAdmin, docLibId)).entry.id;
await apis.admin.shared.shareFileById(nodeId); await apis.admin.shared.shareFileById(nodeId);
const folderId = (await apis.user.nodes.createFolder(folderUser)).entry.id; folderId = (await apis.user.nodes.createFolder(folderUser)).entry.id;
file1Id = (await apis.user.nodes.createFile(file1User, folderId)).entry.id; file1Id = (await apis.user.nodes.createFile(file1User, folderId)).entry.id;
file2Id = (await apis.user.nodes.createFile(file2User)).entry.id; file2Id = (await apis.user.nodes.createFile(file2User)).entry.id;
file3Id = (await apis.user.nodes.createFile(file3User)).entry.id; file3Id = (await apis.user.nodes.createFile(file3User)).entry.id;
file4Id = (await apis.user.nodes.createFile(file4User)).entry.id; file4Id = (await apis.user.nodes.createFile(file4User)).entry.id;
await apis.user.shared.shareFilesByIds([file1Id, file2Id, file3Id, file4Id]); await apis.user.shared.shareFilesByIds([file1Id, file2Id, file3Id, file4Id]);
await apis.user.shared.waitForApi({ expect: 5 }); await apis.admin.shared.waitForApi({ expect: 5 });
await apis.user.nodes.deleteNodeById(file2Id); await apis.user.nodes.deleteNodeById(file2Id);
await apis.user.shared.unshareFile(file3User); await apis.user.shared.unshareFile(file3User);
await apis.admin.shared.waitForApi({ expect: 3 });
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
@ -80,33 +81,25 @@ describe('Shared Files', () => {
done(); done();
}); });
afterEach(async (done) => {
await sharedFilesPage.refresh();
done();
});
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.admin.sites.deleteSite(siteName);
apis.admin.sites.deleteSite(siteName), await apis.user.nodes.deleteNodeById(folderId);
apis.user.nodes.deleteNodes([ folderUser ]), await apis.user.nodes.deleteNodeById(file4Id);
logoutPage.load() await logoutPage.load();
]);
done(); done();
}); });
it('has the correct columns - [C213113]', async () => { it('has the correct columns - [C213113]', async () => {
const labels = [ 'Name', 'Location', 'Size', 'Modified', 'Modified by', 'Shared by' ]; const expectedHeader = [ 'Thumbnail', 'Name', 'Location', 'Size', 'Modified', 'Modified by', 'Shared by' ];
const elements = labels.map(label => dataTable.getColumnHeaderByLabel(label)); const headers = dataTable.getColumnHeaders();
const count = await headers.count();
expect(count).toBe(6 + 1, 'Incorrect number of columns');
expect(await dataTable.getColumnHeaders().count()).toBe(6 + 1, 'Incorrect number of columns'); expect(await dataTable.getHeaderText()).toEqual(expectedHeader);
await elements.forEach(async (element, index) => {
expect(await element.isPresent()).toBe(true, `"${labels[index]}" is missing`);
});
}); });
it('default sorting column - [C213115]', async () => { it('default sorting column - [C213115]', async () => {
expect(await dataTable.getSortedColumnHeader().getText()).toBe('Modified'); expect(await dataTable.getSortedColumnHeaderText()).toBe('Modified');
expect(await dataTable.getSortingOrder()).toBe('desc'); expect(await dataTable.getSortingOrder()).toBe('desc');
}); });
@ -119,17 +112,14 @@ describe('Shared Files', () => {
expect(await dataTable.getRowByName(file2User).isPresent()).toBe(false, `${file2User} is displayed`); expect(await dataTable.getRowByName(file2User).isPresent()).toBe(false, `${file2User} is displayed`);
}); });
// TODO: disabled cause the api is slow to update. Find a way to wait until the file is unshared it('unshared file is not displayed - [C213118]', async () => {
xit('unshared file is not displayed - [C213118]', async (done) => {
await apis.user.shared.waitForApi({ expect: 4 });
expect(await dataTable.getRowByName(file3User).isPresent()).toBe(false, `${file3User} is displayed`); expect(await dataTable.getRowByName(file3User).isPresent()).toBe(false, `${file3User} is displayed`);
done();
}); });
it('Location column displays the parent folder of the file - [C213665]', async () => { it('Location column displays the parent folder of the file - [C213665]', async () => {
expect(await dataTable.getItemLocationTileAttr(file4User)).toEqual('Personal Files'); expect(await dataTable.getItemLocationTileAttr(file4User)).toEqual('Personal Files');
expect(await dataTable.getItemLocation(fileAdmin).getText()).toEqual(siteName); expect(await dataTable.getItemLocation(fileAdmin)).toEqual(siteName);
expect(await dataTable.getItemLocation(file1User).getText()).toEqual(folderUser); expect(await dataTable.getItemLocation(file1User)).toEqual(folderUser);
}); });
it('Location column redirect - file in user Home - [C213666]', async () => { it('Location column redirect - file in user Home - [C213666]', async () => {

View File

@ -172,9 +172,9 @@ describe('Trash', () => {
}); });
it('Location column displays the parent folder of the file - [C280498]', async () => { it('Location column displays the parent folder of the file - [C280498]', async () => {
expect(await dataTable.getItemLocation(fileInFolder).getText()).toEqual(folderNotDeleted); expect(await dataTable.getItemLocation(fileInFolder)).toEqual(folderNotDeleted);
expect(await dataTable.getItemLocation(fileUser).getText()).toEqual('Personal Files'); expect(await dataTable.getItemLocation(fileUser)).toEqual('Personal Files');
expect(await dataTable.getItemLocation(fileSite).getText()).toEqual(siteName); expect(await dataTable.getItemLocation(fileSite)).toEqual(siteName);
}); });
it('Location column displays a tooltip with the entire path of the file - [C280499]', async () => { it('Location column displays a tooltip with the entire path of the file - [C280499]', async () => {
@ -184,7 +184,7 @@ describe('Trash', () => {
}); });
it('Location column is empty if parent folder no longer exists - [C280500]', async () => { it('Location column is empty if parent folder no longer exists - [C280500]', async () => {
expect(await dataTable.getItemLocation(fileDeleted).getText()).toEqual(''); expect(await dataTable.getItemLocation(fileDeleted)).toEqual('');
}); });
it('Location column redirect - file in user Home - [C217144]', async () => { it('Location column redirect - file in user Home - [C217144]', async () => {

View File

@ -169,7 +169,6 @@ describe('Breadcrumb', () => {
await page.dataTable.doubleClickOnRowByName(folder1); await page.dataTable.doubleClickOnRowByName(folder1);
await page.dataTable.wait(); await page.dataTable.wait();
await apis.user.nodes.renameNode(folder1Id, folder1Renamed) await apis.user.nodes.renameNode(folder1Id, folder1Renamed)
// .then(done => done)
await page.refresh(); await page.refresh();
await page.dataTable.wait(); await page.dataTable.wait();
expect(await breadcrumb.getCurrentItemName()).toEqual(folder1Renamed); expect(await breadcrumb.getCurrentItemName()).toEqual(folder1Renamed);

View File

@ -66,7 +66,7 @@ describe('Pagination on multiple pages on Favorites', () => {
}); });
afterEach(async (done) => { afterEach(async (done) => {
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform(); await Utils.pressEscape();
done(); done();
}); });

View File

@ -60,7 +60,7 @@ describe('Pagination on multiple pages on File Libraries', () => {
}); });
afterEach(async (done) => { afterEach(async (done) => {
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform(); await Utils.pressEscape();
done(); done();
}); });

View File

@ -63,7 +63,7 @@ describe('Pagination on multiple pages on Personal Files', () => {
}); });
afterEach(async (done) => { afterEach(async (done) => {
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform(); await Utils.pressEscape();
done(); done();
}); });

View File

@ -63,7 +63,7 @@ describe('Pagination on multiple pages on Recent Files', () => {
}); });
afterEach(async (done) => { afterEach(async (done) => {
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform(); await Utils.pressEscape();
done(); done();
}); });

View File

@ -66,15 +66,13 @@ describe('Pagination on multiple pages on Shared Files', () => {
}); });
afterEach(async (done) => { afterEach(async (done) => {
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform(); await Utils.pressEscape();
done(); done();
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.nodes.deleteNodeById(parentId);
apis.user.nodes.deleteNodeById(parentId), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });

View File

@ -62,15 +62,13 @@ describe('Pagination on multiple pages on Trash', () => {
}); });
afterEach(async (done) => { afterEach(async (done) => {
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform(); await Utils.pressEscape();
done(); done();
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.trashcan.emptyTrash();
apis.user.trashcan.emptyTrash(), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });

View File

@ -70,15 +70,11 @@ describe('Viewer actions', () => {
const pdfPersonalFiles = `pdfPF-${Utils.random()}.pdf`; const pdfPersonalFiles = `pdfPF-${Utils.random()}.pdf`;
beforeAll(async (done) => { beforeAll(async (done) => {
await Promise.all([ parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
parentId = (await apis.user.nodes.createFolder(parent)).entry.id, destinationId = (await apis.user.nodes.createFolder(destination)).entry.id;
destinationId = (await apis.user.nodes.createFolder(destination)).entry.id docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxPersonalFiles)).entry.id;
]); await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxPersonalFiles);
await Promise.all([ await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfPersonalFiles);
docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxPersonalFiles)).entry.id,
await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxPersonalFiles),
await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfPersonalFiles)
]);
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
@ -98,12 +94,10 @@ describe('Viewer actions', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.nodes.deleteNodeById(parentId);
apis.user.nodes.deleteNodeById(parentId), await apis.user.nodes.deleteNodeById(destinationId);
apis.user.nodes.deleteNodeById(destinationId), await apis.user.trashcan.emptyTrash();
apis.user.trashcan.emptyTrash(), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });
@ -117,14 +111,14 @@ describe('Viewer actions', () => {
expect(await toolbar.isButtonPresent('Print')).toBe(true, `print`); expect(await toolbar.isButtonPresent('Print')).toBe(true, `print`);
expect(await toolbar.isButtonPresent('Activate full-screen mode')).toBe(true, `full screen`); expect(await toolbar.isButtonPresent('Activate full-screen mode')).toBe(true, `full screen`);
expect(await toolbar.isButtonPresent('View details')).toBe(true, `view details`); expect(await toolbar.isButtonPresent('View details')).toBe(true, `view details`);
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `favorite`); expect(await toolbar.menu.isMenuItemPresent('Favorite')).toBe(true, `favorite`);
expect(await menu.isMenuItemPresent('Share')).toBe(true, `share`); expect(await toolbar.menu.isMenuItemPresent('Share')).toBe(true, `share`);
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `copy`); expect(await toolbar.menu.isMenuItemPresent('Copy')).toBe(true, `copy`);
expect(await menu.isMenuItemPresent('Move')).toBe(true, `move`); expect(await toolbar.menu.isMenuItemPresent('Move')).toBe(true, `move`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `delete`); expect(await toolbar.menu.isMenuItemPresent('Delete')).toBe(true, `delete`);
expect(await menu.isMenuItemPresent('Manage Versions')).toBe(true, `manage versions`); expect(await toolbar.menu.isMenuItemPresent('Manage Versions')).toBe(true, `manage versions`);
expect(await menu.isMenuItemPresent('Permissions')).toBe(true, `permissions`); expect(await toolbar.menu.isMenuItemPresent('Permissions')).toBe(true, `permissions`);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
@ -140,8 +134,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxPersonalFiles); await dataTable.doubleClickOnRowByName(docxPersonalFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Copy'); await toolbar.menu.clickMenuItem('Copy');
expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await copyMoveDialog.selectLocation('Personal Files'); await copyMoveDialog.selectLocation('Personal Files');
await copyMoveDialog.chooseDestination(destination); await copyMoveDialog.chooseDestination(destination);
@ -162,8 +156,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(xlsxPersonalFiles); await dataTable.doubleClickOnRowByName(xlsxPersonalFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Move'); await toolbar.menu.clickMenuItem('Move');
expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await copyMoveDialog.selectLocation('Personal Files'); await copyMoveDialog.selectLocation('Personal Files');
await copyMoveDialog.chooseDestination(destination); await copyMoveDialog.chooseDestination(destination);
@ -181,12 +175,12 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxPersonalFiles); await dataTable.doubleClickOnRowByName(docxPersonalFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
expect(await apis.user.favorites.isFavorite(docxFileId)).toBe(true, 'Item is not favorite');
await viewer.clickClose(); await viewer.clickClose();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
expect(await apis.user.favorites.isFavorite(docxFileId)).toBe(true, 'Item is not favorite');
expect(await dataTable.getRowByName(docxPersonalFiles).isPresent()).toBe(true, 'Item is not present in Favorites list'); expect(await dataTable.getRowByName(docxPersonalFiles).isPresent()).toBe(true, 'Item is not present in Favorites list');
}); });
@ -194,8 +188,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(pdfPersonalFiles); await dataTable.doubleClickOnRowByName(pdfPersonalFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Delete'); await toolbar.menu.clickMenuItem('Delete');
expect(await page.getSnackBarMessage()).toContain(`${pdfPersonalFiles} deleted`); expect(await page.getSnackBarMessage()).toContain(`${pdfPersonalFiles} deleted`);
// TODO: enable this when ACA-1806 is fixed // TODO: enable this when ACA-1806 is fixed
// expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened'); // expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened');
@ -221,8 +215,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxPersonalFiles); await dataTable.doubleClickOnRowByName(docxPersonalFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Share'); await toolbar.menu.clickMenuItem('Share');
expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await shareDialog.clickClose(); await shareDialog.clickClose();
}); });
@ -231,8 +225,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxPersonalFiles); await dataTable.doubleClickOnRowByName(docxPersonalFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Manage Versions'); await toolbar.menu.clickMenuItem('Manage Versions');
expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await manageVersionsDialog.clickClose(); await manageVersionsDialog.clickClose();
}); });
@ -242,8 +236,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxPersonalFiles); await dataTable.doubleClickOnRowByName(docxPersonalFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Share'); await toolbar.menu.clickMenuItem('Share');
expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await Utils.pressEscape(); await Utils.pressEscape();
expect(await shareDialog.isDialogOpen()).toBe(false, 'Dialog is still open'); expect(await shareDialog.isDialogOpen()).toBe(false, 'Dialog is still open');
@ -262,12 +256,10 @@ describe('Viewer actions', () => {
beforeAll(async (done) => { beforeAll(async (done) => {
await apis.user.sites.createSite(siteName); await apis.user.sites.createSite(siteName);
const docLibId = await apis.user.sites.getDocLibId(siteName); const docLibId = await apis.user.sites.getDocLibId(siteName);
await Promise.all([ destinationId = (await apis.user.nodes.createFolder(destination)).entry.id;
destinationId = (await apis.user.nodes.createFolder(destination)).entry.id, docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, docLibId, docxLibraries)).entry.id;
docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, docLibId, docxLibraries)).entry.id, await apis.user.upload.uploadFileWithRename(xlsxFileForMove, docLibId, xlsxLibraries);
await apis.user.upload.uploadFileWithRename(xlsxFileForMove, docLibId, xlsxLibraries), await apis.user.upload.uploadFileWithRename(pdfFileForDelete, docLibId, pdfLibraries);
await apis.user.upload.uploadFileWithRename(pdfFileForDelete, docLibId, pdfLibraries)
]);
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
@ -287,12 +279,10 @@ describe('Viewer actions', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.sites.deleteSite(siteName);
apis.user.sites.deleteSite(siteName), await apis.user.nodes.deleteNodeById(destinationId);
apis.user.nodes.deleteNodeById(destinationId), await apis.user.trashcan.emptyTrash();
apis.user.trashcan.emptyTrash(), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });
@ -308,8 +298,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxLibraries); await dataTable.doubleClickOnRowByName(docxLibraries);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Copy'); await toolbar.menu.clickMenuItem('Copy');
expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await copyMoveDialog.selectLocation('Personal Files'); await copyMoveDialog.selectLocation('Personal Files');
await copyMoveDialog.chooseDestination(destination); await copyMoveDialog.chooseDestination(destination);
@ -330,8 +320,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(xlsxLibraries); await dataTable.doubleClickOnRowByName(xlsxLibraries);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Move'); await toolbar.menu.clickMenuItem('Move');
expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await copyMoveDialog.selectLocation('Personal Files'); await copyMoveDialog.selectLocation('Personal Files');
await copyMoveDialog.chooseDestination(destination); await copyMoveDialog.chooseDestination(destination);
@ -349,21 +339,21 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxLibraries); await dataTable.doubleClickOnRowByName(docxLibraries);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
expect(await apis.user.favorites.isFavorite(docxFileId)).toBe(true, 'Item is not favorite');
await viewer.clickClose(); await viewer.clickClose();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
expect(await dataTable.getRowByName(docxLibraries).isPresent()).toBe(true, 'Item is not present in Favorites list'); expect(await apis.user.favorites.isFavorite(docxFileId)).toBe(true, `${docxLibraries} is not favorite`);
expect(await dataTable.getRowByName(docxLibraries).isPresent()).toBe(true, `${docxLibraries} is not present in Favorites list`);
}); });
it('Delete action - [C286373]', async () => { it('Delete action - [C286373]', async () => {
await dataTable.doubleClickOnRowByName(pdfLibraries); await dataTable.doubleClickOnRowByName(pdfLibraries);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Delete'); await toolbar.menu.clickMenuItem('Delete');
expect(await page.getSnackBarMessage()).toContain(`${pdfLibraries} deleted`); expect(await page.getSnackBarMessage()).toContain(`${pdfLibraries} deleted`);
// TODO: enable this when ACA-1806 is fixed // TODO: enable this when ACA-1806 is fixed
// expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened'); // expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened');
@ -377,8 +367,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxLibraries); await dataTable.doubleClickOnRowByName(docxLibraries);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Share'); await toolbar.menu.clickMenuItem('Share');
expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await shareDialog.clickClose(); await shareDialog.clickClose();
}); });
@ -387,8 +377,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxLibraries); await dataTable.doubleClickOnRowByName(docxLibraries);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Manage Versions'); await toolbar.menu.clickMenuItem('Manage Versions');
expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await manageVersionsDialog.clickClose(); await manageVersionsDialog.clickClose();
}); });
@ -403,15 +393,12 @@ describe('Viewer actions', () => {
const pdfRecentFiles = `pdfRF-${Utils.random()}.pdf`; const pdfRecentFiles = `pdfRF-${Utils.random()}.pdf`;
beforeAll(async (done) => { beforeAll(async (done) => {
await Promise.all([ await apis.user.search.waitForApi(username, {expect: 0});
parentId = (await apis.user.nodes.createFolder(parent)).entry.id, parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
destinationId = (await apis.user.nodes.createFolder(destination)).entry.id destinationId = (await apis.user.nodes.createFolder(destination)).entry.id;
]); docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxRecentFiles)).entry.id;
await Promise.all([ await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxRecentFiles);
docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxRecentFiles)).entry.id, await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfRecentFiles);
await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxRecentFiles),
await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfRecentFiles)
]);
await apis.user.search.waitForApi(username, {expect: 3}); await apis.user.search.waitForApi(username, {expect: 3});
@ -431,12 +418,10 @@ describe('Viewer actions', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.nodes.deleteNodeById(parentId);
apis.user.nodes.deleteNodeById(parentId), await apis.user.nodes.deleteNodeById(destinationId);
apis.user.nodes.deleteNodeById(destinationId), await apis.user.trashcan.emptyTrash();
apis.user.trashcan.emptyTrash(), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });
@ -452,8 +437,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxRecentFiles); await dataTable.doubleClickOnRowByName(docxRecentFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Copy'); await toolbar.menu.clickMenuItem('Copy');
expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await copyMoveDialog.selectLocation('Personal Files'); await copyMoveDialog.selectLocation('Personal Files');
await copyMoveDialog.chooseDestination(destination); await copyMoveDialog.chooseDestination(destination);
@ -474,8 +459,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(xlsxRecentFiles); await dataTable.doubleClickOnRowByName(xlsxRecentFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Move'); await toolbar.menu.clickMenuItem('Move');
expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await copyMoveDialog.selectLocation('Personal Files'); await copyMoveDialog.selectLocation('Personal Files');
await copyMoveDialog.chooseDestination(destination); await copyMoveDialog.chooseDestination(destination);
@ -494,12 +479,12 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxRecentFiles); await dataTable.doubleClickOnRowByName(docxRecentFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
expect(await apis.user.favorites.isFavorite(docxFileId)).toBe(true, 'Item is not favorite');
await viewer.clickClose(); await viewer.clickClose();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
expect(await apis.user.favorites.isFavorite(docxFileId)).toBe(true, 'Item is not favorite');
expect(await dataTable.getRowByName(docxRecentFiles).isPresent()).toBe(true, 'Item is not present in Favorites list'); expect(await dataTable.getRowByName(docxRecentFiles).isPresent()).toBe(true, 'Item is not present in Favorites list');
}); });
@ -507,8 +492,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(pdfRecentFiles); await dataTable.doubleClickOnRowByName(pdfRecentFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Delete'); await toolbar.menu.clickMenuItem('Delete');
expect(await page.getSnackBarMessage()).toContain(`${pdfRecentFiles} deleted`); expect(await page.getSnackBarMessage()).toContain(`${pdfRecentFiles} deleted`);
// TODO: enable this when ACA-1806 is fixed // TODO: enable this when ACA-1806 is fixed
// expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened'); // expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened');
@ -522,8 +507,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxRecentFiles); await dataTable.doubleClickOnRowByName(docxRecentFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Share'); await toolbar.menu.clickMenuItem('Share');
expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await shareDialog.clickClose(); await shareDialog.clickClose();
}); });
@ -532,8 +517,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxRecentFiles); await dataTable.doubleClickOnRowByName(docxRecentFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Manage Versions'); await toolbar.menu.clickMenuItem('Manage Versions');
expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await manageVersionsDialog.clickClose(); await manageVersionsDialog.clickClose();
}); });
@ -548,15 +533,11 @@ describe('Viewer actions', () => {
const pdfSharedFiles = `pdfSF-${Utils.random()}.pdf`; let pdfFileId; const pdfSharedFiles = `pdfSF-${Utils.random()}.pdf`; let pdfFileId;
beforeAll(async (done) => { beforeAll(async (done) => {
await Promise.all([ parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
parentId = (await apis.user.nodes.createFolder(parent)).entry.id, destinationId = (await apis.user.nodes.createFolder(destination)).entry.id;
destinationId = (await apis.user.nodes.createFolder(destination)).entry.id docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxSharedFiles)).entry.id;
]); xlsxFileId = (await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxSharedFiles)).entry.id;
await Promise.all([ pdfFileId = (await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfSharedFiles)).entry.id;
docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxSharedFiles)).entry.id,
xlsxFileId = (await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxSharedFiles)).entry.id,
pdfFileId = (await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfSharedFiles)).entry.id
]);
await apis.user.shared.shareFilesByIds([docxFileId, xlsxFileId, pdfFileId]) await apis.user.shared.shareFilesByIds([docxFileId, xlsxFileId, pdfFileId])
await apis.user.shared.waitForApi({expect: 3}); await apis.user.shared.waitForApi({expect: 3});
@ -577,12 +558,10 @@ describe('Viewer actions', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.nodes.deleteNodeById(parentId);
apis.user.nodes.deleteNodeById(parentId), await apis.user.nodes.deleteNodeById(destinationId);
apis.user.nodes.deleteNodeById(destinationId), await apis.user.trashcan.emptyTrash();
apis.user.trashcan.emptyTrash(), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });
@ -598,8 +577,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxSharedFiles); await dataTable.doubleClickOnRowByName(docxSharedFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Copy'); await toolbar.menu.clickMenuItem('Copy');
expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await copyMoveDialog.selectLocation('Personal Files'); await copyMoveDialog.selectLocation('Personal Files');
await copyMoveDialog.chooseDestination(destination); await copyMoveDialog.chooseDestination(destination);
@ -620,8 +599,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(xlsxSharedFiles); await dataTable.doubleClickOnRowByName(xlsxSharedFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Move'); await toolbar.menu.clickMenuItem('Move');
expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await copyMoveDialog.selectLocation('Personal Files'); await copyMoveDialog.selectLocation('Personal Files');
await copyMoveDialog.chooseDestination(destination); await copyMoveDialog.chooseDestination(destination);
@ -640,12 +619,12 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxSharedFiles); await dataTable.doubleClickOnRowByName(docxSharedFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
expect(await apis.user.favorites.isFavorite(docxFileId)).toBe(true, 'Item is not favorite');
await viewer.clickClose(); await viewer.clickClose();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
expect(await apis.user.favorites.isFavorite(docxFileId)).toBe(true, 'Item is not favorite');
expect(await dataTable.getRowByName(docxSharedFiles).isPresent()).toBe(true, 'Item is not present in Favorites list'); expect(await dataTable.getRowByName(docxSharedFiles).isPresent()).toBe(true, 'Item is not present in Favorites list');
}); });
@ -653,8 +632,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(pdfSharedFiles); await dataTable.doubleClickOnRowByName(pdfSharedFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Delete'); await toolbar.menu.clickMenuItem('Delete');
expect(await page.getSnackBarMessage()).toContain(`${pdfSharedFiles} deleted`); expect(await page.getSnackBarMessage()).toContain(`${pdfSharedFiles} deleted`);
// TODO: enable this when ACA-1806 is fixed // TODO: enable this when ACA-1806 is fixed
// expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened'); // expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened');
@ -669,8 +648,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxSharedFiles); await dataTable.doubleClickOnRowByName(docxSharedFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Share'); await toolbar.menu.clickMenuItem('Share');
expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await shareDialog.clickClose(); await shareDialog.clickClose();
}); });
@ -679,8 +658,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxSharedFiles); await dataTable.doubleClickOnRowByName(docxSharedFiles);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Manage Versions'); await toolbar.menu.clickMenuItem('Manage Versions');
expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await manageVersionsDialog.clickClose(); await manageVersionsDialog.clickClose();
}); });
@ -697,15 +676,11 @@ describe('Viewer actions', () => {
const pdfFavorites = `pdfFav-${Utils.random()}.pdf`; let pdfFileId; const pdfFavorites = `pdfFav-${Utils.random()}.pdf`; let pdfFileId;
beforeAll(async (done) => { beforeAll(async (done) => {
await Promise.all([ parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
parentId = (await apis.user.nodes.createFolder(parent)).entry.id, destinationId = (await apis.user.nodes.createFolder(destination)).entry.id;
destinationId = (await apis.user.nodes.createFolder(destination)).entry.id docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxFavorites)).entry.id;
]); xlsxFileId = (await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxFavorites)).entry.id;
await Promise.all([ pdfFileId = (await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfFavorites)).entry.id;
docxFileId = (await apis.user.upload.uploadFileWithRename(docxFile, parentId, docxFavorites)).entry.id,
xlsxFileId = (await apis.user.upload.uploadFileWithRename(xlsxFileForMove, parentId, xlsxFavorites)).entry.id,
pdfFileId = (await apis.user.upload.uploadFileWithRename(pdfFileForDelete, parentId, pdfFavorites)).entry.id
]);
await apis.user.favorites.addFavoritesByIds('file', [docxFileId, xlsxFileId, pdfFileId]) await apis.user.favorites.addFavoritesByIds('file', [docxFileId, xlsxFileId, pdfFileId])
await apis.user.favorites.waitForApi({expect: 3}); await apis.user.favorites.waitForApi({expect: 3});
@ -726,12 +701,10 @@ describe('Viewer actions', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.nodes.deleteNodeById(parentId);
apis.user.nodes.deleteNodeById(parentId), await apis.user.nodes.deleteNodeById(destinationId);
apis.user.nodes.deleteNodeById(destinationId), await apis.user.trashcan.emptyTrash();
apis.user.trashcan.emptyTrash(), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });
@ -747,8 +720,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxFavorites); await dataTable.doubleClickOnRowByName(docxFavorites);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Copy'); await toolbar.menu.clickMenuItem('Copy');
expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await copyMoveDialog.selectLocation('Personal Files'); await copyMoveDialog.selectLocation('Personal Files');
await copyMoveDialog.chooseDestination(destination); await copyMoveDialog.chooseDestination(destination);
@ -769,8 +742,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(xlsxFavorites); await dataTable.doubleClickOnRowByName(xlsxFavorites);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Move'); await toolbar.menu.clickMenuItem('Move');
expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await copyMoveDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await copyMoveDialog.selectLocation('Personal Files'); await copyMoveDialog.selectLocation('Personal Files');
await copyMoveDialog.chooseDestination(destination); await copyMoveDialog.chooseDestination(destination);
@ -789,12 +762,12 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(xlsxFavorites); await dataTable.doubleClickOnRowByName(xlsxFavorites);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Favorite'); await toolbar.menu.clickMenuItem('Favorite');
expect(await apis.user.favorites.isFavorite(xlsxFileId)).toBe(false, 'Item is still favorite');
await viewer.clickClose(); await viewer.clickClose();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
expect(await apis.user.favorites.isFavorite(xlsxFileId)).toBe(false, 'Item is still favorite');
expect(await dataTable.getRowByName(xlsxFavorites).isPresent()).toBe(false, 'Item is still present in Favorites list'); expect(await dataTable.getRowByName(xlsxFavorites).isPresent()).toBe(false, 'Item is still present in Favorites list');
}); });
@ -802,8 +775,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(pdfFavorites); await dataTable.doubleClickOnRowByName(pdfFavorites);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Delete'); await toolbar.menu.clickMenuItem('Delete');
expect(await page.getSnackBarMessage()).toContain(`${pdfFavorites} deleted`); expect(await page.getSnackBarMessage()).toContain(`${pdfFavorites} deleted`);
// TODO: enable this when ACA-1806 is fixed // TODO: enable this when ACA-1806 is fixed
// expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened'); // expect(await viewer.isViewerOpened()).toBe(false, 'Viewer is opened');
@ -817,8 +790,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxFavorites); await dataTable.doubleClickOnRowByName(docxFavorites);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Share'); await toolbar.menu.clickMenuItem('Share');
expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await shareDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await shareDialog.clickClose(); await shareDialog.clickClose();
}); });
@ -827,8 +800,8 @@ describe('Viewer actions', () => {
await dataTable.doubleClickOnRowByName(docxFavorites); await dataTable.doubleClickOnRowByName(docxFavorites);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
const menu = await toolbar.openMoreMenu(); await toolbar.openMoreMenu();
await menu.clickMenuItem('Manage Versions'); await toolbar.menu.clickMenuItem('Manage Versions');
expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open'); expect(await manageVersionsDialog.isDialogOpen()).toBe(true, 'Dialog is not open');
await manageVersionsDialog.clickClose(); await manageVersionsDialog.clickClose();
}); });

View File

@ -70,7 +70,7 @@ describe('Viewer general', () => {
await apis.user.shared.shareFileById(xlsxFileId); await apis.user.shared.shareFileById(xlsxFileId);
await apis.user.shared.waitForApi({ expect: 1 }); await apis.user.shared.waitForApi({ expect: 1 });
await apis.user.favorites.addFavoriteById('file', xlsxFileId); await apis.user.favorites.addFavoriteById('file', xlsxFileId);
await apis.user.favorites.waitForApi({ expect: 1 }); await apis.user.favorites.waitForApi({ expect: 2 });
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
@ -90,12 +90,10 @@ describe('Viewer general', () => {
}); });
afterAll(async (done) => { afterAll(async (done) => {
await Promise.all([ await apis.user.nodes.deleteNodeById(parentId);
apis.user.nodes.deleteNodeById(parentId), await apis.admin.sites.deleteSite(siteAdmin);
apis.admin.sites.deleteSite(siteAdmin), await apis.user.sites.deleteSite(siteUser);
apis.user.sites.deleteSite(siteUser), await logoutPage.load();
logoutPage.load()
]);
done(); done();
}); });

View File

@ -4,7 +4,7 @@
"outDir": "../out-tsc/e2e", "outDir": "../out-tsc/e2e",
"baseUrl": "./", "baseUrl": "./",
"module": "commonjs", "module": "commonjs",
"target": "es5", "target": "es2017",
"types": [ "types": [
"jasmine", "jasmine",
"jasminewd2", "jasminewd2",

View File

@ -86,8 +86,8 @@ export class NodesApi extends RepoApi {
} }
async deleteNodeChildren(parentId: string) { async deleteNodeChildren(parentId: string) {
const nodeIds = (await this.getNodeChildren(parentId)).list.entries const listEntries = (await this.getNodeChildren(parentId)).list.entries;
.map(entries => entries.entry.id); const nodeIds = listEntries.map(entries => entries.entry.id);
return await this.deleteNodesById(nodeIds); return await this.deleteNodesById(nodeIds);
} }

View File

@ -41,7 +41,7 @@ export class RepoClient {
private password: string = RepoClientAuth.DEFAULT_PASSWORD private password: string = RepoClientAuth.DEFAULT_PASSWORD
) {} ) {}
private get auth(): RepoClientAuth { private get auth() {
const { username, password } = this; const { username, password } = this;
return { username, password }; return { username, password };
} }

View File

@ -30,11 +30,8 @@ const fs = require('fs');
export class Utils { export class Utils {
// generate a random value // generate a random value
static random(): string { static random() {
return Math.random() return Math.random().toString(36).substring(5, 10).toLowerCase();
.toString(36)
.substring(5, 10)
.toLowerCase();
} }
// local storage // local storage
@ -51,17 +48,17 @@ export class Utils {
return browser.executeScript('return window.sessionStorage.getItem("aca.extension.config");'); return browser.executeScript('return window.sessionStorage.getItem("aca.extension.config");');
} }
static async setSessionStorageFromConfig(key: string, configFileName: string) { static setSessionStorageFromConfig(key: string, configFileName: string) {
const configFile = `${E2E_ROOT_PATH}/resources/extensibility-configs/${configFileName}`; const configFile = `${E2E_ROOT_PATH}/resources/extensibility-configs/${configFileName}`;
const fileContent = JSON.stringify(fs.readFileSync(configFile, { encoding: 'utf8' })); const fileContent = JSON.stringify(fs.readFileSync(configFile, { encoding: 'utf8' }));
return await browser.executeScript(`window.sessionStorage.setItem(${key}, ${fileContent});`); return browser.executeScript(`window.sessionStorage.setItem(${key}, ${fileContent});`);
} }
static async resetExtensionConfig() { static resetExtensionConfig() {
const defConfig = `${E2E_ROOT_PATH}/resources/extensibility-configs/${EXTENSIBILITY_CONFIGS.DEFAULT_EXTENSIONS_CONFIG}`; const defConfig = `${E2E_ROOT_PATH}/resources/extensibility-configs/${EXTENSIBILITY_CONFIGS.DEFAULT_EXTENSIONS_CONFIG}`;
return await this.setSessionStorageFromConfig('"aca.extension.config"', defConfig); return this.setSessionStorageFromConfig('"aca.extension.config"', defConfig);
} }
static retryCall(fn: () => Promise<any>, retry: number = 30, delay: number = 1000): Promise<any> { static retryCall(fn: () => Promise<any>, retry: number = 30, delay: number = 1000): Promise<any> {
@ -72,20 +69,23 @@ export class Utils {
return run(retry); return run(retry);
} }
static waitUntilElementClickable(element: ElementFinder) { static async waitUntilElementClickable(element: ElementFinder) {
return browser.wait(EC.elementToBeClickable(element), BROWSER_WAIT_TIMEOUT); return await browser.wait(EC.elementToBeClickable(element), BROWSER_WAIT_TIMEOUT).catch(Error);
// static waitUntilElementClickable(element: ElementFinder) {
// return browser.wait(EC.elementToBeClickable(element), BROWSER_WAIT_TIMEOUT);
} }
static typeInField(elem: ElementFinder, value: string) { static async typeInField(elem: ElementFinder, value: string) {
for (let i = 0; i < value.length; i++) { for (let i = 0; i < value.length; i++) {
const c = value.charAt(i); const c = value.charAt(i);
elem.sendKeys(c); await elem.sendKeys(c);
browser.sleep(100); await browser.sleep(100);
} }
} }
static async fileExistsOnOS(fileName: string) { static async fileExistsOnOS(fileName: string) {
const filePath = path.join((await browser.getProcessedConfig()).params.downloadFolder, fileName); const config = await browser.getProcessedConfig();
const filePath = path.join(config.params.downloadFolder, fileName);
let tries = 5; let tries = 5;
@ -108,17 +108,11 @@ export class Utils {
}); });
} }
static async pressEscape() { static pressEscape() {
return await browser return browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
.actions()
.sendKeys(protractor.Key.ESCAPE)
.perform();
} }
static async getBrowserLog() { static getBrowserLog() {
return await browser return browser.manage().logs().get('browser');
.manage()
.logs()
.get('browser');
} }
} }

View File

@ -2,7 +2,9 @@
// https://github.com/angular/protractor/blob/master/lib/config.ts // https://github.com/angular/protractor/blob/master/lib/config.ts
const path = require('path'); const path = require('path');
const { SpecReporter } = require('jasmine-spec-reporter'); const {
SpecReporter
} = require('jasmine-spec-reporter');
const jasmineReporters = require('jasmine-reporters'); const jasmineReporters = require('jasmine-reporters');
const CDP = require('chrome-remote-interface'); const CDP = require('chrome-remote-interface');
@ -30,7 +32,7 @@ function rmDir(dirPath) {
} }
exports.config = { exports.config = {
allScriptsTimeout: 40000, allScriptsTimeout: 50000,
params: { params: {
downloadFolder: downloadFolder downloadFolder: downloadFolder
@ -48,6 +50,7 @@ exports.config = {
'./e2e/suites/extensions/*.test.ts' './e2e/suites/extensions/*.test.ts'
], ],
SELENIUM_PROMISE_MANAGER: true,
capabilities: { capabilities: {
browserName: 'chrome', browserName: 'chrome',
chromeOptions: { chromeOptions: {
@ -58,13 +61,14 @@ exports.config = {
default_directory: downloadFolder default_directory: downloadFolder
} }
}, },
args: ['--incognito', '--headless', '--remote-debugging-port=9222'] args: ['--incognito', '--headless', '--remote-debugging-port=9222', '--disable-gpu', '--no-sandbox']
} }
}, },
directConnect: true, directConnect: true,
// baseUrl: 'http://localhost:4000', // baseUrl: 'http://localhost:4000',
getPageTimeout: 50000,
framework: 'jasmine2', framework: 'jasmine2',
jasmineNodeOpts: { jasmineNodeOpts: {
@ -73,8 +77,7 @@ exports.config = {
print: function () {} print: function () {}
}, },
plugins: [ plugins: [{
{
package: 'jasmine2-protractor-utils', package: 'jasmine2-protractor-utils',
disableHTMLReport: false, disableHTMLReport: false,
disableScreenshot: false, disableScreenshot: false,
@ -83,8 +86,7 @@ exports.config = {
clearFoldersBeforeTest: true, clearFoldersBeforeTest: true,
htmlReportDir: `${projectRoot}/e2e-output/html-report/`, htmlReportDir: `${projectRoot}/e2e-output/html-report/`,
screenshotPath: `${projectRoot}/e2e-output/screenshots/` screenshotPath: `${projectRoot}/e2e-output/screenshots/`
} }],
],
onPrepare() { onPrepare() {
require('ts-node').register({ require('ts-node').register({

View File

@ -2,6 +2,7 @@
"extends": "../tsconfig.json", "extends": "../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"outDir": "../out-tsc/spec", "outDir": "../out-tsc/spec",
"target": "es2017",
"types": ["jasmine", "node"] "types": ["jasmine", "node"]
}, },
"files": ["test.ts", "polyfills.ts"], "files": ["test.ts", "polyfills.ts"],