[ACA-1759] use async / await in test suites (#667)

* use async / await in authentication suites

* use async / await on application suites

* use async / await in navigation suites

* use async / await in actions suites
This commit is contained in:
Adina Parpalita
2018-09-25 15:43:23 +03:00
committed by Denys Vuika
parent b2b0da4c86
commit 341b93c2fa
18 changed files with 3049 additions and 3566 deletions

View File

@@ -30,352 +30,352 @@ import { RepoClient } from '../../utilities/repo-client/repo-client';
import { Utils } from '../../utilities/utils'; import { Utils } from '../../utilities/utils';
describe('Context menu actions - multiple selection : ', () => { describe('Context menu actions - multiple selection : ', () => {
const username = `user-${Utils.random()}`; const username = `user-${Utils.random()}`;
const file1 = `file1-${Utils.random()}.txt`; let file1Id; const file1 = `file1-${Utils.random()}.txt`; let file1Id;
const file2 = `file2-${Utils.random()}.txt`; let file2Id; const file2 = `file2-${Utils.random()}.txt`; let file2Id;
const folder1 = `folder1-${Utils.random()}`; let folder1Id; const folder1 = `folder1-${Utils.random()}`; let folder1Id;
const folder2 = `folder2-${Utils.random()}`; let folder2Id; const folder2 = `folder2-${Utils.random()}`; let folder2Id;
const fileInTrash1 = `deletedFile1-${Utils.random()}.txt`; let fileInTrash1Id; const fileInTrash1 = `deletedFile1-${Utils.random()}.txt`; let fileInTrash1Id;
const fileInTrash2 = `deletedFile2-${Utils.random()}.txt`; let fileInTrash2Id; const fileInTrash2 = `deletedFile2-${Utils.random()}.txt`; let fileInTrash2Id;
const folderInTrash1 = `deletedFolder1-${Utils.random()}`; let folderInTrash1Id; const folderInTrash1 = `deletedFolder1-${Utils.random()}`; let folderInTrash1Id;
const folderInTrash2 = `deletedFolder2-${Utils.random()}`; let folderInTrash2Id; const folderInTrash2 = `deletedFolder2-${Utils.random()}`; let folderInTrash2Id;
const siteName = `site-${Utils.random()}`; const siteName = `site-${Utils.random()}`;
const file1Site = `file1-${Utils.random()}.txt`; const file1Site = `file1-${Utils.random()}.txt`;
const file2Site = `file2-${Utils.random()}.txt`; const file2Site = `file2-${Utils.random()}.txt`;
const folder1Site = `folder1-${Utils.random()}`; const folder1Site = `folder1-${Utils.random()}`;
const folder2Site = `folder2-${Utils.random()}`; const folder2Site = `folder2-${Utils.random()}`;
const apis = { const apis = {
admin: new RepoClient(), admin: new RepoClient(),
user: new RepoClient(username, username) user: new RepoClient(username, username)
}; };
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const logoutPage = new LogoutPage(); const logoutPage = new LogoutPage();
const page = new BrowsingPage(); const page = new BrowsingPage();
const { dataTable } = page; const { dataTable } = page;
const contextMenu = dataTable.menu; const contextMenu = dataTable.menu;
beforeAll(async (done) => { beforeAll(async (done) => {
await apis.admin.people.createUser({ username }); await apis.admin.people.createUser({ username });
file1Id = (await apis.user.nodes.createFile(file1)).entry.id; file1Id = (await apis.user.nodes.createFile(file1)).entry.id;
file2Id = (await apis.user.nodes.createFile(file2)).entry.id; file2Id = (await apis.user.nodes.createFile(file2)).entry.id;
folder1Id = (await apis.user.nodes.createFolder(folder1)).entry.id; folder1Id = (await apis.user.nodes.createFolder(folder1)).entry.id;
folder2Id = (await apis.user.nodes.createFolder(folder2)).entry.id; folder2Id = (await apis.user.nodes.createFolder(folder2)).entry.id;
await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC); await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
const docLibId = (await apis.user.sites.getDocLibId(siteName)); const docLibId = (await apis.user.sites.getDocLibId(siteName));
await apis.user.nodes.createFile(file1Site, docLibId); await apis.user.nodes.createFile(file1Site, docLibId);
await apis.user.nodes.createFile(file2Site, docLibId); await apis.user.nodes.createFile(file2Site, docLibId);
await apis.user.nodes.createFolder(folder1Site, docLibId); await apis.user.nodes.createFolder(folder1Site, docLibId);
await apis.user.nodes.createFile(folder2Site, docLibId); await apis.user.nodes.createFile(folder2Site, docLibId);
await apis.user.shared.shareFilesByIds([ file1Id, file2Id ]); await apis.user.shared.shareFilesByIds([ file1Id, file2Id ]);
await apis.user.shared.waitForApi({ expect: 2 }); await apis.user.shared.waitForApi({ expect: 2 });
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 });
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;
folderInTrash1Id = (await apis.user.nodes.createFolder(folderInTrash1)).entry.id; folderInTrash1Id = (await apis.user.nodes.createFolder(folderInTrash1)).entry.id;
folderInTrash2Id = (await apis.user.nodes.createFolder(folderInTrash2)).entry.id; folderInTrash2Id = (await apis.user.nodes.createFolder(folderInTrash2)).entry.id;
await apis.user.nodes.deleteNodesById([ fileInTrash1Id, fileInTrash2Id, folderInTrash1Id, folderInTrash2Id ], false); await apis.user.nodes.deleteNodesById([ fileInTrash1Id, fileInTrash2Id, folderInTrash1Id, folderInTrash2Id ], false);
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
});
afterAll(async (done) => {
await Promise.all([
apis.user.nodes.deleteNodesById([ file1Id, file2Id, folder1Id, folder2Id ]),
apis.user.sites.deleteSite(siteName),
apis.user.trashcan.emptyTrash(),
logoutPage.load()
]);
done();
});
xit('');
describe('Generic tests', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader();
await dataTable.clearSelection();
done();
}); });
afterAll(async (done) => { it('Context menu appears on right click on a multiple selection of items - [C286268]', async () => {
await Promise.all([ await dataTable.selectMultipleItems([ file1, file2 ]);
apis.user.nodes.deleteNodesById([ file1Id, file2Id, folder1Id, folder2Id ]), // await dataTable.rightClickOnItem(file1);
apis.user.sites.deleteSite(siteName), await dataTable.rightClickOnMultipleSelection();
apis.user.trashcan.emptyTrash(), expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed');
logoutPage.load()
]);
done();
}); });
xit(''); it('Context menu appears when right clicking on a single item while having multiple items selected - [C286269]', async () => {
await dataTable.selectMultipleItems([ file2, folder1 ]);
await dataTable.rightClickOnItem(file1);
expect(await dataTable.hasContextMenu()).toBe(true, `Context menu is not displayed for ${file1}`);
expect(await dataTable.countSelectedRows()).toEqual(1, 'incorrect number of selected rows');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`);
expect(await dataTable.hasCheckMarkIcon(file1)).toBe(true, `${file1} is not selected`);
expect(await dataTable.hasCheckMarkIcon(file2)).toBe(false, `${file2} is selected`);
expect(await dataTable.hasCheckMarkIcon(folder1)).toBe(false, `${folder1} is selected`);
});
});
describe('Generic tests', () => { describe('on Personal Files', () => {
beforeEach(async (done) => { beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); 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(); done();
done();
});
it('Context menu appears on right click on a multiple selection of items - [C286268]', async () => {
await dataTable.selectMultipleItems([ file1, file2 ]);
// await dataTable.rightClickOnItem(file1);
await dataTable.rightClickOnMultipleSelection();
expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed');
});
it('Context menu appears when right clicking on a single item while having multiple items selected - [C286269]', async () => {
await dataTable.selectMultipleItems([ file2, folder1 ]);
await dataTable.rightClickOnItem(file1);
expect(await dataTable.hasContextMenu()).toBe(true, `Context menu is not displayed for ${file1}`);
expect(await dataTable.countSelectedRows()).toEqual(1, 'incorrect number of selected rows');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${file1}`);
expect(await dataTable.hasCheckMarkIcon(file1)).toBe(true, `${file1} is not selected`);
expect(await dataTable.hasCheckMarkIcon(file2)).toBe(false, `${file2} is selected`);
expect(await dataTable.hasCheckMarkIcon(folder1)).toBe(false, `${folder1} is selected`);
});
}); });
describe('on Personal Files', () => { it('correct actions appear when multiple files are selected - [C280661]', async () => {
beforeEach(async (done) => { await dataTable.selectMultipleItems([file1, file2]);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES); await dataTable.rightClickOnMultipleSelection();
await dataTable.waitForHeader(); expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
await dataTable.clearSelection(); expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
done(); expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
}); expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
it('correct actions appear when multiple files are selected - [C280661]', async () => { expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
await dataTable.selectMultipleItems([file1, file2]); expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
it('correct actions appear when multiple folders are selected - [C280632]', async () => {
await dataTable.selectMultipleItems([folder1, folder2]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
it('correct actions appear when both files and folders are selected - [C280631]', async () => {
await dataTable.selectMultipleItems([file1, file2, folder1, folder2]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
}); });
describe('on File Libraries', () => { it('correct actions appear when multiple folders are selected - [C280632]', async () => {
beforeEach(async (done) => { await dataTable.selectMultipleItems([folder1, folder2]);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await dataTable.rightClickOnMultipleSelection();
await dataTable.clearSelection(); expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES); expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
await dataTable.waitForHeader(); expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
await dataTable.doubleClickOnRowByName(siteName); expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
await dataTable.waitForHeader(); expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
done(); expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
}); expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
it('correct actions appear when multiple files are selected - [C280641]', async () => {
await dataTable.selectMultipleItems([ file1Site, file2Site ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
it('correct actions appear when multiple folders are selected - [C280574]', async () => {
await dataTable.selectMultipleItems([ folder1Site, folder2Site ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
it('correct actions appear when both files and folders are selected - [C280642]', async () => {
await dataTable.selectMultipleItems([ file1Site, file2Site, folder1Site, folder2Site ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
}); });
describe('on Shared Files', () => { it('correct actions appear when both files and folders are selected - [C280631]', async () => {
beforeEach(async (done) => { await dataTable.selectMultipleItems([file1, file2, folder1, folder2]);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await dataTable.rightClickOnMultipleSelection();
await dataTable.clearSelection(); expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES); expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
await dataTable.waitForHeader(); expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
done(); expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
}); expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
});
it('correct actions appear when multiple files are selected - [C280648]', async () => { describe('on File Libraries', () => {
await dataTable.selectMultipleItems([ file1, file2 ]); beforeEach(async (done) => {
await dataTable.rightClickOnMultipleSelection(); await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed'); await dataTable.clearSelection();
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed'); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed'); await dataTable.waitForHeader();
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`); await dataTable.doubleClickOnRowByName(siteName);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`); await dataTable.waitForHeader();
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`); done();
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
}); });
describe('Recent Files', () => { it('correct actions appear when multiple files are selected - [C280641]', async () => {
beforeEach(async (done) => { await dataTable.selectMultipleItems([ file1Site, file2Site ]);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await dataTable.rightClickOnMultipleSelection();
await dataTable.clearSelection(); expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES); expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
await dataTable.waitForHeader(); expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
done(); expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
}); expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
it('correct actions appear when multiple files are selected - [C280652]', async () => { expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
await dataTable.selectMultipleItems([ file1, file2 ]); expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
}); });
describe('Favorites', () => { it('correct actions appear when multiple folders are selected - [C280574]', async () => {
beforeEach(async (done) => { await dataTable.selectMultipleItems([ folder1Site, folder2Site ]);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await dataTable.rightClickOnMultipleSelection();
await dataTable.clearSelection(); expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
await dataTable.waitForHeader(); expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
done(); expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
}); expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
it('correct actions appear when multiple files are selected - [C280656]', async () => { expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
await dataTable.selectMultipleItems([ file1, file2 ]); expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
// TODO: enable when ACA-1794 is fixed
// expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
it('correct actions appear when multiple folders are selected - [C280664]', async () => {
await dataTable.selectMultipleItems([ folder1, folder2 ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
// TODO: enable when ACA-1794 is fixed
// expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
it('correct actions appear when both files and folders are selected - [C280657]', async () => {
await dataTable.selectMultipleItems([ file1, file2, folder1, folder2 ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
// TODO: enable when ACA-1794 is fixed
// expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
}); });
describe('Trash', () => { it('correct actions appear when both files and folders are selected - [C280642]', async () => {
beforeEach(async (done) => { await dataTable.selectMultipleItems([ file1Site, file2Site, folder1Site, folder2Site ]);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await dataTable.rightClickOnMultipleSelection();
await dataTable.clearSelection(); expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH); expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
await dataTable.waitForHeader(); expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
done(); expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
}); expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
it('correct actions appear when multiple files are selected - [C286273]', async () => { expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
await dataTable.selectMultipleItems([ fileInTrash1, fileInTrash2 ]); expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('Permanently delete')).toBe(true, 'Permanently delete is not displayed');
expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, 'Restore is not displayed');
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, 'Download is displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is displayed`);
});
it('correct actions appear when multiple folders are selected - [C286274]', async () => {
await dataTable.selectMultipleItems([ folderInTrash1, folderInTrash2 ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('Permanently delete')).toBe(true, 'Permanently delete is not displayed');
expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, 'Restore is not displayed');
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, 'Download is displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is displayed`);
});
it('correct actions appear when both files and folders are selected - [C286275]', async () => {
await dataTable.selectMultipleItems([ fileInTrash1, fileInTrash2, folderInTrash1, folderInTrash2 ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('Permanently delete')).toBe(true, 'Permanently delete is not displayed');
expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, 'Restore is not displayed');
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, 'Download is displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is displayed`);
});
}); });
});
describe('on Shared Files', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await dataTable.clearSelection();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
await dataTable.waitForHeader();
done();
});
it('correct actions appear when multiple files are selected - [C280648]', async () => {
await dataTable.selectMultipleItems([ file1, file2 ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
});
describe('Recent Files', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await dataTable.clearSelection();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
await dataTable.waitForHeader();
done();
});
it('correct actions appear when multiple files are selected - [C280652]', async () => {
await dataTable.selectMultipleItems([ file1, file2 ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
});
describe('Favorites', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await dataTable.clearSelection();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader();
done();
});
it('correct actions appear when multiple files are selected - [C280656]', async () => {
await dataTable.selectMultipleItems([ file1, file2 ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
// TODO: enable when ACA-1794 is fixed
// expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
it('correct actions appear when multiple folders are selected - [C280664]', async () => {
await dataTable.selectMultipleItems([ folder1, folder2 ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
// TODO: enable when ACA-1794 is fixed
// expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
it('correct actions appear when both files and folders are selected - [C280657]', async () => {
await dataTable.selectMultipleItems([ file1, file2, folder1, folder2 ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, 'Download is not displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed`);
// TODO: enable when ACA-1794 is fixed
// expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed`);
});
});
describe('Trash', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await dataTable.clearSelection();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
await dataTable.waitForHeader();
done();
});
it('correct actions appear when multiple files are selected - [C286273]', async () => {
await dataTable.selectMultipleItems([ fileInTrash1, fileInTrash2 ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('Permanently delete')).toBe(true, 'Permanently delete is not displayed');
expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, 'Restore is not displayed');
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, 'Download is displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is displayed`);
});
it('correct actions appear when multiple folders are selected - [C286274]', async () => {
await dataTable.selectMultipleItems([ folderInTrash1, folderInTrash2 ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('Permanently delete')).toBe(true, 'Permanently delete is not displayed');
expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, 'Restore is not displayed');
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, 'Download is displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is displayed`);
});
it('correct actions appear when both files and folders are selected - [C286275]', async () => {
await dataTable.selectMultipleItems([ fileInTrash1, fileInTrash2, folderInTrash1, folderInTrash2 ]);
await dataTable.rightClickOnMultipleSelection();
expect(await contextMenu.isMenuItemPresent('Permanently delete')).toBe(true, 'Permanently delete is not displayed');
expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, 'Restore is not displayed');
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, 'View is displayed');
expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, 'Download is displayed');
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, 'Edit is displayed');
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is displayed`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is displayed`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is displayed`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is displayed`);
});
});
}); });

View File

@@ -30,326 +30,326 @@ import { RepoClient } from '../../utilities/repo-client/repo-client';
import { Utils } from '../../utilities/utils'; import { Utils } from '../../utilities/utils';
describe('Context menu actions - single selection : ', () => { describe('Context menu actions - single selection : ', () => {
const username = `user-${Utils.random()}`; const username = `user-${Utils.random()}`;
const fileUser = `fileUser-${Utils.random()}.txt`; let fileUserId; const fileUser = `fileUser-${Utils.random()}.txt`; let fileUserId;
const folderUser = `folderUser-${Utils.random()}`; let folderUserId; const folderUser = `folderUser-${Utils.random()}`; let folderUserId;
const fileInTrash = `fileForDelete-${Utils.random()}.txt`; let fileInTrashId; const fileInTrash = `fileForDelete-${Utils.random()}.txt`; let fileInTrashId;
const folderInTrash = `folderForDelete-${Utils.random()}`; let folderInTrashId; const folderInTrash = `folderForDelete-${Utils.random()}`; let folderInTrashId;
const siteName = `userSite-${Utils.random()}`; const siteName = `userSite-${Utils.random()}`;
const fileSiteUser = `fileUser-${Utils.random()}.txt`; const fileSiteUser = `fileUser-${Utils.random()}.txt`;
const folderSiteUser = `folderUser-${Utils.random()}`; const folderSiteUser = `folderUser-${Utils.random()}`;
const apis = { const apis = {
admin: new RepoClient(), admin: new RepoClient(),
user: new RepoClient(username, username) user: new RepoClient(username, username)
}; };
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const logoutPage = new LogoutPage(); const logoutPage = new LogoutPage();
const page = new BrowsingPage(); const page = new BrowsingPage();
const { dataTable } = page; const { dataTable } = page;
const contextMenu = dataTable.menu; const contextMenu = dataTable.menu;
beforeAll(async (done) => { beforeAll(async (done) => {
await apis.admin.people.createUser({ username }); await apis.admin.people.createUser({ username });
fileUserId = (await apis.user.nodes.createFile(fileUser)).entry.id; fileUserId = (await apis.user.nodes.createFile(fileUser)).entry.id;
folderUserId = (await apis.user.nodes.createFolder(folderUser)).entry.id; folderUserId = (await apis.user.nodes.createFolder(folderUser)).entry.id;
await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC); await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
const docLibId = await apis.user.sites.getDocLibId(siteName); const docLibId = await apis.user.sites.getDocLibId(siteName);
await apis.user.nodes.createFile(fileSiteUser, docLibId); await apis.user.nodes.createFile(fileSiteUser, docLibId);
await apis.user.nodes.createFolder(folderSiteUser, docLibId); await apis.user.nodes.createFolder(folderSiteUser, docLibId);
fileInTrashId = (await apis.user.nodes.createFiles([fileInTrash])).entry.id; fileInTrashId = (await apis.user.nodes.createFiles([fileInTrash])).entry.id;
folderInTrashId = (await apis.user.nodes.createFolders([ folderInTrash ])).entry.id; folderInTrashId = (await apis.user.nodes.createFolders([ folderInTrash ])).entry.id;
await apis.user.nodes.deleteNodeById(fileInTrashId, false); await apis.user.nodes.deleteNodeById(fileInTrashId, false);
await apis.user.nodes.deleteNodeById(folderInTrashId, false); await apis.user.nodes.deleteNodeById(folderInTrashId, false);
await apis.user.shared.shareFileById(fileUserId); await apis.user.shared.shareFileById(fileUserId);
await apis.user.shared.waitForApi({ expect: 1 }); await apis.user.shared.waitForApi({ expect: 1 });
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: 2 });
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
});
afterAll(async (done) => {
await Promise.all([
apis.user.nodes.deleteNodeById(fileUserId),
apis.user.nodes.deleteNodeById(folderUserId),
apis.user.sites.deleteSite(siteName),
apis.user.trashcan.emptyTrash(),
logoutPage.load()
]);
done();
});
xit('');
describe('Generic tests', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader();
done();
}); });
afterAll(async (done) => { it('Row is marked with a check circle icon on direct right click - [C286252]', async () => {
await Promise.all([ await dataTable.rightClickOnItem(fileUser);
apis.user.nodes.deleteNodeById(fileUserId), expect(await dataTable.hasCheckMarkIcon(fileUser)).toBe(true, 'check mark missing');
apis.user.nodes.deleteNodeById(folderUserId),
apis.user.sites.deleteSite(siteName),
apis.user.trashcan.emptyTrash(),
logoutPage.load()
]);
done();
}); });
xit(''); it('Context menu appears on direct right click on an item - [C286253]', async () => {
await dataTable.rightClickOnItem(fileUser);
describe('Generic tests', () => { expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed');
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader();
done();
});
it('Row is marked with a check circle icon on direct right click - [C286252]', async () => {
await dataTable.rightClickOnItem(fileUser);
expect(await dataTable.hasCheckMarkIcon(fileUser)).toBe(true, 'check mark missing');
});
it('Context menu appears on direct right click on an item - [C286253]', async () => {
await dataTable.rightClickOnItem(fileUser);
expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed');
});
it('Context menu appears when selecting an item and then right clicking on it - [C286254]', async () => {
await dataTable.selectItem(fileUser);
await dataTable.rightClickOnItem(fileUser);
expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed');
});
it('Context menu appears correctly when right clicking on another item - [C284666]', async () => {
await dataTable.selectItem(fileUser);
await dataTable.rightClickOnItem(folderUser);
expect(await dataTable.hasContextMenu()).toBe(true, `Context menu is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`);
expect(await dataTable.hasCheckMarkIcon(folderUser)).toBe(true, `${folderUser} is not selected`);
expect(await dataTable.hasCheckMarkIcon(fileUser)).toBe(false, `${fileUser} is not selected`);
});
it('Context menu closes when clicking away from it - [C280619]', async () => {
await dataTable.rightClickOnItem(fileUser);
expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed');
await page.sidenav.activeLink.click();
expect(await dataTable.hasContextMenu()).toBe(false, 'Context menu is displayed');
});
it('Context menu does not appear for a library - [C286276]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
await dataTable.waitForHeader();
await dataTable.rightClickOnItem(siteName);
expect(await dataTable.hasContextMenu()).toBe(false, 'Context menu is displayed for a site');
});
}); });
describe('on Personal Files', () => { it('Context menu appears when selecting an item and then right clicking on it - [C286254]', async () => {
beforeEach(async (done) => { await dataTable.selectItem(fileUser);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await dataTable.rightClickOnItem(fileUser);
await dataTable.clearSelection(); expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed');
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader();
done();
});
it('Context menu has the correct actions for a file - [C280615]', async () => {
await dataTable.rightClickOnItem(fileUser);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileUser}`);
});
it('Context menu has the correct actions for a folder - [C280616]', async () => {
await dataTable.rightClickOnItem(folderUser);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(false, `Manage Versions is displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is displayed for ${folderUser}`);
});
}); });
describe('File Libraries', () => { it('Context menu appears correctly when right clicking on another item - [C284666]', async () => {
beforeEach(async (done) => { await dataTable.selectItem(fileUser);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await dataTable.rightClickOnItem(folderUser);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES); expect(await dataTable.hasContextMenu()).toBe(true, `Context menu is not displayed for ${folderUser}`);
await dataTable.waitForHeader(); expect(await contextMenu.isMenuItemPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`);
await dataTable.doubleClickOnRowByName(siteName); expect(await dataTable.hasCheckMarkIcon(folderUser)).toBe(true, `${folderUser} is not selected`);
await dataTable.waitForHeader(); expect(await dataTable.hasCheckMarkIcon(fileUser)).toBe(false, `${fileUser} is not selected`);
done();
});
it('Context menu has the correct actions for a file - [C280594]', async () => {
await dataTable.rightClickOnItem(fileSiteUser);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileSiteUser}`);
});
it('Context menu has the correct actions for a folder - [C280595]', async () => {
await dataTable.rightClickOnItem(folderSiteUser);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not enabled for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(true, `Edit is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(false, `Manage Versions displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is displayed for ${folderSiteUser}`);
});
}); });
describe('Shared Files', () => { it('Context menu closes when clicking away from it - [C280619]', async () => {
beforeEach(async (done) => { await dataTable.rightClickOnItem(fileUser);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); expect(await dataTable.hasContextMenu()).toBe(true, 'Context menu is not displayed');
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES); await page.sidenav.activeLink.click();
await dataTable.waitForHeader(); expect(await dataTable.hasContextMenu()).toBe(false, 'Context menu is displayed');
done();
});
it('Context menu has the correct actions for a file - [C280601]', async () => {
await dataTable.rightClickOnItem(fileUser);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`);
// TODO: enable this when the action is properly implemented: ACA-92
// expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileUser}`);
});
}); });
describe('Recent Files', () => { it('Context menu does not appear for a library - [C286276]', async () => {
beforeEach(async (done) => { await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); await dataTable.waitForHeader();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES); await dataTable.rightClickOnItem(siteName);
await dataTable.waitForHeader(); expect(await dataTable.hasContextMenu()).toBe(false, 'Context menu is displayed for a site');
done(); });
}); });
it('Context menu has the correct actions for a file - [C280622]', async () => { describe('on Personal Files', () => {
await dataTable.rightClickOnItem(fileUser); beforeEach(async (done) => {
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); await dataTable.clearSelection();
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`); await dataTable.waitForHeader();
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`); done();
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileUser}`);
});
}); });
describe('Favorites', () => { it('Context menu has the correct actions for a file - [C280615]', async () => {
beforeEach(async (done) => { await dataTable.rightClickOnItem(fileUser);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileUser}`);
await dataTable.waitForHeader(); expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
done(); expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`);
}); expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`);
it('Context menu has the correct actions for a file - [C280608]', async () => { expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileUser}`);
await dataTable.rightClickOnItem(fileUser); expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`); expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileUser}`); expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`); expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions is not displayed for ${fileUser}`);
// TODO: enable when ACA-1794 is fixed
// expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileUser}`);
});
it('Context menu has the correct actions for a folder - [C280609]', async () => {
await dataTable.rightClickOnItem(folderUser);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderUser}`);
// TODO: enable when ACA-1794 is fixed
// expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(false, `Manage Versions is displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is displayed for ${folderUser}`);
});
}); });
describe('Trash', () => { it('Context menu has the correct actions for a folder - [C280616]', async () => {
beforeEach(async (done) => { await dataTable.rightClickOnItem(folderUser);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH); expect(await contextMenu.isMenuItemPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`);
await dataTable.waitForHeader(); expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`);
done(); expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`);
}); expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderUser}`);
it('Context menu has the correct actions for a file - [C286258]', async () => { expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${folderUser}`);
await dataTable.rightClickOnItem(fileInTrash); expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Permanently delete')) expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(false, `Manage Versions is displayed for ${folderUser}`);
.toBe(true, `Permanently delete is not displayed for ${fileInTrash}`); expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, `Restore is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, `Download is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions'))
.toBe(false, `Manage Versions is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileInTrash}`);
});
it('Context menu has the correct actions for a folder - [C286259]', async () => {
await dataTable.rightClickOnItem(folderInTrash);
expect(await contextMenu.isMenuItemPresent('Permanently delete'))
.toBe(true, `Permanently delete is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, `Restore is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, `Download is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions'))
.toBe(false, `Manage Versions is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${folderInTrash}`);
});
}); });
});
describe('File Libraries', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
await dataTable.waitForHeader();
await dataTable.doubleClickOnRowByName(siteName);
await dataTable.waitForHeader();
done();
});
it('Context menu has the correct actions for a file - [C280594]', async () => {
await dataTable.rightClickOnItem(fileSiteUser);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileSiteUser}`);
expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileSiteUser}`);
});
it('Context menu has the correct actions for a folder - [C280595]', async () => {
await dataTable.rightClickOnItem(folderSiteUser);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not enabled for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(true, `Edit is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(false, `Manage Versions displayed for ${folderSiteUser}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is displayed for ${folderSiteUser}`);
});
});
describe('Shared Files', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
await dataTable.waitForHeader();
done();
});
it('Context menu has the correct actions for a file - [C280601]', async () => {
await dataTable.rightClickOnItem(fileUser);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`);
// TODO: enable this when the action is properly implemented: ACA-92
// expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileUser}`);
});
});
describe('Recent Files', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
await dataTable.waitForHeader();
done();
});
it('Context menu has the correct actions for a file - [C280622]', async () => {
await dataTable.rightClickOnItem(fileUser);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileUser}`);
});
});
describe('Favorites', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader();
done();
});
it('Context menu has the correct actions for a file - [C280608]', async () => {
await dataTable.rightClickOnItem(fileUser);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(true, `View is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(true, `Share is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(true, `Manage Versions is not displayed for ${fileUser}`);
// TODO: enable when ACA-1794 is fixed
// expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileUser}`);
});
it('Context menu has the correct actions for a folder - [C280609]', async () => {
await dataTable.rightClickOnItem(folderUser);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${folderUser}`);
// TODO: enable when ACA-1794 is fixed
// expect(await contextMenu.isMenuItemPresent('Permissions')).toBe(true, `Permissions is not displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions')).toBe(false, `Manage Versions is displayed for ${folderUser}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is displayed for ${folderUser}`);
});
});
describe('Trash', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
await dataTable.waitForHeader();
done();
});
it('Context menu has the correct actions for a file - [C286258]', async () => {
await dataTable.rightClickOnItem(fileInTrash);
expect(await contextMenu.isMenuItemPresent('Permanently delete'))
.toBe(true, `Permanently delete is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, `Restore is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, `Download is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions'))
.toBe(false, `Manage Versions is not displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${fileInTrash}`);
expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${fileInTrash}`);
});
it('Context menu has the correct actions for a folder - [C286259]', async () => {
await dataTable.rightClickOnItem(folderInTrash);
expect(await contextMenu.isMenuItemPresent('Permanently delete'))
.toBe(true, `Permanently delete is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Restore')).toBe(true, `Restore is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Download')).toBe(false, `Download is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('View')).toBe(false, `View is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Favorite')).toBe(false, `Favorite is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Copy')).toBe(false, `Copy is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Move')).toBe(false, `Move is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Delete')).toBe(false, `Delete is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Share')).toBe(false, `Share is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Manage Versions'))
.toBe(false, `Manage Versions is not displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('Edit')).toBe(false, `Edit is displayed for ${folderInTrash}`);
expect(await contextMenu.isMenuItemPresent('View details')).toBe(false, `View details is displayed for ${folderInTrash}`);
});
});
}); });

View File

@@ -32,259 +32,234 @@ import { Utils } from '../../utilities/utils';
import { RepoClient } from '../../utilities/repo-client/repo-client'; import { RepoClient } from '../../utilities/repo-client/repo-client';
describe('Create folder', () => { describe('Create folder', () => {
const username = `user-${Utils.random()}`; const username = `user-${Utils.random()}`;
const parent = `parent-${Utils.random()}`; const parent = `parent-${Utils.random()}`; let parentId;
const folderName1 = `folder-${Utils.random()}`; const folderName1 = `folder-${Utils.random()}`;
const folderName2 = `folder-${Utils.random()}`; const folderName2 = `folder-${Utils.random()}`;
const folderDescription = 'description of my folder'; const folderDescription = 'description of my folder';
const duplicateFolderName = `folder-${Utils.random()}`; const duplicateFolderName = `folder-${Utils.random()}`;
const nameWithSpaces = ` folder-${Utils.random()} `; const nameWithSpaces = ` folder-${Utils.random()} `;
const siteName = `site-private-${Utils.random()}`; const siteName = `site-private-${Utils.random()}`;
const apis = { const apis = {
admin: new RepoClient(), admin: new RepoClient(),
user: new RepoClient(username, username) user: new RepoClient(username, username)
}; };
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const logoutPage = new LogoutPage(); const logoutPage = new LogoutPage();
const personalFilesPage = new BrowsingPage(); const personalFilesPage = new BrowsingPage();
const createDialog = new CreateOrEditFolderDialog(); const createDialog = new CreateOrEditFolderDialog();
const { dataTable } = personalFilesPage; const { dataTable } = personalFilesPage;
beforeAll(done => { beforeAll(async (done) => {
apis.admin.people.createUser({ username }) await apis.admin.people.createUser({ username });
.then(() => apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE)) await apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE);
.then(() => apis.admin.nodes.createFolders([ folderName1 ], `Sites/${siteName}/documentLibrary`)) const docLibId = (await apis.admin.sites.getDocLibId(siteName));
.then(() => apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_CONSUMER)) await apis.admin.nodes.createFolder(folderName1, docLibId);
.then(() => apis.user.nodes.createFolders([ duplicateFolderName ], parent)) await apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_CONSUMER);
.then(() => loginPage.loginWith(username)) parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
.then(done); await apis.user.nodes.createFolder(duplicateFolderName, parentId);
await loginPage.loginWith(username);
done();
});
afterAll(async (done) => {
await Promise.all([
apis.admin.sites.deleteSite(siteName),
apis.user.nodes.deleteNodeById(parentId),
logoutPage.load()
]);
done();
});
describe('on Personal Files', () => {
beforeEach(async (done) => {
await personalFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader();
done();
}); });
afterAll(done => { afterEach(async (done) => {
Promise await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform();
.all([ done();
apis.admin.sites.deleteSite(siteName),
apis.user.nodes.deleteNodes([ parent ]),
logoutPage.load()
])
.then(done);
}); });
describe('on Personal Files', () => { it('option is enabled when having enough permissions - [C216339]', async () => {
beforeEach(done => { await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
personalFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) const menu = await personalFilesPage.sidenav.openNewMenu();
.then(() => dataTable.waitForHeader()) const isEnabled = await menu.getItemByLabel('Create folder').isEnabled();
.then(done); expect(isEnabled).toBe(true, 'Create folder is not enabled');
});
afterEach(done => {
browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform().then(done);
});
it('option is enabled when having enough permissions - [C216339]', () => {
personalFilesPage.dataTable.doubleClickOnRowByName(parent)
.then(() => personalFilesPage.sidenav.openNewMenu())
.then(menu => {
const isEnabled = menu.getItemByLabel('Create folder').isEnabled();
expect(isEnabled).toBe(true, 'Create folder is not enabled');
});
});
it('creates new folder with name - [C216341]', () => {
personalFilesPage.dataTable.doubleClickOnRowByName(parent)
.then(() => personalFilesPage.sidenav.openCreateDialog())
.then(() => createDialog.waitForDialogToOpen())
.then(() => createDialog.enterName(folderName1))
.then(() => createDialog.clickCreate())
.then(() => createDialog.waitForDialogToClose())
.then(() => dataTable.waitForHeader())
.then(() => {
const isPresent = dataTable.getRowByName(folderName1).isPresent();
expect(isPresent).toBe(true, 'Folder not displayed in list view');
});
});
it('creates new folder with name and description - [C216340]', () => {
personalFilesPage.dataTable.doubleClickOnRowByName(parent)
.then(() => personalFilesPage.sidenav.openCreateDialog())
.then(() => createDialog.waitForDialogToOpen())
.then(() => createDialog.enterName(folderName2))
.then(() => createDialog.enterDescription(folderDescription))
.then(() => createDialog.clickCreate())
.then(() => createDialog.waitForDialogToClose())
.then(() => dataTable.waitForHeader())
.then(() => expect(dataTable.getRowByName(folderName2).isPresent()).toBe(true, 'Folder not displayed'))
.then(() => apis.user.nodes.getNodeDescription(folderName2, parent))
.then(desc => expect(desc).toEqual(folderDescription));
});
it('enabled option tooltip - [C216342]', () => {
personalFilesPage.dataTable.doubleClickOnRowByName(parent)
.then(() => personalFilesPage.sidenav.openNewMenu())
.then(menu => browser.actions().mouseMove(menu.getItemByLabel('Create folder')).perform()
.then(() => menu))
.then(menu => {
expect(menu.getItemTooltip('Create folder')).toContain('Create new folder');
});
});
it('dialog UI elements - [C216345]', () => {
personalFilesPage.dataTable.doubleClickOnRowByName(parent)
.then(() => personalFilesPage.sidenav.openCreateDialog())
.then(() => createDialog.waitForDialogToOpen())
.then(() => {
const dialogTitle = createDialog.getTitle();
const isFolderNameDisplayed = createDialog.nameInput.isDisplayed();
const isDescriptionDisplayed = createDialog.descriptionTextArea.isDisplayed();
const isCreateEnabled = createDialog.createButton.isEnabled();
const isCancelEnabled = createDialog.cancelButton.isEnabled();
expect(dialogTitle).toMatch('Create new folder');
expect(isFolderNameDisplayed).toBe(true, 'Name input is not displayed');
expect(isDescriptionDisplayed).toBe(true, 'Description field is not displayed');
expect(isCreateEnabled).toBe(false, 'Create button is not disabled');
expect(isCancelEnabled).toBe(true, 'Cancel button is not enabled');
});
});
it('with empty folder name - [C216346]', () => {
personalFilesPage.dataTable.doubleClickOnRowByName(parent)
.then(() => personalFilesPage.sidenav.openCreateDialog())
.then(() => createDialog.waitForDialogToOpen())
.then(() => createDialog.deleteNameWithBackspace())
.then(() => {
const isCreateEnabled = createDialog.createButton.isEnabled();
const validationMessage = createDialog.getValidationMessage();
expect(isCreateEnabled).toBe(false, 'Create button is enabled');
expect(validationMessage).toMatch('Folder name is required');
});
});
it('with folder name ending with a dot "." - [C216348]', () => {
personalFilesPage.dataTable.doubleClickOnRowByName(parent)
.then(() => personalFilesPage.sidenav.openCreateDialog())
.then(() => createDialog.waitForDialogToOpen())
.then(() => createDialog.enterName('folder-name.'))
.then(() => {
const isCreateEnabled = createDialog.createButton.isEnabled();
const validationMessage = createDialog.getValidationMessage();
expect(isCreateEnabled).toBe(false, 'Create button is not disabled');
expect(validationMessage).toMatch(`Folder name can't end with a period .`);
});
});
it('with folder name containing special characters - [C216347]', () => {
const namesWithSpecialChars = [ 'a*a', 'a"a', 'a<a', 'a>a', `a\\a`, 'a/a', 'a?a', 'a:a', 'a|a' ];
personalFilesPage.dataTable.doubleClickOnRowByName(parent)
.then(() => personalFilesPage.sidenav.openCreateDialog())
.then(() => createDialog.waitForDialogToOpen())
.then(() => namesWithSpecialChars.forEach(name => {
createDialog.enterName(name);
const isCreateEnabled = createDialog.createButton.isEnabled();
const validationMessage = createDialog.getValidationMessage();
expect(isCreateEnabled).toBe(false, 'Create button is not disabled');
expect(validationMessage).toContain(`Folder name can't contain these characters`);
}));
});
it('with folder name containing only spaces - [C280406]', () => {
personalFilesPage.dataTable.doubleClickOnRowByName(parent)
.then(() => personalFilesPage.sidenav.openCreateDialog())
.then(() => createDialog.waitForDialogToOpen())
.then(() => createDialog.enterName(' '))
.then(() => {
const isCreateEnabled = createDialog.createButton.isEnabled();
const validationMessage = createDialog.getValidationMessage();
expect(isCreateEnabled).toBe(false, 'Create button is not disabled');
expect(validationMessage).toMatch(`Folder name can't contain only spaces`);
});
});
it('cancel folder creation - [C216349]', () => {
personalFilesPage.dataTable.doubleClickOnRowByName(parent)
.then(() => personalFilesPage.sidenav.openCreateDialog())
.then(() => createDialog.waitForDialogToOpen())
.then(() => createDialog.enterName('test'))
.then(() => createDialog.enterDescription('test description'))
.then(() => createDialog.clickCancel())
.then(() => {
expect(createDialog.component.isPresent()).not.toBe(true, 'dialog is not closed');
});
});
it('duplicate folder name - [C216350]', () => {
personalFilesPage.dataTable.doubleClickOnRowByName(parent)
.then(() => personalFilesPage.sidenav.openCreateDialog())
.then(() => createDialog.waitForDialogToOpen())
.then(() => createDialog.enterName(duplicateFolderName))
.then(() => createDialog.clickCreate())
.then(() => personalFilesPage.getSnackBarMessage())
.then(message => {
expect(message).toEqual(`There's already a folder with this name. Try a different name.`);
expect(createDialog.component.isPresent()).toBe(true, 'dialog is not present');
});
});
it('trim ending spaces from folder name - [C216351]', () => {
personalFilesPage.dataTable.doubleClickOnRowByName(parent)
.then(() => personalFilesPage.sidenav.openCreateDialog())
.then(() => createDialog.waitForDialogToOpen())
.then(() => createDialog.enterName(nameWithSpaces))
.then(() => createDialog.clickCreate())
.then(() => createDialog.waitForDialogToClose())
.then(() => dataTable.waitForHeader())
.then(() => {
const isPresent = dataTable.getRowByName(nameWithSpaces.trim()).isPresent();
expect(isPresent).toBe(true, 'Folder not displayed in list view');
});
});
}); });
describe('on File Libraries', () => { it('creates new folder with name - [C216341]', async () => {
const fileLibrariesPage = new BrowsingPage(); await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
await personalFilesPage.sidenav.openCreateDialog();
beforeEach(done => { await createDialog.waitForDialogToOpen();
fileLibrariesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES) await createDialog.enterName(folderName1);
.then(() => dataTable.waitForHeader()) await createDialog.clickCreate();
.then(done); await createDialog.waitForDialogToClose();
}); await dataTable.waitForHeader();
const isPresent = await dataTable.getRowByName(folderName1).isPresent();
afterEach(done => { expect(isPresent).toBe(true, 'Folder not displayed in list view');
browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform().then(done);
});
it('option is disabled when not enough permissions - [C280397]', () => {
fileLibrariesPage.dataTable.doubleClickOnRowByName(siteName)
.then(() => fileLibrariesPage.dataTable.doubleClickOnRowByName(folderName1))
.then(() => fileLibrariesPage.sidenav.openNewMenu())
.then(menu => {
const isEnabled = menu.getItemByLabel('Create folder').isEnabled();
expect(isEnabled).toBe(false, 'Create folder is not disabled');
});
});
it('disabled option tooltip - [C280398]', () => {
fileLibrariesPage.dataTable.doubleClickOnRowByName(siteName)
.then(() => fileLibrariesPage.dataTable.doubleClickOnRowByName(folderName1))
.then(() => fileLibrariesPage.sidenav.openNewMenu())
.then(menu => browser.actions().mouseMove(menu.getItemByLabel('Create folder')).perform()
.then(() => menu))
.then(menu => {
const tooltip = menu.getItemTooltip('Create folder');
expect(tooltip).toContain(`Folders cannot be created whilst viewing the current items`);
});
});
}); });
xit(''); it('creates new folder with name and description - [C216340]', async (done) => {
await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
await personalFilesPage.sidenav.openCreateDialog();
await createDialog.waitForDialogToOpen();
await createDialog.enterName(folderName2);
await createDialog.enterDescription(folderDescription);
await createDialog.clickCreate();
await createDialog.waitForDialogToClose();
await dataTable.waitForHeader();
expect(await dataTable.getRowByName(folderName2).isPresent()).toBe(true, 'Folder not displayed');
const desc = await apis.user.nodes.getNodeDescription(folderName2, parent);
expect(desc).toEqual(folderDescription);
done();
});
it('enabled option tooltip - [C216342]', async () => {
await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
const menu = await personalFilesPage.sidenav.openNewMenu();
await browser.actions().mouseMove(menu.getItemByLabel('Create folder')).perform();
expect(await menu.getItemTooltip('Create folder')).toContain('Create new folder');
});
it('dialog UI elements - [C216345]', async () => {
await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
await personalFilesPage.sidenav.openCreateDialog();
await createDialog.waitForDialogToOpen();
const dialogTitle = await createDialog.getTitle();
const isFolderNameDisplayed = await createDialog.nameInput.isDisplayed();
const isDescriptionDisplayed = await createDialog.descriptionTextArea.isDisplayed();
const isCreateEnabled = await createDialog.createButton.isEnabled();
const isCancelEnabled = await createDialog.cancelButton.isEnabled();
expect(dialogTitle).toMatch('Create new folder');
expect(isFolderNameDisplayed).toBe(true, 'Name input is not displayed');
expect(isDescriptionDisplayed).toBe(true, 'Description field is not displayed');
expect(isCreateEnabled).toBe(false, 'Create button is not disabled');
expect(isCancelEnabled).toBe(true, 'Cancel button is not enabled');
});
it('with empty folder name - [C216346]', async () => {
await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
await personalFilesPage.sidenav.openCreateDialog();
await createDialog.waitForDialogToOpen();
await createDialog.deleteNameWithBackspace();
const isCreateEnabled = await createDialog.createButton.isEnabled();
const validationMessage = await createDialog.getValidationMessage();
expect(isCreateEnabled).toBe(false, 'Create button is enabled');
expect(validationMessage).toMatch('Folder name is required');
});
it('with folder name ending with a dot "." - [C216348]', async () => {
await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
await personalFilesPage.sidenav.openCreateDialog();
await createDialog.waitForDialogToOpen();
await createDialog.enterName('folder-name.');
const isCreateEnabled = await createDialog.createButton.isEnabled();
const validationMessage = await createDialog.getValidationMessage();
expect(isCreateEnabled).toBe(false, 'Create button is not disabled');
expect(validationMessage).toMatch(`Folder name can't end with a period .`);
});
it('with folder name containing special characters - [C216347]', async () => {
const namesWithSpecialChars = [ 'a*a', 'a"a', 'a<a', 'a>a', `a\\a`, 'a/a', 'a?a', 'a:a', 'a|a' ];
await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
await personalFilesPage.sidenav.openCreateDialog();
await createDialog.waitForDialogToOpen();
for (const name of namesWithSpecialChars) {
await createDialog.enterName(name);
expect(await createDialog.createButton.isEnabled()).toBe(false, 'Create button is not disabled');
expect(await createDialog.getValidationMessage()).toContain(`Folder name can't contain these characters`);
}
});
it('with folder name containing only spaces - [C280406]', async () => {
await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
await personalFilesPage.sidenav.openCreateDialog();
await createDialog.waitForDialogToOpen();
await createDialog.enterName(' ');
const isCreateEnabled = await createDialog.createButton.isEnabled();
const validationMessage = await createDialog.getValidationMessage();
expect(isCreateEnabled).toBe(false, 'Create button is not disabled');
expect(validationMessage).toMatch(`Folder name can't contain only spaces`);
});
it('cancel folder creation - [C216349]', async () => {
await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
await personalFilesPage.sidenav.openCreateDialog();
await createDialog.waitForDialogToOpen();
await createDialog.enterName('test');
await createDialog.enterDescription('test description');
await createDialog.clickCancel();
expect(await createDialog.component.isPresent()).not.toBe(true, 'dialog is not closed');
});
it('duplicate folder name - [C216350]', async () => {
await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
await personalFilesPage.sidenav.openCreateDialog();
await createDialog.waitForDialogToOpen();
await createDialog.enterName(duplicateFolderName);
await createDialog.clickCreate();
const message = await personalFilesPage.getSnackBarMessage();
expect(message).toEqual(`There's already a folder with this name. Try a different name.`);
expect(await createDialog.component.isPresent()).toBe(true, 'dialog is not present');
});
it('trim ending spaces from folder name - [C216351]', async () => {
await personalFilesPage.dataTable.doubleClickOnRowByName(parent);
await personalFilesPage.sidenav.openCreateDialog();
await createDialog.waitForDialogToOpen();
await createDialog.enterName(nameWithSpaces);
await createDialog.clickCreate();
await createDialog.waitForDialogToClose();
await dataTable.waitForHeader();
const isPresent = await dataTable.getRowByName(nameWithSpaces.trim()).isPresent();
expect(isPresent).toBe(true, 'Folder not displayed in list view');
});
});
describe('on File Libraries', () => {
const fileLibrariesPage = new BrowsingPage();
beforeEach(async (done) => {
await fileLibrariesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
await dataTable.waitForHeader();
done();
});
afterEach(async (done) => {
await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform();
done();
});
it('option is disabled when not enough permissions - [C280397]', async () => {
await fileLibrariesPage.dataTable.doubleClickOnRowByName(siteName);
await fileLibrariesPage.dataTable.doubleClickOnRowByName(folderName1);
const menu = await fileLibrariesPage.sidenav.openNewMenu();
const isEnabled = await menu.getItemByLabel('Create folder').isEnabled();
expect(isEnabled).toBe(false, 'Create folder is not disabled');
});
it('disabled option tooltip - [C280398]', async () => {
await fileLibrariesPage.dataTable.doubleClickOnRowByName(siteName);
await fileLibrariesPage.dataTable.doubleClickOnRowByName(folderName1);
const menu = await fileLibrariesPage.sidenav.openNewMenu();
await browser.actions().mouseMove(menu.getItemByLabel('Create folder')).perform();
const tooltip = await menu.getItemTooltip('Create folder');
expect(tooltip).toContain(`Folders cannot be created whilst viewing the current items`);
});
});
xit('');
}); });

File diff suppressed because it is too large Load Diff

View File

@@ -31,157 +31,151 @@ import { CreateOrEditFolderDialog } from '../../components/dialog/create-edit-fo
import { Utils } from '../../utilities/utils'; import { Utils } from '../../utilities/utils';
describe('Edit folder', () => { describe('Edit folder', () => {
const username = `user-${Utils.random()}`; const username = `user-${Utils.random()}`;
const parent = `parent-${Utils.random()}`; const parent = `parent-${Utils.random()}`; let parentId;
const folderName = `folder-${Utils.random()}`; const folderName = `folder-${Utils.random()}`;
const folderDescription = 'my folder description'; const folderDescription = 'my folder description';
const folderNameToEdit = `folder-${Utils.random()}`; const folderNameToEdit = `folder-${Utils.random()}`;
const duplicateFolderName = `folder-${Utils.random()}`; const duplicateFolderName = `folder-${Utils.random()}`;
const folderNameEdited = `folder-${Utils.random()}`; const folderNameEdited = `folder-${Utils.random()}`;
const folderDescriptionEdited = 'description edited'; const folderDescriptionEdited = 'description edited';
const siteName = `site-private-${Utils.random()}`; const siteName = `site-private-${Utils.random()}`;
const apis = { const apis = {
admin: new RepoClient(), admin: new RepoClient(),
user: new RepoClient(username, username) user: new RepoClient(username, username)
}; };
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const logoutPage = new LogoutPage(); const logoutPage = new LogoutPage();
const personalFilesPage = new BrowsingPage(); const personalFilesPage = new BrowsingPage();
const editDialog = new CreateOrEditFolderDialog(); const editDialog = new CreateOrEditFolderDialog();
const { dataTable } = personalFilesPage; const { dataTable } = personalFilesPage;
const editButton = personalFilesPage.toolbar.getButtonByTitleAttribute('Edit'); const editButton = personalFilesPage.toolbar.getButtonByTitleAttribute('Edit');
beforeAll(done => { beforeAll(async (done) => {
apis.admin.people.createUser({ username }) await apis.admin.people.createUser({ username });
.then(() => apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE)) await apis.admin.sites.createSite(siteName, SITE_VISIBILITY.PRIVATE);
.then(() => apis.admin.nodes.createFolders([ folderName ], `Sites/${siteName}/documentLibrary`)) const docLibId = await apis.admin.sites.getDocLibId(siteName);
.then(() => apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_CONSUMER)) await apis.admin.nodes.createFolder(folderName, docLibId);
await apis.admin.sites.addSiteMember(siteName, username, SITE_ROLES.SITE_CONSUMER);
.then(() => apis.user.nodes.createFolder( parent )) parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
.then(resp => apis.user.nodes.createFolder( folderName, resp.entry.id, '', folderDescription )) await apis.user.nodes.createFolder(folderName, parentId, '', folderDescription);
.then(() => apis.user.nodes.createFolders([ folderNameToEdit, duplicateFolderName ], parent)) await apis.user.nodes.createFolder(folderNameToEdit, parentId);
await apis.user.nodes.createFolder(duplicateFolderName, parentId);
.then(() => loginPage.loginWith(username)) await loginPage.loginWith(username);
.then(done); done();
}); });
beforeEach(done => { beforeEach(async (done) => {
personalFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) await personalFilesPage.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
.then(() => dataTable.waitForHeader()) await dataTable.waitForHeader();
.then(() => dataTable.doubleClickOnRowByName(parent)) await dataTable.doubleClickOnRowByName(parent);
.then(() => dataTable.waitForHeader()) await dataTable.waitForHeader();
.then(done); done();
}); });
afterEach(done => { afterEach(async (done) => {
browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
}); done();
});
afterAll(done => { afterAll(async (done) => {
Promise await Promise.all([
.all([ apis.admin.sites.deleteSite(siteName),
apis.admin.sites.deleteSite(siteName), apis.user.nodes.deleteNodeById(parentId),
apis.user.nodes.deleteNodes([ parent ]), logoutPage.load()
logoutPage.load() ]);
]) done();
.then(done); });
});
it('dialog UI defaults - [C216331]', () => { it('dialog UI defaults - [C216331]', async () => {
dataTable.selectItem(folderName) await dataTable.selectItem(folderName);
.then(() => editButton.click()) await editButton.click();
.then(() => { expect(await editDialog.getTitle()).toEqual('Edit folder');
expect(editDialog.getTitle()).toEqual('Edit folder'); expect(await editDialog.nameInput.getAttribute('value')).toBe(folderName);
expect(editDialog.nameInput.getAttribute('value')).toBe(folderName); expect(await editDialog.descriptionTextArea.getAttribute('value')).toBe(folderDescription);
expect(editDialog.descriptionTextArea.getAttribute('value')).toBe(folderDescription); expect(await editDialog.updateButton.isEnabled()).toBe(true, 'upload button is not enabled');
expect(editDialog.updateButton.isEnabled()).toBe(true, 'upload button is not enabled'); expect(await editDialog.cancelButton.isEnabled()).toBe(true, 'cancel button is not enabled');
expect(editDialog.cancelButton.isEnabled()).toBe(true, 'cancel button is not enabled'); });
});
});
it('properties are modified when pressing OK - [C216335]', () => { it('properties are modified when pressing OK - [C216335]', async (done) => {
dataTable.selectItem(folderNameToEdit) await dataTable.selectItem(folderNameToEdit);
.then(() => editButton.click()) await editButton.click();
.then(() => editDialog.waitForDialogToOpen()) await editDialog.waitForDialogToOpen();
.then(() => editDialog.enterDescription(folderDescriptionEdited)) await editDialog.enterDescription(folderDescriptionEdited);
.then(() => editDialog.enterName(folderNameEdited)) await editDialog.enterName(folderNameEdited);
.then(() => editDialog.clickUpdate()) await editDialog.clickUpdate();
.then(() => editDialog.waitForDialogToClose()) await editDialog.waitForDialogToClose();
.then(() => dataTable.waitForHeader()) await dataTable.waitForHeader();
.then(() => expect(dataTable.getRowByName(folderNameEdited).isPresent()).toBe(true, 'Folder not displayed')) expect(await dataTable.getRowByName(folderNameEdited).isPresent()).toBe(true, 'Folder not displayed');
.then(() => apis.user.nodes.getNodeDescription(folderNameEdited, parent)) const desc = await apis.user.nodes.getNodeDescription(folderNameEdited, parent);
.then(desc => expect(desc).toEqual(folderDescriptionEdited)); expect(desc).toEqual(folderDescriptionEdited);
}); done();
});
it('with empty folder name - [C216332]', () => { it('with empty folder name - [C216332]', async () => {
dataTable.selectItem(folderName) await dataTable.selectItem(folderName);
.then(() => editButton.click()) await editButton.click();
.then(() => editDialog.deleteNameWithBackspace()) await editDialog.deleteNameWithBackspace();
.then(() => { expect(await editDialog.updateButton.isEnabled()).toBe(false, 'upload button is not enabled');
expect(editDialog.updateButton.isEnabled()).toBe(false, 'upload button is not enabled'); expect(await editDialog.getValidationMessage()).toMatch('Folder name is required');
expect(editDialog.getValidationMessage()).toMatch('Folder name is required'); });
});
});
it('with name with special characters - [C216333]', () => { it('with name with special characters - [C216333]', async () => {
const namesWithSpecialChars = [ 'a*a', 'a"a', 'a<a', 'a>a', `a\\a`, 'a/a', 'a?a', 'a:a', 'a|a' ]; const namesWithSpecialChars = [ 'a*a', 'a"a', 'a<a', 'a>a', `a\\a`, 'a/a', 'a?a', 'a:a', 'a|a' ];
dataTable.selectItem(folderName) await dataTable.selectItem(folderName);
.then(() => editButton.click()) await editButton.click();
.then(() => namesWithSpecialChars.forEach(name => {
editDialog.enterName(name);
expect(editDialog.updateButton.isEnabled()).toBe(false, 'upload button is not disabled'); for (const name of namesWithSpecialChars) {
expect(editDialog.getValidationMessage()).toContain(`Folder name can't contain these characters`); await editDialog.enterName(name);
})); expect(await editDialog.updateButton.isEnabled()).toBe(false, 'upload button is not disabled');
}); expect(await editDialog.getValidationMessage()).toContain(`Folder name can't contain these characters`);
}
});
it('with name ending with a dot - [C216334]', () => { it('with name ending with a dot - [C216334]', async () => {
dataTable.selectItem(folderName) await dataTable.selectItem(folderName);
.then(() => editButton.click()) await editButton.click();
.then(() => editDialog.nameInput.sendKeys('.')) await editDialog.waitForDialogToOpen();
.then(() => { await editDialog.nameInput.sendKeys('.');
expect(editDialog.updateButton.isEnabled()).toBe(false, 'upload button is not enabled'); expect(await editDialog.updateButton.isEnabled()).toBe(false, 'upload button is not enabled');
expect(editDialog.getValidationMessage()).toMatch(`Folder name can't end with a period .`); expect(await editDialog.getValidationMessage()).toMatch(`Folder name can't end with a period .`);
}); });
});
it('Cancel button - [C216336]', () => { it('Cancel button - [C216336]', async () => {
dataTable.selectItem(folderName) await dataTable.selectItem(folderName);
.then(() => editButton.click()) await editButton.click();
.then(() => editDialog.clickCancel()) await editDialog.waitForDialogToOpen();
.then(() => { await editDialog.clickCancel();
expect(editDialog.component.isPresent()).not.toBe(true, 'dialog is not closed'); expect(await editDialog.component.isPresent()).not.toBe(true, 'dialog is not closed');
}); });
});
it('with duplicate folder name - [C216337]', () => { it('with duplicate folder name - [C216337]', async () => {
dataTable.selectItem(folderName) await dataTable.selectItem(folderName);
.then(() => editButton.click()) await editButton.click();
.then(() => editDialog.enterName(duplicateFolderName)) await editDialog.waitForDialogToOpen();
.then(() => editDialog.clickUpdate()) await editDialog.enterName(duplicateFolderName);
.then(() => personalFilesPage.getSnackBarMessage()) await editDialog.clickUpdate();
.then(message => { const message = await personalFilesPage.getSnackBarMessage();
expect(message).toEqual(`There's already a folder with this name. Try a different name.`); expect(message).toEqual(`There's already a folder with this name. Try a different name.`);
expect(editDialog.component.isPresent()).toBe(true, 'dialog is not present'); expect(await editDialog.component.isPresent()).toBe(true, 'dialog is not present');
}); });
});
it('trim ending spaces - [C216338]', () => { it('trim ending spaces - [C216338]', async () => {
dataTable.selectItem(folderName) await dataTable.selectItem(folderName);
.then(() => editButton.click()) await editButton.click();
.then(() => editDialog.nameInput.sendKeys(' ')) await editDialog.nameInput.sendKeys(' ');
.then(() => editDialog.clickUpdate()) await editDialog.clickUpdate();
.then(() => editDialog.waitForDialogToClose()) await editDialog.waitForDialogToClose();
.then(() => { expect(await personalFilesPage.snackBar.isPresent()).not.toBe(true, 'notification appears');
expect(personalFilesPage.snackBar.isPresent()).not.toBe(true, 'notification appears'); expect(await dataTable.getRowByName(folderName).isPresent()).toBe(true, 'Folder not displayed in list view');
expect(dataTable.getRowByName(folderName).isPresent()).toBe(true, 'Folder not displayed in list view'); });
});
});
}); });

View File

@@ -56,377 +56,357 @@ describe('Mark items as favorites', () => {
const page = new BrowsingPage(); const page = new BrowsingPage();
const { dataTable, toolbar } = page; const { dataTable, toolbar } = page;
beforeAll(done => { beforeAll(async (done) => {
apis.admin.people.createUser({ username }) await apis.admin.people.createUser({ username });
.then(() => apis.user.nodes.createFile( file1NotFav ).then(resp => file1Id = resp.entry.id)) file1Id = (await apis.user.nodes.createFile(file1NotFav)).entry.id;
.then(() => apis.user.nodes.createFile( file2NotFav ).then(resp => file2Id = resp.entry.id)) file2Id = (await apis.user.nodes.createFile(file2NotFav)).entry.id;
.then(() => apis.user.nodes.createFile( file3Fav ).then(resp => file3Id = resp.entry.id)) file3Id = (await apis.user.nodes.createFile(file3Fav)).entry.id;
.then(() => apis.user.nodes.createFile( file4Fav ).then(resp => file4Id = resp.entry.id)) file4Id = (await apis.user.nodes.createFile(file4Fav)).entry.id;
.then(() => apis.user.nodes.createFolder( folder1 ).then(resp => folder1Id = resp.entry.id)) folder1Id = (await apis.user.nodes.createFolder(folder1)).entry.id;
.then(() => apis.user.favorites.addFavoriteById('file', file3Id)) await apis.user.favorites.addFavoriteById('file', file3Id);
.then(() => apis.user.favorites.addFavoriteById('file', file4Id)) await apis.user.favorites.addFavoriteById('file', file4Id);
.then(() => apis.user.search.waitForApi(username, { expect: 4 })) await apis.user.search.waitForApi(username, { expect: 4 });
.then(() => apis.user.favorites.waitForApi({ expect: 2 })) await apis.user.favorites.waitForApi({ expect: 2 });
.then(() => loginPage.loginWith(username)) await loginPage.loginWith(username);
.then(done); done();
}); });
afterAll(done => { afterAll(async (done) => {
Promise.all([ await Promise.all([
apis.user.nodes.deleteNodesById([ file1Id, file2Id, file3Id, file4Id, folder1Id]), apis.user.nodes.deleteNodesById([ file1Id, file2Id, file3Id, file4Id, folder1Id]),
apis.user.sites.deleteSite(siteName), apis.user.sites.deleteSite(siteName),
logoutPage.load() logoutPage.load()
]) ]);
.then(done); done();
}); });
xit(''); xit('');
describe('on Personal Files', () => { describe('on Personal Files', () => {
beforeAll(done => { beforeAll(async (done) => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
.then(() => dataTable.waitForHeader()) await dataTable.waitForHeader();
.then(done); done();
}); });
beforeEach(done => { beforeEach(async (done) => {
toolbar.closeMoreMenu().then(done); await toolbar.closeMoreMenu();
done();
}); });
it('Favorite action has empty star icon for an item not marked as favorite - [C217186]', () => { it('Favorite action has empty star icon for an item not marked as favorite - [C217186]', async () => {
dataTable.selectItem(file1NotFav) await dataTable.selectItem(file1NotFav);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => expect(toolbar.menu.getItemIconText('Favorite')).toEqual('star_border')); expect(await toolbar.menu.getItemIconText('Favorite')).toEqual('star_border');
}); });
it('Favorite action has empty star icon for multiple selection of items when some are not favorite - [C217187]', () => { it('Favorite action has empty star icon for multiple selection of items when some are not favorite - [C217187]', async () => {
dataTable.selectMultipleItems([ file1NotFav, file3Fav ]) await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => expect(toolbar.menu.getItemIconText('Favorite')).toEqual('star_border')); expect(await toolbar.menu.getItemIconText('Favorite')).toEqual('star_border');
}); });
it('Favorite action has full star icon for items marked as favorite - [C217188]', () => { it('Favorite action has full star icon for items marked as favorite - [C217188]', async () => {
dataTable.selectItem(file3Fav) await dataTable.selectItem(file3Fav);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => expect(toolbar.menu.getItemIconText('Favorite')).toEqual('star')); expect(await toolbar.menu.getItemIconText('Favorite')).toEqual('star');
}); });
it('favorite a file - [C217189]', () => { it('favorite a file - [C217189]', async () => {
dataTable.selectItem(file1NotFav) await dataTable.selectItem(file1NotFav);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 3 })) await apis.user.favorites.waitForApi({ expect: 3 });
.then(() => apis.user.favorites.isFavorite(file1Id)) const isFavorite = await apis.user.favorites.isFavorite(file1Id);
.then(isFavorite => expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`)) expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`);
.then(() => apis.user.favorites.removeFavoriteById(file1Id)); await apis.user.favorites.removeFavoriteById(file1Id);
}); });
it('favorite a folder - [C280390]', () => { it('favorite a folder - [C280390]', async () => {
dataTable.selectItem(folder1) await dataTable.selectItem(folder1);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 3 })) await apis.user.favorites.waitForApi({ expect: 3 });
.then(() => apis.user.favorites.isFavorite(folder1Id)) const isFavorite = await apis.user.favorites.isFavorite(folder1Id);
.then(isFavorite => expect(isFavorite).toBe(true, `${folder1} not marked as favorite`)) expect(isFavorite).toBe(true, `${folder1} not marked as favorite`);
.then(() => apis.user.favorites.removeFavoriteById(folder1Id)); await apis.user.favorites.removeFavoriteById(folder1Id);
}); });
it('unfavorite an item - [C217190]', () => { it('unfavorite an item - [C217190]', async () => {
dataTable.selectItem(file3Fav) await dataTable.selectItem(file3Fav);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 1 })) await apis.user.favorites.waitForApi({ expect: 1 });
.then(() => apis.user.favorites.isFavorite(file3Id)) const isFavorite = await apis.user.favorites.isFavorite(file3Id);
.then(isFavorite => expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`)) expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`);
.then(() => apis.user.favorites.addFavoriteById('file', file3Id)); await apis.user.favorites.addFavoriteById('file', file3Id);
}); });
it('favorite multiple items - all unfavorite - [C217192]', () => { it('favorite multiple items - all unfavorite - [C217192]', async () => {
dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]) await dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 4 })) await apis.user.favorites.waitForApi({ expect: 4 });
.then(() => Promise.all([ const resp = await Promise.all([
apis.user.favorites.isFavorite(file1Id), apis.user.favorites.isFavorite(file1Id),
apis.user.favorites.isFavorite(file2Id) apis.user.favorites.isFavorite(file2Id)
])) ]);
.then(resp => { expect(resp[0]).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');
expect(resp[1]).toBe(true, 'item not marked as favorite');
})
.then(() => apis.user.favorites.removeFavoriteById(file1Id)) await apis.user.favorites.removeFavoriteById(file1Id);
.then(() => apis.user.favorites.removeFavoriteById(file2Id)); await apis.user.favorites.removeFavoriteById(file2Id);
}); });
it('favorite multiple items - some favorite and some unfavorite - [C217194]', () => { it('favorite multiple items - some favorite and some unfavorite - [C217194]', async () => {
dataTable.selectMultipleItems([ file1NotFav, file3Fav ]) await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 3 })) await apis.user.favorites.waitForApi({ expect: 3 });
.then(() => Promise.all([ const resp = await Promise.all([
apis.user.favorites.isFavorite(file1Id), apis.user.favorites.isFavorite(file1Id),
apis.user.favorites.isFavorite(file3Id) apis.user.favorites.isFavorite(file3Id)
])) ]);
.then(resp => { expect(resp[0]).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');
expect(resp[1]).toBe(true, 'item not marked as favorite');
})
.then(() => apis.user.favorites.removeFavoriteById(file1Id)); await apis.user.favorites.removeFavoriteById(file1Id);
}); });
it('unfavorite multiple items - [C217193]', () => { it('unfavorite multiple items - [C217193]', async () => {
dataTable.selectMultipleItems([ file3Fav, file4Fav ]) await dataTable.selectMultipleItems([ file3Fav, file4Fav ])
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => browser.sleep(2000)) await browser.sleep(2000);
.then(() => Promise.all([ const resp = await Promise.all([
apis.user.favorites.isFavorite(file3Id), apis.user.favorites.isFavorite(file3Id),
apis.user.favorites.isFavorite(file4Id) apis.user.favorites.isFavorite(file4Id)
])) ]);
.then(resp => { expect(resp[0]).toBe(false, 'item marked as favorite');
expect(resp[0]).toBe(false, 'item marked as favorite'); expect(resp[1]).toBe(false, 'item marked as favorite');
expect(resp[1]).toBe(false, 'item marked as favorite');
})
.then(() => apis.user.favorites.addFavoriteById('file', file3Id)) await apis.user.favorites.addFavoriteById('file', file3Id);
.then(() => apis.user.favorites.addFavoriteById('file', file4Id)); await apis.user.favorites.addFavoriteById('file', file4Id);
}); });
}); });
describe('on Recent Files', () => { describe('on Recent Files', () => {
beforeAll(done => { beforeAll(async (done) => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES) await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
.then(() => dataTable.waitForHeader()) await dataTable.waitForHeader();
.then(done); done();
}); });
beforeEach(done => { beforeEach(async (done) => {
toolbar.closeMoreMenu().then(done); await toolbar.closeMoreMenu();
done();
}); });
it('favorite a file - [C280352]', () => { it('favorite a file - [C280352]', async () => {
dataTable.selectItem(file1NotFav) await dataTable.selectItem(file1NotFav);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 3 })) await apis.user.favorites.waitForApi({ expect: 3 });
.then(() => apis.user.favorites.isFavorite(file1Id)) const isFavorite = await apis.user.favorites.isFavorite(file1Id);
.then(isFavorite => expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`)) expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`);
.then(() => apis.user.favorites.removeFavoriteById(file1Id)); await apis.user.favorites.removeFavoriteById(file1Id);
}); });
it('unfavorite an item - [C280353]', () => { it('unfavorite an item - [C280353]', async () => {
dataTable.selectItem(file3Fav) await dataTable.selectItem(file3Fav);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 1 })) await apis.user.favorites.waitForApi({ expect: 1 });
.then(() => apis.user.favorites.isFavorite(file3Id)) const isFavorite = await apis.user.favorites.isFavorite(file3Id);
.then(isFavorite => expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`)) expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`);
.then(() => apis.user.favorites.addFavoriteById('file', file3Id)); await apis.user.favorites.addFavoriteById('file', file3Id);
}); });
it('favorite multiple items - all unfavorite - [C280355]', () => { it('favorite multiple items - all unfavorite - [C280355]', async () => {
dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]) await dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 4 })) await apis.user.favorites.waitForApi({ expect: 4 });
.then(() => Promise.all([ const resp = await Promise.all([
apis.user.favorites.isFavorite(file1Id), apis.user.favorites.isFavorite(file1Id),
apis.user.favorites.isFavorite(file2Id) apis.user.favorites.isFavorite(file2Id)
])) ]);
.then(resp => { expect(resp[0]).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');
expect(resp[1]).toBe(true, 'item not marked as favorite');
})
.then(() => apis.user.favorites.removeFavoriteById(file1Id)) await apis.user.favorites.removeFavoriteById(file1Id);
.then(() => apis.user.favorites.removeFavoriteById(file2Id)); await apis.user.favorites.removeFavoriteById(file2Id);
}); });
it('favorite multiple items - some favorite and some unfavorite - [C280357]', () => { it('favorite multiple items - some favorite and some unfavorite - [C280357]', async () => {
dataTable.selectMultipleItems([ file1NotFav, file3Fav ]) await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 3 })) await apis.user.favorites.waitForApi({ expect: 3 });
.then(() => Promise.all([ const resp = await Promise.all([
apis.user.favorites.isFavorite(file1Id), apis.user.favorites.isFavorite(file1Id),
apis.user.favorites.isFavorite(file3Id) apis.user.favorites.isFavorite(file3Id)
])) ]);
.then(resp => { expect(resp[0]).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');
expect(resp[1]).toBe(true, 'item not marked as favorite');
})
.then(() => apis.user.favorites.removeFavoriteById(file1Id)); await apis.user.favorites.removeFavoriteById(file1Id);
}); });
it('unfavorite multiple items - [C280356]', () => { it('unfavorite multiple items - [C280356]', async () => {
dataTable.selectMultipleItems([ file3Fav, file4Fav ]) await dataTable.selectMultipleItems([ file3Fav, file4Fav ]);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => browser.sleep(2000)) await browser.sleep(2000);
.then(() => Promise.all([ const resp = await Promise.all([
apis.user.favorites.isFavorite(file3Id), apis.user.favorites.isFavorite(file3Id),
apis.user.favorites.isFavorite(file4Id) apis.user.favorites.isFavorite(file4Id)
])) ]);
.then(resp => { expect(resp[0]).toBe(false, 'item marked as favorite');
expect(resp[0]).toBe(false, 'item marked as favorite'); expect(resp[1]).toBe(false, 'item marked as favorite');
expect(resp[1]).toBe(false, 'item marked as favorite');
})
.then(() => apis.user.favorites.addFavoriteById('file', file3Id)) await apis.user.favorites.addFavoriteById('file', file3Id);
.then(() => apis.user.favorites.addFavoriteById('file', file4Id)); await apis.user.favorites.addFavoriteById('file', file4Id);
}); });
}); });
describe('on Shared Files', () => { describe('on Shared Files', () => {
beforeAll(done => { beforeAll(async (done) => {
apis.user.shared.shareFilesByIds([ file1Id, file2Id, file3Id, file4Id ]) await apis.user.shared.shareFilesByIds([ file1Id, file2Id, file3Id, file4Id ]);
.then(() => apis.user.shared.waitForApi({ expect: 4 })) await apis.user.shared.waitForApi({ expect: 4 });
.then(() => page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES)) await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
.then(() => dataTable.waitForHeader()) await dataTable.waitForHeader();
.then(done); done();
}); });
afterEach(done => { afterEach(async (done) => {
// browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done); // browser.actions().sendKeys(protractor.Key.ESCAPE).perform().then(done);
browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform().then(done); await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform();
done();
}); });
it('favorite a file - [C280362]', () => { it('favorite a file - [C280362]', async () => {
dataTable.selectItem(file1NotFav) await dataTable.selectItem(file1NotFav)
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 3 })) await apis.user.favorites.waitForApi({ expect: 3 });
.then(() => apis.user.favorites.isFavorite(file1Id)) const isFavorite = await apis.user.favorites.isFavorite(file1Id);
.then(isFavorite => expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`)) expect(isFavorite).toBe(true, `${file1NotFav} not marked as favorite`);
.then(() => apis.user.favorites.removeFavoriteById(file1Id)); await apis.user.favorites.removeFavoriteById(file1Id);
}); });
it('unfavorite an item - [C280363]', () => { it('unfavorite an item - [C280363]', async () => {
dataTable.selectItem(file3Fav) await dataTable.selectItem(file3Fav);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 1 })) await apis.user.favorites.waitForApi({ expect: 1 });
.then(() => apis.user.favorites.isFavorite(file3Id)) const isFavorite = await apis.user.favorites.isFavorite(file3Id);
.then(isFavorite => expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`)) expect(isFavorite).toBe(false, `${file3Fav} is marked as favorite`);
.then(() => apis.user.favorites.addFavoriteById('file', file3Id)); await apis.user.favorites.addFavoriteById('file', file3Id);
}); });
it('favorite multiple items - all unfavorite - [C280365]', () => { it('favorite multiple items - all unfavorite - [C280365]', async () => {
dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]) await dataTable.selectMultipleItems([ file1NotFav, file2NotFav ]);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 4 })) await apis.user.favorites.waitForApi({ expect: 4 });
.then(() => Promise.all([ const resp = await Promise.all([
apis.user.favorites.isFavorite(file1Id), apis.user.favorites.isFavorite(file1Id),
apis.user.favorites.isFavorite(file2Id) apis.user.favorites.isFavorite(file2Id)
])) ]);
.then(resp => { expect(resp[0]).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');
expect(resp[1]).toBe(true, 'item not marked as favorite');
})
.then(() => apis.user.favorites.removeFavoriteById(file1Id)) await apis.user.favorites.removeFavoriteById(file1Id);
.then(() => apis.user.favorites.removeFavoriteById(file2Id)); await apis.user.favorites.removeFavoriteById(file2Id);
}); });
it('favorite multiple items - some favorite and some unfavorite - [C280367]', () => { it('favorite multiple items - some favorite and some unfavorite - [C280367]', async () => {
dataTable.selectMultipleItems([ file1NotFav, file3Fav ]) await dataTable.selectMultipleItems([ file1NotFav, file3Fav ]);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 3 })) await apis.user.favorites.waitForApi({ expect: 3 });
.then(() => Promise.all([ const resp = await Promise.all([
apis.user.favorites.isFavorite(file1Id), apis.user.favorites.isFavorite(file1Id),
apis.user.favorites.isFavorite(file3Id) apis.user.favorites.isFavorite(file3Id)
])) ]);
.then(resp => { expect(resp[0]).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');
expect(resp[1]).toBe(true, 'item not marked as favorite');
})
.then(() => apis.user.favorites.removeFavoriteById(file1Id)); await apis.user.favorites.removeFavoriteById(file1Id);
}); });
it('unfavorite multiple items - [C280366]', () => { it('unfavorite multiple items - [C280366]', async () => {
dataTable.selectMultipleItems([ file3Fav, file4Fav ]) await dataTable.selectMultipleItems([ file3Fav, file4Fav ]);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => browser.sleep(2000)) await browser.sleep(2000);
.then(() => Promise.all([ const resp = await Promise.all([
apis.user.favorites.isFavorite(file3Id), apis.user.favorites.isFavorite(file3Id),
apis.user.favorites.isFavorite(file4Id) apis.user.favorites.isFavorite(file4Id)
])) ]);
.then(resp => { expect(resp[0]).toBe(false, 'item marked as favorite');
expect(resp[0]).toBe(false, 'item marked as favorite'); expect(resp[1]).toBe(false, 'item marked as favorite');
expect(resp[1]).toBe(false, 'item marked as favorite');
})
.then(() => apis.user.favorites.addFavoriteById('file', file3Id)) await apis.user.favorites.addFavoriteById('file', file3Id);
.then(() => apis.user.favorites.addFavoriteById('file', file4Id)); await apis.user.favorites.addFavoriteById('file', file4Id);
}); });
}); });
describe('on Favorites', () => { describe('on Favorites', () => {
beforeAll(done => { beforeAll(async (done) => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES) await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
.then(() => dataTable.waitForHeader()) await dataTable.waitForHeader();
.then(done); done();
}); });
afterEach(done => { afterEach(async (done) => {
page.refresh().then(done); await page.refresh();
done();
}); });
it('unfavorite an item - [C280368]', () => { it('unfavorite an item - [C280368]', async () => {
dataTable.selectItem(file3Fav) await dataTable.selectItem(file3Fav);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => apis.user.favorites.waitForApi({ expect: 1 })) await apis.user.favorites.waitForApi({ expect: 1 });
.then(() => apis.user.favorites.isFavorite(file3Id)) const isFavorite = await apis.user.favorites.isFavorite(file3Id);
.then(isFavorite => { 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(dataTable.getRowByName(file3Fav).isPresent()).toBe(false, 'item still displayed');
})
.then(() => apis.user.favorites.addFavoriteById('file', file3Id)); await apis.user.favorites.addFavoriteById('file', file3Id);
}); });
it('unfavorite multiple items - [C280374]', () => { it('unfavorite multiple items - [C280374]', async () => {
dataTable.selectMultipleItems([ file3Fav, file4Fav ]) await dataTable.selectMultipleItems([ file3Fav, file4Fav ]);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => toolbar.menu.clickMenuItem('Favorite')) await toolbar.menu.clickMenuItem('Favorite');
.then(() => browser.sleep(2000)) await browser.sleep(2000);
.then(() => apis.user.favorites.isFavorite(file3Id)) const isFavorite3 = await apis.user.favorites.isFavorite(file3Id);
.then(resp => { expect(isFavorite3).toBe(false, 'file3 marked as favorite');
expect(resp).toBe(false, 'file3 marked as favorite'); expect(await dataTable.getRowByName(file3Fav).isPresent()).toBe(false, 'file3 still displayed');
expect(dataTable.getRowByName(file3Fav).isPresent()).toBe(false, 'file3 still displayed'); const isFavorite4 = await apis.user.favorites.isFavorite(file4Id);
}) expect(isFavorite4).toBe(false, 'file4 marked as favorite');
.then(() => apis.user.favorites.isFavorite(file4Id)) expect(await dataTable.getRowByName(file4Fav).isPresent()).toBe(false, 'file4 still displayed');
.then(resp => {
expect(resp).toBe(false, 'file4 marked as favorite');
expect(dataTable.getRowByName(file4Fav).isPresent()).toBe(false, 'file4 still displayed');
})
.then(() => apis.user.favorites.addFavoriteById('file', file3Id)) await apis.user.favorites.addFavoriteById('file', file3Id);
.then(() => apis.user.favorites.addFavoriteById('file', file4Id)); await apis.user.favorites.addFavoriteById('file', file4Id);
}); });
it('Favorite action has full star icon for items marked as favorite - [C280371]', () => { it('Favorite action has full star icon for items marked as favorite - [C280371]', async () => {
dataTable.selectItem(file3Fav) await dataTable.selectItem(file3Fav);
.then(() => toolbar.openMoreMenu()) await toolbar.openMoreMenu();
.then(() => expect(toolbar.menu.getItemIconText('Favorite')).toEqual('star')); expect(await toolbar.menu.getItemIconText('Favorite')).toEqual('star');
}); });
}); });
@@ -435,7 +415,7 @@ describe('Mark items as favorites', () => {
beforeAll(async (done) => { beforeAll(async (done) => {
await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC); await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
const docLibId = (await apis.user.sites.getDocLibId(siteName)); const docLibId = await apis.user.sites.getDocLibId(siteName);
folderSiteId = (await apis.user.nodes.createFolder(folderSite, docLibId)).entry.id; folderSiteId = (await apis.user.nodes.createFolder(folderSite, docLibId)).entry.id;
fileSiteNotFav1Id = (await apis.user.nodes.createFile(fileSiteNotFav1, folderSiteId)).entry.id; fileSiteNotFav1Id = (await apis.user.nodes.createFile(fileSiteNotFav1, folderSiteId)).entry.id;
fileSiteFav1Id = (await apis.user.nodes.createFile(fileSiteFav1, folderSiteId)).entry.id; fileSiteFav1Id = (await apis.user.nodes.createFile(fileSiteFav1, folderSiteId)).entry.id;
@@ -501,7 +481,7 @@ describe('Mark items as favorites', () => {
const listItems1 = await Promise.all([ const listItems1 = await Promise.all([
apis.user.favorites.isFavorite(fileSiteNotFav1Id), apis.user.favorites.isFavorite(fileSiteNotFav1Id),
apis.user.favorites.isFavorite(fileSiteNotFav2Id) apis.user.favorites.isFavorite(fileSiteNotFav2Id)
]); ]);
expect(listItems1[0]).toBe(true, 'item not marked as favorite'); expect(listItems1[0]).toBe(true, 'item not marked as favorite');
expect(listItems1[1]).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);
@@ -516,7 +496,7 @@ describe('Mark items as favorites', () => {
const listItems2 = await Promise.all([ const listItems2 = await Promise.all([
apis.user.favorites.isFavorite(fileSiteFav1Id), apis.user.favorites.isFavorite(fileSiteFav1Id),
apis.user.favorites.isFavorite(fileSiteFav2Id) apis.user.favorites.isFavorite(fileSiteFav2Id)
]); ]);
expect(listItems2[0]).toBe(false, 'item marked as favorite'); expect(listItems2[0]).toBe(false, 'item marked as favorite');
expect(listItems2[1]).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);
@@ -532,7 +512,7 @@ describe('Mark items as favorites', () => {
const listItems3 = await Promise.all([ const listItems3 = await Promise.all([
apis.user.favorites.isFavorite(fileSiteNotFav1Id), apis.user.favorites.isFavorite(fileSiteNotFav1Id),
apis.user.favorites.isFavorite(fileSiteFav1) apis.user.favorites.isFavorite(fileSiteFav1)
]); ]);
expect(listItems3[0]).toBe(true, 'item not marked as favorite'); expect(listItems3[0]).toBe(true, 'item not marked as favorite');
expect(listItems3[1]).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);

View File

@@ -88,7 +88,7 @@ describe('Permanently delete from Trash', () => {
const text = await trashPage.getSnackBarMessage(); const text = await trashPage.getSnackBarMessage();
expect(text).toEqual(`${file1} deleted`); expect(text).toEqual(`${file1} deleted`);
expect(dataTable.getRowByName(file1).isPresent()).toBe(false, 'Item was not deleted'); expect(await dataTable.getRowByName(file1).isPresent()).toBe(false, 'Item was not deleted');
}); });
it('delete folder - [C280416]', async () => { it('delete folder - [C280416]', async () => {
@@ -100,7 +100,7 @@ describe('Permanently delete from Trash', () => {
const text = await trashPage.getSnackBarMessage(); const text = await trashPage.getSnackBarMessage();
expect(text).toEqual(`${folder1} deleted`); expect(text).toEqual(`${folder1} deleted`);
expect(dataTable.getRowByName(folder1).isPresent()).toBe(false, 'Item was not deleted'); expect(await dataTable.getRowByName(folder1).isPresent()).toBe(false, 'Item was not deleted');
}); });
it('delete multiple items - [C280417]', async () => { it('delete multiple items - [C280417]', async () => {
@@ -112,8 +112,8 @@ describe('Permanently delete from Trash', () => {
const text = await trashPage.getSnackBarMessage(); const text = await trashPage.getSnackBarMessage();
expect(text).toEqual(`2 items deleted`); expect(text).toEqual(`2 items deleted`);
expect(dataTable.getRowByName(file2).isPresent()).toBe(false, 'Item was not deleted'); expect(await dataTable.getRowByName(file2).isPresent()).toBe(false, 'Item was not deleted');
expect(dataTable.getRowByName(folder2).isPresent()).toBe(false, 'Item was not deleted'); expect(await dataTable.getRowByName(folder2).isPresent()).toBe(false, 'Item was not deleted');
}); });
it('Confirmation dialog UI - [C269113]', async () => { it('Confirmation dialog UI - [C269113]', async () => {
@@ -137,6 +137,6 @@ describe('Permanently delete from Trash', () => {
expect(await confirmDialog.keepButton.isEnabled()).toBe(true, 'KEEP button is not enabled'); expect(await confirmDialog.keepButton.isEnabled()).toBe(true, 'KEEP button is not enabled');
await confirmDialog.clickKeep(); await confirmDialog.clickKeep();
expect(dataTable.getRowByName(file3).isPresent()).toBe(true, 'Item was deleted'); expect(await dataTable.getRowByName(file3).isPresent()).toBe(true, 'Item was deleted');
}); });
}); });

View File

@@ -42,15 +42,18 @@ describe('Restore from Trash', () => {
const page = new BrowsingPage(); const page = new BrowsingPage();
const { dataTable, toolbar } = page; const { dataTable, toolbar } = page;
beforeAll(done => { beforeAll(async (done) => {
apis.admin.people await apis.admin.people.createUser({ username });
.createUser({ username }) await loginPage.loginWith(username);
.then(() => loginPage.loginWith(username)) done();
.then(done);
}); });
afterAll(done => { afterAll(async (done) => {
Promise.all([apis.admin.trashcan.emptyTrash(), logoutPage.load()]).then(done); await Promise.all([
apis.admin.trashcan.emptyTrash(),
logoutPage.load()
]);
done();
}); });
xit(''); xit('');
@@ -61,97 +64,77 @@ describe('Restore from Trash', () => {
const folder = `folder-${Utils.random()}`; const folder = `folder-${Utils.random()}`;
let folderId; let folderId;
beforeAll(done => { beforeAll(async (done) => {
apis.user.nodes fileId = (await apis.user.nodes.createFile(file)).entry.id;
.createFile(file) folderId = (await apis.user.nodes.createFolder(folder)).entry.id;
.then(resp => (fileId = resp.entry.id)) await apis.user.nodes.deleteNodesById([fileId, folderId], false);
.then(() => apis.user.nodes.createFolder(folder).then(resp => (folderId = resp.entry.id))) done();
.then(() => apis.user.nodes.deleteNodesById([fileId, folderId], false))
.then(done);
}); });
beforeEach(done => { beforeEach(async (done) => {
page.sidenav await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH) await dataTable.waitForHeader();
.then(() => dataTable.waitForHeader()) done();
.then(done);
}); });
afterAll(done => { afterAll(async (done) => {
apis.user.trashcan.emptyTrash().then(done); await apis.user.trashcan.emptyTrash();
done();
}); });
it('restore file - [C217177]', () => { it('restore file - [C217177]', async () => {
dataTable await dataTable.selectItem(file);
.selectItem(file) await toolbar.getButtonByTitleAttribute('Restore').click();
.then(() => toolbar.getButtonByTitleAttribute('Restore').click()) const text = await page.getSnackBarMessage();
.then(() => page.getSnackBarMessage()) expect(text).toContain(`${file} restored`);
.then(text => { expect(text).toContain(`View`);
expect(text).toContain(`${file} restored`); expect(await dataTable.getRowByName(file).isPresent()).toBe(false, 'Item was not removed from list');
expect(text).toContain(`View`); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
expect(dataTable.getRowByName(file).isPresent()).toBe(false, 'Item was not removed from list'); await page.dataTable.waitForHeader();
}) expect(await page.dataTable.getRowByName(file).isPresent()).toBe(true, 'Item not displayed in list');
.then(() => page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES))
.then(() => page.dataTable.waitForHeader())
.then(() => {
expect(page.dataTable.getRowByName(file).isPresent()).toBe(true, 'Item not displayed in list');
})
.then(() => apis.user.nodes.deleteNodeById(fileId, false)); await apis.user.nodes.deleteNodeById(fileId, false);
}); });
it('restore folder - [C280438]', () => { it('restore folder - [C280438]', async () => {
dataTable await dataTable.selectItem(folder);
.selectItem(folder) await toolbar.getButtonByTitleAttribute('Restore').click();
.then(() => toolbar.getButtonByTitleAttribute('Restore').click()) const text = await page.getSnackBarMessage();
.then(() => page.getSnackBarMessage()) expect(text).toContain(`${folder} restored`);
.then(text => { expect(text).toContain(`View`);
expect(text).toContain(`${folder} restored`); expect(await dataTable.getRowByName(folder).isPresent()).toBe(false, 'Item was not removed from list');
expect(text).toContain(`View`); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
expect(dataTable.getRowByName(folder).isPresent()).toBe(false, 'Item was not removed from list'); await page.dataTable.waitForHeader();
}) expect(await page.dataTable.getRowByName(folder).isPresent()).toBe(true, 'Item not displayed in list');
.then(() => page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES))
.then(() => page.dataTable.waitForHeader())
.then(() => {
expect(page.dataTable.getRowByName(folder).isPresent()).toBe(true, 'Item not displayed in list');
})
.then(() => apis.user.nodes.deleteNodeById(folderId, false)); await apis.user.nodes.deleteNodeById(folderId, false);
}); });
it('restore multiple items - [C217182]', () => { it('restore multiple items - [C217182]', async () => {
dataTable await dataTable.selectMultipleItems([file, folder]);
.selectMultipleItems([file, folder]) await toolbar.getButtonByTitleAttribute('Restore').click();
.then(() => toolbar.getButtonByTitleAttribute('Restore').click()) const text = await page.getSnackBarMessage();
.then(() => page.getSnackBarMessage()) expect(text).toContain(`Restore successful`);
.then(text => { expect(text).not.toContain(`View`);
expect(text).toContain(`Restore successful`); expect(await dataTable.getRowByName(file).isPresent()).toBe(false, 'Item was not removed from list');
expect(text).not.toContain(`View`); expect(await dataTable.getRowByName(folder).isPresent()).toBe(false, 'Item was not removed from list');
expect(dataTable.getRowByName(file).isPresent()).toBe(false, 'Item was not removed from list'); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
expect(dataTable.getRowByName(folder).isPresent()).toBe(false, 'Item was not removed from list'); await page.dataTable.waitForHeader();
}) expect(await page.dataTable.getRowByName(file).isPresent()).toBe(true, 'Item not displayed in list');
.then(() => page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES)) expect(await page.dataTable.getRowByName(folder).isPresent()).toBe(true, 'Item not displayed in list');
.then(() => page.dataTable.waitForHeader())
.then(() => {
expect(page.dataTable.getRowByName(file).isPresent()).toBe(true, 'Item not displayed in list');
expect(page.dataTable.getRowByName(folder).isPresent()).toBe(true, 'Item not displayed in list');
})
.then(() => apis.user.nodes.deleteNodesById([fileId, folderId], false)); await apis.user.nodes.deleteNodesById([fileId, folderId], false);
}); });
it('View from notification - [C217181]', () => { it('View from notification - [C217181]', async () => {
dataTable await dataTable.selectItem(file);
.selectItem(file) await toolbar.getButtonByTitleAttribute('Restore').click();
.then(() => toolbar.getButtonByTitleAttribute('Restore').click()) await page.clickSnackBarAction();
.then(() => page.clickSnackBarAction()) await page.dataTable.waitForHeader();
.then(() => page.dataTable.waitForHeader()) expect(await page.sidenav.isActiveByLabel('Personal Files')).toBe(true, 'Personal Files sidebar link not active');
.then(() => { expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
expect(page.sidenav.isActiveByLabel('Personal Files')).toBe(true, 'Personal Files sidebar link not active');
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
})
.then(() => apis.user.nodes.deleteNodeById(fileId, false)); await apis.user.nodes.deleteNodeById(fileId, false);
}); });
}); });
@@ -166,49 +149,48 @@ describe('Restore from Trash', () => {
const folder2 = `folder-${Utils.random()}`; const folder2 = `folder-${Utils.random()}`;
let folder2Id; let folder2Id;
beforeAll(done => { beforeAll(async (done) => {
apis.user.nodes folder1Id = (await apis.user.nodes.createFolder(folder1)).entry.id;
.createFolder(folder1) file1Id1 = (await apis.user.nodes.createFile(file1, folder1Id)).entry.id;
.then(resp => (folder1Id = resp.entry.id)) await apis.user.nodes.deleteNodeById(file1Id1, false);
.then(() => apis.user.nodes.createFile(file1, folder1Id).then(resp => (file1Id1 = resp.entry.id))) file1Id2 = (await apis.user.nodes.createFile(file1, folder1Id)).entry.id;
.then(() => apis.user.nodes.deleteNodeById(file1Id1, false))
.then(() => apis.user.nodes.createFile(file1, folder1Id).then(resp => (file1Id2 = resp.entry.id)))
.then(() => apis.user.nodes.createFolder(folder2).then(resp => (folder2Id = resp.entry.id))) folder2Id = (await apis.user.nodes.createFolder(folder2)).entry.id;
.then(() => apis.user.nodes.createFile(file2, folder2Id).then(resp => (file2Id = resp.entry.id))) file2Id = (await apis.user.nodes.createFile(file2, folder2Id)).entry.id;
.then(() => apis.user.nodes.deleteNodeById(file2Id, false)) await apis.user.nodes.deleteNodeById(file2Id, false);
.then(() => apis.user.nodes.deleteNodeById(folder2Id, false)) await apis.user.nodes.deleteNodeById(folder2Id, false);
.then(done); done();
}); });
beforeEach(done => { beforeEach(async (done) => {
page.sidenav await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH) await dataTable.waitForHeader();
.then(() => dataTable.waitForHeader()) done();
.then(done);
}); });
afterAll(done => { afterAll(async (done) => {
Promise.all([apis.user.nodes.deleteNodeById(file1Id2), apis.user.trashcan.emptyTrash()]).then(done); await Promise.all([
apis.user.nodes.deleteNodeById(file1Id2),
apis.user.trashcan.emptyTrash()
]);
done();
}); });
it('Restore a file when another file with same name exists on the restore location - [C217178]', () => { it('Restore a file when another file with same name exists on the restore location - [C217178]', async () => {
page.sidenav await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH) await dataTable.selectItem(file1);
.then(() => dataTable.selectItem(file1)) await toolbar.getButtonByTitleAttribute('Restore').click();
.then(() => toolbar.getButtonByTitleAttribute('Restore').click()) const text = await page.getSnackBarMessage();
.then(() => page.getSnackBarMessage()) expect(text).toEqual(`Can't restore, ${file1} already exists`);
.then(text => expect(text).toEqual(`Can't restore, ${file1} already exists`));
}); });
it('Restore a file when original location no longer exists - [C217179]', () => { it('Restore a file when original location no longer exists - [C217179]', async () => {
page.sidenav await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH) await dataTable.selectItem(file2);
.then(() => dataTable.selectItem(file2)) await toolbar.getButtonByTitleAttribute('Restore').click();
.then(() => toolbar.getButtonByTitleAttribute('Restore').click()) const text = await page.getSnackBarMessage();
.then(() => page.getSnackBarMessage()) expect(text).toEqual(`Can't restore ${file2}, the original location no longer exists`);
.then(text => expect(text).toEqual(`Can't restore ${file2}, the original location no longer exists`));
}); });
}); });
@@ -233,56 +215,55 @@ describe('Restore from Trash', () => {
const file5 = `file5-${Utils.random()}.txt`; const file5 = `file5-${Utils.random()}.txt`;
let file5Id; let file5Id;
beforeAll(done => { beforeAll(async (done) => {
apis.user.nodes folder1Id = (await apis.user.nodes.createFolder(folder1)).entry.id;
.createFolder(folder1) file1Id = (await apis.user.nodes.createFile(file1, folder1Id)).entry.id;
.then(resp => (folder1Id = resp.entry.id)) folder2Id = (await apis.user.nodes.createFolder(folder2)).entry.id;
.then(() => apis.user.nodes.createFile(file1, folder1Id).then(resp => (file1Id = resp.entry.id))) file2Id = (await apis.user.nodes.createFile(file2, folder2Id)).entry.id;
.then(() => apis.user.nodes.createFolder(folder2).then(resp => (folder2Id = resp.entry.id))) await apis.user.nodes.deleteNodeById(file1Id, false);
.then(() => apis.user.nodes.createFile(file2, folder2Id).then(resp => (file2Id = resp.entry.id))) await apis.user.nodes.deleteNodeById(folder1Id, false);
.then(() => apis.user.nodes.deleteNodeById(file1Id, false)) await apis.user.nodes.deleteNodeById(file2Id, false);
.then(() => apis.user.nodes.deleteNodeById(folder1Id, false))
.then(() => apis.user.nodes.deleteNodeById(file2Id, false))
.then(() => apis.user.nodes.createFolder(folder3).then(resp => (folder3Id = resp.entry.id))) folder3Id = (await apis.user.nodes.createFolder(folder3)).entry.id;
.then(() => apis.user.nodes.createFile(file3, folder3Id).then(resp => (file3Id = resp.entry.id))) file3Id = (await apis.user.nodes.createFile(file3, folder3Id)).entry.id;
.then(() => apis.user.nodes.createFile(file4, folder3Id).then(resp => (file4Id = resp.entry.id))) file4Id = (await apis.user.nodes.createFile(file4, folder3Id)).entry.id;
.then(() => apis.user.nodes.createFolder(folder4).then(resp => (folder4Id = resp.entry.id))) folder4Id = (await apis.user.nodes.createFolder(folder4)).entry.id;
.then(() => apis.user.nodes.createFile(file5, folder4Id).then(resp => (file5Id = resp.entry.id))) file5Id = (await apis.user.nodes.createFile(file5, folder4Id)).entry.id;
.then(() => apis.user.nodes.deleteNodeById(file3Id, false)) await apis.user.nodes.deleteNodeById(file3Id, false);
.then(() => apis.user.nodes.deleteNodeById(file4Id, false)) await apis.user.nodes.deleteNodeById(file4Id, false);
.then(() => apis.user.nodes.deleteNodeById(folder3Id, false)) await apis.user.nodes.deleteNodeById(folder3Id, false);
.then(() => apis.user.nodes.deleteNodeById(file5Id, false)) await apis.user.nodes.deleteNodeById(file5Id, false);
.then(() => loginPage.loginWith(username)) await loginPage.loginWith(username);
.then(done); done();
}); });
beforeEach(done => { beforeEach(async (done) => {
page.sidenav await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH) await dataTable.waitForHeader();
.then(() => dataTable.waitForHeader()) done();
.then(done);
}); });
afterAll(done => { afterAll(async (done) => {
Promise.all([apis.user.trashcan.emptyTrash(), logoutPage.load()]).then(done); await Promise.all([
apis.user.trashcan.emptyTrash(),
logoutPage.load()
]);
done();
}); });
it('one failure - [C217183]', () => { it('one failure - [C217183]', async () => {
dataTable await dataTable.selectMultipleItems([file1, file2]);
.selectMultipleItems([file1, file2]) await toolbar.getButtonByTitleAttribute('Restore').click();
.then(() => toolbar.getButtonByTitleAttribute('Restore').click()) const text = await page.getSnackBarMessage();
.then(() => page.getSnackBarMessage()) expect(text).toEqual(`Can't restore ${file1}, the original location no longer exists`);
.then(text => expect(text).toEqual(`Can't restore ${file1}, the original location no longer exists`));
}); });
it('multiple failures - [C217184]', () => { it('multiple failures - [C217184]', async () => {
dataTable await dataTable.selectMultipleItems([file3, file4, file5]);
.selectMultipleItems([file3, file4, file5]) await toolbar.getButtonByTitleAttribute('Restore').click();
.then(() => toolbar.getButtonByTitleAttribute('Restore').click()) const text = await page.getSnackBarMessage();
.then(() => page.getSnackBarMessage()) expect(text).toEqual('2 items not restored because of issues with the restore location');
.then(text => expect(text).toEqual('2 items not restored because of issues with the restore location'));
}); });
}); });
}); });

View File

@@ -31,181 +31,181 @@ import { RepoClient } from '../../utilities/repo-client/repo-client';
import { Utils } from '../../utilities/utils'; import { Utils } from '../../utilities/utils';
describe('Single click on item name', () => { describe('Single click on item name', () => {
const username = `user-${Utils.random()}`; const username = `user-${Utils.random()}`;
const file1 = `file1-${Utils.random()}.txt`; let file1Id; const file1 = `file1-${Utils.random()}.txt`; let file1Id;
const folder1 = `folder1-${Utils.random()}`; let folder1Id; const folder1 = `folder1-${Utils.random()}`; let folder1Id;
const deletedFile1 = `file1-${Utils.random()}.txt`; let deletedFile1Id; const deletedFile1 = `file1-${Utils.random()}.txt`; let deletedFile1Id;
const deletedFolder1 = `folder1-${Utils.random()}`; let deletedFolder1Id; const deletedFolder1 = `folder1-${Utils.random()}`; let deletedFolder1Id;
const siteName = `site-${Utils.random()}`; const siteName = `site-${Utils.random()}`;
const fileSite = `fileSite-${Utils.random()}.txt`; const fileSite = `fileSite-${Utils.random()}.txt`;
const apis = { const apis = {
admin: new RepoClient(), admin: new RepoClient(),
user: new RepoClient(username, username) user: new RepoClient(username, username)
}; };
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const logoutPage = new LogoutPage(); const logoutPage = new LogoutPage();
const page = new BrowsingPage(); const page = new BrowsingPage();
const { dataTable, breadcrumb } = page; const { dataTable, breadcrumb } = page;
const viewer = new Viewer(); const viewer = new Viewer();
beforeAll(async (done) => { beforeAll(async (done) => {
await apis.admin.people.createUser({ username }); await apis.admin.people.createUser({ username });
file1Id = (await apis.user.nodes.createFile(file1)).entry.id; file1Id = (await apis.user.nodes.createFile(file1)).entry.id;
folder1Id = (await apis.user.nodes.createFolder(folder1)).entry.id; folder1Id = (await apis.user.nodes.createFolder(folder1)).entry.id;
deletedFile1Id = (await apis.user.nodes.createFile(deletedFile1)).entry.id; deletedFile1Id = (await apis.user.nodes.createFile(deletedFile1)).entry.id;
deletedFolder1Id = (await apis.user.nodes.createFolder(deletedFolder1)).entry.id; deletedFolder1Id = (await apis.user.nodes.createFolder(deletedFolder1)).entry.id;
await apis.user.nodes.deleteNodeById(deletedFile1Id, false); await apis.user.nodes.deleteNodeById(deletedFile1Id, false);
await apis.user.nodes.deleteNodeById(deletedFolder1Id, false); await apis.user.nodes.deleteNodeById(deletedFolder1Id, false);
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 apis.user.nodes.createFile(fileSite, docLibId); await apis.user.nodes.createFile(fileSite, docLibId);
await apis.user.shared.shareFileById(file1Id); await apis.user.shared.shareFileById(file1Id);
await apis.user.shared.waitForApi({ expect: 1 }); await apis.user.shared.waitForApi({ expect: 1 });
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 });
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
});
afterAll(async (done) => {
await Promise.all([
apis.user.sites.deleteSite(siteName),
apis.user.nodes.deleteNodeById(folder1Id),
apis.user.nodes.deleteNodeById(file1Id),
apis.user.trashcan.emptyTrash(),
logoutPage.load()
]);
done();
});
it('Hyperlink does not appear for items in the Trash - [C284899]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
await dataTable.waitForHeader();
expect(await dataTable.hasLinkOnName(deletedFile1)).toBe(false, 'Link on name is present');
expect(await dataTable.hasLinkOnName(deletedFolder1)).toBe(false, 'Link on name is present');
});
describe('on Personal Files', () => {
beforeEach(async (done) => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader();
done();
}); });
afterAll(async (done) => { it('Hyperlink appears when mouse over a file/folder - [C280032]', async () => {
await Promise.all([ expect(await dataTable.hasLinkOnName(file1)).toBe(true, 'Link on name is missing');
apis.user.sites.deleteSite(siteName),
apis.user.nodes.deleteNodeById(folder1Id),
apis.user.nodes.deleteNodeById(file1Id),
apis.user.trashcan.emptyTrash(),
logoutPage.load()
]);
done();
}); });
it('Hyperlink does not appear for items in the Trash - [C284899]', async () => { it('File preview opens when clicking the hyperlink - [C280033]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH); await dataTable.clickNameLink(file1);
await dataTable.waitForHeader();
expect(await dataTable.hasLinkOnName(deletedFile1)).toBe(false, 'Link on name is present'); expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
expect(await dataTable.hasLinkOnName(deletedFolder1)).toBe(false, 'Link on name is present');
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
}); });
describe('on Personal Files', () => { it('Navigate inside the folder when clicking the hyperlink - [C280034]', async () => {
beforeEach(async (done) => { await dataTable.clickNameLink(folder1);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader();
done();
});
it('Hyperlink appears when mouse over a file/folder - [C280032]', async () => { expect(await breadcrumb.getCurrentItemName()).toBe(folder1);
expect(await dataTable.hasLinkOnName(file1)).toBe(true, 'Link on name is missing'); });
}); });
it('File preview opens when clicking the hyperlink - [C280033]', async () => { describe('on File Libraries', () => {
await dataTable.clickNameLink(file1); beforeEach(async (done) => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); await dataTable.waitForHeader();
done();
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
});
it('Navigate inside the folder when clicking the hyperlink - [C280034]', async () => {
await dataTable.clickNameLink(folder1);
expect(await breadcrumb.getCurrentItemName()).toBe(folder1);
});
}); });
describe('on File Libraries', () => { it('Hyperlink appears when mouse over a library - [C284901]', async () => {
beforeEach(async (done) => { expect(await dataTable.hasLinkOnName(siteName)).toBe(true, 'Link on site name is missing');
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
await dataTable.waitForHeader();
done();
});
it('Hyperlink appears when mouse over a library - [C284901]', async () => {
expect(await dataTable.hasLinkOnName(siteName)).toBe(true, 'Link on site name is missing');
});
it('Navigate inside the library when clicking the hyperlink - [C284902]', async () => {
await dataTable.clickNameLink(siteName);
expect(await breadcrumb.getCurrentItemName()).toBe(siteName);
expect(await dataTable.getRowByName(fileSite).isPresent()).toBe(true, `${fileSite} not displayed`);
});
}); });
describe('on Shared Files', () => { it('Navigate inside the library when clicking the hyperlink - [C284902]', async () => {
beforeEach(async (done) => { await dataTable.clickNameLink(siteName);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
await dataTable.waitForHeader();
done();
});
it('Hyperlink appears when mouse over a file - [C284905]', async () => { expect(await breadcrumb.getCurrentItemName()).toBe(siteName);
expect(await dataTable.hasLinkOnName(file1)).toBe(true, 'Link on name is missing'); expect(await dataTable.getRowByName(fileSite).isPresent()).toBe(true, `${fileSite} not displayed`);
}); });
});
it('File preview opens when clicking the hyperlink - [C284906]', async () => { describe('on Shared Files', () => {
await dataTable.clickNameLink(file1); beforeEach(async (done) => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened'); await dataTable.waitForHeader();
done();
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
});
}); });
describe('on Recent Files', () => { it('Hyperlink appears when mouse over a file - [C284905]', async () => {
beforeEach(async (done) => { expect(await dataTable.hasLinkOnName(file1)).toBe(true, 'Link on name is missing');
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
await dataTable.waitForHeader();
done();
});
it('Hyperlink appears when mouse over a file - [C284907]', async () => {
expect(await dataTable.hasLinkOnName(file1)).toBe(true, 'Link on name is missing');
});
it('File preview opens when clicking the hyperlink - [C284908]', async () => {
await dataTable.clickNameLink(file1);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
});
}); });
describe('on Favorites', () => { it('File preview opens when clicking the hyperlink - [C284906]', async () => {
beforeEach(async (done) => { await dataTable.clickNameLink(file1);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader();
done();
});
it('Hyperlink appears when mouse over a file/folder - [C284909]', async () => { expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
expect(await dataTable.hasLinkOnName(file1)).toBe(true, 'Link on name is missing');
});
it('File preview opens when clicking the hyperlink - [C284910]', async () => { await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await dataTable.clickNameLink(file1);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
});
it('Navigate inside the folder when clicking the hyperlink - [C284911]', async () => {
await dataTable.clickNameLink(folder1);
expect(await breadcrumb.getCurrentItemName()).toBe(folder1);
});
}); });
});
describe('on Recent Files', () => {
beforeEach(async (done) => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
await dataTable.waitForHeader();
done();
});
it('Hyperlink appears when mouse over a file - [C284907]', async () => {
expect(await dataTable.hasLinkOnName(file1)).toBe(true, 'Link on name is missing');
});
it('File preview opens when clicking the hyperlink - [C284908]', async () => {
await dataTable.clickNameLink(file1);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
});
});
describe('on Favorites', () => {
beforeEach(async (done) => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader();
done();
});
it('Hyperlink appears when mouse over a file/folder - [C284909]', async () => {
expect(await dataTable.hasLinkOnName(file1)).toBe(true, 'Link on name is missing');
});
it('File preview opens when clicking the hyperlink - [C284910]', async () => {
await dataTable.clickNameLink(file1);
expect(await viewer.isViewerOpened()).toBe(true, 'Viewer is not opened');
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
});
it('Navigate inside the folder when clicking the hyperlink - [C284911]', async () => {
await dataTable.clickNameLink(folder1);
expect(await breadcrumb.getCurrentItemName()).toBe(folder1);
});
});
}); });

View File

@@ -74,44 +74,28 @@ describe('Toolbar actions - multiple selection : ', () => {
file2Id = (await apis.user.nodes.createFiles([file2])).entry.id; file2Id = (await apis.user.nodes.createFiles([file2])).entry.id;
folder1Id = (await apis.user.nodes.createFolders([folder1])).entry.id; folder1Id = (await apis.user.nodes.createFolders([folder1])).entry.id;
folder2Id = (await apis.user.nodes.createFolders([folder2])).entry.id; folder2Id = (await apis.user.nodes.createFolders([folder2])).entry.id;
fileForDelete1Id = (await apis.user.nodes.createFiles([fileForDelete1])) fileForDelete1Id = (await apis.user.nodes.createFiles([fileForDelete1])).entry.id;
.entry.id; fileForDelete2Id = (await apis.user.nodes.createFiles([fileForDelete2])).entry.id;
fileForDelete2Id = (await apis.user.nodes.createFiles([fileForDelete2])) folderForDelete1Id = (await apis.user.nodes.createFolders([folderForDelete1])).entry.id;
.entry.id; folderForDelete2Id = (await apis.user.nodes.createFolders([folderForDelete2])).entry.id;
folderForDelete1Id = (await apis.user.nodes.createFolders([
folderForDelete1
])).entry.id;
folderForDelete2Id = (await apis.user.nodes.createFolders([
folderForDelete2
])).entry.id;
await apis.user.shared.shareFilesByIds([file1Id, file2Id]); await apis.user.shared.shareFilesByIds([file1Id, file2Id]);
await apis.user.shared.waitForApi({ expect: 2 }); await apis.user.shared.waitForApi({ expect: 2 });
await apis.user.favorites.addFavoritesByIds('file', [file1Id, file2Id]); await apis.user.favorites.addFavoritesByIds('file', [file1Id, file2Id]);
await apis.user.favorites.addFavoritesByIds('folder', [ await apis.user.favorites.addFavoritesByIds('folder', [folder1Id, folder2Id]);
folder1Id,
folder2Id
]);
await apis.user.favorites.waitForApi({ expect: 4 }); await apis.user.favorites.waitForApi({ expect: 4 });
await apis.user.nodes.deleteNodesById( await apis.user.nodes.deleteNodesById([fileForDelete1Id, fileForDelete2Id, folderForDelete1Id, folderForDelete2Id], false);
[
fileForDelete1Id,
fileForDelete2Id,
folderForDelete1Id,
folderForDelete2Id
],
false
);
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 apis.user.nodes.createFile(file1InSite, docLibId); await Promise.all([
await apis.user.nodes.createFile(file2InSite, docLibId); apis.user.nodes.createFile(file1InSite, docLibId),
await apis.user.nodes.createFolder(folder1InSite, docLibId); apis.user.nodes.createFile(file2InSite, docLibId),
await apis.user.nodes.createFolder(folder2InSite, docLibId); apis.user.nodes.createFolder(folder1InSite, docLibId),
apis.user.nodes.createFolder(folder2InSite, docLibId)
]);
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
}); });
@@ -138,161 +122,70 @@ describe('Toolbar actions - multiple selection : ', () => {
it('Unselect items with single click - [C280458]', async () => { it('Unselect items with single click - [C280458]', async () => {
await dataTable.selectMultipleItems([file1, file2, folder1, folder2]); await dataTable.selectMultipleItems([file1, file2, folder1, folder2]);
expect(await dataTable.countSelectedRows()).toEqual( expect(await dataTable.countSelectedRows()).toEqual(4, 'incorrect selected rows number');
4,
'incorrect selected rows number'
);
await dataTable.selectItem(file1); await dataTable.selectItem(file1);
expect(await dataTable.countSelectedRows()).toEqual( expect(await dataTable.countSelectedRows()).toEqual(1, 'incorrect selected rows number');
1,
'incorrect selected rows number'
);
}); });
it('Select / unselect selected items by CMD+click - [C217110]', async () => { it('Select / unselect selected items by CMD+click - [C217110]', async () => {
await browser await browser.actions().sendKeys(protractor.Key.COMMAND).perform();
.actions()
.sendKeys(protractor.Key.COMMAND)
.perform();
await dataTable.selectItem(file1); await dataTable.selectItem(file1);
await dataTable.selectItem(file2); await dataTable.selectItem(file2);
await dataTable.selectItem(folder1); await dataTable.selectItem(folder1);
await dataTable.selectItem(folder2); await dataTable.selectItem(folder2);
await browser await browser.actions().sendKeys(protractor.Key.NULL).perform();
.actions() expect(await dataTable.countSelectedRows()).toEqual(4, 'incorrect selected rows number');
.sendKeys(protractor.Key.NULL) await browser.actions().sendKeys(protractor.Key.COMMAND).perform();
.perform();
expect(await dataTable.countSelectedRows()).toEqual(
4,
'incorrect selected rows number'
);
await browser
.actions()
.sendKeys(protractor.Key.COMMAND)
.perform();
await dataTable.selectItem(file1); await dataTable.selectItem(file1);
await dataTable.selectItem(file2); await dataTable.selectItem(file2);
await browser await browser.actions().sendKeys(protractor.Key.NULL).perform();
.actions()
.sendKeys(protractor.Key.NULL)
.perform();
expect(await dataTable.countSelectedRows()).toEqual( expect(await dataTable.countSelectedRows()).toEqual(2, 'incorrect selected rows number');
2,
'incorrect selected rows number'
);
}); });
it('correct actions appear when multiple files are selected - [C217112]', async () => { it('correct actions appear when multiple files are selected - [C217112]', async () => {
await dataTable.selectMultipleItems([file1, file2]); await dataTable.selectMultipleItems([file1, file2]);
expect(await toolbar.isButtonPresent('View')).toBe( expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
false, expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
'View is displayed' expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
);
expect(await toolbar.isButtonPresent('Download')).toBe(
true,
'Download is not displayed'
);
expect(await toolbar.isButtonPresent('Edit')).toBe(
false,
'Edit is displayed'
);
const menu = await toolbar.openMoreMenu(); const menu = await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe( expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
true, expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
`Copy is not displayed for selected files` expect(await 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 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 menu.isMenuItemPresent('Favorite')).toBe(
true,
`Favorite is not displayed for selected files`
);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
it('correct actions appear when multiple folders are selected - [C280459]', async () => { it('correct actions appear when multiple folders are selected - [C280459]', async () => {
await dataTable.selectMultipleItems([folder1, folder2]); await dataTable.selectMultipleItems([folder1, folder2]);
expect(await toolbar.isButtonPresent('View')).toBe( expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
false, expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
'View is displayed' expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
);
expect(await toolbar.isButtonPresent('Download')).toBe(
true,
'Download is not displayed'
);
expect(await toolbar.isButtonPresent('Edit')).toBe(
false,
'Edit is displayed'
);
const menu = await toolbar.openMoreMenu(); const menu = await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe( expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
true, expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
`Copy is not displayed for selected files` expect(await 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 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 menu.isMenuItemPresent('Favorite')).toBe(
true,
`Favorite is not displayed for selected files`
);
await toolbar.closeMoreMenu(); await toolbar.closeMoreMenu();
}); });
it('correct actions appear when both files and folders are selected - [C280460]', async () => { it('correct actions appear when both files and folders are selected - [C280460]', async () => {
await dataTable.selectMultipleItems([file1, file2, folder1, folder2]); await dataTable.selectMultipleItems([file1, file2, folder1, folder2]);
expect(await toolbar.isButtonPresent('View')).toBe( expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
false, expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
'View is displayed' expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
);
expect(await toolbar.isButtonPresent('Download')).toBe(
true,
'Download is not displayed'
);
expect(await toolbar.isButtonPresent('Edit')).toBe(
false,
'Edit is displayed'
);
const menu = await toolbar.openMoreMenu(); const menu = await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe( expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
true, expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
`Copy is not displayed for selected files` expect(await 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 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 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 await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform();
.actions()
.mouseMove(browser.$('body'), { x: 0, y: 0 })
.click()
.perform();
await dataTable.clearSelection(); 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();
@@ -303,116 +196,44 @@ describe('Toolbar actions - multiple selection : ', () => {
it('correct actions appear when multiple files are selected - [C280461]', async () => { it('correct actions appear when multiple files are selected - [C280461]', async () => {
await dataTable.selectMultipleItems([file1InSite, file2InSite]); await dataTable.selectMultipleItems([file1InSite, file2InSite]);
expect(await toolbar.isButtonPresent('View')).toBe( expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed for selected files');
false, expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files');
'View is displayed for selected files' expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is 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'
);
const menu = await toolbar.openMoreMenu(); const menu = await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe( expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
true, expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
`Copy is not displayed for selected files` expect(await 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 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 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 () => {
await dataTable.selectMultipleItems([folder1InSite, folder2InSite]); await dataTable.selectMultipleItems([folder1InSite, folder2InSite]);
expect(await toolbar.isButtonPresent('View')).toBe( expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
false, expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
'View is displayed' expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
);
expect(await toolbar.isButtonPresent('Download')).toBe(
true,
'Download is not displayed'
);
expect(await toolbar.isButtonPresent('Edit')).toBe(
false,
'Edit is displayed'
);
const menu = await toolbar.openMoreMenu(); const menu = await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe( expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
true, expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
`Copy is not displayed for selected files` expect(await 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 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 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 () => {
await dataTable.selectMultipleItems([ await dataTable.selectMultipleItems([file1InSite, file2InSite, folder1InSite, folder2InSite]);
file1InSite, expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
file2InSite, expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
folder1InSite, expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
folder2InSite
]);
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('Edit')).toBe(
false,
'Edit is displayed'
);
const menu = await toolbar.openMoreMenu(); const menu = await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe( expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
true, expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
`Copy is not displayed for selected files` expect(await 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 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 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 await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform();
.actions()
.mouseMove(browser.$('body'), { x: 0, y: 0 })
.click()
.perform();
await dataTable.clearSelection(); 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();
@@ -421,45 +242,20 @@ describe('Toolbar actions - multiple selection : ', () => {
it('correct actions appear when multiple files are selected - [C280467]', async () => { it('correct actions appear when multiple files are selected - [C280467]', async () => {
await dataTable.selectMultipleItems([file1, file2]); await dataTable.selectMultipleItems([file1, file2]);
expect(await toolbar.isButtonPresent('View')).toBe( expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
false, expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files');
'View is displayed' expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is 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'
);
const menu = await toolbar.openMoreMenu(); const menu = await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe( expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
true, expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
`Copy is not displayed for selected files` expect(await 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 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 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 await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform();
.actions()
.mouseMove(browser.$('body'), { x: 0, y: 0 })
.click()
.perform();
await dataTable.clearSelection(); 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();
@@ -468,45 +264,20 @@ describe('Toolbar actions - multiple selection : ', () => {
it('correct actions appear when multiple files are selected - [C280468]', async () => { it('correct actions appear when multiple files are selected - [C280468]', async () => {
await dataTable.selectMultipleItems([file1, file2]); await dataTable.selectMultipleItems([file1, file2]);
expect(await toolbar.isButtonPresent('View')).toBe( expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
false, expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
'View is displayed' expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
);
expect(await toolbar.isButtonPresent('Download')).toBe(
true,
'Download is not displayed'
);
expect(await toolbar.isButtonPresent('Edit')).toBe(
false,
'Edit is displayed'
);
const menu = await toolbar.openMoreMenu(); const menu = await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe( expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
true, expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
`Copy is not displayed for selected files` expect(await 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 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 menu.isMenuItemPresent('Favorite')).toBe(
true,
`Favorite is not displayed for selected files`
);
}); });
}); });
describe('Favorites', () => { describe('Favorites', () => {
beforeEach(async done => { beforeEach(async done => {
await browser await browser.actions().mouseMove(browser.$('body'), { x: 0, y: 0 }).click().perform();
.actions()
.mouseMove(browser.$('body'), { x: 0, y: 0 })
.click()
.perform();
await dataTable.clearSelection(); await dataTable.clearSelection();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader(); await dataTable.waitForHeader();
@@ -515,101 +286,38 @@ describe('Toolbar actions - multiple selection : ', () => {
it('correct actions appear when multiple files are selected - [C280469]', async () => { it('correct actions appear when multiple files are selected - [C280469]', async () => {
await dataTable.selectMultipleItems([file1, file2]); await dataTable.selectMultipleItems([file1, file2]);
expect(await toolbar.isButtonPresent('View')).toBe( expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
false, expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
'View is displayed' expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
);
expect(await toolbar.isButtonPresent('Download')).toBe(
true,
'Download is not displayed'
);
expect(await toolbar.isButtonPresent('Edit')).toBe(
false,
'Edit is displayed'
);
const menu = await toolbar.openMoreMenu(); const menu = await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe( expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
true, expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
`Copy is not displayed for selected files` expect(await 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 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 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 () => {
await dataTable.selectMultipleItems([folder1, folder2]); await dataTable.selectMultipleItems([folder1, folder2]);
expect(await toolbar.isButtonPresent('View')).toBe( expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
false, expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed');
'View is displayed' expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
);
expect(await toolbar.isButtonPresent('Download')).toBe(
true,
'Download is not displayed'
);
expect(await toolbar.isButtonPresent('Edit')).toBe(
false,
'Edit is displayed'
);
const menu = await toolbar.openMoreMenu(); const menu = await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe( expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
true, expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
`Copy is not displayed for selected files` expect(await 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 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 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 () => {
await dataTable.selectMultipleItems([file1, file2, folder1, folder2]); await dataTable.selectMultipleItems([file1, file2, folder1, folder2]);
expect(await toolbar.isButtonPresent('View')).toBe( expect(await toolbar.isButtonPresent('View')).toBe(false, 'View is displayed');
false, expect(await toolbar.isButtonPresent('Download')).toBe(true, 'Download is not displayed for selected files');
'View is displayed' expect(await toolbar.isButtonPresent('Edit')).toBe(false, 'Edit is displayed');
);
expect(await toolbar.isButtonPresent('Download')).toBe(
true,
'Download is not displayed for selected files'
);
expect(await toolbar.isButtonPresent('Edit')).toBe(
false,
'Edit is displayed'
);
const menu = await toolbar.openMoreMenu(); const menu = await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe( expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for selected files`);
true, expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for selected files`);
`Copy is not displayed for selected files` expect(await 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 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 menu.isMenuItemPresent('Favorite')).toBe(
true,
`Favorite is not displayed for selected files`
);
}); });
}); });
@@ -623,43 +331,20 @@ describe('Toolbar actions - multiple selection : ', () => {
it('correct actions appear when multiple files are selected - [C280472]', async () => { it('correct actions appear when multiple files are selected - [C280472]', async () => {
await dataTable.selectMultipleItems([fileForDelete1, fileForDelete2]); await dataTable.selectMultipleItems([fileForDelete1, fileForDelete2]);
expect(await toolbar.isButtonPresent('Permanently delete')).toBe( expect(await toolbar.isButtonPresent('Permanently delete')).toBe(true, 'Permanently delete is displayed');
true, expect(await toolbar.isButtonPresent('Restore')).toBe(true, 'Restore is not displayed');
'Permanently delete is displayed'
);
expect(await toolbar.isButtonPresent('Restore')).toBe(
true,
'Restore is not displayed'
);
}); });
it('correct actions appear when multiple folders are selected - [C280473]', async () => { it('correct actions appear when multiple folders are selected - [C280473]', async () => {
await dataTable.selectMultipleItems([folderForDelete1, folderForDelete2]); await dataTable.selectMultipleItems([folderForDelete1, folderForDelete2]);
expect(await toolbar.isButtonPresent('Permanently delete')).toBe( expect(await toolbar.isButtonPresent('Permanently delete')).toBe(true, 'Permanently delete is displayed');
true, expect(await toolbar.isButtonPresent('Restore')).toBe(true, 'Restore is not displayed');
'Permanently delete is displayed'
);
expect(await toolbar.isButtonPresent('Restore')).toBe(
true,
'Restore is not displayed'
);
}); });
it('correct actions appear when both files and folders are selected - [C280474]', async () => { it('correct actions appear when both files and folders are selected - [C280474]', async () => {
await dataTable.selectMultipleItems([ await dataTable.selectMultipleItems([fileForDelete1, fileForDelete2, folderForDelete1, folderForDelete2]);
fileForDelete1, expect(await toolbar.isButtonPresent('Permanently delete')).toBe(true, 'Permanently delete is displayed');
fileForDelete2, expect(await toolbar.isButtonPresent('Restore')).toBe(true, 'Restore is not displayed');
folderForDelete1,
folderForDelete2
]);
expect(await toolbar.isButtonPresent('Permanently delete')).toBe(
true,
'Permanently delete is displayed'
);
expect(await toolbar.isButtonPresent('Restore')).toBe(
true,
'Restore is not displayed'
);
}); });
}); });
}); });

View File

@@ -30,289 +30,288 @@ import { RepoClient } from '../../utilities/repo-client/repo-client';
import { Utils } from '../../utilities/utils'; import { Utils } from '../../utilities/utils';
describe('Toolbar actions - single selection : ', () => { describe('Toolbar actions - single selection : ', () => {
const username = `user-${Utils.random()}`; const username = `user-${Utils.random()}`;
const fileUser = `fileUser-${Utils.random()}.txt`; let fileUserId; const fileUser = `fileUser-${Utils.random()}.txt`; let fileUserId;
const folderUser = `folderUser-${Utils.random()}`; let folderUserId; const folderUser = `folderUser-${Utils.random()}`; let folderUserId;
const fileForDelete = `fileForDelete-${Utils.random()}.txt`; let fileForDeleteId; const fileForDelete = `fileForDelete-${Utils.random()}.txt`; let fileForDeleteId;
const folderForDelete = `folderForDelete-${Utils.random()}`; let folderForDeleteId; const folderForDelete = `folderForDelete-${Utils.random()}`; let folderForDeleteId;
const siteName = `site-${Utils.random()}`; const siteName = `site-${Utils.random()}`;
const fileInSite = `fileAdmin-${Utils.random()}.txt`; const fileInSite = `fileAdmin-${Utils.random()}.txt`;
const folderInSite = `folderAdmin-${Utils.random()}`; const folderInSite = `folderAdmin-${Utils.random()}`;
const apis = { const apis = {
admin: new RepoClient(), admin: new RepoClient(),
user: new RepoClient(username, username) user: new RepoClient(username, username)
}; };
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const logoutPage = new LogoutPage(); const logoutPage = new LogoutPage();
const page = new BrowsingPage(); const page = new BrowsingPage();
const { dataTable, toolbar } = page; const { dataTable, toolbar } = page;
beforeAll(async (done) => { beforeAll(async (done) => {
await apis.admin.people.createUser({ username }); await apis.admin.people.createUser({ username });
fileUserId = (await apis.user.nodes.createFile(fileUser)).entry.id; fileUserId = (await apis.user.nodes.createFile(fileUser)).entry.id;
fileForDeleteId = (await apis.user.nodes.createFile(fileForDelete)).entry.id; fileForDeleteId = (await apis.user.nodes.createFile(fileForDelete)).entry.id;
folderForDeleteId = (await apis.user.nodes.createFolder(folderForDelete)).entry.id; folderForDeleteId = (await apis.user.nodes.createFolder(folderForDelete)).entry.id;
folderUserId = (await apis.user.nodes.createFolder(folderUser)).entry.id; folderUserId = (await apis.user.nodes.createFolder(folderUser)).entry.id;
await apis.user.shared.shareFileById(fileUserId); await apis.user.shared.shareFileById(fileUserId);
await apis.user.shared.waitForApi({ expect: 1 }); await apis.user.shared.waitForApi({ expect: 1 });
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: 2 });
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 apis.user.nodes.createFile(fileInSite, docLibId); await apis.user.nodes.createFile(fileInSite, docLibId);
await apis.user.nodes.createFolder(folderInSite, docLibId); await apis.user.nodes.createFolder(folderInSite, docLibId);
await apis.user.nodes.deleteNodeById(fileForDeleteId, false); await apis.user.nodes.deleteNodeById(fileForDeleteId, false);
await apis.user.nodes.deleteNodeById(folderForDeleteId, false); await apis.user.nodes.deleteNodeById(folderForDeleteId, false);
await loginPage.loginWith(username); await loginPage.loginWith(username);
done(); done();
});
afterAll(async (done) => {
await Promise.all([
apis.user.nodes.deleteNodeById(fileUserId),
apis.user.nodes.deleteNodeById(folderUserId),
apis.user.sites.deleteSite(siteName),
apis.user.trashcan.emptyTrash(),
logoutPage.load()
]);
done();
});
xit('');
describe('General tests', () => {
it('actions not displayed for top level of File Libraries - [C213135]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
await dataTable.waitForHeader();
await dataTable.selectItem(siteName);
expect(await toolbar.isEmpty()).toBe(true, 'toolbar not empty');
}); });
afterAll(async (done) => { it('selected row is marked with a check circle icon - [C213134]', async () => {
await Promise.all([ await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
apis.user.nodes.deleteNodeById(fileUserId), await dataTable.waitForHeader();
apis.user.nodes.deleteNodeById(folderUserId), await dataTable.selectItem(fileUser);
apis.user.sites.deleteSite(siteName), expect(await dataTable.hasCheckMarkIcon(fileUser)).toBe(true, 'check mark missing');
apis.user.trashcan.emptyTrash(), });
logoutPage.load() });
]);
done(); describe('Personal Files', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await dataTable.clearSelection();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader();
done();
}); });
xit(''); it('actions are not displayed when no item is selected - [C213120]', async () => {
expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`);
describe('General tests', () => {
it('actions not displayed for top level of File Libraries - [C213135]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
await dataTable.waitForHeader();
await dataTable.selectItem(siteName);
expect(await toolbar.isEmpty()).toBe(true, 'toolbar not empty');
});
it('selected row is marked with a check circle icon - [C213134]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await dataTable.waitForHeader();
await dataTable.selectItem(fileUser);
expect(await dataTable.hasCheckMarkIcon(fileUser)).toBe(true, 'check mark missing');
});
}); });
describe('Personal Files', () => { it('correct actions appear when a file is selected - [C213122]', async () => {
beforeEach(async (done) => { await dataTable.selectItem(fileUser);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileUser}`);
await dataTable.clearSelection(); expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileUser}`);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileUser}`);
await dataTable.waitForHeader(); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
done(); const menu = await toolbar.openMoreMenu();
}); expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileUser}`);
it('actions are not displayed when no item is selected - [C213120]', async () => { expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
}); await toolbar.closeMoreMenu();
it('correct actions appear when a file is selected - [C213122]', async () => {
await dataTable.selectItem(fileUser);
expect(await toolbar.isEmpty()).toBe(false, `actions 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('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
const menu = await toolbar.openMoreMenu();
expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu();
});
it('correct actions appear when a folder is selected - [C213123]', async () => {
await dataTable.selectItem(folderUser);
expect(await toolbar.isEmpty()).toBe(false, `actions not 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('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`);
const menu = await toolbar.openMoreMenu();
expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`);
await toolbar.closeMoreMenu();
});
}); });
describe('File Libraries', () => { it('correct actions appear when a folder is selected - [C213123]', async () => {
beforeEach(async (done) => { await dataTable.selectItem(folderUser);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${folderUser}`);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES); expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for ${folderUser}`);
await dataTable.waitForHeader(); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderUser}`);
await dataTable.doubleClickOnRowByName(siteName); expect(await toolbar.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`);
await dataTable.waitForHeader(); const menu = await toolbar.openMoreMenu();
done(); expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`);
await toolbar.closeMoreMenu();
});
});
it('actions are not displayed when no item is selected - [C280439]', async () => { describe('File Libraries', () => {
expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); beforeEach(async (done) => {
}); await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
it('correct actions appear when a file is selected - [C280440]', async () => { await dataTable.waitForHeader();
await dataTable.selectItem(fileInSite); await dataTable.doubleClickOnRowByName(siteName);
expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileInSite}`); await dataTable.waitForHeader();
expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileInSite}`); done();
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}`);
const menu = await toolbar.openMoreMenu();
expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileInSite}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileInSite}`);
await toolbar.closeMoreMenu();
});
it('correct actions appear when a folder is selected - [C280441]', async () => {
await dataTable.selectItem(folderInSite);
expect(await toolbar.isEmpty()).toBe(false, `actions not 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('Edit')).toBe(true, `Edit is not displayed for ${folderInSite}`);
const menu = await toolbar.openMoreMenu();
expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderInSite}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderInSite}`);
await toolbar.closeMoreMenu();
});
}); });
describe('Shared Files', () => { it('actions are not displayed when no item is selected - [C280439]', async () => {
beforeEach(async (done) => { expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
await page.dataTable.waitForHeader();
done();
});
it('actions are not displayed when no item is selected - [C280445]', async () => {
expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`);
});
it('correct actions appear when a file is selected - [C286265]', async () => {
await page.dataTable.selectItem(fileUser);
expect(await toolbar.isEmpty()).toBe(false, `actions 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('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
const menu = await toolbar.openMoreMenu();
expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu();
});
}); });
describe('Recent Files', () => { it('correct actions appear when a file is selected - [C280440]', async () => {
beforeEach(async (done) => { await dataTable.selectItem(fileInSite);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileInSite}`);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES); expect(await toolbar.isButtonPresent('View')).toBe(true, `View is not displayed for ${fileInSite}`);
await dataTable.waitForHeader(); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not displayed for ${fileInSite}`);
done(); expect(await toolbar.isButtonPresent('Edit')).toBe(false, `Edit is displayed for ${fileInSite}`);
}); const menu = await toolbar.openMoreMenu();
expect(await menu.isMenuItemPresent('Copy')).toBe(true, `Copy is not displayed for ${fileInSite}`);
it('actions are not displayed when no item is selected - [C280447]', async () => { expect(await menu.isMenuItemPresent('Delete')).toBe(true, `Delete is not displayed for ${fileInSite}`);
expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); expect(await menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileInSite}`);
}); expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileInSite}`);
await toolbar.closeMoreMenu();
it('correct actions appear when a file is selected - [C280448]', async () => {
await dataTable.selectItem(fileUser);
expect(await toolbar.isEmpty()).toBe(false, `actions 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('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
const menu = await toolbar.openMoreMenu();
expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu();
});
}); });
describe('Favorites', () => { it('correct actions appear when a folder is selected - [C280441]', async () => {
beforeEach(async (done) => { await dataTable.selectItem(folderInSite);
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform(); expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${folderInSite}`);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES); expect(await toolbar.isButtonPresent('View')).toBe(false, `View is displayed for ${folderInSite}`);
await dataTable.waitForHeader(); expect(await toolbar.isButtonPresent('Download')).toBe(true, `Download is not enabled for ${folderInSite}`);
done(); expect(await toolbar.isButtonPresent('Edit')).toBe(true, `Edit is not displayed for ${folderInSite}`);
}); const menu = await toolbar.openMoreMenu();
expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderInSite}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderInSite}`);
await toolbar.closeMoreMenu();
});
});
it('actions are not displayed when no item is selected - [C280449]', async () => { describe('Shared Files', () => {
expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`); beforeEach(async (done) => {
}); await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
it('correct actions appear when a file is selected - [C280450]', async () => { await page.dataTable.waitForHeader();
await dataTable.selectItem(fileUser); done();
expect(await toolbar.isEmpty()).toBe(false, `actions 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('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
const menu = await toolbar.openMoreMenu();
expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu();
});
it('correct actions appear when a folder is selected - [C280451]', async () => {
await dataTable.selectItem(folderUser);
expect(await toolbar.isEmpty()).toBe(false, `actions not 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('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`);
const menu = await toolbar.openMoreMenu();
expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`);
await toolbar.closeMoreMenu();
});
}); });
describe('Trash', () => { it('actions are not displayed when no item is selected - [C280445]', async () => {
beforeEach(async (done) => { expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`);
await browser.actions().sendKeys(protractor.Key.ESCAPE);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
await dataTable.waitForHeader();
done();
});
it('actions are not displayed when no item is selected - [C280452]', async () => {
expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`);
});
it('correct actions appear when a file is selected - [C280453]', async () => {
await dataTable.selectItem(fileForDelete);
expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileForDelete}`);
expect(await toolbar.isButtonPresent('Permanently delete')).toBe(true, `Permanently delete is not displayed for file`);
expect(await toolbar.isButtonPresent('Restore')).toBe(true, `Restore is not displayed for file`);
});
it('correct actions appear when a folder is selected - [C280454]', async () => {
await dataTable.selectItem(folderForDelete);
expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${folderForDelete}`);
expect(await toolbar.isButtonPresent('Permanently delete')).toBe(true, `Permanently delete is displayed for folder`);
expect(await toolbar.isButtonPresent('Restore')).toBe(true, `Restore is not enabled for folder`);
});
}); });
it('correct actions appear when a file is selected - [C286265]', async () => {
await page.dataTable.selectItem(fileUser);
expect(await toolbar.isEmpty()).toBe(false, `actions 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('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
const menu = await toolbar.openMoreMenu();
expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu();
});
});
describe('Recent Files', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
await dataTable.waitForHeader();
done();
});
it('actions are not displayed when no item is selected - [C280447]', async () => {
expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`);
});
it('correct actions appear when a file is selected - [C280448]', async () => {
await dataTable.selectItem(fileUser);
expect(await toolbar.isEmpty()).toBe(false, `actions 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('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
const menu = await toolbar.openMoreMenu();
expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu();
});
});
describe('Favorites', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE).perform();
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
await dataTable.waitForHeader();
done();
});
it('actions are not displayed when no item is selected - [C280449]', async () => {
expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`);
});
it('correct actions appear when a file is selected - [C280450]', async () => {
await dataTable.selectItem(fileUser);
expect(await toolbar.isEmpty()).toBe(false, `actions 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('Edit')).toBe(false, `Edit is displayed for ${fileUser}`);
const menu = await toolbar.openMoreMenu();
expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${fileUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${fileUser}`);
await toolbar.closeMoreMenu();
});
it('correct actions appear when a folder is selected - [C280451]', async () => {
await dataTable.selectItem(folderUser);
expect(await toolbar.isEmpty()).toBe(false, `actions not 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('Edit')).toBe(true, `Edit is not displayed for ${folderUser}`);
const menu = await toolbar.openMoreMenu();
expect(await 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 menu.isMenuItemPresent('Move')).toBe(true, `Move is not displayed for ${folderUser}`);
expect(await menu.isMenuItemPresent('Favorite')).toBe(true, `Favorite is not displayed for ${folderUser}`);
await toolbar.closeMoreMenu();
});
});
describe('Trash', () => {
beforeEach(async (done) => {
await browser.actions().sendKeys(protractor.Key.ESCAPE);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
await dataTable.waitForHeader();
done();
});
it('actions are not displayed when no item is selected - [C280452]', async () => {
expect(await toolbar.isEmpty()).toBe(true, `actions displayed though nothing selected`);
});
it('correct actions appear when a file is selected - [C280453]', async () => {
await dataTable.selectItem(fileForDelete);
expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${fileForDelete}`);
expect(await toolbar.isButtonPresent('Permanently delete')).toBe(true, `Permanently delete is not displayed for file`);
expect(await toolbar.isButtonPresent('Restore')).toBe(true, `Restore is not displayed for file`);
});
it('correct actions appear when a folder is selected - [C280454]', async () => {
await dataTable.selectItem(folderForDelete);
expect(await toolbar.isEmpty()).toBe(false, `actions not displayed for ${folderForDelete}`);
expect(await toolbar.isButtonPresent('Permanently delete')).toBe(true, `Permanently delete is displayed for folder`);
expect(await toolbar.isButtonPresent('Restore')).toBe(true, `Restore is not enabled for folder`);
});
});
}); });

View File

@@ -30,45 +30,45 @@ import { RepoClient } from '../../utilities/repo-client/repo-client';
import { Utils } from '../../utilities/utils'; import { Utils } from '../../utilities/utils';
describe('Upload files', () => { describe('Upload files', () => {
const username = `user-${Utils.random()}`; const username = `user-${Utils.random()}`;
const folder1 = `folder1-${Utils.random()}`; let folder1Id; const folder1 = `folder1-${Utils.random()}`; let folder1Id;
const apis = { const apis = {
admin: new RepoClient(), admin: new RepoClient(),
user: new RepoClient(username, username) user: new RepoClient(username, username)
}; };
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const logoutPage = new LogoutPage(); const logoutPage = new LogoutPage();
const page = new BrowsingPage(); const page = new BrowsingPage();
const { dataTable } = page; const { dataTable } = page;
beforeAll(done => { beforeAll(async (done) => {
apis.admin.people.createUser({ username }) await apis.admin.people.createUser({ username });
.then(() => apis.user.nodes.createFolder(folder1).then(resp => folder1Id = resp.entry.id)) folder1Id = (await apis.user.nodes.createFolder(folder1)).entry.id;
.then(() => loginPage.loginWith(username)) await loginPage.loginWith(username);
.then(done); done();
}); });
beforeEach(done => { beforeEach(async (done) => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
.then(() => dataTable.waitForHeader()) await dataTable.waitForHeader();
.then(done); done();
}); });
afterAll(done => { afterAll(async (done) => {
Promise.all([ await Promise.all([
// apis.user.nodes.deleteNodeById(folder1Id), apis.user.nodes.deleteNodeById(folder1Id),
logoutPage.load() logoutPage.load()
]) ]);
.then(done); done();
}); });
it('Upload a file', () => { it('Upload a file', async () => {
dataTable.doubleClickOnRowByName(folder1) await dataTable.doubleClickOnRowByName(folder1);
.then(() => page.sidenav.openNewMenu()) await page.sidenav.openNewMenu();
.then(() => page.sidenav.menu.uploadFile().sendKeys(`${__dirname}/create-folder.test.ts`)); await page.sidenav.menu.uploadFile().sendKeys(`${__dirname}/create-folder.test.ts`);
}); });
}); });

View File

@@ -30,56 +30,44 @@ import { RepoClient } from '../../utilities/repo-client/repo-client';
import { Utils } from '../../utilities/utils'; import { Utils } from '../../utilities/utils';
describe('General', () => { describe('General', () => {
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const logoutPage = new LogoutPage(); const logoutPage = new LogoutPage();
const page = new BrowsingPage(); const page = new BrowsingPage();
const createDialog = new CreateOrEditFolderDialog(); const createDialog = new CreateOrEditFolderDialog();
const adminApi = new RepoClient(); const adminApi = new RepoClient();
const { nodes: nodesApi, authentication: authApi } = adminApi; const { nodes: nodesApi, authentication: authApi } = adminApi;
const folder = `folder-${Utils.random()}`; const folder = `folder-${Utils.random()}`;
let folderId; let folderId;
xit(''); xit('');
describe('on session expire', () => {
beforeAll(async () => {
folderId = (await nodesApi.createFolder(folder)).entry.id;
});
afterAll(async () => {
await nodesApi.deleteNodeById(folderId);
await logoutPage.load();
});
it('should redirect user to login page' , async () => {
await loginPage.loginWithAdmin();
await page.sidenav.openCreateDialog();
await createDialog.waitForDialogToOpen();
await createDialog.enterName(folder);
await authApi.logout();
await createDialog.clickCreate();
expect(await browser.getTitle()).toContain('Sign in');
});
it('should close opened dialogs', async () => {
await loginPage.loginWithAdmin();
await page.sidenav.openCreateDialog();
await createDialog.waitForDialogToOpen();
await createDialog.enterName(folder);
await authApi.logout();
await createDialog.clickCreate();
const message = await page.getSnackBarMessage();
expect(message).toEqual('The action was unsuccessful. Try again or contact your IT Team.');
await createDialog.waitForDialogToClose();
expect(createDialog.component.isPresent()).not.toBe(true, 'dialog is present');
});
describe('on session expire', () => {
beforeAll(async (done) => {
folderId = (await nodesApi.createFolder(folder)).entry.id;
done();
}); });
afterAll(async (done) => {
await nodesApi.deleteNodeById(folderId);
await logoutPage.load();
done();
});
it('should close opened dialogs - [C286473]', async () => {
await loginPage.loginWithAdmin();
await page.sidenav.openCreateDialog();
await createDialog.waitForDialogToOpen();
await createDialog.enterName(folder);
await authApi.logout();
await createDialog.clickCreate();
expect(await browser.getTitle()).toContain('Sign in');
const message = await page.getSnackBarMessage();
expect(message).toEqual('The action was unsuccessful. Try again or contact your IT Team.');
await createDialog.waitForDialogToClose();
expect(createDialog.component.isPresent()).not.toBe(true, 'dialog is present');
});
});
}); });

View File

@@ -32,148 +32,109 @@ import { Utils } from '../../utilities/utils';
describe('Page titles', () => { describe('Page titles', () => {
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const logoutPage = new LogoutPage(); const logoutPage = new LogoutPage();
const page = new BrowsingPage(); const page = new BrowsingPage();
const adminApi = new RepoClient(); const adminApi = new RepoClient();
const { nodes: nodesApi } = adminApi; const { nodes: nodesApi } = adminApi;
const file = `file-${Utils.random()}.txt`; let fileId; const file = `file-${Utils.random()}.txt`; let fileId;
const header = page.header; const header = page.header;
xit(''); xit('');
describe('on Login / Logout pages', () => { describe('on Login / Logout pages', () => {
it('on Login page - [C217155]', () => { it('on Login page - [C217155]', async () => {
loginPage.load() await loginPage.load();
.then(() => { expect(await browser.getTitle()).toContain('Sign in');
expect(browser.getTitle()).toContain('Sign in');
});
});
it('after logout - [C217156]', () => {
loginPage.loginWithAdmin()
.then(() => page.signOut())
.then(() => {
expect(browser.getTitle()).toContain('Sign in');
});
});
it('when pressing Back after Logout - [C280414]', () => {
loginPage.loginWithAdmin()
.then(() => page.signOut())
.then(() => browser.navigate().back())
.then(() => {
expect(browser.getTitle()).toContain('Sign in');
});
});
}); });
describe('on list views', () => { it('after logout - [C217156]', async () => {
beforeAll(done => { await loginPage.loginWithAdmin();
loginPage.loginWithAdmin().then(done); await page.signOut();
}); expect(await browser.getTitle()).toContain('Sign in');
afterAll(done => {
logoutPage.load()
.then(done);
});
it('Personal Files page - [C217157]', () => {
const label = SIDEBAR_LABELS.PERSONAL_FILES;
page.sidenav.navigateToLinkByLabel(label)
.then(() => {
expect(browser.getTitle()).toContain(label);
});
});
it('File Libraries page - [C217158]', () => {
const label = SIDEBAR_LABELS.FILE_LIBRARIES;
page.sidenav.navigateToLinkByLabel(label)
.then(() => {
expect(browser.getTitle()).toContain(label);
});
});
it('Shared Files page - [C217159]', () => {
const label = SIDEBAR_LABELS.SHARED_FILES;
page.sidenav.navigateToLinkByLabel(label)
.then(() => {
expect(browser.getTitle()).toContain(label);
});
});
it('Recent Files page - [C217160]', () => {
const label = SIDEBAR_LABELS.RECENT_FILES;
page.sidenav.navigateToLinkByLabel(label)
.then(() => {
expect(browser.getTitle()).toContain(label);
});
});
it('Favorites page - [C217161]', () => {
const label = SIDEBAR_LABELS.FAVORITES;
page.sidenav.navigateToLinkByLabel(label)
.then(() => {
expect(browser.getTitle()).toContain(label);
});
});
it('Trash page - [C217162]', () => {
const label = SIDEBAR_LABELS.TRASH;
page.sidenav.navigateToLinkByLabel(label)
.then(() => {
expect(browser.getTitle()).toContain(label);
});
});
}); });
describe('on File Viewer', () => { it('when pressing Back after Logout - [C280414]', async () => {
beforeAll( async (done) => { await loginPage.loginWithAdmin();
fileId = (await nodesApi.createFile(file)).entry.id; await page.signOut();
await loginPage.loginWithAdmin(); await browser.navigate().back();
done(); expect(await browser.getTitle()).toContain('Sign in');
}); });
});
afterAll( async (done) => { describe('on app pages', () => {
await logoutPage.load(); beforeAll(async (done) => {
await adminApi.nodes.deleteNodeById(fileId); fileId = (await nodesApi.createFile(file)).entry.id;
done(); await loginPage.loginWithAdmin();
}); done();
it('File Preview page - [C280415]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await page.dataTable.waitForHeader();
await page.dataTable.doubleClickOnRowByName(file);
expect(await browser.getTitle()).toContain(PAGE_TITLES.VIEWER);
});
}); });
describe ('on Search query', () => { afterAll(async (done) => {
beforeAll( async (done) => { await Promise.all([
await loginPage.loginWithAdmin(); logoutPage.load(),
done(); adminApi.nodes.deleteNodeById(fileId)
}); ]);
done();
afterAll( async (done) => {
await logoutPage.load();
done();
});
it('Search Results page - [C280413]', async () => {
await header.waitForSearchButton();
await header.searchButton.click();
await page.dataTable.waitForHeader();
await header.waitForSearchBar();
await header.searchForText(file);
expect(await browser.getTitle()).toContain(PAGE_TITLES.SEARCH);
});
}); });
it('Personal Files page - [C217157]', async () => {
const label = SIDEBAR_LABELS.PERSONAL_FILES;
await page.sidenav.navigateToLinkByLabel(label);
expect(await browser.getTitle()).toContain(label);
});
it('File Libraries page - [C217158]', async () => {
const label = SIDEBAR_LABELS.FILE_LIBRARIES;
await page.sidenav.navigateToLinkByLabel(label);
expect(await browser.getTitle()).toContain(label);
});
it('Shared Files page - [C217159]', async () => {
const label = SIDEBAR_LABELS.SHARED_FILES;
await page.sidenav.navigateToLinkByLabel(label);
expect(await browser.getTitle()).toContain(label);
});
it('Recent Files page - [C217160]', async () => {
const label = SIDEBAR_LABELS.RECENT_FILES;
await page.sidenav.navigateToLinkByLabel(label);
expect(await browser.getTitle()).toContain(label);
});
it('Favorites page - [C217161]', async () => {
const label = SIDEBAR_LABELS.FAVORITES;
await page.sidenav.navigateToLinkByLabel(label);
expect(await browser.getTitle()).toContain(label);
});
it('Trash page - [C217162]', async () => {
const label = SIDEBAR_LABELS.TRASH;
await page.sidenav.navigateToLinkByLabel(label);
expect(await browser.getTitle()).toContain(label);
});
it('File Preview page - [C280415]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await page.dataTable.waitForHeader();
await page.dataTable.doubleClickOnRowByName(file);
expect(await browser.getTitle()).toContain(PAGE_TITLES.VIEWER);
await Utils.pressEscape();
});
it('Search Results page - [C280413]', async () => {
await header.waitForSearchButton();
await header.searchButton.click();
await page.dataTable.waitForHeader();
await header.waitForSearchBar();
await header.searchForText(file);
expect(await browser.getTitle()).toContain(PAGE_TITLES.SEARCH);
});
});
}); });

View File

@@ -31,203 +31,173 @@ import { Utils } from '../../utilities/utils';
import { RepoClient } from '../../utilities/repo-client/repo-client'; import { RepoClient } from '../../utilities/repo-client/repo-client';
describe('Login', () => { describe('Login', () => {
const peopleApi = new RepoClient().people; const peopleApi = new RepoClient().people;
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const logoutPage = new LogoutPage(); const logoutPage = new LogoutPage();
/* cspell:disable-next-line */
const testUser = `user-${Utils.random()}@alfness`;
const russianUser = {
/* cspell:disable-next-line */ /* cspell:disable-next-line */
const testUser = `user-${Utils.random()}@alfness`; username: `пользвате${Utils.random()}`,
password: '密碼中國'
};
const russianUser = { const johnDoe = {
/* cspell:disable-next-line */ username: `user-${Utils.random()}`,
username: `пользвате${Utils.random()}`, get password() { return this.username; },
password: '密碼中國' firstName: 'John',
}; lastName: 'Doe'
};
const johnDoe = { const disabledUser = `user-${Utils.random()}`;
username: `user-${Utils.random()}`, const testUser2 = {
get password() { return this.username; }, username: `user-${Utils.random()}`,
firstName: 'John', password: 'user2 password'
lastName: 'Doe' };
}; const newPassword = 'new password';
const disabledUser = `user-${Utils.random()}`; beforeAll(async (done) => {
const testUser2 = { await Promise.all([
username: `user-${Utils.random()}`, peopleApi.createUser({ username: testUser }),
password: 'user2 password' peopleApi.createUser(russianUser),
}; peopleApi.createUser(johnDoe),
const newPassword = 'new password'; peopleApi.createUser({ username: disabledUser }),
peopleApi.createUser(testUser2)
]);
await peopleApi.disableUser(disabledUser);
done();
});
beforeAll(done => { afterEach(async (done) => {
Promise await logoutPage.load();
.all([ await Utils.clearLocalStorage();
peopleApi.createUser({ username: testUser }), done();
peopleApi.createUser(russianUser), });
peopleApi.createUser(johnDoe),
peopleApi.createUser({ username: disabledUser }) xit('');
.then(() => peopleApi.disableUser(disabledUser)),
peopleApi.createUser(testUser2) describe('general tests', () => {
]) beforeEach(async (done) => {
.then(done); await loginPage.load();
done();
}); });
afterEach(done => { it('login page layout - [C213089]', async () => {
logoutPage.load() expect(await loginPage.login.usernameInput.isEnabled()).toBe(true, 'username input is not enabled');
.then(() => Utils.clearLocalStorage()) expect(await loginPage.login.passwordInput.isEnabled()).toBe(true, 'password input is not enabled');
.then(done); expect(await loginPage.login.submitButton.isEnabled()).toBe(false, 'SIGN IN button is enabled');
expect(await loginPage.login.getPasswordVisibility()).toBe(false, 'Password is not hidden by default');
}); });
xit(''); it('change password visibility - [C213091]', async () => {
await loginPage.login.enterPassword('some password');
expect(await loginPage.login.isPasswordShown()).toBe(false, 'password is visible');
await loginPage.login.passwordVisibility.click();
expect(await loginPage.login.getPasswordVisibility()).toBe(true, 'Password visibility not changed');
expect(await loginPage.login.isPasswordShown()).toBe(true, 'password is not visible');
});
});
describe('general tests', () => { describe('with valid credentials', () => {
beforeEach(done => { it('navigate to "Personal Files" - [C213092]', async () => {
loginPage.load().then(done); const { username } = johnDoe;
});
it('login page layout - [C213089]', () => { await loginPage.loginWith(username);
expect(loginPage.login.usernameInput.isEnabled()).toBe(true, 'username input is not enabled'); expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
expect(loginPage.login.passwordInput.isEnabled()).toBe(true, 'password input is not enabled');
expect(loginPage.login.submitButton.isEnabled()).toBe(false, 'SIGN IN button is enabled');
expect(loginPage.login.getPasswordVisibility()).toBe(false, 'Password is not hidden by default');
});
it('change password visibility - [C213091]', () => {
loginPage.login.enterPassword('some password');
expect(loginPage.login.isPasswordShown()).toBe(false, 'password is visible');
loginPage.login.passwordVisibility.click()
.then(() => {
expect(loginPage.login.getPasswordVisibility()).toBe(true, 'Password visibility not changed');
expect(loginPage.login.isPasswordShown()).toBe(true, 'password is not visible');
});
});
}); });
describe('with valid credentials', () => { it(`displays user's name in header - [C213108]`, async () => {
it('navigate to "Personal Files" - [C213092]', () => { const { userInfo } = new BrowsingPage(APP_ROUTES.PERSONAL_FILES).header;
const { username } = johnDoe; const { username, firstName, lastName } = johnDoe;
loginPage.loginWith(username) await loginPage.loginWith(username);
.then(() => { expect(userInfo.name).toEqual(`${firstName} ${lastName}`);
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
});
});
it(`displays user's name in header - [C213108]`, () => {
const { userInfo } = new BrowsingPage(APP_ROUTES.PERSONAL_FILES).header;
const { username, firstName, lastName } = johnDoe;
loginPage.loginWith(username)
.then(() => {
expect(userInfo.name).toEqual(`${firstName} ${lastName}`);
});
});
it(`logs in with user having username containing "@" - [C213096]`, () => {
loginPage
.loginWith(testUser)
.then(() => {
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
});
});
it('logs in with user with non-latin characters - [C213097]', () => {
const { username, password } = russianUser;
loginPage
.loginWith(username, password)
.then(() => {
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
});
});
it('redirects to Home Page when navigating to the Login page while already logged in - [C213107]', () => {
const { username } = johnDoe;
loginPage
.loginWith(username)
.then(() => browser.get(APP_ROUTES.LOGIN)
.then(() => {
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
})
);
});
it('redirects to Personal Files when pressing browser Back while already logged in - [C213109]', () => {
const { username } = johnDoe;
loginPage
.loginWith(username)
.then(() => browser.navigate().back())
.then(() => {
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
});
});
it('user is able to login after changing his password - [C213104]', () => {
loginPage.loginWith(testUser2.username, testUser2.password)
.then(() => logoutPage.load())
.then(() => peopleApi.changePassword(testUser2.username, newPassword))
.then(() => loginPage.loginWith(testUser2.username, newPassword))
.then(() => {
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
});
});
}); });
describe('with invalid credentials', () => { it(`logs in with user having username containing "@" - [C213096]`, async () => {
const { login: loginComponent } = loginPage; await loginPage.loginWith(testUser);
const { submitButton, errorMessage } = loginComponent; expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
beforeEach(done => {
loginPage.load().then(done);
});
it('disabled submit button when password is empty - [C280072]', () => {
loginComponent.enterUsername('any-username');
expect(submitButton.isEnabled()).toBe(false);
});
it('disabled submit button when username is empty - [C280070]', () => {
loginPage.login.enterPassword('any-password');
expect(submitButton.isEnabled()).toBe(false);
});
it('shows error when entering nonexistent user - [C213093]', () => {
loginPage
.tryLoginWith('nonexistent-user', 'any-password')
.then(() => {
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
expect(errorMessage.isDisplayed()).toBe(true);
expect(errorMessage.getText()).toBe(`You've entered an unknown username or password`);
});
});
it('shows error when entering invalid password - [C280071]', () => {
const { username } = johnDoe;
loginPage
.tryLoginWith(username, 'incorrect-password')
.then(() => {
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
expect(errorMessage.isDisplayed()).toBe(true);
expect(errorMessage.getText()).toBe(`You've entered an unknown username or password`);
});
});
it('unauthenticated user is redirected to Login page - [C213106]', () => {
browser.get(APP_ROUTES.PERSONAL_FILES)
.then(() => {
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
});
});
it('disabled user is not logged in - [C213100]', () => {
loginPage.tryLoginWith(disabledUser)
.then(() => {
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
expect(errorMessage.isDisplayed()).toBe(true);
expect(errorMessage.getText()).toBe(`You've entered an unknown username or password`);
});
});
}); });
it('logs in with user with non-latin characters - [C213097]', async () => {
const { username, password } = russianUser;
await loginPage.loginWith(username, password);
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
});
it('redirects to Home Page when navigating to the Login page while already logged in - [C213107]', async () => {
const { username } = johnDoe;
await loginPage.loginWith(username);
await browser.get(APP_ROUTES.LOGIN);
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
});
it('redirects to Personal Files when pressing browser Back while already logged in - [C213109]', async () => {
const { username } = johnDoe;
await loginPage.loginWith(username);
await browser.navigate().back();
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
});
it('user is able to login after changing his password - [C213104]', async () => {
await loginPage.loginWith(testUser2.username, testUser2.password);
await logoutPage.load();
await peopleApi.changePassword(testUser2.username, newPassword);
await loginPage.loginWith(testUser2.username, newPassword);
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
});
});
describe('with invalid credentials', () => {
const { login: loginComponent } = loginPage;
const { submitButton, errorMessage } = loginComponent;
beforeEach(async (done) => {
await loginPage.load();
done();
});
it('disabled submit button when password is empty - [C280072]', async () => {
await loginComponent.enterUsername('any-username');
expect(await submitButton.isEnabled()).toBe(false, 'submit button is enabled');
});
it('disabled submit button when username is empty - [C280070]', async () => {
await loginPage.login.enterPassword('any-password');
expect(await submitButton.isEnabled()).toBe(false, 'submit button is enabled');
});
it('shows error when entering nonexistent user - [C213093]', async () => {
await loginPage.tryLoginWith('nonexistent-user', 'any-password');
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
expect(await errorMessage.isDisplayed()).toBe(true, 'error message is not displayed');
expect(await errorMessage.getText()).toBe(`You've entered an unknown username or password`);
});
it('shows error when entering invalid password - [C280071]', async () => {
const { username } = johnDoe;
await loginPage.tryLoginWith(username, 'incorrect-password');
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
expect(await errorMessage.isDisplayed()).toBe(true, 'error message is not displayed');
expect(await errorMessage.getText()).toBe(`You've entered an unknown username or password`);
});
it('unauthenticated user is redirected to Login page - [C213106]', async () => {
await browser.get(APP_ROUTES.PERSONAL_FILES);
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
});
it('disabled user is not logged in - [C213100]', async () => {
await loginPage.tryLoginWith(disabledUser);
expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
expect(await errorMessage.isDisplayed()).toBe(true, 'error message is not displayed');
expect(await errorMessage.getText()).toBe(`You've entered an unknown username or password`);
});
});
}); });

View File

@@ -30,53 +30,48 @@ import { RepoClient } from '../../utilities/repo-client/repo-client';
import { APP_ROUTES } from '../../configs'; import { APP_ROUTES } from '../../configs';
describe('Logout', () => { describe('Logout', () => {
const page = new BrowsingPage(); const page = new BrowsingPage();
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const logoutPage = new LogoutPage(); const logoutPage = new LogoutPage();
const peopleApi = new RepoClient().people; const peopleApi = new RepoClient().people;
const johnDoe = `user-${Utils.random()}`; const johnDoe = `user-${Utils.random()}`;
beforeAll((done) => { beforeAll(async (done) => {
peopleApi await peopleApi.createUser({ username: johnDoe });
.createUser({ username: johnDoe }) done();
.then(done); });
});
beforeEach((done) => { beforeEach(async (done) => {
loginPage.loginWith(johnDoe).then(done); await loginPage.loginWith(johnDoe);
}); done();
});
afterEach((done) => { afterEach(async (done) => {
logoutPage.load().then(done); await logoutPage.load();
}); done();
});
it('Sign out option is available - [C213143]', () => { it('Sign out option is available - [C213143]', async () => {
page.header.userInfo.openMenu() await page.header.userInfo.openMenu();
.then(() => expect(page.header.userInfo.menu.isMenuItemPresent('Sign out')).toBe(true, 'Sign out option not displayed')); expect(await page.header.userInfo.menu.isMenuItemPresent('Sign out')).toBe(true, 'Sign out option not displayed');
}); });
it('redirects to Login page on sign out - [C213144]', () => { it('redirects to Login page on sign out - [C213144]', async () => {
page.signOut() await page.signOut();
.then(() => { expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN); });
});
});
it('redirects to Login page when pressing browser Back after logout - [C213145]', () => { it('redirects to Login page when pressing browser Back after logout - [C213145]', async () => {
page.signOut() await page.signOut();
.then(() => browser.navigate().back()) await browser.navigate().back();
.then(() => { expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN); });
});
});
it('redirects to Login page when trying to access a part of the app after logout - [C213146]', () => { it('redirects to Login page when trying to access a part of the app after logout - [C213146]', async () => {
page.signOut() await page.signOut();
.then(() => page.load('/favorites')) await page.load('/favorites');
.then(() => { expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN);
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.LOGIN); });
});
});
}); });

View File

@@ -31,214 +31,191 @@ import { Utils } from '../../utilities/utils';
import { RepoClient } from '../../utilities/repo-client/repo-client'; import { RepoClient } from '../../utilities/repo-client/repo-client';
describe('Breadcrumb', () => { describe('Breadcrumb', () => {
const username = `user-${Utils.random()}`; const username = `user-${Utils.random()}`;
const parent = `parent-${Utils.random()}`; let parentId; const parent = `parent-${Utils.random()}`; let parentId;
const subFolder1 = `subFolder1-${Utils.random()}`; let subFolder1Id; const subFolder1 = `subFolder1-${Utils.random()}`; let subFolder1Id;
const subFolder2 = `subFolder2-${Utils.random()}`; let subFolder2Id; const subFolder2 = `subFolder2-${Utils.random()}`; let subFolder2Id;
const fileName1 = `file1-${Utils.random()}.txt`; const fileName1 = `file1-${Utils.random()}.txt`;
const siteName = `site-${Utils.random()}`; const siteName = `site-${Utils.random()}`;
const parent2 = `parent2-${Utils.random()}`; let parent2Id; const parent2 = `parent2-${Utils.random()}`; let parent2Id;
const folder1 = `folder1-${Utils.random()}`; let folder1Id; const folder1 = `folder1-${Utils.random()}`; let folder1Id;
const folder1Renamed = `renamed-${Utils.random()}`; const folder1Renamed = `renamed-${Utils.random()}`;
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const logoutPage = new LogoutPage(); const logoutPage = new LogoutPage();
const page = new BrowsingPage(); const page = new BrowsingPage();
const { breadcrumb } = page; const { breadcrumb } = page;
const apis = { const apis = {
admin: new RepoClient(), admin: new RepoClient(),
user: new RepoClient(username, username) user: new RepoClient(username, username)
}; };
beforeAll(done => { beforeAll(async (done) => {
apis.admin.people.createUser({ username }) await apis.admin.people.createUser({ username });
.then(() => apis.user.nodes.createFolder(parent)).then(resp => parentId = resp.entry.id) parentId = (await apis.user.nodes.createFolder(parent)).entry.id;
.then(() => apis.user.nodes.createFolder(subFolder1, parentId)).then(resp => subFolder1Id = resp.entry.id) subFolder1Id = (await apis.user.nodes.createFolder(subFolder1, parentId)).entry.id;
.then(() => apis.user.nodes.createFolder(subFolder2, subFolder1Id)).then(resp => subFolder2Id = resp.entry.id) subFolder2Id = (await apis.user.nodes.createFolder(subFolder2, subFolder1Id)).entry.id;
.then(() => apis.user.nodes.createFile(fileName1, subFolder2Id)) await apis.user.nodes.createFile(fileName1, subFolder2Id);
.then(() => apis.user.nodes.createFolder(parent2)).then(resp => parent2Id = resp.entry.id) parent2Id = (await apis.user.nodes.createFolder(parent2)).entry.id;
.then(() => apis.user.nodes.createFolder(folder1, parent2Id)).then(resp => folder1Id = resp.entry.id) folder1Id = (await apis.user.nodes.createFolder(folder1, parent2Id)).entry.id;
.then(() => apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC)) await apis.user.sites.createSite(siteName, SITE_VISIBILITY.PUBLIC);
.then(() => apis.user.sites.getDocLibId(siteName)) const docLibId = await apis.user.sites.getDocLibId(siteName);
.then(resp => apis.user.nodes.createFolder(parent, resp)).then(resp => parentId = resp.entry.id) parentId = (await apis.user.nodes.createFolder(parent, docLibId)).entry.id;
.then(() => apis.user.nodes.createFolder(subFolder1, parentId)).then(resp => subFolder1Id = resp.entry.id) subFolder1Id = (await apis.user.nodes.createFolder(subFolder1, parentId)).entry.id;
.then(() => apis.user.nodes.createFolder(subFolder2, subFolder1Id)).then(resp => subFolder2Id = resp.entry.id) subFolder2Id = (await apis.user.nodes.createFolder(subFolder2, subFolder1Id)).entry.id;
.then(() => apis.user.nodes.createFile(fileName1, subFolder2Id)) await apis.user.nodes.createFile(fileName1, subFolder2Id);
.then(() => loginPage.loginWith(username)) await loginPage.loginWith(username);
.then(done); done();
});
afterAll(async (done) => {
await Promise.all([
apis.user.nodes.deleteNodeById(parentId),
apis.user.nodes.deleteNodeById(parent2Id),
apis.user.sites.deleteSite(siteName),
logoutPage.load()
]);
done();
});
it('Personal Files breadcrumb main node - [C260964]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
expect(await breadcrumb.getItemsCount()).toEqual(1, 'Breadcrumb has incorrect number of items');
expect(await breadcrumb.getCurrentItemName()).toBe('Personal Files');
});
it('File Libraries breadcrumb main node - [C260966]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
expect(await breadcrumb.getItemsCount()).toEqual(1, 'Breadcrumb has incorrect number of items');
expect(await breadcrumb.getCurrentItemName()).toBe('File Libraries');
});
it('Recent Files breadcrumb main node - [C260971]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
expect(await breadcrumb.getItemsCount()).toEqual(1, 'Breadcrumb has incorrect number of items');
expect(await breadcrumb.getCurrentItemName()).toBe('Recent Files');
});
it('Shared Files breadcrumb main node - [C260972]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
expect(await breadcrumb.getItemsCount()).toEqual(1, 'Breadcrumb has incorrect number of items');
expect(await breadcrumb.getCurrentItemName()).toBe('Shared Files');
});
it('Favorites breadcrumb main node - [C260973]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
expect(await breadcrumb.getItemsCount()).toEqual(1, 'Breadcrumb has incorrect number of items');
expect(await breadcrumb.getCurrentItemName()).toBe('Favorites');
});
it('Trash breadcrumb main node - [C260974]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
expect(await breadcrumb.getItemsCount()).toEqual(1, 'Breadcrumb has incorrect number of items');
expect(await breadcrumb.getCurrentItemName()).toBe('Trash');
});
it('Personal Files breadcrumb for a folder hierarchy - [C260965]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await page.dataTable.waitForHeader();
await page.dataTable.doubleClickOnRowByName(parent);
await page.dataTable.doubleClickOnRowByName(subFolder1);
await page.dataTable.doubleClickOnRowByName(subFolder2);
const expectedBreadcrumb = [ 'Personal Files', parent, subFolder1, subFolder2 ];
expect(await breadcrumb.getAllItems()).toEqual(expectedBreadcrumb);
});
it('File Libraries breadcrumb for a folder hierarchy - [C260967]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
await page.dataTable.waitForHeader();
await page.dataTable.doubleClickOnRowByName(siteName);
await page.dataTable.doubleClickOnRowByName(parent);
await page.dataTable.doubleClickOnRowByName(subFolder1);
await page.dataTable.doubleClickOnRowByName(subFolder2);
const expectedItems = [ 'File Libraries', siteName, parent, subFolder1, subFolder2 ];
expect(await breadcrumb.getAllItems()).toEqual(expectedItems);
});
it('User can navigate to any location by clicking on a step from the breadcrumb - [C213235]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await page.dataTable.waitForHeader();
await page.dataTable.doubleClickOnRowByName(parent);
await page.dataTable.doubleClickOnRowByName(subFolder1);
await page.dataTable.doubleClickOnRowByName(subFolder2);
await breadcrumb.clickItem(subFolder1);
const expectedBreadcrumb = [ 'Personal Files', parent, subFolder1 ];
expect(await breadcrumb.getAllItems()).toEqual(expectedBreadcrumb);
});
it('Tooltip appears on hover on a step in breadcrumb - [C213237]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await page.dataTable.waitForHeader();
await page.dataTable.doubleClickOnRowByName(parent);
await page.dataTable.doubleClickOnRowByName(subFolder1);
await page.dataTable.doubleClickOnRowByName(subFolder2);
expect(await breadcrumb.getNthItemTooltip(3)).toEqual(subFolder1);
});
it('Breadcrumb updates correctly when folder is renamed - [C213238]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await page.dataTable.waitForHeader();
await page.dataTable.doubleClickOnRowByName(parent2);
await page.dataTable.doubleClickOnRowByName(folder1);
await page.dataTable.wait();
await apis.user.nodes.renameNode(folder1Id, folder1Renamed)
// .then(done => done)
await page.refresh();
await page.dataTable.wait();
expect(await breadcrumb.getCurrentItemName()).toEqual(folder1Renamed);
});
it('Browser back navigates to previous location regardless of breadcrumb steps - [C213240]', async () => {
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
await page.dataTable.waitForHeader();
await page.dataTable.doubleClickOnRowByName(parent);
await page.dataTable.doubleClickOnRowByName(subFolder1);
await page.dataTable.doubleClickOnRowByName(subFolder2);
await page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
await page.dataTable.waitForEmptyState();
await browser.navigate().back();
const expectedBreadcrumb = [ 'Personal Files', parent, subFolder1, subFolder2 ];
expect(await breadcrumb.getAllItems()).toEqual(expectedBreadcrumb);
});
// disabled cause of ACA-1039
xdescribe('as admin', () => {
const user2 = 'a_user';
const userFolder = `userFolder-${Utils.random()}`; let userFolderId;
const user2Api = new RepoClient(user2, user2);
beforeAll(async (done) => {
await logoutPage.load();
await apis.admin.people.createUser({ username: user2 });
userFolderId = (await user2Api.nodes.createFolder(userFolder)).entry.id;
await loginPage.loginWithAdmin();
done();
}); });
afterAll(done => { afterAll(async (done) => {
Promise.all([ await Promise.all([
apis.user.nodes.deleteNodeById(parentId), user2Api.nodes.deleteNodeById(userFolderId),
apis.user.nodes.deleteNodeById(parent2Id), logoutPage.load()
apis.user.sites.deleteSite(siteName), ]);
logoutPage.load() done();
])
.then(done);
}); });
it('Personal Files breadcrumb main node - [C260964]', () => { xit(`Breadcrumb on navigation to a user's home - [C260970]`, async () => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) await page.dataTable.doubleClickOnRowByName('User Homes');
.then(() => { await page.dataTable.doubleClickOnRowByName(user2);
expect(breadcrumb.getItemsCount()).toEqual(1, 'Breadcrumb has incorrect number of items'); expect(await breadcrumb.getAllItems()).toEqual([ 'Personal Files', 'User Homes', user2 ]);
expect(breadcrumb.getCurrentItemName()).toBe('Personal Files'); await page.dataTable.doubleClickOnRowByName(userFolder);
}); expect(await breadcrumb.getAllItems()).toEqual([ 'Personal Files', 'User Homes', user2, userFolder ]);
});
it('File Libraries breadcrumb main node - [C260966]', () => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES)
.then(() => {
expect(breadcrumb.getItemsCount()).toEqual(1, 'Breadcrumb has incorrect number of items');
expect(breadcrumb.getCurrentItemName()).toBe('File Libraries');
});
});
it('Recent Files breadcrumb main node - [C260971]', () => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES)
.then(() => {
expect(breadcrumb.getItemsCount()).toEqual(1, 'Breadcrumb has incorrect number of items');
expect(breadcrumb.getCurrentItemName()).toBe('Recent Files');
});
});
it('Shared Files breadcrumb main node - [C260972]', () => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES)
.then(() => {
expect(breadcrumb.getItemsCount()).toEqual(1, 'Breadcrumb has incorrect number of items');
expect(breadcrumb.getCurrentItemName()).toBe('Shared Files');
});
});
it('Favorites breadcrumb main node - [C260973]', () => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES)
.then(() => {
expect(breadcrumb.getItemsCount()).toEqual(1, 'Breadcrumb has incorrect number of items');
expect(breadcrumb.getCurrentItemName()).toBe('Favorites');
});
});
it('Trash breadcrumb main node - [C260974]', () => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH)
.then(() => {
expect(breadcrumb.getItemsCount()).toEqual(1, 'Breadcrumb has incorrect number of items');
expect(breadcrumb.getCurrentItemName()).toBe('Trash');
});
});
it('Personal Files breadcrumb for a folder hierarchy - [C260965]', () => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES)
.then(() => page.dataTable.waitForHeader())
.then(() => page.dataTable.doubleClickOnRowByName(parent))
.then(() => page.dataTable.doubleClickOnRowByName(subFolder1))
.then(() => page.dataTable.doubleClickOnRowByName(subFolder2))
.then(() => {
const expectedBreadcrumb = [ 'Personal Files', parent, subFolder1, subFolder2 ];
expect(breadcrumb.getAllItems()).toEqual(expectedBreadcrumb);
});
});
it('File Libraries breadcrumb for a folder hierarchy - [C260967]', () => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES)
.then(() => page.dataTable.waitForHeader())
.then(() => page.dataTable.doubleClickOnRowByName(siteName))
.then(() => page.dataTable.doubleClickOnRowByName(parent))
.then(() => page.dataTable.doubleClickOnRowByName(subFolder1))
.then(() => page.dataTable.doubleClickOnRowByName(subFolder2))
.then(() => {
const expectedItems = [ 'File Libraries', siteName, parent, subFolder1, subFolder2 ];
expect(breadcrumb.getAllItems()).toEqual(expectedItems);
});
});
it('User can navigate to any location by clicking on a step from the breadcrumb - [C213235]', () => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES)
.then(() => page.dataTable.waitForHeader())
.then(() => page.dataTable.doubleClickOnRowByName(parent))
.then(() => page.dataTable.doubleClickOnRowByName(subFolder1))
.then(() => page.dataTable.doubleClickOnRowByName(subFolder2))
.then(() => breadcrumb.clickItem(subFolder1))
.then(() => {
const expectedBreadcrumb = [ 'Personal Files', parent, subFolder1 ];
expect(breadcrumb.getAllItems()).toEqual(expectedBreadcrumb);
});
});
it('Tooltip appears on hover on a step in breadcrumb - [C213237]', () => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES)
.then(() => page.dataTable.waitForHeader())
.then(() => page.dataTable.doubleClickOnRowByName(parent))
.then(() => page.dataTable.doubleClickOnRowByName(subFolder1))
.then(() => page.dataTable.doubleClickOnRowByName(subFolder2))
.then(() => {
expect(breadcrumb.getNthItemTooltip(3)).toEqual(subFolder1);
});
});
it('Breadcrumb updates correctly when folder is renamed - [C213238]', () => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES)
.then(() => page.dataTable.waitForHeader())
.then(() => page.dataTable.doubleClickOnRowByName(parent2))
.then(() => page.dataTable.doubleClickOnRowByName(folder1))
.then(() => page.dataTable.wait())
.then(() => apis.user.nodes.renameNode(folder1Id, folder1Renamed).then(done => done))
.then(() => page.refresh())
.then(() => page.dataTable.wait())
.then(() => {
expect(breadcrumb.getCurrentItemName()).toEqual(folder1Renamed);
});
});
it('Browser back navigates to previous location regardless of breadcrumb steps - [C213240]', () => {
page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES)
.then(() => page.dataTable.waitForHeader())
.then(() => page.dataTable.doubleClickOnRowByName(parent))
.then(() => page.dataTable.doubleClickOnRowByName(subFolder1))
.then(() => page.dataTable.doubleClickOnRowByName(subFolder2))
.then(() => page.sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH))
.then(() => page.dataTable.waitForEmptyState())
.then(() => browser.navigate().back())
.then(() => {
const expectedBreadcrumb = [ 'Personal Files', parent, subFolder1, subFolder2 ];
expect(breadcrumb.getAllItems()).toEqual(expectedBreadcrumb);
});
});
// disabled cause of ACA-1039
xdescribe('as admin', () => {
const user2 = 'a_user';
const userFolder = `userFolder-${Utils.random()}`; let userFolderId;
const user2Api = new RepoClient(user2, user2);
beforeAll(done => {
logoutPage.load()
.then(() => apis.admin.people.createUser({ username: user2 }))
.then(() => user2Api.nodes.createFolder(userFolder).then(resp => userFolderId = resp.entry.id))
.then(() => loginPage.loginWithAdmin())
.then(done);
});
afterAll(done => {
Promise.all([
user2Api.nodes.deleteNodeById(userFolderId),
logoutPage.load()
])
.then(done);
});
xit(`Breadcrumb on navigation to a user's home - [C260970]`, () => {
page.dataTable.doubleClickOnRowByName('User Homes')
.then(() => page.dataTable.doubleClickOnRowByName(user2))
.then(() => expect(breadcrumb.getAllItems()).toEqual([ 'Personal Files', 'User Homes', user2 ]))
.then(() => page.dataTable.doubleClickOnRowByName(userFolder))
.then(() => expect(breadcrumb.getAllItems()).toEqual([ 'Personal Files', 'User Homes', user2, userFolder ]));
});
}); });
});
}); });

View File

@@ -29,117 +29,95 @@ import { APP_ROUTES, SIDEBAR_LABELS } from '../../configs';
import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages';
describe('Sidebar', () => { describe('Sidebar', () => {
const loginPage = new LoginPage(); const loginPage = new LoginPage();
const logoutPage = new LogoutPage(); const logoutPage = new LogoutPage();
const page = new BrowsingPage(); const page = new BrowsingPage();
const { sidenav } = page; const { sidenav } = page;
beforeAll(done => { beforeAll(async (done) => {
loginPage.loginWithAdmin().then(done); await loginPage.loginWithAdmin();
}); done();
});
afterAll(done => { afterAll(async (done) => {
logoutPage.load().then(done); await logoutPage.load();
}); done();
});
it('has "Personal Files" as default - [C217149]', () => { it('has "Personal Files" as default - [C217149]', async () => {
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES); expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
expect(sidenav.isActiveByLabel('Personal Files')).toBe(true, 'Active link'); expect(await sidenav.isActiveByLabel('Personal Files')).toBe(true, 'Active link');
}); });
it('navigates to "File Libraries" - [C217150]', () => { it('navigates to "File Libraries" - [C217150]', async () => {
sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES) await sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
.then(() => { expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.FILE_LIBRARIES);
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.FILE_LIBRARIES); expect(await sidenav.isActiveByLabel(SIDEBAR_LABELS.FILE_LIBRARIES)).toBe(true);
expect(sidenav.isActiveByLabel(SIDEBAR_LABELS.FILE_LIBRARIES)).toBe(true); });
});
});
it('navigates to "Personal Files" - [C280409]', () => { it('navigates to "Personal Files" - [C280409]', async () => {
sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) await sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
.then(() => { expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES);
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.PERSONAL_FILES); expect(await sidenav.isActiveByLabel(SIDEBAR_LABELS.PERSONAL_FILES)).toBe(true);
expect(sidenav.isActiveByLabel(SIDEBAR_LABELS.PERSONAL_FILES)).toBe(true); });
});
});
it('navigates to "Shared Files" - [C213110]', () => { it('navigates to "Shared Files" - [C213110]', async () => {
sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES) await sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
.then(() => { expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.SHARED_FILES);
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.SHARED_FILES); expect(await sidenav.isActiveByLabel(SIDEBAR_LABELS.SHARED_FILES)).toBe(true);
expect(sidenav.isActiveByLabel(SIDEBAR_LABELS.SHARED_FILES)).toBe(true); });
});
});
it('navigates to "Recent Files" - [C213166]', () => { it('navigates to "Recent Files" - [C213166]', async () => {
sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES) await sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
.then(() => { expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.RECENT_FILES);
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.RECENT_FILES); expect(await sidenav.isActiveByLabel(SIDEBAR_LABELS.RECENT_FILES)).toBe(true);
expect(sidenav.isActiveByLabel(SIDEBAR_LABELS.RECENT_FILES)).toBe(true); });
});
});
it('navigates to "Favorites" - [C213225]', () => { it('navigates to "Favorites" - [C213225]', async () => {
sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES) await sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
.then(() => { expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.FAVORITES);
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.FAVORITES); expect(await sidenav.isActiveByLabel(SIDEBAR_LABELS.FAVORITES)).toBe(true);
expect(sidenav.isActiveByLabel(SIDEBAR_LABELS.FAVORITES)).toBe(true); });
});
});
it('navigates to "Trash" - [C213216]', () => { it('navigates to "Trash" - [C213216]', async () => {
sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH) await sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
.then(() => { expect(await browser.getCurrentUrl()).toContain(APP_ROUTES.TRASHCAN);
expect(browser.getCurrentUrl()).toContain(APP_ROUTES.TRASHCAN); expect(await sidenav.isActiveByLabel(SIDEBAR_LABELS.TRASH)).toBe(true);
expect(sidenav.isActiveByLabel(SIDEBAR_LABELS.TRASH)).toBe(true); });
});
});
// TODO: incomplete test // TODO: incomplete test
xit('Personal Files tooltip - [C217151]', () => { xit('Personal Files tooltip - [C217151]', async () => {
sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES) await sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.PERSONAL_FILES);
.then(() => { expect(await sidenav.getLinkTooltip(SIDEBAR_LABELS.PERSONAL_FILES)).toContain('View your Personal Files');
expect(sidenav.getLinkTooltip(SIDEBAR_LABELS.PERSONAL_FILES)).toContain('View your Personal Files'); });
});
});
// TODO: incomplete test // TODO: incomplete test
xit('File Libraries tooltip - [C217152]', () => { xit('File Libraries tooltip - [C217152]', async () => {
sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES) await sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FILE_LIBRARIES);
.then(() => { expect(await sidenav.getLinkTooltip(SIDEBAR_LABELS.FILE_LIBRARIES)).toContain('Access File Libraries');
expect(sidenav.getLinkTooltip(SIDEBAR_LABELS.FILE_LIBRARIES)).toContain('Access File Libraries'); });
});
});
// TODO: incomplete test // TODO: incomplete test
xit('Shared Files tooltip - [C213111]', () => { xit('Shared Files tooltip - [C213111]', async () => {
sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES) await sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.SHARED_FILES);
.then(() => { expect(await sidenav.getLinkTooltip(SIDEBAR_LABELS.SHARED_FILES)).toContain('View files that have been shared');
expect(sidenav.getLinkTooltip(SIDEBAR_LABELS.SHARED_FILES)).toContain('View files that have been shared'); });
});
});
// TODO: incomplete test // TODO: incomplete test
xit('Recent Files tooltip - [C213167]', () => { xit('Recent Files tooltip - [C213167]', async () => {
sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES) await sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.RECENT_FILES);
.then(() => { expect(await sidenav.getLinkTooltip(SIDEBAR_LABELS.RECENT_FILES)).toContain('View files you recently edited');
expect(sidenav.getLinkTooltip(SIDEBAR_LABELS.RECENT_FILES)).toContain('View files you recently edited'); });
});
});
// TODO: incomplete test // TODO: incomplete test
xit('Favorites tooltip - [C217153]', () => { xit('Favorites tooltip - [C217153]', async () => {
sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES) await sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.FAVORITES);
.then(() => { expect(await sidenav.getLinkTooltip(SIDEBAR_LABELS.FAVORITES)).toContain('View your favorite files and folders');
expect(sidenav.getLinkTooltip(SIDEBAR_LABELS.FAVORITES)).toContain('View your favorite files and folders'); });
});
});
// TODO: incomplete test // TODO: incomplete test
xit('Trash tooltip - [C217154]', () => { xit('Trash tooltip - [C217154]', async () => {
sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH) await sidenav.navigateToLinkByLabel(SIDEBAR_LABELS.TRASH);
.then(() => { expect(await sidenav.getLinkTooltip(SIDEBAR_LABELS.TRASH)).toContain('View deleted files in the trash');
expect(sidenav.getLinkTooltip(SIDEBAR_LABELS.TRASH)).toContain('View deleted files in the trash'); });
});
});
}); });