[Libreoffice-commits] online.git: cypress_test/integration_tests loleaflet/src

Tamás Zolnai (via logerrit) logerrit at kemper.freedesktop.org
Fri Feb 7 09:10:15 UTC 2020


 cypress_test/integration_tests/common/helper.js                   |   29 +++++
 cypress_test/integration_tests/mobile/insert_object_spec.js       |   54 +++++++++-
 cypress_test/integration_tests/mobile/mobile_wizard_state_spec.js |    2 
 loleaflet/src/map/Map.js                                          |    4 
 4 files changed, 79 insertions(+), 10 deletions(-)

New commits:
commit f53e0303390309e993e27dccc56b4a4934d08776
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Thu Feb 6 17:17:25 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Fri Feb 7 10:09:54 2020 +0100

    cypress: mobile: emulate tap and long press events.
    
    To achive a better test covarage.
    Now, the simple click() method is recognized
    as 'tap' by hummerjs. For long press we need
    to use low level events.
    I expect that we can emulate other mobile events too
    on a similar way.
    
    Change-Id: I5f43afafe087133e707eed6ff8a43765324d5e24
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/88161
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>
    Tested-by: Tamás Zolnai <tamas.zolnai at collabora.com>

diff --git a/cypress_test/integration_tests/common/helper.js b/cypress_test/integration_tests/common/helper.js
index c14caf365..0e5f885a1 100644
--- a/cypress_test/integration_tests/common/helper.js
+++ b/cypress_test/integration_tests/common/helper.js
@@ -66,7 +66,7 @@ function copyTextToClipboard() {
 			expect(marker).to.have.lengthOf(2);
 			var XPos =  (marker[0].getBoundingClientRect().right + marker[1].getBoundingClientRect().left) / 2;
 			var YPos = marker[0].getBoundingClientRect().top - 5;
-			cy.get('body').rightclick(XPos, YPos);
+			longPressOnDocument(XPos, YPos);
 		});
 
 	// Execute copy
@@ -101,7 +101,7 @@ function copyTableToClipboard() {
 
 			var XPos = startPos.right + 10;
 			var YPos = endPos.top - 10;
-			cy.get('body').rightclick(XPos, YPos);
+			longPressOnDocument(XPos, YPos);
 		});
 
 	// Execute copy
@@ -161,9 +161,34 @@ function detectLOCoreVersion() {
 	}
 }
 
+function longPressOnDocument(posX, posY) {
+	cy.get('#document-container')
+		.then(function(items) {
+			expect(items).have.length(1);
+
+			var eventOptions = {
+				force: true,
+				button: 0,
+				pointerType: 'mouse',
+				x: posX - items[0].getBoundingClientRect().left,
+				y: posY - items[0].getBoundingClientRect().top
+			};
+
+			cy.get('.leaflet-pane.leaflet-map-pane')
+				.trigger('pointerdown', eventOptions)
+				.trigger('pointermove', eventOptions);
+
+			cy.wait(600);
+
+			cy.get('.leaflet-pane.leaflet-map-pane')
+				.trigger('pointerup', eventOptions);
+		});
+}
+
 module.exports.loadTestDoc = loadTestDoc;
 module.exports.selectAllMobile = selectAllMobile;
 module.exports.copyTextToClipboard = copyTextToClipboard;
 module.exports.copyTableToClipboard = copyTableToClipboard;
 module.exports.afterAll = afterAll;
 module.exports.beforeAllMobile = beforeAllMobile;
+module.exports.longPressOnDocument = longPressOnDocument;
diff --git a/cypress_test/integration_tests/mobile/insert_object_spec.js b/cypress_test/integration_tests/mobile/insert_object_spec.js
index 3c0cebc31..e514ed5f9 100644
--- a/cypress_test/integration_tests/mobile/insert_object_spec.js
+++ b/cypress_test/integration_tests/mobile/insert_object_spec.js
@@ -8,11 +8,6 @@ describe('Insert objects via insertion wizard.', function() {
 
 		// Click on edit button
 		cy.get('#mobile-edit-button').click();
-
-		// Open insertion wizard
-		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
-			.should('not.have.class', 'disabled')
-			.click();
 	});
 
 	afterEach(function() {
@@ -20,6 +15,10 @@ describe('Insert objects via insertion wizard.', function() {
 	});
 
 	it('Insert local image.', function() {
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
 		// We check whether the entry is there
 		cy.get('.menu-entry-with-icon')
 			.contains('Local Image...');
@@ -27,6 +26,10 @@ describe('Insert objects via insertion wizard.', function() {
 	});
 
 	it('Insert comment.', function() {
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
 		cy.get('.menu-entry-with-icon')
 			.contains('Comment')
 			.click();
@@ -45,6 +48,10 @@ describe('Insert objects via insertion wizard.', function() {
 		if (Cypress.env('LO_CORE_VERSION') === 'master')
 			return;
 
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
 		// Open Table submenu
 		cy.get('.menu-entry-with-icon.flex-fullwidth')
 			.contains('Table')
@@ -76,6 +83,10 @@ describe('Insert objects via insertion wizard.', function() {
 		if (Cypress.env('LO_CORE_VERSION') === 'master')
 			return;
 
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
 		// Open Table submenu
 		cy.get('.menu-entry-with-icon.flex-fullwidth')
 			.contains('Table')
@@ -111,6 +122,7 @@ describe('Insert objects via insertion wizard.', function() {
 	it('Insert header.', function() {
 		// Get the blinking cursor pos
 		cy.get('#document-container').type('xxxx');
+
 		var cursorOrigLeft = 0;
 		cy.get('.blinking-cursor')
 			.then(function(cursor) {
@@ -118,6 +130,10 @@ describe('Insert objects via insertion wizard.', function() {
 				cursorOrigLeft = cursor[0].getBoundingClientRect().left;
 			});
 
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
 		// Open header/footer submenu
 		cy.get('.sub-menu-title')
 			.contains('Header and Footer')
@@ -155,6 +171,10 @@ describe('Insert objects via insertion wizard.', function() {
 				cursorOrigTop = cursor[0].getBoundingClientRect().top;
 			});
 
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
 		// Open header/footer submenu
 		cy.get('.sub-menu-title')
 			.contains('Header and Footer')
@@ -192,6 +212,10 @@ describe('Insert objects via insertion wizard.', function() {
 				cursorOrigTop = cursor[0].getBoundingClientRect().top;
 			});
 
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
 		// Insert footnote
 		cy.get('.menu-entry-with-icon')
 			.contains('Footnote')
@@ -217,6 +241,10 @@ describe('Insert objects via insertion wizard.', function() {
 				cursorOrigTop = cursor[0].getBoundingClientRect().top;
 			});
 
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
 		// Insert endnote
 		cy.get('.menu-entry-with-icon')
 			.contains('Endnote')
@@ -242,6 +270,10 @@ describe('Insert objects via insertion wizard.', function() {
 				cursorOrigTop = cursor[0].getBoundingClientRect().top;
 			});
 
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
 		// Insert endnote
 		cy.get('.menu-entry-with-icon')
 			.contains('Page Break')
@@ -267,6 +299,10 @@ describe('Insert objects via insertion wizard.', function() {
 				cursorOrigTop = cursor[0].getBoundingClientRect().top;
 			});
 
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
 		// Do insertion
 		cy.get('.menu-entry-with-icon')
 			.contains('Column Break')
@@ -283,6 +319,10 @@ describe('Insert objects via insertion wizard.', function() {
 	});
 
 	it('Insert hyperlink.', function() {
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
 		// Open hyperlink dialog
 		cy.get('.menu-entry-with-icon')
 			.contains('Hyperlink...')
@@ -298,6 +338,10 @@ describe('Insert objects via insertion wizard.', function() {
 	});
 
 	it('Insert shape.', function() {
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
 		// Do insertion
 		cy.get('.menu-entry-with-icon')
 			.contains('Shape')
diff --git a/cypress_test/integration_tests/mobile/mobile_wizard_state_spec.js b/cypress_test/integration_tests/mobile/mobile_wizard_state_spec.js
index 5ea03ed55..e4074e51c 100644
--- a/cypress_test/integration_tests/mobile/mobile_wizard_state_spec.js
+++ b/cypress_test/integration_tests/mobile/mobile_wizard_state_spec.js
@@ -104,7 +104,7 @@ describe('Mobile wizard state tests', function() {
 			.should('have.class', 'checked');
 
 		// Open context wizard by right click on document
-		cy.get('#document-container').rightclick();
+		helper.longPressOnDocument(40, 40);
 		cy.get('.ui-header.level-0.mobile-wizard.ui-widget .menu-entry-with-icon')
 			.contains('Paste');
 
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index e7a75f205..f06298aaa 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -128,7 +128,7 @@ L.Map = L.Evented.extend({
 
 		this.addHandler('keyboard', L.Map.Keyboard);
 		this.addHandler('dragging', L.Map.Drag);
-		if (L.Browser.touch && !L.Browser.pointer) {
+		if ((L.Browser.touch && !L.Browser.pointer) || (L.Browser.cypressTest && L.Browser.mobile)) {
 			this.dragging.disable();
 			this.options.inertia = false;
 			this.dragging._draggable._manualDrag = true;
@@ -909,7 +909,7 @@ L.Map = L.Evented.extend({
 	// accept key input, and show the virtual keyboard.
 	focus: function (acceptInput) {
 		this._textInput.focus();
-		if (window.mode.isMobile() && acceptInput !== true && !L.Browser.cypressTest)
+		if (window.mode.isMobile() && acceptInput !== true)
 			this.blur();
 	},
 


More information about the Libreoffice-commits mailing list