cypress_test/integration_tests/common/impress_helper.js                 |    7 
 cypress_test/integration_tests/desktop/impress/slide_operations_spec.js |   14 
 cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js    |  175 
++++++++++
 cypress_test/integration_tests/mobile/impress/impress_mobile_helper.js  |    7 
 4 files changed, 193 insertions(+), 10 deletions(-)

New commits:
commit a8e25571b1bed641d61f622f5b3ba6e9d1e788ef
Author:     Tamás Zolnai <tamas.zol...@collabora.com>
AuthorDate: Fri Jul 10 14:15:19 2020 +0200
Commit:     Tamás Zolnai <tamas.zol...@collabora.com>
CommitDate: Fri Jul 10 18:30:23 2020 +0200

    cypress: add slide operation tests (mobile).
    
    Change-Id: I0ee6ee840c381263315305336e01f46dfdbcf1f4
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98525
    Tested-by: Jenkins
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Tamás Zolnai <tamas.zol...@collabora.com>

diff --git a/cypress_test/integration_tests/common/impress_helper.js 
b/cypress_test/integration_tests/common/impress_helper.js
index dab641ac4..dc350492c 100644
--- a/cypress_test/integration_tests/common/impress_helper.js
+++ b/cypress_test/integration_tests/common/impress_helper.js
@@ -56,6 +56,13 @@ function typeTextAndVerify(text, expected) {
 
        helper.expectTextForClipboard(expected);
 }
+
+function assertNumberOfSlidePreviews(slides) {
+       cy.get('#slide-sorter .preview-frame')
+               .should('have.length', slides + 1);
+}
+
 module.exports.assertNotInTextEditMode = assertNotInTextEditMode;
 module.exports.assertInTextEditMode = assertInTextEditMode;
 module.exports.typeTextAndVerify = typeTextAndVerify;
+module.exports.assertNumberOfSlidePreviews = assertNumberOfSlidePreviews;
diff --git 
a/cypress_test/integration_tests/desktop/impress/slide_operations_spec.js 
b/cypress_test/integration_tests/desktop/impress/slide_operations_spec.js
index fb490ac6c..3541c577a 100644
--- a/cypress_test/integration_tests/desktop/impress/slide_operations_spec.js
+++ b/cypress_test/integration_tests/desktop/impress/slide_operations_spec.js
@@ -1,6 +1,7 @@
 /* global describe it cy require afterEach beforeEach*/
 
 var helper = require('../../common/helper');
+var impressHelper = require('../../common/impress_helper');
 
 describe('Slide operations', function() {
        var testFileName = 'slide_operations.odp';
@@ -13,17 +14,12 @@ describe('Slide operations', function() {
                helper.afterAll(testFileName);
        });
 
-       function assertNumberOfSlides(slides) {
-               cy.get('.preview-frame')
-                       .should('have.length', slides + 1);
-       }
-
        it('Add slides', function() {
                cy.get('#tb_presentation-toolbar_item_insertpage')
                        .should('not.have.class', 'disabled')
                        .click();
 
-               assertNumberOfSlides(2);
+               impressHelper.assertNumberOfSlidePreviews(2);
        });
 
        it('Remove slides', function() {
@@ -32,7 +28,7 @@ describe('Slide operations', function() {
                        .should('not.have.class', 'disabled')
                        .click();
 
-               assertNumberOfSlides(2);
+               impressHelper.assertNumberOfSlidePreviews(2);
 
                // Remove Slides
                cy.get('#tb_presentation-toolbar_item_deletepage')
@@ -44,7 +40,7 @@ describe('Slide operations', function() {
                cy.get('#tb_presentation-toolbar_item_deletepage')
                        .should('have.class', 'disabled');
 
-               assertNumberOfSlides(1);
+               impressHelper.assertNumberOfSlidePreviews(1);
 
        });
 
@@ -53,7 +49,7 @@ describe('Slide operations', function() {
                        .should('not.have.class', 'disabled')
                        .click();
 
-               assertNumberOfSlides(2);
+               impressHelper.assertNumberOfSlidePreviews(2);
 
        });
 });
diff --git 
a/cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js 
b/cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js
index 51dc9e68e..e176fd901 100644
--- a/cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js
+++ b/cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js
@@ -1,6 +1,7 @@
 /* global describe it cy require afterEach expect */
 
 var helper = require('../../common/helper');
+var impressHelper = require('../../common/impress_helper');
 var mobileHelper = require('../../common/mobile_helper');
 var impressMobileHelper = require('./impress_mobile_helper');
 
@@ -361,6 +362,73 @@ describe('Trigger hamburger menu options.', function() {
                        .should('be.visible');
        });
 
+       it('Slide: New Slide.', function() {
+               before('hamburger_menu.odp');
+
+               impressHelper.assertNumberOfSlidePreviews(1);
+
+               mobileHelper.openHamburgerMenu();
+
+               cy.contains('.menu-entry-with-icon', 'Slide')
+                       .click();
+
+               cy.contains('.menu-entry-with-icon', 'New Slide')
+                       .click();
+
+               impressHelper.assertNumberOfSlidePreviews(2);
+       });
+
+       it('Slide: Duplicate Slide.', function() {
+               before('hamburger_menu.odp');
+
+               impressHelper.assertNumberOfSlidePreviews(1);
+
+               mobileHelper.openHamburgerMenu();
+
+               cy.contains('.menu-entry-with-icon', 'Slide')
+                       .click();
+
+               cy.contains('.menu-entry-with-icon', 'Duplicate Slide')
+                       .click();
+
+               impressHelper.assertNumberOfSlidePreviews(2);
+       });
+
+       it('Slide: Delete Slide.', function() {
+               before('hamburger_menu.odp');
+
+               impressHelper.assertNumberOfSlidePreviews(1);
+
+               mobileHelper.openHamburgerMenu();
+
+               cy.contains('.menu-entry-with-icon', 'Slide')
+                       .click();
+
+               cy.contains('.menu-entry-with-icon', 'New Slide')
+                       .click();
+
+               impressHelper.assertNumberOfSlidePreviews(2);
+
+               mobileHelper.openHamburgerMenu();
+
+               cy.contains('.menu-entry-with-icon', 'Slide')
+                       .click();
+
+               cy.contains('.menu-entry-with-icon', 'Delete Slide')
+                       .click();
+
+               cy.get('.vex-content')
+                       .should('exist');
+
+               cy.get('.vex-dialog-button-primary')
+                       .click();
+
+               cy.get('.vex-content')
+                       .should('not.exist');
+
+               impressHelper.assertNumberOfSlidePreviews(1);
+       });
+
        it('Full Screen.', function() {
                before('hamburger_menu.odp');
 
commit 4fd2d2c56a4df1caf75fa6f87b6dff55fff42215
Author:     Tamás Zolnai <tamas.zol...@collabora.com>
AuthorDate: Fri Jul 10 13:49:14 2020 +0200
Commit:     Tamás Zolnai <tamas.zol...@collabora.com>
CommitDate: Fri Jul 10 18:30:13 2020 +0200

    cypress: some more tests for impress's hamburger menu (mobile).
    
    Change-Id: I3eb5afe1e67911b71e3152181c38eb2a2f9016f9
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98524
    Tested-by: Jenkins
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Tamás Zolnai <tamas.zol...@collabora.com>

diff --git 
a/cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js 
b/cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js
index 8f870fe83..51dc9e68e 100644
--- a/cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js
+++ b/cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js
@@ -360,4 +360,111 @@ describe('Trigger hamburger menu options.', function() {
                cy.get('.leaflet-selection-marker-start')
                        .should('be.visible');
        });
+
+       it('Full Screen.', function() {
+               before('hamburger_menu.odp');
+
+               mobileHelper.openHamburgerMenu();
+
+               cy.contains('.menu-entry-with-icon', 'Full Screen')
+                       .click();
+
+               // TODO: We can't hit the actual full screen from cypress
+               cy.wait(500);
+       });
+
+       it('Automatic spell checking.', function() {
+               before('hamburger_menu.odp');
+
+               // Add a spelling error to the shape
+               impressMobileHelper.selectTextShapeInTheCenter();
+
+               cy.get('.leaflet-pane.leaflet-overlay-pane g.Page .TextPosition 
tspan')
+                       .should('have.text', 'X');
+
+               // Type a new character
+               dblclickOnShape();
+
+               cy.get('textarea.clipboard')
+                       .type('qqqqqq');
+
+               impressMobileHelper.triggerNewSVGForShapeInTheCenter();
+
+               cy.get('.leaflet-pane.leaflet-overlay-pane g.Page .TextPosition 
tspan')
+                       .should('have.text', 'Xqqqqqq');
+
+               // Make everything white on tile
+               impressMobileHelper.selectTextOfShape();
+
+               mobileHelper.openMobileWizard();
+
+               helper.clickOnIdle('#TextPropertyPanel');
+
+               cy.get('#Bold')
+                       .should('be.visible');
+
+               helper.clickOnIdle('#Color');
+
+               mobileHelper.selectFromColorPalette(0, 0, 7);
+
+               mobileHelper.closeMobileWizard();
+
+               impressMobileHelper.removeShapeSelection();
+
+               var preiew = '.preview-frame:nth-of-type(2) img';
+               helper.imageShouldBeFullWhiteOrNot(preiew, false);
+
+               // Disable automatic spell checking
+               mobileHelper.openHamburgerMenu();
+
+               cy.contains('.menu-entry-with-icon', 'Automatic Spell Checking')
+                       .click();
+
+               helper.imageShouldBeFullWhiteOrNot(preiew, true);
+       });
+
+       it('Fullscreen presentation.', function() {
+               before('hamburger_menu.odp');
+
+               cy.get('iframe.leaflet-slideshow')
+                       .should('not.exist');
+
+               mobileHelper.openHamburgerMenu();
+
+               cy.contains('.menu-entry-with-icon', 'Fullscreen presentation')
+                       .click();
+
+               cy.get('iframe.leaflet-slideshow')
+                       .should('exist');
+       });
+
+       it('Check version information.', function() {
+               before('hamburger_menu.odp');
+
+               mobileHelper.openHamburgerMenu();
+
+               cy.contains('.menu-entry-with-icon', 'About')
+                       .click();
+
+               cy.get('.vex-content')
+                       .should('exist');
+
+               // Check the version
+               if (helper.getLOVersion() === 'master') {
+                       cy.contains('#lokit-version', 'LibreOffice')
+                               .should('exist');
+               } else if (helper.getLOVersion() === 'cp-6-2' ||
+                                  helper.getLOVersion() === 'cp-6-4')
+               {
+                       cy.contains('#lokit-version', 'Collabora Office')
+                               .should('exist');
+               }
+
+               // Close about dialog
+               cy.get('.vex-close')
+                       .click({force : true});
+
+               cy.get('.vex-content')
+                       .should('not.exist');
+       });
 });
diff --git 
a/cypress_test/integration_tests/mobile/impress/impress_mobile_helper.js 
b/cypress_test/integration_tests/mobile/impress/impress_mobile_helper.js
index 24f2caade..90702bd90 100644
--- a/cypress_test/integration_tests/mobile/impress/impress_mobile_helper.js
+++ b/cypress_test/integration_tests/mobile/impress/impress_mobile_helper.js
@@ -40,7 +40,7 @@ function selectTextOfShape() {
        helper.selectAllText(false);
 }
 
-function triggerNewSVGForShapeInTheCenter() {
+function removeShapeSelection() {
        // Remove selection first with clicking next to the rotate handler
        cy.get('.transform-handler--rotate')
                .then(function(items) {
@@ -57,6 +57,10 @@ function triggerNewSVGForShapeInTheCenter() {
 
        cy.get('.leaflet-drag-transform-marker')
                .should('not.exist');
+}
+
+function triggerNewSVGForShapeInTheCenter() {
+       removeShapeSelection();
 
        // If we click too fast on the shape again
        // then it steps into edit mode, might be a bug
@@ -69,3 +73,4 @@ function triggerNewSVGForShapeInTheCenter() {
 module.exports.selectTextShapeInTheCenter = selectTextShapeInTheCenter;
 module.exports.triggerNewSVGForShapeInTheCenter = 
triggerNewSVGForShapeInTheCenter;
 module.exports.selectTextOfShape = selectTextOfShape;
+module.exports.removeShapeSelection = removeShapeSelection;
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to