cypress_test/data/mobile/calc/hamburger_menu.ods |binary cypress_test/integration_tests/mobile/calc/hamburger_menu_spec.js | 285 ++++++++++ 2 files changed, 285 insertions(+)
New commits: commit 4845fa3963fdfe5505b8b4bcf829f932615cd151 Author: Tamás Zolnai <tamas.zol...@collabora.com> AuthorDate: Wed Jun 24 12:24:36 2020 +0200 Commit: Tamás Zolnai <tamas.zol...@collabora.com> CommitDate: Thu Jun 25 16:34:23 2020 +0200 cypress: add some tests for hamburger menu (calc, mobile) Change-Id: I8ed0e407003bb56731d7ea3f491dc9e0abe9069d Reviewed-on: https://gerrit.libreoffice.org/c/online/+/97035 Tested-by: Jenkins Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Tamás Zolnai <tamas.zol...@collabora.com> diff --git a/cypress_test/data/mobile/calc/hamburger_menu.ods b/cypress_test/data/mobile/calc/hamburger_menu.ods new file mode 100644 index 000000000..2e2c500fc Binary files /dev/null and b/cypress_test/data/mobile/calc/hamburger_menu.ods differ diff --git a/cypress_test/integration_tests/mobile/calc/hamburger_menu_spec.js b/cypress_test/integration_tests/mobile/calc/hamburger_menu_spec.js new file mode 100644 index 000000000..1d2e64876 --- /dev/null +++ b/cypress_test/integration_tests/mobile/calc/hamburger_menu_spec.js @@ -0,0 +1,285 @@ +/* global describe it cy beforeEach require afterEach */ + +var helper = require('../../common/helper'); +var calcHelper = require('../../common/calc_helper'); +var mobileHelper = require('../../common/mobile_helper'); +var calcMobileHelper = require('./calc_mobile_helper'); + +describe('Trigger hamburger menu options.', function() { + var testFileName = 'hamburger_menu.ods'; + + beforeEach(function() { + mobileHelper.beforeAllMobile(testFileName, 'calc'); + + // Click on edit button + mobileHelper.enableEditingMobile(); + }); + + afterEach(function() { + helper.afterAll(testFileName); + }); + + it('Save', function() { + mobileHelper.openHamburgerMenu(); + + cy.contains('.menu-entry-with-icon', 'File') + .click(); + + cy.contains('.menu-entry-with-icon', 'Save') + .click(); + + // TODO: we have no visual indicator of save was done + // So just trigger saving to catch any exception / console error + cy.wait(500); + }); + + it('Print', function() { + // A new window should be opened with the PDF. + cy.window() + .then(function(win) { + cy.stub(win, 'open'); + }); + + mobileHelper.openHamburgerMenu(); + + cy.contains('.menu-entry-with-icon', 'File') + .click(); + + cy.contains('.menu-entry-with-icon', 'Print') + .click(); + + cy.window().its('open').should('be.called'); + }); + + it('Download as PDF', function() { + mobileHelper.openHamburgerMenu(); + + cy.contains('.menu-entry-with-icon', 'Download as') + .click(); + + cy.contains('.menu-entry-with-icon', 'PDF Document (.pdf)') + .click(); + + cy.get('iframe') + .should('have.attr', 'data-src') + .should('contain', 'document.pdf'); + }); + + it('Download as ODS', function() { + mobileHelper.openHamburgerMenu(); + + cy.contains('.menu-entry-with-icon', 'Download as') + .click(); + + cy.contains('.menu-entry-with-icon', 'ODF spreadsheet (.ods)') + .click(); + + cy.get('iframe') + .should('have.attr', 'data-src') + .should('contain', 'document.ods'); + }); + + it('Download as XLS', function() { + mobileHelper.openHamburgerMenu(); + + cy.contains('.menu-entry-with-icon', 'Download as') + .click(); + + cy.contains('.menu-entry-with-icon', 'Excel 2003 Spreadsheet (.xls)') + .click(); + + cy.get('iframe') + .should('have.attr', 'data-src') + .should('contain', 'document.xls'); + }); + + it('Download as XLSX', function() { + mobileHelper.openHamburgerMenu(); + + cy.contains('.menu-entry-with-icon', 'Download as') + .click(); + + cy.contains('.menu-entry-with-icon', 'Excel Spreadsheet (.xlsx)') + .click(); + + cy.get('iframe') + .should('have.attr', 'data-src') + .should('contain', 'document.xlsx'); + }); + + it.skip('Undo/redo.', function() { + // Type a new character + calcHelper.clickOnFirstCell(true, true); + + cy.get('textarea.clipboard') + .type('{q}'); + + calcMobileHelper.selectAllMobile(); + + cy.get('#copy-paste-container table td') + .should('contain.text', 'q'); + + // Undo + mobileHelper.openHamburgerMenu(); + + cy.contains('.menu-entry-with-icon', 'Edit') + .click(); + + cy.contains('.menu-entry-with-icon', 'Undo') + .click(); + + calcMobileHelper.selectAllMobile(); + + cy.get('#copy-paste-container table td') + .should('not.contain.text', 'q'); + + // Redo + mobileHelper.openHamburgerMenu(); + + cy.contains('.menu-entry-with-icon', 'Edit') + .click(); + + cy.contains('.menu-entry-with-icon', 'Redo') + .click(); + + calcMobileHelper.selectAllMobile(); + + cy.get('#copy-paste-container table td') + .should('contain.text', 'q'); + }); + + it('Repair.', function() { + // Type a new character + calcHelper.clickOnFirstCell(true, true); + cy.get('textarea.clipboard') + .type('{q}'); + + calcMobileHelper.selectAllMobile(); + + cy.get('#copy-paste-container table td') + .should('contain.text', 'q'); + + // Revert one undo step via Repair + mobileHelper.openHamburgerMenu(); + + cy.contains('.menu-entry-with-icon', 'Edit') + .click(); + + cy.contains('.menu-entry-with-icon', 'Repair') + .click(); + + cy.get('.leaflet-popup-content') + .should('be.visible'); + + cy.get('.leaflet-popup-content table tr:nth-of-type(2)') + .should('contain.text', 'Undo'); + + cy.get('.leaflet-popup-content table tr:nth-of-type(2)') + .click(); + + cy.get('.leaflet-popup-content input[value=\'Jump to state\']') + .click(); + + calcMobileHelper.selectAllMobile(); + + cy.get('#copy-paste-container table td') + .should('not.contain.text', 'q'); + }); + + it('Cut.', function() { + calcMobileHelper.selectAllMobile(); + + mobileHelper.openHamburgerMenu(); + + cy.contains('.menu-entry-with-icon', 'Edit') + .click(); + + cy.contains('.menu-entry-with-icon', 'Cut') + .click(); + + // TODO: cypress does not support clipboard operations + // so we get a warning dialog here. + cy.get('.vex-dialog-form') + .should('be.visible'); + + cy.get('.vex-dialog-message') + .should('have.text', 'Please use the copy/paste buttons on your on-screen keyboard.'); + + cy.get('.vex-dialog-button-primary.vex-dialog-button.vex-first') + .click(); + + cy.get('.vex-dialog-form') + .should('not.be.visible'); + }); + + it('Copy.', function() { + calcMobileHelper.selectAllMobile(); + + mobileHelper.openHamburgerMenu(); + + cy.contains('.menu-entry-with-icon', 'Edit') + .click(); + + cy.contains('.menu-entry-with-icon', 'Copy') + .click(); + + // TODO: cypress does not support clipboard operations + // so we get a warning dialog here. + cy.get('.vex-dialog-form') + .should('be.visible'); + + cy.get('.vex-dialog-message') + .should('have.text', 'Please use the copy/paste buttons on your on-screen keyboard.'); + + cy.get('.vex-dialog-button-primary.vex-dialog-button.vex-first') + .click(); + + cy.get('.vex-dialog-form') + .should('not.be.visible'); + }); + + it('Paste.', function() { + calcMobileHelper.selectAllMobile(); + + mobileHelper.openHamburgerMenu(); + + cy.contains('.menu-entry-with-icon', 'Edit') + .click(); + + cy.contains('.menu-entry-with-icon', 'Paste') + .click(); + + // TODO: cypress does not support clipboard operations + // so we get a warning dialog here. + cy.get('.vex-dialog-form') + .should('be.visible'); + + cy.get('.vex-dialog-message') + .should('have.text', 'Please use the copy/paste buttons on your on-screen keyboard.'); + + cy.get('.vex-dialog-button-primary.vex-dialog-button.vex-first') + .click(); + + cy.get('.vex-dialog-form') + .should('not.be.visible'); + }); + + it('Select all.', function() { + cy.get('#copy-paste-container table td') + .should('not.contain.text', 'Text'); + + mobileHelper.openHamburgerMenu(); + + cy.contains('.menu-entry-with-icon', 'Edit') + .click(); + + cy.contains('.menu-entry-with-icon', 'Select All') + .click(); + + cy.get('.leaflet-marker-icon') + .should('be.visible'); + + cy.get('#copy-paste-container table td') + .should('contain.text', 'Text'); + }); +}); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits