diff --git a/cypress/fixtures/image-apng.png b/cypress/fixtures/image-apng.png new file mode 100644 index 000000000..1b35084a3 Binary files /dev/null and b/cypress/fixtures/image-apng.png differ diff --git a/cypress/fixtures/image.ico b/cypress/fixtures/image.ico new file mode 100644 index 000000000..b02c65778 Binary files /dev/null and b/cypress/fixtures/image.ico differ diff --git a/cypress/integration/image-apng.cy.js b/cypress/integration/image-apng.cy.js new file mode 100644 index 000000000..54e21c750 --- /dev/null +++ b/cypress/integration/image-apng.cy.js @@ -0,0 +1,70 @@ +/** + * @copyright Copyright (c) 2019 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +import { randHash } from '../utils/' +const randUser = randHash() + +describe('Open image-apng.png in viewer', function() { + before(function() { + // Init user + cy.nextcloudCreateUser(randUser, 'password') + cy.login(randUser, 'password') + + // Upload test files + cy.uploadFile('image-apng.png', 'image/png') + cy.visit('/apps/files') + + // wait a bit for things to be settled + cy.wait(1000) + }) + after(function() { + cy.logout() + }) + + it('See image-apng.png in the list', function() { + cy.get('#fileList tr[data-file="image-apng.png"]', { timeout: 10000 }) + .should('contain', 'image-apng.png') + }) + + it('Open the viewer on file click', function() { + cy.openFile('image-apng.png') + cy.get('body > .viewer').should('be.visible') + }) + + it('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 menu icon and title on the viewer header', function() { + cy.get('body > .viewer .modal-title').should('contain', 'image-apng.png') + 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('Does not see navigation arrows', function() { + cy.get('body > .viewer a.prev').should('not.be.visible') + cy.get('body > .viewer a.next').should('not.be.visible') + }) +}) diff --git a/cypress/integration/image.ico.cy.js b/cypress/integration/image.ico.cy.js new file mode 100644 index 000000000..30de991fa --- /dev/null +++ b/cypress/integration/image.ico.cy.js @@ -0,0 +1,70 @@ +/** + * @copyright Copyright (c) 2019 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +import { randHash } from '../utils/' +const randUser = randHash() + +describe('Open image.ico in viewer', function() { + before(function() { + // Init user + cy.nextcloudCreateUser(randUser, 'password') + cy.login(randUser, 'password') + + // Upload test files + cy.uploadFile('image.ico', 'image/x-icon') + cy.visit('/apps/files') + + // wait a bit for things to be settled + cy.wait(1000) + }) + after(function() { + cy.logout() + }) + + it('See image.ico in the list', function() { + cy.get('.files-fileList tr[data-file="image.ico"]', { timeout: 10000 }) + .should('contain', 'image.ico') + }) + + it('Open the viewer on file click', function() { + cy.openFile('image.ico') + cy.get('body > .viewer').should('be.visible') + }) + + it('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 menu icon and title on the viewer header', function() { + cy.get('body > .viewer .modal-title').should('contain', 'image.ico') + 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('Does not see navigation arrows', function() { + cy.get('body > .viewer button.prev').should('not.be.visible') + cy.get('body > .viewer button.next').should('not.be.visible') + }) +})