[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