зеркало из https://github.com/nextcloud/viewer.git
test: Adjust Cypress tests for new public share UI
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This commit is contained in:
Родитель
88a84ffc74
Коммит
7ea95b187f
|
@ -152,7 +152,7 @@ export default function(file, type, sidebar = false) {
|
|||
})
|
||||
|
||||
it('Open the viewer on file click (public)', function() {
|
||||
cy.openFileInShare(placedName)
|
||||
cy.openFile(placedName)
|
||||
cy.get('body > .viewer').should('be.visible')
|
||||
})
|
||||
|
||||
|
|
|
@ -36,10 +36,6 @@ describe(`Download ${fileName} in viewer`, function() {
|
|||
cy.visit('/apps/files')
|
||||
})
|
||||
})
|
||||
after(function() {
|
||||
// already logged out after visiting share link
|
||||
// cy.logout()
|
||||
})
|
||||
|
||||
it('See the default files list', function() {
|
||||
cy.getFile('welcome.txt').should('contain', 'welcome .txt')
|
||||
|
@ -62,7 +58,7 @@ describe(`Download ${fileName} in viewer`, function() {
|
|||
}
|
||||
})
|
||||
|
||||
cy.createLinkShare('/Photos').then(token => {
|
||||
cy.createLinkShare('/Photos').then((token: string) => {
|
||||
cy.intercept('GET', '**/apps/files_sharing/api/v1/shares*').as('sharingAPI')
|
||||
|
||||
// Open the sidebar from the breadcrumbs
|
||||
|
@ -80,25 +76,50 @@ describe(`Download ${fileName} in viewer`, function() {
|
|||
cy.get('@hideDownloadBtn').get('span').contains('Hide download').click()
|
||||
cy.get('@hideDownloadBtn').get('input[type=checkbox]').should('be.checked')
|
||||
|
||||
cy.intercept('PUT', '/ocs/v2.php/apps/files_sharing/api/v1/shares/*').as('updateShare')
|
||||
cy.contains('button', 'Update share').click()
|
||||
cy.wait('@updateShare')
|
||||
|
||||
// Log out and access link share
|
||||
cy.logout()
|
||||
cy.visit(`/s/${token}`)
|
||||
})
|
||||
})
|
||||
|
||||
it('See only view action', () => {
|
||||
for (const file of ['image1.jpg', 'image2.jpg']) {
|
||||
cy.get(`[data-cy-files-list-row-name="${CSS.escape(file)}"]`)
|
||||
.find('[data-cy-files-list-row-actions]')
|
||||
.find('button')
|
||||
.click()
|
||||
// Only view action
|
||||
cy.get('[role="menu"]:visible')
|
||||
.find('button')
|
||||
.should('have.length', 1)
|
||||
.first()
|
||||
.should('contain.text', 'View')
|
||||
cy.get(`[data-cy-files-list-row-name="${CSS.escape(file)}"]`)
|
||||
.find('[data-cy-files-list-row-actions]')
|
||||
.find('button')
|
||||
.click()
|
||||
}
|
||||
})
|
||||
|
||||
it('Open the viewer on file click', function() {
|
||||
cy.openFileInShare('image1.jpg')
|
||||
cy.openFile('image1.jpg')
|
||||
cy.get('body > .viewer').should('be.visible')
|
||||
})
|
||||
|
||||
it('Does not see a loading animation', function() {
|
||||
// TODO: FIX DOWNLOAD DISABLED SHARES
|
||||
it.skip('Does not see a loading animation', function() {
|
||||
cy.get('body > .viewer', { timeout: 10000 })
|
||||
.should('be.visible')
|
||||
.and('have.class', 'modal-mask')
|
||||
.and('not.have.class', 'icon-loading')
|
||||
})
|
||||
|
||||
it('See the title on the viewer header but not the Download nor the menu button', function() {
|
||||
// TODO: FIX DOWNLOAD DISABLED SHARES
|
||||
it.skip('See the title on the viewer header but not the Download nor the menu button', function() {
|
||||
cy.get('body > .viewer .modal-header__name').should('contain', 'image1.jpg')
|
||||
cy.get('body a[download="image1.jpg"]').should('not.exist')
|
||||
cy.get('body > .viewer .modal-header button.action-item__menutoggle').should('not.exist')
|
||||
|
|
|
@ -67,7 +67,7 @@ describe(`Download ${fileName} from viewer in link share`, function() {
|
|||
})
|
||||
|
||||
it('Open the viewer on file click', function() {
|
||||
cy.openFileInShare('image1.jpg')
|
||||
cy.openFile('image1.jpg')
|
||||
cy.get('body > .viewer').should('be.visible')
|
||||
})
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ describe('See shared folder with link share', function() {
|
|||
})
|
||||
|
||||
it('Open the viewer on file click', function() {
|
||||
cy.openFileInShare('image1.jpg')
|
||||
cy.openFile('image1.jpg')
|
||||
cy.get('body > .viewer').should('be.visible')
|
||||
})
|
||||
|
||||
|
|
|
@ -47,20 +47,52 @@ describe('See shared folder with link share', function() {
|
|||
it('Opens the shared image in the viewer', function() {
|
||||
cy.visit(`/s/${imageToken}`)
|
||||
|
||||
cy.get('#imgframe img').should('be.visible')
|
||||
cy.get('#imgframe > #viewer').should('be.visible')
|
||||
cy.contains('image1.jpg').should('be.visible')
|
||||
|
||||
cy.scrollTo('bottom', { ensureScrollable: false })
|
||||
cy.get(`#header a[href*="/s/${imageToken}/download"]`).should('be.visible')
|
||||
cy.intercept('GET', '**/apps/files_sharing/publicpreview/**').as('getImage')
|
||||
cy.openFileInSingleShare()
|
||||
cy.wait('@getImage')
|
||||
.its('response.statusCode')
|
||||
.should('eq', 200)
|
||||
|
||||
// Make sure loading is finished
|
||||
cy.get('body > .viewer', { timeout: 10000 })
|
||||
.should('be.visible')
|
||||
.and('have.class', 'modal-mask')
|
||||
.and('not.have.class', 'icon-loading')
|
||||
|
||||
// The image source is the preview url
|
||||
cy.get('body > .viewer .modal-container .viewer__file.viewer__file--active img')
|
||||
.should('have.attr', 'src')
|
||||
.and('contain', '/apps/files_sharing/publicpreview/')
|
||||
|
||||
// See the menu icon and close button
|
||||
cy.get('body > .viewer .modal-header button.action-item__menutoggle').should('be.visible')
|
||||
cy.get('body > .viewer .modal-header button.header-close').should('be.visible')
|
||||
})
|
||||
|
||||
it('Opens the shared video in the viewer', function() {
|
||||
cy.visit(`/s/${videoToken}`)
|
||||
|
||||
cy.get('#imgframe .plyr').should('be.visible')
|
||||
cy.get('#imgframe > #viewer').should('be.visible')
|
||||
cy.contains('video1.mp4').should('be.visible')
|
||||
|
||||
cy.scrollTo('bottom', { ensureScrollable: false })
|
||||
cy.get(`#header a[href*="/s/${videoToken}/download"]`).should('be.visible')
|
||||
cy.intercept('GET', '**/public.php/dav/files/**').as('loadVideo')
|
||||
cy.openFileInSingleShare()
|
||||
cy.wait('@loadVideo')
|
||||
|
||||
// Make sure loading is finished
|
||||
cy.get('body > .viewer', { timeout: 10000 })
|
||||
.should('be.visible')
|
||||
.and('have.class', 'modal-mask')
|
||||
.and('not.have.class', 'icon-loading')
|
||||
|
||||
// The video source is the preview url
|
||||
cy.get('body > .viewer .modal-container .viewer__file.viewer__file--active video')
|
||||
.should('have.attr', 'src')
|
||||
.and('contain', `/public.php/dav/files/${videoToken}`)
|
||||
|
||||
// See the menu icon and close button
|
||||
cy.get('body > .viewer .modal-header button.action-item__menutoggle').should('be.visible')
|
||||
cy.get('body > .viewer .modal-header button.header-close').should('be.visible')
|
||||
})
|
||||
})
|
||||
|
|
|
@ -28,7 +28,7 @@ import { addCompareSnapshotCommand } from 'cypress-visual-regression/dist/comman
|
|||
addCommands()
|
||||
addCompareSnapshotCommand()
|
||||
|
||||
const url = Cypress.config('baseUrl').replace(/\/index.php\/?$/g, '')
|
||||
const url = Cypress.config('baseUrl')!.replace(/\/index.php\/?$/g, '')
|
||||
Cypress.env('baseUrl', url)
|
||||
|
||||
/**
|
||||
|
@ -97,8 +97,10 @@ Cypress.Commands.add('openFile', fileName => {
|
|||
cy.wait(250)
|
||||
})
|
||||
|
||||
Cypress.Commands.add('openFileInShare', fileName => {
|
||||
cy.get(`.files-fileList tr[data-file="${CSS.escape(fileName)}"] a.name`).click()
|
||||
Cypress.Commands.add('openFileInSingleShare', () => {
|
||||
cy.get('tr[data-cy-files-list-row-name]')
|
||||
.should('have.length', 1)
|
||||
.click()
|
||||
// eslint-disable-next-line
|
||||
cy.wait(250)
|
||||
})
|
||||
|
|
Загрузка…
Ссылка в новой задаче