[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
Wed Jul 29 11:00:47 UTC 2020


 cypress_test/Makefile.am                                                   |    3 
 cypress_test/data/multiuser/simultaneous_typing.odt                        |binary
 cypress_test/integration_tests/common/helper.js                            |    4 
 cypress_test/integration_tests/multiuser/simultaneous_typing_user1_spec.js |   49 ++++++++++
 cypress_test/integration_tests/multiuser/simultaneous_typing_user2_spec.js |   45 +++++++++
 5 files changed, 98 insertions(+), 3 deletions(-)

New commits:
commit 27d3055dcfc56f1c08ee5cf4ffefa27aeeac5aeb
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Wed Jul 29 11:14:30 2020 +0200
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Wed Jul 29 13:00:28 2020 +0200

    cypress: add a simultaneous typing multi-user test.
    
    Change-Id: Ib4c410f95443c3775626465d474f52499705da97
    Reviewed-on: https://gerrit.libreoffice.org/c/online/+/99676
    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/Makefile.am b/cypress_test/Makefile.am
index 233915b35..a3f153c20 100644
--- a/cypress_test/Makefile.am
+++ b/cypress_test/Makefile.am
@@ -64,7 +64,8 @@ DEKSTOP_TEST_FILES=$(subst $(DESKTOP_TEST_FOLDER)/,,$(wildcard $(DESKTOP_TEST_FO
 
 MULTIUSER_TEST_FILES= \
 	paragraph_prop_user1_spec.js,paragraph_prop_user2_spec.js \
-	sidebar_visibility_user1_spec.js,sidebar_visibility_user2_spec.js
+	sidebar_visibility_user1_spec.js,sidebar_visibility_user2_spec.js \
+	simultaneous_typing_user1_spec.js,simultaneous_typing_user2_spec.js
 
 MOBILE_TEST_FILES_DONE= \
 	$(foreach test_file,$(MOBILE_TEST_FILES),$(MOBILE_TRACK_FOLDER)/$(test_file).done)
diff --git a/cypress_test/data/multiuser/simultaneous_typing.odt b/cypress_test/data/multiuser/simultaneous_typing.odt
new file mode 100644
index 000000000..3c97e9549
Binary files /dev/null and b/cypress_test/data/multiuser/simultaneous_typing.odt differ
diff --git a/cypress_test/integration_tests/common/helper.js b/cypress_test/integration_tests/common/helper.js
index d206d63a8..675391ea9 100644
--- a/cypress_test/integration_tests/common/helper.js
+++ b/cypress_test/integration_tests/common/helper.js
@@ -249,9 +249,9 @@ function doIfInWriter(callback) {
 // Sometimes cy.type results in random character insertion,
 // this avoids that, which is not clear why it happens.
 function typeText(selector, text, delayMs=0) {
-	var elem= cy.get(selector);
 	for (var i = 0; i < text.length; i++) {
-		elem.type(text.charAt(i));
+		cy.get(selector)
+			.type(text.charAt(i));
 		if (delayMs > 0)
 			cy.wait(delayMs);
 	}
diff --git a/cypress_test/integration_tests/multiuser/simultaneous_typing_user1_spec.js b/cypress_test/integration_tests/multiuser/simultaneous_typing_user1_spec.js
new file mode 100644
index 000000000..e618512dc
--- /dev/null
+++ b/cypress_test/integration_tests/multiuser/simultaneous_typing_user1_spec.js
@@ -0,0 +1,49 @@
+/* global describe it cy beforeEach require afterEach */
+
+var helper = require('../common/helper');
+
+describe('Simultaneous typing: user-1.', function() {
+	var testFileName = 'simultaneous_typing.odt';
+
+	beforeEach(function() {
+		helper.beforeAllDesktop(testFileName);
+	});
+
+	afterEach(function() {
+		helper.afterAll(testFileName);
+	});
+
+	it('Simultaneous typing.', function() {
+		// user-2 loads the same document
+
+		cy.get('#tb_actionbar_item_userlist')
+			.should('be.visible');
+
+		cy.get('#tb_actionbar_item_userlist .w2ui-tb-caption')
+			.should('have.text', '2 users');
+
+		// We have a table in the document, move the cursor into the second row.
+		cy.get('textarea.clipboard')
+			.type('{downarrow}');
+		// And now type some text, while user-2 does the same.
+		var text = 'qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq';
+		helper.typeText('textarea.clipboard', text, 100);
+
+		helper.selectAllText();
+
+		cy.get('#copy-paste-container p')
+			.should('have.text', text);
+
+		// Change paragraph alignment to trigger user-2 actions
+		cy.get('textarea.clipboard')
+			.type('{uparrow}');
+
+		cy.get('#tb_editbar_item_centerpara .w2ui-button')
+			.click();
+
+		// user-2 changes the paragraph alignment after finished
+		cy.get('#tb_editbar_item_rightpara .w2ui-button')
+			.should('have.class', 'checked');
+	});
+
+});
diff --git a/cypress_test/integration_tests/multiuser/simultaneous_typing_user2_spec.js b/cypress_test/integration_tests/multiuser/simultaneous_typing_user2_spec.js
new file mode 100644
index 000000000..5e4eea2ee
--- /dev/null
+++ b/cypress_test/integration_tests/multiuser/simultaneous_typing_user2_spec.js
@@ -0,0 +1,45 @@
+/* global describe it cy beforeEach require afterEach */
+
+var helper = require('../common/helper');
+
+describe('Simultaneous typing: user-2.', function() {
+	var testFileName = 'simultaneous_typing.odt';
+
+	beforeEach(function() {
+		// Wait here, before loading the document.
+		// Opening two clients at the same time causes an issue.
+		cy.wait(5000);
+		helper.beforeAllDesktop(testFileName);
+	});
+
+	afterEach(function() {
+		helper.afterAll(testFileName);
+	});
+
+	it('Simultaneous typing.', function() {
+		// user-1 loads the same document
+
+		cy.get('#tb_actionbar_item_userlist')
+			.should('be.visible');
+
+		cy.get('#tb_actionbar_item_userlist .w2ui-tb-caption')
+			.should('have.text', '2 users');
+
+		// Now type some text, while user-1 does the same.
+		var text = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
+		helper.typeText('textarea.clipboard', text, 100);
+
+		helper.selectAllText();
+
+		cy.get('#copy-paste-container p')
+			.should('have.text', text);
+
+		// user-1 changes the paragraph alignment after finished
+		cy.get('#tb_editbar_item_centerpara .w2ui-button')
+			.should('have.class', 'checked');
+
+		// Change paragraph alignment to trigger user-2 actions
+		cy.get('#tb_editbar_item_rightpara .w2ui-button')
+			.click();
+	});
+});


More information about the Libreoffice-commits mailing list