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

Tamás Zolnai (via logerrit) logerrit at kemper.freedesktop.org
Tue Feb 4 14:46:16 UTC 2020


 cypress_test/data/mobile/table.odt                             |binary
 cypress_test/integration_tests/common/helper.js                |   36 +
 cypress_test/integration_tests/mobile/insert_object_spec.js    |   26 
 cypress_test/integration_tests/mobile/styles_spec.js           |    4 
 cypress_test/integration_tests/mobile/table_properties_spec.js |  264 ++++++++++
 loleaflet/src/control/Control.MobileWizard.js                  |    3 
 6 files changed, 325 insertions(+), 8 deletions(-)

New commits:
commit 26bcd86640fcd23b9dd786a6a0e082cde71a7d12
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue Feb 4 15:33:04 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Feb 4 15:44:22 2020 +0100

    cypress: mobile: Make this test more stable.
    
    Change-Id: I8eb8381696c79c1e7a04b1cf88cab12c4c14de92

diff --git a/cypress_test/integration_tests/mobile/styles_spec.js b/cypress_test/integration_tests/mobile/styles_spec.js
index b2671650e..213f1a99d 100644
--- a/cypress_test/integration_tests/mobile/styles_spec.js
+++ b/cypress_test/integration_tests/mobile/styles_spec.js
@@ -108,6 +108,10 @@ describe('Apply/modify styles.', function() {
 		cy.get('#Italic')
 			.click();
 
+		// Close mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
 		helper.copyTextToClipboard();
 
 		cy.get('#copy-paste-container p i')
commit 18b48ca02214a63c2462fd395e53063f8674b319
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue Feb 4 13:46:41 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Feb 4 15:33:49 2020 +0100

    cypress: mobile: Add tests for changing table layout.
    
    Change-Id: If819b8cc7341eb8d82219458edfecddd7b4d7c2b

diff --git a/cypress_test/data/mobile/table.odt b/cypress_test/data/mobile/table.odt
new file mode 100644
index 000000000..bec92754c
Binary files /dev/null and b/cypress_test/data/mobile/table.odt differ
diff --git a/cypress_test/integration_tests/mobile/table_properties_spec.js b/cypress_test/integration_tests/mobile/table_properties_spec.js
new file mode 100644
index 000000000..04710914c
--- /dev/null
+++ b/cypress_test/integration_tests/mobile/table_properties_spec.js
@@ -0,0 +1,264 @@
+/* global describe it cy beforeEach require afterEach expect*/
+
+var helper = require('../common/helper');
+
+describe('Change table properties / layout via mobile wizard.', function() {
+	beforeEach(function() {
+		helper.loadTestDoc('table.odt', true);
+
+		// Click on edit button
+		cy.get('#mobile-edit-button').click();
+
+		// Open insertion wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.should('not.have.class', 'disabled');
+	});
+
+	afterEach(function() {
+		helper.afterAll();
+	});
+
+	it('Insert row before.', function() {
+		// Open mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		// Insert row
+		cy.get('#TableEditPanel')
+			.click();
+		cy.get('#InsertRowsBefore')
+			.click();
+
+		cy.get('.leaflet-marker-icon.table-row-resize-marker')
+			.should('have.length', 4);
+
+		// Close mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		helper.copyTableToClipboard();
+
+		// Check rows / columns
+		cy.get('#copy-paste-container tr')
+			.should('have.length', 4)
+			.then(function(rows) {
+				expect(rows[0].textContent).to.not.have.string('text');
+				expect(rows[1].textContent).to.have.string('text');
+			});
+		cy.get('#copy-paste-container td')
+			.should('have.length', 8);
+	});
+
+	it('Insert row after.', function() {
+		// Open mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		// Insert row
+		cy.get('#TableEditPanel')
+			.click();
+		cy.get('#InsertRowsAfter')
+			.click();
+
+		cy.get('.leaflet-marker-icon.table-row-resize-marker')
+			.should('have.length', 4);
+
+		// Close mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		helper.copyTableToClipboard();
+
+		// Check rows / columns
+		cy.get('#copy-paste-container tr')
+			.should('have.length', 4)
+			.then(function(rows) {
+				expect(rows[0].textContent).to.have.string('text');
+				expect(rows[1].textContent).to.not.have.string('text');
+			});
+		cy.get('#copy-paste-container td')
+			.should('have.length', 8);
+	});
+
+	it('Insert column before.', function() {
+		// Open mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		// Insert row
+		cy.get('#TableEditPanel')
+			.click();
+		cy.get('#InsertColumnsBefore')
+			.click();
+
+		cy.get('.leaflet-marker-icon.table-column-resize-marker')
+			.should('have.length', 4);
+
+		// Close mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		helper.copyTableToClipboard();
+
+		// Check rows / columns
+		cy.get('#copy-paste-container tr')
+			.should('have.length', 3);
+		cy.get('#copy-paste-container td')
+			.should('have.length', 9)
+			.then(function(columns) {
+				expect(columns[0].textContent).to.not.have.string('text');
+				expect(columns[1].textContent).to.have.string('text');
+			});
+	});
+
+	it('Insert column after.', function() {
+		// Open mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		// Insert row
+		cy.get('#TableEditPanel')
+			.click();
+		cy.get('#InsertColumnsAfter')
+			.click();
+
+		cy.get('.leaflet-marker-icon.table-column-resize-marker')
+			.should('have.length', 4);
+
+		// Close mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		helper.copyTableToClipboard();
+
+		// Check rows / columns
+		cy.get('#copy-paste-container tr')
+			.should('have.length', 3);
+		cy.get('#copy-paste-container td')
+			.should('have.length', 9)
+			.then(function(columns) {
+				expect(columns[0].textContent).to.have.string('text');
+				expect(columns[1].textContent).to.not.have.string('text');
+			});
+	});
+
+	it('Delete row.', function() {
+		// Open mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		// Insert row
+		cy.get('#TableEditPanel')
+			.click();
+		cy.get('#DeleteRows')
+			.click();
+
+		cy.get('.leaflet-marker-icon.table-row-resize-marker')
+			.should('have.length', 2);
+
+		// Close mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		helper.copyTableToClipboard();
+
+		// Check rows / columns
+		cy.get('#copy-paste-container tr')
+			.should('have.length', 2)
+			.then(function(columns) {
+				expect(columns[0].textContent).to.not.have.string('text');
+				expect(columns[1].textContent).to.not.have.string('text');
+			});
+		cy.get('#copy-paste-container td')
+			.should('have.length', 4);
+	});
+
+	it('Delete column.', function() {
+		// Open mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		// Insert row
+		cy.get('#TableEditPanel')
+			.click();
+		cy.get('#DeleteColumns')
+			.click();
+
+		cy.get('.leaflet-marker-icon.table-column-resize-marker')
+			.should('not.exist');
+
+		// Close mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		helper.copyTableToClipboard();
+
+		// Check rows / columns
+		cy.get('#copy-paste-container tr')
+			.should('have.length', 3);
+		cy.get('#copy-paste-container td')
+			.should('have.length', 3)
+			.then(function(columns) {
+				expect(columns[0].textContent).to.not.have.string('text');
+				expect(columns[1].textContent).to.not.have.string('text');
+				expect(columns[2].textContent).to.not.have.string('text');
+			});
+	});
+
+	it('Delete table.', function() {
+		// Open mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		// Insert row
+		cy.get('#TableEditPanel')
+			.click();
+		cy.get('#DeleteTable')
+			.click();
+
+		cy.get('.leaflet-marker-icon.table-column-resize-marker')
+			.should('not.exist');
+
+		// Close mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		helper.copyTableToClipboard();
+
+		cy.get('#copy-paste-container title')
+			.should('exist');
+		cy.get('#copy-paste-container table')
+			.should('not.exist');
+	});
+
+	it('Merge cells.', function() {
+		cy.get('body').type('{shift}{downarrow}{downarrow}{downarrow}{rightarrow}');
+
+		// Open mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		// Insert row
+		cy.get('#TableEditPanel')
+			.click();
+		cy.get('#MergeCells')
+			.scrollIntoView();
+		cy.get('#MergeCells')
+			.click();
+
+		cy.get('.leaflet-marker-icon.table-column-resize-marker')
+			.should('not.exist');
+
+		// Close mobile wizard
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click();
+
+		helper.copyTableToClipboard();
+
+		// Check rows / columns
+		cy.get('#copy-paste-container tr')
+			.should('have.length', 1);
+		cy.get('#copy-paste-container td')
+			.should('have.length', 1);
+	});
+});
commit f7404745fbc4459d9bf204c8a3c20034b4ff3400
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue Feb 4 13:19:45 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Feb 4 15:33:49 2020 +0100

    mobile: Don't refresh the sidebar state, when a different wizard is opened.
    
    Caught by a cypress test. Hamburger menu was opened, by it got
    the sidebar content instead.
    
    Change-Id: I3130e7e1d44f76c8ba656121d96704fb4d5b8932

diff --git a/loleaflet/src/control/Control.MobileWizard.js b/loleaflet/src/control/Control.MobileWizard.js
index 249a33421..1cc8dc2b7 100644
--- a/loleaflet/src/control/Control.MobileWizard.js
+++ b/loleaflet/src/control/Control.MobileWizard.js
@@ -278,6 +278,9 @@ L.Control.MobileWizard = L.Control.extend({
 				if (this.map.showSidebar == false)
 					return;
 			}
+			if (isSidebar && !this.map.showSidebar) {
+				return;
+			}
 
 			this._isActive = true;
 			var currentPath = null;
commit 14ce7ab9377a30863a65b2d80e20d2577bf93454
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue Feb 4 12:37:50 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Feb 4 15:33:49 2020 +0100

    cypress: mobile: Introduce copyTableToClipboard() method.
    
    And use it to check insert table's properties.
    
    Change-Id: I7b188ddd139db2f6de5e2872277dce022073171d

diff --git a/cypress_test/integration_tests/common/helper.js b/cypress_test/integration_tests/common/helper.js
index e9cc62328..e7989aed9 100644
--- a/cypress_test/integration_tests/common/helper.js
+++ b/cypress_test/integration_tests/common/helper.js
@@ -83,6 +83,41 @@ function copyTextToClipboard() {
 		.should('not.exist');
 }
 
+function copyTableToClipboard() {
+	// Do a new selection
+	selectAllMobile();
+
+	// Open context menu
+	cy.get('.leaflet-marker-icon')
+		.then(function(markers) {
+			expect(markers.length).to.have.greaterThan(1);
+			for (var i = 0; i < markers.length; i++) {
+				if (markers[i].classList.contains('leaflet-selection-marker-start')) {
+					var startPos = markers[i].getBoundingClientRect();
+				} else if (markers[i].classList.contains('leaflet-selection-marker-end')) {
+					var endPos = markers[i].getBoundingClientRect();
+				}
+			}
+
+			var XPos = startPos.right + 30;
+			var YPos = endPos.top - 10;
+			cy.get('body').rightclick(XPos, YPos);
+		});
+
+	// Execute copy
+	cy.get('.ui-header.level-0.mobile-wizard.ui-widget .menu-entry-with-icon .context-menu-link')
+		.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 afterAll() {
 	// Make sure that the document is closed
 	cy.visit('http://admin:admin@localhost:9980/loleaflet/dist/admin/admin.html');
@@ -95,4 +130,5 @@ function afterAll() {
 module.exports.loadTestDoc = loadTestDoc;
 module.exports.selectAllMobile = selectAllMobile;
 module.exports.copyTextToClipboard = copyTextToClipboard;
+module.exports.copyTableToClipboard = copyTableToClipboard;
 module.exports.afterAll = afterAll;
diff --git a/cypress_test/integration_tests/mobile/insert_object_spec.js b/cypress_test/integration_tests/mobile/insert_object_spec.js
index 19200f48c..70f800b78 100644
--- a/cypress_test/integration_tests/mobile/insert_object_spec.js
+++ b/cypress_test/integration_tests/mobile/insert_object_spec.js
@@ -55,11 +55,16 @@ describe('Insert objects via insertion wizard.', function() {
 
 		// Table is inserted with the markers shown
 		cy.get('.leaflet-marker-icon.table-column-resize-marker')
-			.should('exist')
-			.should('have.length', 3);
-		cy.get('.leaflet-marker-icon.table-row-resize-marker')
-			.should('exist')
+			.should('exist');
+
+		helper.copyTableToClipboard();
+
+		// Two rows
+		cy.get('#copy-paste-container tr')
 			.should('have.length', 2);
+		// Four cells
+		cy.get('#copy-paste-container td')
+			.should('have.length', 4);
 	});
 
 	it('Insert custom table.', function() {
@@ -83,11 +88,16 @@ describe('Insert objects via insertion wizard.', function() {
 
 		// Table is inserted with the markers shown
 		cy.get('.leaflet-marker-icon.table-column-resize-marker')
-			.should('exist')
-			.should('have.length', 4);
-		cy.get('.leaflet-marker-icon.table-row-resize-marker')
-			.should('exist')
+			.should('exist');
+
+		helper.copyTableToClipboard();
+
+		// Three rows
+		cy.get('#copy-paste-container tr')
 			.should('have.length', 3);
+		// Nine cells
+		cy.get('#copy-paste-container td')
+			.should('have.length', 9);
 	});
 
 	it('Insert header.', function() {


More information about the Libreoffice-commits mailing list