[Libreoffice-commits] online.git: cypress_test/data cypress_test/integration_tests cypress_test/Makefile.am

Tamás Zolnai (via logerrit) logerrit at kemper.freedesktop.org
Tue Mar 10 10:18:22 UTC 2020


 cypress_test/Makefile.am                                                 |    1 
 cypress_test/data/mobile/calc/insertion_wizard.ods                       |binary
 cypress_test/integration_tests/common/helper.js                          |   25 ++
 cypress_test/integration_tests/mobile/calc/calc_helper.js                |   45 ++++
 cypress_test/integration_tests/mobile/calc/focus_spec.js                 |    5 
 cypress_test/integration_tests/mobile/calc/insertion_wizard_spec.js      |   83 +++++++
 cypress_test/integration_tests/mobile/writer/mobile_wizard_state_spec.js |    3 
 cypress_test/integration_tests/mobile/writer/spellchecking_spec.js       |    2 
 cypress_test/integration_tests/mobile/writer/writer_helper.js            |  109 +++-------
 9 files changed, 201 insertions(+), 72 deletions(-)

New commits:
commit 79073f6ce147c61612c2cc1b11a5e2edc2a4b30b
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Mon Mar 9 17:49:56 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Mar 10 11:18:04 2020 +0100

    cypress: mobile: add first insertion related tests for calc.
    
    Change-Id: I57561ef5687119cd53d99ea46e9ca3a269548422
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/90237
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>

diff --git a/cypress_test/Makefile.am b/cypress_test/Makefile.am
index e4616f3dc..84d7c19a6 100644
--- a/cypress_test/Makefile.am
+++ b/cypress_test/Makefile.am
@@ -32,6 +32,7 @@ export DISPLAY=$(if $(HEADLESS_BUILD),:$(DISPLAY_NUMBER),$(shell echo $$DISPLAY)
 if HAVE_LO_PATH
 MOBILE_TEST_FILES= \
 	calc/focus_spec.js \
+	calc/insertion_wizard_spec.js \
 	impress/impress_focus_spec.js \
 	writer/apply_font_spec.js \
 	writer/apply_paragraph_properties_spec.js \
diff --git a/cypress_test/data/mobile/calc/insertion_wizard.ods b/cypress_test/data/mobile/calc/insertion_wizard.ods
new file mode 100644
index 000000000..4c86f1a9d
Binary files /dev/null and b/cypress_test/data/mobile/calc/insertion_wizard.ods differ
diff --git a/cypress_test/integration_tests/common/helper.js b/cypress_test/integration_tests/common/helper.js
index 0e06a7d0e..fddafdf22 100644
--- a/cypress_test/integration_tests/common/helper.js
+++ b/cypress_test/integration_tests/common/helper.js
@@ -91,6 +91,31 @@ function detectLOCoreVersion() {
 	}
 }
 
+function longPressOnDocument(posX, posY) {
+	cy.get('.leaflet-pane.leaflet-map-pane')
+		.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.afterAll = afterAll;
 module.exports.beforeAllMobile = beforeAllMobile;
+module.exports.longPressOnDocument = longPressOnDocument;
diff --git a/cypress_test/integration_tests/mobile/calc/calc_helper.js b/cypress_test/integration_tests/mobile/calc/calc_helper.js
index 5839efb01..7bbec9781 100644
--- a/cypress_test/integration_tests/mobile/calc/calc_helper.js
+++ b/cypress_test/integration_tests/mobile/calc/calc_helper.js
@@ -1,4 +1,6 @@
-/* global cy expect*/
+/* global cy expect require*/
+
+var helper = require('../../common/helper');
 
 function clickOnFirstCell() {
 	// Enable editing if it's in read-only mode
@@ -21,4 +23,45 @@ function clickOnFirstCell() {
 		});
 }
 
+function copyContentToClipboard() {
+	selectAllMobile();
+
+	cy.get('.leaflet-tile-container')
+		.then(function(items) {
+			expect(items).to.have.lengthOf(1);
+			var XPos = items[0].getBoundingClientRect().right + 10;
+			var YPos = items[0].getBoundingClientRect().top + 10;
+			helper.longPressOnDocument(XPos, YPos);
+		});
+
+	// Execute copy
+	cy.get('.menu-entry-with-icon', {timeout : 10000})
+		.contains('Copy')
+		.click();
+
+	// Close warning about clipboard operations
+	cy.get('.vex-dialog-button-primary.vex-dialog-button.vex-first')
+		.click();
+
+	// Wait until it's closed
+	cy.get('.vex-overlay')
+		.should('not.exist');
+}
+
+function selectAllMobile() {
+	cy.get('body')
+		.type('{enter}');
+
+	cy.get('.leaflet-marker-icon')
+		.should('exist');
+
+	cy.get('#spreadsheet-header-corner')
+		.click();
+
+	cy.get('.leaflet-marker-icon')
+		.should('exist');
+}
+
+module.exports.copyContentToClipboard = copyContentToClipboard;
+module.exports.selectAllMobile = selectAllMobile;
 module.exports.clickOnFirstCell = clickOnFirstCell;
diff --git a/cypress_test/integration_tests/mobile/calc/focus_spec.js b/cypress_test/integration_tests/mobile/calc/focus_spec.js
index 801b423f8..705c513a5 100644
--- a/cypress_test/integration_tests/mobile/calc/focus_spec.js
+++ b/cypress_test/integration_tests/mobile/calc/focus_spec.js
@@ -26,7 +26,7 @@ describe('Calc focus tests', function() {
 		// One tap on an other cell -> no focus on the document
 		calcHelper.clickOnFirstCell();
 
-		cy.get('.leaflet-marker-icon.spreadsheet-cell-resize-marker')
+		cy.get('.leaflet-marker-icon')
 			.should('be.visible');
 
 		// No focus
@@ -62,7 +62,8 @@ describe('Calc focus tests', function() {
 		// One tap on a cell -> no document focus
 		calcHelper.clickOnFirstCell();
 
-		cy.get('.leaflet-marker-icon.spreadsheet-cell-resize-marker');
+		cy.get('.leaflet-marker-icon')
+			.should('be.visible');
 
 		// No focus
 		cy.document().its('activeElement.tagName')
diff --git a/cypress_test/integration_tests/mobile/calc/insertion_wizard_spec.js b/cypress_test/integration_tests/mobile/calc/insertion_wizard_spec.js
new file mode 100644
index 000000000..4cc14fbc1
--- /dev/null
+++ b/cypress_test/integration_tests/mobile/calc/insertion_wizard_spec.js
@@ -0,0 +1,83 @@
+/* global describe it cy beforeEach require afterEach*/
+
+var helper = require('../../common/helper');
+var calcHelper = require('./calc_helper');
+
+describe('Calc insertion wizard.', function() {
+	beforeEach(function() {
+		helper.beforeAllMobile('insertion_wizard.ods', 'calc');
+
+		// Click on edit button
+		cy.get('#mobile-edit-button').click();
+	});
+
+	afterEach(function() {
+		helper.afterAll();
+	});
+
+	it('Check existance of image insertion items.', function() {
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
+		cy.get('.menu-entry-with-icon')
+			.contains('Local Image...');
+
+		cy.get('.menu-entry-with-icon')
+			.contains('Image...');
+	});
+
+	it('Insert chart.', function() {
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
+		cy.get('.menu-entry-with-icon')
+			.contains('Chart...')
+			.click();
+
+		cy.get('.leaflet-drag-transform-marker')
+			.should('have.length', 8);
+	});
+
+	it('Insert hyperlink.', function() {
+		calcHelper.clickOnFirstCell();
+
+		cy.get('.leaflet-marker-icon')
+			.should('be.visible');
+
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click();
+
+		cy.get('.menu-entry-with-icon')
+			.contains('Hyperlink...')
+			.click();
+
+		// Dialog is opened
+		cy.get('.vex-content.hyperlink-dialog')
+			.should('exist');
+
+		// Type text and link
+		cy.get('.vex-content.hyperlink-dialog input[name="text"]')
+			.clear()
+			.type('some text');
+		cy.get('.vex-content.hyperlink-dialog input[name="link"]')
+			.type('www.something.com');
+
+		// Insert
+		cy.get('.vex-content.hyperlink-dialog .vex-dialog-button-primary')
+			.click();
+
+		cy.get('.blinking-cursor')
+			.should('be.visible');
+
+		calcHelper.copyContentToClipboard();
+
+		cy.get('#copy-paste-container table td a')
+			.contains('some text');
+
+		cy.get('#copy-paste-container table td a')
+			.should('have.attr', 'href', 'http://www.something.com');
+	});
+});
diff --git a/cypress_test/integration_tests/mobile/writer/mobile_wizard_state_spec.js b/cypress_test/integration_tests/mobile/writer/mobile_wizard_state_spec.js
index 70ea2ba08..47790dc47 100644
--- a/cypress_test/integration_tests/mobile/writer/mobile_wizard_state_spec.js
+++ b/cypress_test/integration_tests/mobile/writer/mobile_wizard_state_spec.js
@@ -1,7 +1,6 @@
 /* global describe it cy beforeEach require afterEach*/
 
 var helper = require('../../common/helper');
-var writerHelper = require('./writer_helper');
 
 describe('Mobile wizard state tests', function() {
 	beforeEach(function() {
@@ -103,7 +102,7 @@ describe('Mobile wizard state tests', function() {
 			.should('have.class', 'checked');
 
 		// Open context wizard by right click on document
-		writerHelper.longPressOnDocument(40, 40);
+		helper.longPressOnDocument(40, 40);
 		cy.get('.ui-header.level-0.mobile-wizard.ui-widget .menu-entry-with-icon')
 			.contains('Paste');
 
diff --git a/cypress_test/integration_tests/mobile/writer/spellchecking_spec.js b/cypress_test/integration_tests/mobile/writer/spellchecking_spec.js
index a7de2b37f..595dc63bc 100644
--- a/cypress_test/integration_tests/mobile/writer/spellchecking_spec.js
+++ b/cypress_test/integration_tests/mobile/writer/spellchecking_spec.js
@@ -39,7 +39,7 @@ describe('Spell checking menu.', function() {
 
 				var XPos = startPos.right + 10;
 				var YPos = endPos.top - 10;
-				writerHelper.longPressOnDocument(XPos, YPos);
+				helper.longPressOnDocument(XPos, YPos);
 			});
 
 		cy.get('#mobile-wizard-content')
diff --git a/cypress_test/integration_tests/mobile/writer/writer_helper.js b/cypress_test/integration_tests/mobile/writer/writer_helper.js
index 28a1fb161..17339efc1 100644
--- a/cypress_test/integration_tests/mobile/writer/writer_helper.js
+++ b/cypress_test/integration_tests/mobile/writer/writer_helper.js
@@ -1,41 +1,6 @@
-/* global cy expect*/
+/* global cy expect require*/
 
-function selectAllMobile() {
-	// Remove selection if exist
-	cy.get('#document-container').click();
-	cy.get('.leaflet-marker-icon')
-		.should('not.exist');
-
-	// Enable editing if it's in read-only mode
-	cy.get('#mobile-edit-button')
-		.then(function(button) {
-			if (button.css('display') !== 'none') {
-				cy.get('#mobile-edit-button')
-					.click();
-			}
-		});
-
-	// Open hamburger menu
-	cy.get('#toolbar-hamburger')
-		.click();
-
-	// Open edit menu
-	cy.get('.ui-header.level-0 .menu-entry-with-icon')
-		.contains('Edit')
-		.click();
-
-	cy.get('.ui-header.level-1 .menu-entry-with-icon')
-		.should('be.visible')
-		.wait(100);
-
-	// Do the selection
-	cy.get('.ui-header.level-1 .menu-entry-with-icon')
-		.contains('Select All')
-		.click();
-
-	cy.get('.leaflet-marker-icon')
-		.should('exist');
-}
+var helper = require('../../common/helper');
 
 function copyTextToClipboard() {
 	// Do a new selection
@@ -45,9 +10,9 @@ function copyTextToClipboard() {
 	cy.get('.leaflet-marker-icon')
 		.then(function(marker) {
 			expect(marker).to.have.lengthOf(2);
-			var XPos =  (marker[0].getBoundingClientRect().right + marker[1].getBoundingClientRect().left) / 2;
+			var XPos = (marker[0].getBoundingClientRect().right + marker[1].getBoundingClientRect().left) / 2;
 			var YPos = marker[0].getBoundingClientRect().top - 5;
-			longPressOnDocument(XPos, YPos);
+			helper.longPressOnDocument(XPos, YPos);
 		});
 
 	// Execute copy
@@ -82,7 +47,7 @@ function copyTableToClipboard() {
 
 			var XPos = startPos.right + 10;
 			var YPos = (startPos.top + endPos.top) / 2;
-			longPressOnDocument(XPos, YPos);
+			helper.longPressOnDocument(XPos, YPos);
 		});
 
 	// Execute copy
@@ -99,30 +64,6 @@ function copyTableToClipboard() {
 		.should('not.exist');
 }
 
-function longPressOnDocument(posX, posY) {
-	cy.get('.leaflet-pane.leaflet-map-pane')
-		.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);
-		});
-}
-
 // Use this method when a test openes the same mobile
 // wizard more times during a test.
 // Recent issue with this scenario is that the mobile
@@ -144,8 +85,44 @@ function clearMobileWizardState() {
 		.click();
 }
 
-module.exports.selectAllMobile = selectAllMobile;
+function selectAllMobile() {
+	// Remove selection if exist
+	cy.get('#document-container').click();
+	cy.get('.leaflet-marker-icon')
+		.should('not.exist');
+
+	// Enable editing if it's in read-only mode
+	cy.get('#mobile-edit-button')
+		.then(function(button) {
+			if (button.css('display') !== 'none') {
+				cy.get('#mobile-edit-button')
+					.click();
+			}
+		});
+
+	// Open hamburger menu
+	cy.get('#toolbar-hamburger')
+		.click();
+
+	// Open edit menu
+	cy.get('.ui-header.level-0 .menu-entry-with-icon')
+		.contains('Edit')
+		.click();
+
+	cy.get('.ui-header.level-1 .menu-entry-with-icon')
+		.should('be.visible')
+		.wait(100);
+
+	// Do the selection
+	cy.get('.ui-header.level-1 .menu-entry-with-icon')
+		.contains('Select All')
+		.click();
+
+	cy.get('.leaflet-marker-icon')
+		.should('exist');
+}
+
 module.exports.copyTextToClipboard = copyTextToClipboard;
 module.exports.copyTableToClipboard = copyTableToClipboard;
-module.exports.longPressOnDocument = longPressOnDocument;
 module.exports.clearMobileWizardState = clearMobileWizardState;
+module.exports.selectAllMobile = selectAllMobile;


More information about the Libreoffice-commits mailing list