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

Tamás Zolnai (via logerrit) logerrit at kemper.freedesktop.org
Thu Jul 9 13:35:01 UTC 2020


 cypress_test/data/mobile/impress/hamburger_menu.odp                         |binary
 cypress_test/integration_tests/mobile/calc/calc_mobile_helper.js            |    5 
 cypress_test/integration_tests/mobile/impress/apply_font_spec.js            |    1 
 cypress_test/integration_tests/mobile/impress/apply_paragraph_props_spec.js |    1 
 cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js        |  363 ++++++++++
 cypress_test/integration_tests/mobile/impress/impress_mobile_helper.js      |    3 
 6 files changed, 370 insertions(+), 3 deletions(-)

New commits:
commit d15e0dea8eaa9a2bb1cab379f2d85bbbc0026b7d
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Thu Jul 9 14:09:39 2020 +0200
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Thu Jul 9 15:34:55 2020 +0200

    cypress: fix removeTextSelection() helper method.
    
    Change-Id: If0b254eca495b57c8697ad17a53d0f7e952c6fba
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98430
    Tested-by: Jenkins
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>

diff --git a/cypress_test/integration_tests/mobile/calc/calc_mobile_helper.js b/cypress_test/integration_tests/mobile/calc/calc_mobile_helper.js
index 229c0be18..e26a84a95 100644
--- a/cypress_test/integration_tests/mobile/calc/calc_mobile_helper.js
+++ b/cypress_test/integration_tests/mobile/calc/calc_mobile_helper.js
@@ -20,6 +20,11 @@ function removeTextSelection() {
 		cy.get('.spreadsheet-cell-resize-marker')
 			.invoke('attr', 'style')
 			.should('contain', '-8px,');
+
+		var regex = /[A-Z]1:[A-Z]1048576/;
+		cy.get('input#addressInput')
+			.should('have.prop', 'value')
+			.should('match', regex);
 	}
 
 	cy.log('Removing text selection - end.');
commit fb316d601e84b608a01f3c77572c5a6eb710923a
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Thu Jul 9 11:56:43 2020 +0200
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Thu Jul 9 15:34:42 2020 +0200

    cypress: add some tests for impress's hamburger menu (mobile).
    
    Change-Id: Idc747ac6ebb47b2ec2da086ba7e597d3bc396bf1
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98427
    Tested-by: Jenkins
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Tamás Zolnai <tamas.zolnai at collabora.com>

diff --git a/cypress_test/data/mobile/impress/hamburger_menu.odp b/cypress_test/data/mobile/impress/hamburger_menu.odp
new file mode 100644
index 000000000..8907786e3
Binary files /dev/null and b/cypress_test/data/mobile/impress/hamburger_menu.odp differ
diff --git a/cypress_test/integration_tests/mobile/impress/apply_font_spec.js b/cypress_test/integration_tests/mobile/impress/apply_font_spec.js
index 71c91b3be..388b32a54 100644
--- a/cypress_test/integration_tests/mobile/impress/apply_font_spec.js
+++ b/cypress_test/integration_tests/mobile/impress/apply_font_spec.js
@@ -20,6 +20,7 @@ describe('Apply font on text and on text shape.', function() {
 	});
 
 	function triggerNewSVG() {
+		mobileHelper.closeMobileWizard();
 		impressMobileHelper.triggerNewSVGForShapeInTheCenter();
 	}
 
diff --git a/cypress_test/integration_tests/mobile/impress/apply_paragraph_props_spec.js b/cypress_test/integration_tests/mobile/impress/apply_paragraph_props_spec.js
index a49551dd2..b6539f2d2 100644
--- a/cypress_test/integration_tests/mobile/impress/apply_paragraph_props_spec.js
+++ b/cypress_test/integration_tests/mobile/impress/apply_paragraph_props_spec.js
@@ -20,6 +20,7 @@ describe('Apply paragraph properties.', function() {
 	});
 
 	function triggerNewSVG() {
+		mobileHelper.closeMobileWizard();
 		impressMobileHelper.triggerNewSVGForShapeInTheCenter();
 	}
 
diff --git a/cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js b/cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js
new file mode 100644
index 000000000..8f870fe83
--- /dev/null
+++ b/cypress_test/integration_tests/mobile/impress/hamburger_menu_spec.js
@@ -0,0 +1,363 @@
+/* global describe it cy require afterEach expect */
+
+var helper = require('../../common/helper');
+var mobileHelper = require('../../common/mobile_helper');
+var impressMobileHelper = require('./impress_mobile_helper');
+
+describe('Trigger hamburger menu options.', function() {
+	var testFileName = '';
+
+	function before(testFile) {
+		testFileName = testFile;
+		mobileHelper.beforeAllMobile(testFileName, 'impress');
+
+		// Click on edit button
+		mobileHelper.enableEditingMobile();
+	}
+
+	afterEach(function() {
+		helper.afterAll(testFileName);
+	});
+
+	function dblclickOnShape() {
+		cy.get('.transform-handler--rotate')
+			.then(function(items) {
+				expect(items).to.have.length(1);
+				var XPos = (items[0].getBoundingClientRect().left + items[0].getBoundingClientRect().right) / 2;
+				var YPos = items[0].getBoundingClientRect().bottom + 50;
+				cy.get('body')
+					.dblclick(XPos, YPos);
+			});
+	}
+
+	it('Save', function() {
+		before('hamburger_menu.odp');
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'File')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Save')
+			.click();
+
+		// TODO: we have no visual indicator of save was done
+		// So just trigger saving to catch any exception / console error
+		cy.wait(500);
+	});
+
+	it('Print', function() {
+		before('hamburger_menu.odp');
+
+		// A new window should be opened with the PDF.
+		cy.window()
+			.then(function(win) {
+				cy.stub(win, 'open');
+			});
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'File')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Print')
+			.click();
+
+		cy.window().its('open').should('be.called');
+	});
+
+	it('Download as PDF', function() {
+		before('hamburger_menu.odp');
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'Download as')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'PDF Document (.pdf)')
+			.click();
+
+		cy.get('iframe')
+			.should('have.attr', 'data-src')
+			.should('contain', 'document.pdf');
+	});
+
+	it('Download as ODP', function() {
+		before('hamburger_menu.odp');
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'Download as')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'ODF presentation (.odp)')
+			.click();
+
+		cy.get('iframe')
+			.should('have.attr', 'data-src')
+			.should('contain', 'document.odp');
+	});
+
+	it('Download as PPT', function() {
+		before('hamburger_menu.odp');
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'Download as')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'PowerPoint 2003 Presentation (.ppt)')
+			.click();
+
+		cy.get('iframe')
+			.should('have.attr', 'data-src')
+			.should('contain', 'document.ppt');
+	});
+
+	it('Download as PPTX', function() {
+		before('hamburger_menu.odp');
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'Download as')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'PowerPoint Presentation (.pptx)')
+			.click();
+
+		cy.get('iframe')
+			.should('have.attr', 'data-src')
+			.should('contain', 'document.pptx');
+	});
+
+	it('Undo/redo.', function() {
+		before('hamburger_menu.odp');
+
+		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('q');
+
+		impressMobileHelper.triggerNewSVGForShapeInTheCenter();
+
+		cy.get('.leaflet-pane.leaflet-overlay-pane g.Page .TextPosition tspan')
+			.should('have.text', 'Xq');
+
+		// Undo
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'Edit')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Undo')
+			.click();
+
+		impressMobileHelper.triggerNewSVGForShapeInTheCenter();
+
+		cy.get('.leaflet-pane.leaflet-overlay-pane g.Page .TextPosition tspan')
+			.should('have.text', 'X');
+
+		// Redo
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'Edit')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Redo')
+			.click();
+
+		impressMobileHelper.triggerNewSVGForShapeInTheCenter();
+
+		cy.get('.leaflet-pane.leaflet-overlay-pane g.Page .TextPosition tspan')
+			.should('have.text', 'Xq');
+	});
+
+	it('Repair.', function() {
+		before('hamburger_menu.odp');
+
+		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('q');
+
+		impressMobileHelper.triggerNewSVGForShapeInTheCenter();
+
+		cy.get('.leaflet-pane.leaflet-overlay-pane g.Page .TextPosition tspan')
+			.should('have.text', 'Xq');
+
+		// Revert one undo step via Repair
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'Edit')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Repair')
+			.click();
+
+		cy.get('.leaflet-popup-content')
+			.should('be.visible');
+
+		cy.get('.leaflet-popup-content table tr:nth-of-type(2)')
+			.should('contain.text', 'Undo');
+
+		cy.get('.leaflet-popup-content table tr:nth-of-type(2)')
+			.click();
+
+		cy.get('.leaflet-popup-content input[value=\'Jump to state\']')
+			.click();
+
+		impressMobileHelper.triggerNewSVGForShapeInTheCenter();
+
+		cy.get('.leaflet-pane.leaflet-overlay-pane g.Page .TextPosition tspan')
+			.should('have.text', 'X');
+	});
+
+	it('Cut.', function() {
+		before('hamburger_menu.odp');
+
+		impressMobileHelper.selectTextShapeInTheCenter();
+		impressMobileHelper.selectTextOfShape();
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'Edit')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Cut')
+			.click();
+
+		// TODO: cypress does not support clipboard operations
+		// so we get a warning dialog here.
+		cy.get('.vex-dialog-form')
+			.should('be.visible');
+
+		cy.get('.vex-dialog-message')
+			.should('have.text', 'Please use the copy/paste buttons on your on-screen keyboard.');
+
+		cy.get('.vex-dialog-button-primary.vex-dialog-button.vex-first')
+			.click();
+
+		cy.get('.vex-dialog-form')
+			.should('not.be.visible');
+	});
+
+	it('Copy.', function() {
+		before('hamburger_menu.odp');
+
+		impressMobileHelper.selectTextShapeInTheCenter();
+		impressMobileHelper.selectTextOfShape();
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'Edit')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Copy')
+			.click();
+
+		// TODO: cypress does not support clipboard operations
+		// so we get a warning dialog here.
+		cy.get('.vex-dialog-form')
+			.should('be.visible');
+
+		cy.get('.vex-dialog-message')
+			.should('have.text', 'Please use the copy/paste buttons on your on-screen keyboard.');
+
+		cy.get('.vex-dialog-button-primary.vex-dialog-button.vex-first')
+			.click();
+
+		cy.get('.vex-dialog-form')
+			.should('not.be.visible');
+	});
+
+	it('Paste.', function() {
+		before('hamburger_menu.odp');
+
+		impressMobileHelper.selectTextShapeInTheCenter();
+		impressMobileHelper.selectTextOfShape();
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'Edit')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Paste')
+			.click();
+
+		// TODO: cypress does not support clipboard operations
+		// so we get a warning dialog here.
+		cy.get('.vex-dialog-form')
+			.should('be.visible');
+
+		cy.get('.vex-dialog-message')
+			.should('have.text', 'Please use the copy/paste buttons on your on-screen keyboard.');
+
+		cy.get('.vex-dialog-button-primary.vex-dialog-button.vex-first')
+			.click();
+
+		cy.get('.vex-dialog-form')
+			.should('not.be.visible');
+	});
+
+	it('Select all.', function() {
+		before('hamburger_menu.odp');
+
+		impressMobileHelper.selectTextShapeInTheCenter();
+		dblclickOnShape();
+
+		cy.get('#copy-paste-container pre')
+			.should('not.exist');
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'Edit')
+			.click();
+
+		cy.contains('.menu-entry-with-icon', 'Select All')
+			.click();
+
+		cy.get('.leaflet-marker-icon')
+			.should('be.visible');
+
+		helper.expectTextForClipboard('X');
+	});
+
+	it('Search some word.', function() {
+		before('hamburger_menu.odp');
+
+		mobileHelper.openHamburgerMenu();
+
+		cy.contains('.menu-entry-with-icon', 'Search')
+			.click();
+
+		// Search bar become visible
+		cy.get('#mobile-wizard-content')
+			.should('not.be.empty');
+
+		// Search for some word
+		helper.inputOnIdle('#searchterm', 'X');
+
+		cy.get('#search')
+			.should('not.have.attr', 'disabled');
+
+		helper.clickOnIdle('#search');
+
+		// A shape and some text should be selected
+		cy.get('.transform-handler--rotate')
+			.should('be.visible');
+		cy.get('.leaflet-selection-marker-start')
+			.should('be.visible');
+	});
+});
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 141ad6b11..24f2caade 100644
--- a/cypress_test/integration_tests/mobile/impress/impress_mobile_helper.js
+++ b/cypress_test/integration_tests/mobile/impress/impress_mobile_helper.js
@@ -1,7 +1,6 @@
 /* globals cy expect require */
 
 var helper = require('../../common/helper');
-var mobileHelper = require('../../common/mobile_helper');
 
 function selectTextShapeInTheCenter() {
 	// Click on the center of the slide to select the text shape there
@@ -42,8 +41,6 @@ function selectTextOfShape() {
 }
 
 function triggerNewSVGForShapeInTheCenter() {
-	mobileHelper.closeMobileWizard();
-
 	// Remove selection first with clicking next to the rotate handler
 	cy.get('.transform-handler--rotate')
 		.then(function(items) {


More information about the Libreoffice-commits mailing list