cypress_test/integration_tests/common/helper.js                            |   
57 ++++++++++
 cypress_test/integration_tests/desktop/calc/focus_spec.js                  |   
 4 
 cypress_test/integration_tests/mobile/calc/focus_spec.js                   |   
 2 
 cypress_test/integration_tests/multiuser/simultaneous_typing_user1_spec.js |   
10 -
 4 files changed, 63 insertions(+), 10 deletions(-)

New commits:
commit eb179113e5a8696a0fd900064f12774e4b8964a7
Author:     Tamás Zolnai <tamas.zol...@collabora.com>
AuthorDate: Wed Aug 5 17:17:43 2020 +0200
Commit:     Tamás Zolnai <tamas.zol...@collabora.com>
CommitDate: Wed Aug 5 19:00:28 2020 +0200

    cypress: introduce moveCursor() helper method.
    
    Change-Id: I67a1e74fe03e464e71100428969f9458b8a018a2
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100179
    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/helper.js 
b/cypress_test/integration_tests/common/helper.js
index 484b8cad0..bd2598a7a 100644
--- a/cypress_test/integration_tests/common/helper.js
+++ b/cypress_test/integration_tests/common/helper.js
@@ -411,6 +411,62 @@ function doIfOnDesktop(callback) {
                });
 }
 
+function moveCursor(direction) {
+       cy.log('Moving text cursor - start.');
+       cy.log('Param - direction: ' + direction);
+
+       initAliasToNegative('origCursorPos');
+
+       cy.get('.blinking-cursor')
+               .should('be.visible');
+
+       if (direction === 'up' || direction === 'down') {
+               cy.get('.blinking-cursor')
+                       .invoke('offset')
+                       .its('top')
+                       .as('origCursorPos');
+       } else if (direction === 'left' || direction === 'right') {
+               cy.get('.blinking-cursor')
+                       .invoke('offset')
+                       .its('left')
+                       .as('origCursorPos');
+       }
+
+       cy.get('@origCursorPos')
+               .should('be.greaterThan', 0);
+
+       var key = '';
+       if (direction === 'up') {
+               key = '{uparrow}';
+       } else if (direction === 'down') {
+               key = '{downarrow}';
+       } else if (direction === 'left') {
+               key = '{leftarrow}';
+       } else if (direction === 'right') {
+               key = '{rightarrow}';
+       }
+       cy.get('textarea.clipboard')
+               .type(key);
+
+       cy.get('@origCursorPos')
+               .then(function(origCursorPos) {
+                       cy.get('.blinking-cursor')
+                               .should(function(cursor) {
+                                       if (direction === 'up') {
+                                               
expect(cursor.offset().top).to.be.lessThan(origCursorPos);
+                                       } else if (direction === 'down') {
+                                               
expect(cursor.offset().top).to.be.greaterThan(origCursorPos);
+                                       } else if (direction === 'left') {
+                                               
expect(cursor.offset().left).to.be.lessThan(origCursorPos);
+                                       } else if (direction === 'right') {
+                                               
expect(cursor.offset().left).to.be.greaterThan(origCursorPos);
+                                       }
+                               });
+               });
+
+       cy.log('Moving text cursor - end.');
+}
+
 
 module.exports.loadTestDoc = loadTestDoc;
 module.exports.assertCursorAndFocus = assertCursorAndFocus;
@@ -435,3 +491,4 @@ module.exports.inputOnIdle = inputOnIdle;
 module.exports.waitUntilIdle = waitUntilIdle;
 module.exports.doIfOnMobile = doIfOnMobile;
 module.exports.doIfOnDesktop = doIfOnDesktop;
+module.exports.moveCursor = moveCursor;
diff --git a/cypress_test/integration_tests/desktop/calc/focus_spec.js 
b/cypress_test/integration_tests/desktop/calc/focus_spec.js
index 568e1fd11..2d9cd623b 100644
--- a/cypress_test/integration_tests/desktop/calc/focus_spec.js
+++ b/cypress_test/integration_tests/desktop/calc/focus_spec.js
@@ -61,10 +61,10 @@ describe('Calc focus tests', function() {
                calcHelper.clickFormulaBar();
                helper.assertCursorAndFocus();
 
-               // Move cursor before text2
+               // Move cursor inside text2
                cy.get('textarea.clipboard').type('{end}');
                for (var i = 0; i < 6; i++)
-                       cy.get('textarea.clipboard').type('{leftarrow}');
+                       helper.moveCursor('left');
 
                var text3 = ' BAZINGA';
                helper.typeText('textarea.clipboard', text3);
diff --git a/cypress_test/integration_tests/mobile/calc/focus_spec.js 
b/cypress_test/integration_tests/mobile/calc/focus_spec.js
index d12385daf..b9d4dd341 100644
--- a/cypress_test/integration_tests/mobile/calc/focus_spec.js
+++ b/cypress_test/integration_tests/mobile/calc/focus_spec.js
@@ -141,7 +141,7 @@ describe('Calc focus tests', function() {
                // Move cursor before text2
                cy.get('textarea.clipboard').type('{end}');
                for (var i = 0; i < text2.length; i++)
-                       cy.get('textarea.clipboard').type('{leftarrow}');
+                       helper.moveCursor('left');
 
                var text3 = ', BAZINGA';
                helper.typeText('textarea.clipboard', text3);
diff --git 
a/cypress_test/integration_tests/multiuser/simultaneous_typing_user1_spec.js 
b/cypress_test/integration_tests/multiuser/simultaneous_typing_user1_spec.js
index 14d277a3a..a4c238854 100644
--- a/cypress_test/integration_tests/multiuser/simultaneous_typing_user1_spec.js
+++ b/cypress_test/integration_tests/multiuser/simultaneous_typing_user1_spec.js
@@ -23,8 +23,8 @@ describe('Simultaneous typing: user-1.', function() {
                        .should('have.text', '2 users');
 
                // We have a table in the document, move the cursor into the 
second row.
-               cy.get('textarea.clipboard')
-                       .type('{downarrow}');
+               helper.moveCursor('down');
+
                // And now type some text, while user-2 does the same.
                var text = 'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq';
                helper.typeText('textarea.clipboard', text, 100);
@@ -35,11 +35,7 @@ describe('Simultaneous typing: user-1.', function() {
                        .should('contain.text', text);
 
                // Change paragraph alignment to trigger user-2 actions
-               cy.get('textarea.clipboard')
-                       .type('{uparrow}');
-
-               // TODO
-               cy.wait(1000);
+               helper.moveCursor('up');
 
                cy.get('#tb_editbar_item_centerpara .w2ui-button')
                        .click();
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to