-
Notifications
You must be signed in to change notification settings - Fork 149
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* viewer action files e2e migration * viewer action files e2e remove comment * review code fix * [ci:force]
- Loading branch information
1 parent
26cd95c
commit 4cee656
Showing
22 changed files
with
402 additions
and
76 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,9 @@ | ||
{ | ||
"C284636" : "https://alfresco.atlassian.net/browse/ACS-5639", | ||
"C284635" : "https://alfresco.atlassian.net/browse/ACS-5639", | ||
"C279175" : "https://alfresco.atlassian.net/browse/ACS-5639", | ||
"C284634" : "https://alfresco.atlassian.net/browse/ACS-5639" | ||
"C284636" : "this have Protractor test Enabled https://alfresco.atlassian.net/browse/ACS-5639", | ||
"C284635" : "this have Protractor test Enabled https://alfresco.atlassian.net/browse/ACS-5639", | ||
"C279175" : "this have Protractor test Enabled https://alfresco.atlassian.net/browse/ACS-5639", | ||
"C284634" : "this have Protractor test Enabled https://alfresco.atlassian.net/browse/ACS-5639", | ||
"C297585" : "this have Protractor test Enabled https://alfresco.atlassian.net/browse/ACS-5639", | ||
"C286379" : "this have Protractor test Enabled https://alfresco.atlassian.net/browse/ACS-5639", | ||
"C286395" : "this have Protractor test Enabled https://alfresco.atlassian.net/browse/ACS-5639" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,163 @@ | ||
/*! | ||
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved. | ||
* | ||
* Alfresco Example Content Application | ||
* | ||
* This file is part of the Alfresco Example Content Application. | ||
* If the software was purchased under a paid Alfresco license, the terms of | ||
* the paid license agreement will prevail. Otherwise, the software is | ||
* provided under the following open source license terms: | ||
* | ||
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU Lesser General Public License as published by | ||
* the Free Software Foundation, either version 3 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* The Alfresco Example Content Application is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU Lesser General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU Lesser General Public License | ||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
|
||
import { expect } from '@playwright/test'; | ||
import { ApiClientFactory, getUserState, test, TEST_FILES, timeouts, Utils } from '@alfresco/playwright-shared'; | ||
|
||
test.use({ storageState: getUserState('hruser') }); | ||
test.describe('viewer action file', () => { | ||
const apiClientFactory = new ApiClientFactory(); | ||
const randomFolderName = `playwright-folder-${Utils.random()}`; | ||
const randomDocxName = `${TEST_FILES.DOCX.name}-${Utils.random()}`; | ||
const randomDocxNameFavorite = `${TEST_FILES.DOCX.name}-${Utils.random()}`; | ||
const randomDocxNameShare = `${TEST_FILES.DOCX.name}-${Utils.random()}`; | ||
const randomDocxDelete = `${TEST_FILES.DOCX.name}-${Utils.random()}`; | ||
const fileForEditOffline = `playwright-file1-${Utils.random()}.docx`; | ||
const fileForCancelEditing = `playwright-file2-${Utils.random()}.docx`; | ||
let folderId: string; | ||
let fileDocxShareId: string; | ||
|
||
test.beforeAll(async ({ fileAction, shareAction }) => { | ||
await apiClientFactory.setUpAcaBackend('hruser'); | ||
const node = await apiClientFactory.nodes.createNode('-my-', { name: randomFolderName, nodeType: 'cm:folder', relativePath: '/' }); | ||
folderId = node.entry.id; | ||
await fileAction.uploadFile(TEST_FILES.DOCX.path, fileForCancelEditing, folderId); | ||
await fileAction.uploadFile(TEST_FILES.DOCX.path, randomDocxName, folderId); | ||
await fileAction.uploadFile(TEST_FILES.DOCX.path, randomDocxDelete, folderId); | ||
const fileDocShare = await fileAction.uploadFile(TEST_FILES.DOCX.path, randomDocxNameShare, folderId); | ||
fileDocxShareId = fileDocShare.entry.id; | ||
await fileAction.uploadFile(TEST_FILES.DOCX.path, randomDocxNameFavorite, folderId); | ||
await shareAction.shareFileById(fileDocxShareId); | ||
await fileAction.uploadFile(TEST_FILES.DOCX.path, fileForEditOffline, folderId); | ||
}); | ||
|
||
test.beforeEach(async ({ personalFiles }) => { | ||
await personalFiles.navigate({ remoteUrl: `#/personal-files/${folderId}` }); | ||
}); | ||
|
||
test.afterAll(async () => { | ||
await apiClientFactory.nodes.deleteNode(folderId); | ||
await apiClientFactory.trashCan.deleteDeletedNode(folderId); | ||
}); | ||
|
||
test('[C268129] Download action', async ({ personalFiles }) => { | ||
await personalFiles.dataTable.performClickFolderOrFileToOpen(randomDocxName); | ||
await personalFiles.viewer.waitForViewerToOpen(); | ||
const downloadPromise = personalFiles.page.waitForEvent('download'); | ||
await personalFiles.acaHeader.downloadButton.click(); | ||
const download = await downloadPromise; | ||
expect(download.suggestedFilename()).toBe(randomDocxName); | ||
}); | ||
|
||
test('[C268133] Delete action', async ({ personalFiles, trashPage }) => { | ||
await personalFiles.dataTable.performClickFolderOrFileToOpen(randomDocxDelete); | ||
await personalFiles.viewer.waitForViewerToOpen(); | ||
|
||
await personalFiles.acaHeader.clickViewerMoreActions(); | ||
await personalFiles.viewerDialog.deleteMenuButton.click(); | ||
await personalFiles.snackBar.getByMessageLocator(randomDocxDelete).waitFor({ state: 'attached' }); | ||
const deleteName = await personalFiles.snackBar.getByMessageLocator(randomDocxDelete).innerText(); | ||
expect(deleteName).toContain(`${randomDocxDelete} deleted`); | ||
await personalFiles.dataTable.getCellLinkByName(randomDocxName).waitFor({ state: 'attached' }); | ||
expect(await personalFiles.dataTable.getCellLinkByName(randomDocxDelete).isVisible(), 'file should not visible').toBe(false); | ||
await trashPage.navigate({ waitUntil: 'domcontentloaded' }); | ||
await trashPage.dataTable.goThroughPagesLookingForRowWithName(randomDocxDelete); | ||
expect(await trashPage.dataTable.isItemPresent(randomDocxDelete), 'Item should be present in Trash').toBe(true); | ||
}); | ||
|
||
test('[C297584] Edit Offline action', async ({ personalFiles }) => { | ||
await personalFiles.dataTable.performClickFolderOrFileToOpen(fileForEditOffline); | ||
await personalFiles.viewer.waitForViewerToOpen(); | ||
await personalFiles.acaHeader.clickViewerMoreActions(); | ||
await personalFiles.matMenu.clickMenuItem('Edit Offline'); | ||
|
||
const downloadPromise = personalFiles.page.waitForEvent('download'); | ||
await personalFiles.acaHeader.downloadButton.click(); | ||
const download = await downloadPromise; | ||
expect(download.suggestedFilename(), 'File should found in download location').toBe(fileForEditOffline); | ||
expect(await personalFiles.viewer.isViewerOpened(), 'Viewer is closed after pressing Full screen').toBe(true); | ||
await personalFiles.reload({ waitUntil: 'domcontentloaded' }); | ||
await personalFiles.acaHeader.clickViewerMoreActions(); | ||
expect(await personalFiles.matMenu.isMenuItemVisible('Cancel Editing'), 'Cancel Editing menu should be visible').toBe(true); | ||
}); | ||
|
||
test('[C297585] Cancel Editing action', async ({ personalFiles }) => { | ||
await personalFiles.dataTable.performClickFolderOrFileToOpen(fileForCancelEditing); | ||
await personalFiles.viewer.waitForViewerToOpen(); | ||
await personalFiles.acaHeader.clickViewerMoreActions(); | ||
await personalFiles.matMenu.clickMenuItem('Cancel Editing'); | ||
await personalFiles.reload({ waitUntil: 'domcontentloaded' }); | ||
await personalFiles.acaHeader.clickViewerMoreActions(); | ||
expect(await personalFiles.matMenu.isMenuItemVisible('Edit Offline'), 'Edit offline menu should be visible').toBe(true); | ||
}); | ||
|
||
test('[C279282] Full screen action', async ({ personalFiles }) => { | ||
await personalFiles.dataTable.performClickFolderOrFileToOpen(randomDocxName); | ||
await personalFiles.viewer.waitForViewerToOpen(); | ||
await personalFiles.acaHeader.fullScreenButton.click(); | ||
expect(await personalFiles.viewer.isViewerOpened(), 'Viewer is closed after pressing Full screen').toBe(true); | ||
}); | ||
|
||
test('[C286314] Pressing ESC in the viewer closes only the action dialog', async ({ personalFiles }) => { | ||
await personalFiles.dataTable.performClickFolderOrFileToOpen(randomDocxName); | ||
await personalFiles.viewer.waitForViewerToOpen(); | ||
await personalFiles.acaHeader.clickViewerMoreActions(); | ||
await personalFiles.viewerDialog.clickActionsCopy(); | ||
expect(await personalFiles.viewerDialog.isCopyDialogOpen(), 'Dialog is not open').toBe(true); | ||
await personalFiles.page.keyboard.press('Escape'); | ||
expect(await personalFiles.viewerDialog.isCopyDialogClose(), 'Dialog is not open').toBe(false); | ||
expect(await personalFiles.viewer.isViewerOpened(), 'Viewer should be opened').toBe(true); | ||
}); | ||
|
||
test('[C286379] Favorite action from Shared Files', async ({ sharedPage, favoritePage, shareAction }) => { | ||
await sharedPage.navigate({ waitUntil: 'domcontentloaded' }); | ||
await sharedPage.dataTable.performClickFolderOrFileToOpen(randomDocxNameShare); | ||
expect(await sharedPage.viewer.isViewerOpened(), 'Viewer should be opened').toBe(true); | ||
|
||
await sharedPage.acaHeader.clickViewerMoreActions(); | ||
|
||
await favoritePage.viewerDialog.favoriteMenuButton.waitFor({ state: 'attached', timeout: timeouts.normal }); | ||
await sharedPage.viewerDialog.favoriteMenuButton.click(); | ||
await favoritePage.viewerDialog.favoriteMenuButton.waitFor({ state: 'detached', timeout: timeouts.normal }); | ||
|
||
await sharedPage.acaHeader.clickViewerMoreActions(); | ||
expect(await sharedPage.viewerDialog.removeFavoriteMenuButton.isVisible(), 'Item should be remove favorite').toBe(true); | ||
await sharedPage.page.keyboard.press('Escape'); | ||
await favoritePage.navigate({ waitUntil: 'domcontentloaded' }); | ||
expect(await favoritePage.dataTable.isItemPresent(randomDocxNameShare), 'Item is not present in Favorites list').toBe(true); | ||
expect(await shareAction.isFavorite(randomDocxNameShare, 'hruser'), 'Item is not favorite').toBe(true); | ||
}); | ||
|
||
test('[C286395] Share action from Favorites', async ({ favoritePage }) => { | ||
await favoritePage.navigate({ waitUntil: 'domcontentloaded' }); | ||
await favoritePage.dataTable.performClickFolderOrFileToOpen(randomDocxNameFavorite); | ||
expect(await favoritePage.viewer.isViewerOpened(), 'Viewer should be opened').toBe(true); | ||
|
||
await favoritePage.acaHeader.shareButton.click(); | ||
expect(await favoritePage.viewerDialog.shareDialogTitle.isVisible(), 'Share dialog should be open').toBe(true); | ||
await favoritePage.viewerDialog.shareDialogClose.click(); | ||
await favoritePage.viewerDialog.shareDialogClose.waitFor({ state: 'detached', timeout: timeouts.large }); | ||
expect(await favoritePage.viewerDialog.shareDialogTitle.isVisible(), 'Share dialog should be open').toBe(false); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.