[Libreoffice-commits] online.git: Branch 'feature/cypress_integration' - 8 commits - cypress_test/cypress.json cypress_test/data cypress_test/.eslintignore cypress_test/.gitignore cypress_test/integration_tests cypress_test/Makefile.am cypress_test/package.json cypress_test/plugins cypress_test/README

Tamás Zolnai (via logerrit) logerrit at kemper.freedesktop.org
Tue Jan 14 18:41:27 UTC 2020


 cypress_test/.eslintignore                                           |    2 
 cypress_test/.gitignore                                              |    3 
 cypress_test/Makefile.am                                             |   56 +
 cypress_test/README                                                  |   15 
 cypress_test/cypress.json                                            |    4 
 cypress_test/data/desktop/simple.odt                                 |binary
 cypress_test/data/mobile/empty.odt                                   |binary
 cypress_test/integration_tests/desktop/example_desktop_test_spec.js  |   50 -
 cypress_test/integration_tests/desktop/example_desktop_test_spec2.js |   50 -
 cypress_test/integration_tests/mobile/toolbar_spec.js                |  392 +++++-----
 cypress_test/package.json                                            |    4 
 cypress_test/plugins/index.js                                        |   13 
 cypress_test/plugins/tasks.js                                        |   19 
 13 files changed, 357 insertions(+), 251 deletions(-)

New commits:
commit 504cc5296478aee08d53ec3b2bd04e9ea98c4bad
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue Jan 14 19:37:17 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Jan 14 19:40:41 2020 +0100

    cypress: Introduce make rules for running group of tests.
    
    It can handle dependencies and can use environment
    variables.
    
    Change-Id: Ib386cb7019d85b3dbd6c28417b3a481944b18aca

diff --git a/cypress_test/Makefile.am b/cypress_test/Makefile.am
index 5af4c338e..529939da9 100644
--- a/cypress_test/Makefile.am
+++ b/cypress_test/Makefile.am
@@ -7,11 +7,34 @@ MOBILE_USER_AGENT = "cypress mobile test"
 if HAVE_LO_PATH
 check-local: @JAILS_PATH@
 	@npm install
-	@echo "Checking for loleaflet JS errors..."
-	@NODE_PATH=$(abs_srcdir)/node_modules $(NODE) node_modules/eslint/bin/eslint.js $(abs_srcdir) \
-			--ignore-path $(abs_srcdir)/.eslintignore --config $(abs_top_srcdir)/loleaflet/.eslintrc
+	$(call run_JS_error_check)
+	$(call start_loolwsd)
+	$(call run_desktop_tests)
+	$(call run_mobile_tests)
+	@pkill loolwsd || true
+
+check-desktop: @JAILS_PATH@
+	@npm install
+	$(call run_JS_error_check)
+	$(call start_loolwsd)
+	$(call run_desktop_tests)
+	@pkill loolwsd || true
+
+check-mobile: @JAILS_PATH@
+	@npm install
+	$(call run_JS_error_check)
+	$(call start_loolwsd)
+	$(call run_mobile_tests)
+	@pkill loolwsd || true
 
+define run_JS_error_check
+	@echo "Checking for cypress JS errors..."
+	@NODE_PATH=$(abs_srcdir)/node_modules $(NODE) node_modules/eslint/bin/eslint.js $(abs_srcdir) \
+		--ignore-path $(abs_srcdir)/.eslintignore --config $(abs_top_srcdir)/loleaflet/.eslintrc
 	@echo
+endef
+
+define start_loolwsd
 	@pkill loolwsd || true
 	@echo "Launching loolwsd for testing.."
 	@fc-cache "@LO_PATH@"/share/fonts/truetype
@@ -25,6 +48,10 @@ check-local: @JAILS_PATH@
 			--o:logging.file[@enable]=true --o:logging.level=trace > /dev/null 2>&1 &
 	@sleep 10
 	@echo
+endef
+
+define run_desktop_tests
+	@echo
 	@echo "Running cypress desktop tests..."
 	@echo
 	$(CYPRESS_BINARY) run --browser chrome \
@@ -32,6 +59,9 @@ check-local: @JAILS_PATH@
 			--headless \
 			--env DATA_FOLDER=$(abs_srcdir)/data/desktop/,WORKDIR=$(abs_srcdir)/workdir/desktop/ || \
 			(pkill loolwsd && false)
+endef
+
+define run_mobile_tests
 	@echo
 	@echo "Running cypress mobile tests..."
 	@echo
@@ -40,7 +70,8 @@ check-local: @JAILS_PATH@
 			--headless \
 			--env DATA_FOLDER=$(abs_srcdir)/data/mobile/,WORKDIR=$(abs_srcdir)/workdir/mobile/ || \
 			(pkill loolwsd && false)
-	@pkill loolwsd || true
+endef
+
 endif
 
 clean-local:
diff --git a/cypress_test/README b/cypress_test/README
index 86f1c77b2..c5841b9dc 100644
--- a/cypress_test/README
+++ b/cypress_test/README
@@ -20,11 +20,11 @@ command under cypress_test\ folder.
 
 To run all desktop tests:
 
-    npm run cyrun_desktop
+    make check-desktop
 
 To run all mobile tests:
 
-    npm run cyrun_mobile
+    make check-mobile
 
 To run one specific test suit of desktop tests:
 
commit 2f81c9ebb91ed1d3106a239fdc5ae0180d5e302e
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue Jan 14 19:14:18 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Jan 14 19:36:16 2020 +0100

    cypress: Use eslint to check coding conventions during build.
    
    Use loleaflet's config file to have the same
    conventions under cypress_test folder too.
    Update test code to pass esling check.
    
    Change-Id: Iade932e6d3cd8941b5fc0897c56c68d2493f0dce

diff --git a/cypress_test/.eslintignore b/cypress_test/.eslintignore
new file mode 100644
index 000000000..308b8fdc1
--- /dev/null
+++ b/cypress_test/.eslintignore
@@ -0,0 +1,2 @@
+# We only directly edit toolbar.js in dist/
+**/cypress
diff --git a/cypress_test/Makefile.am b/cypress_test/Makefile.am
index cbee18e7d..5af4c338e 100644
--- a/cypress_test/Makefile.am
+++ b/cypress_test/Makefile.am
@@ -1,4 +1,4 @@
-CYPRESS_BINARY = ${top_srcdir}/cypress_test/node_modules/cypress/bin/cypress
+CYPRESS_BINARY = ${abs_srcdir}/node_modules/cypress/bin/cypress
 
 DESKTOP_TEST_FOLDER = integration_tests/desktop
 MOBILE_TEST_FOLDER = integration_tests/mobile
@@ -7,6 +7,10 @@ MOBILE_USER_AGENT = "cypress mobile test"
 if HAVE_LO_PATH
 check-local: @JAILS_PATH@
 	@npm install
+	@echo "Checking for loleaflet JS errors..."
+	@NODE_PATH=$(abs_srcdir)/node_modules $(NODE) node_modules/eslint/bin/eslint.js $(abs_srcdir) \
+			--ignore-path $(abs_srcdir)/.eslintignore --config $(abs_top_srcdir)/loleaflet/.eslintrc
+
 	@echo
 	@pkill loolwsd || true
 	@echo "Launching loolwsd for testing.."
@@ -26,7 +30,7 @@ check-local: @JAILS_PATH@
 	$(CYPRESS_BINARY) run --browser chrome \
 			--config integrationFolder=$(DESKTOP_TEST_FOLDER) \
 			--headless \
-			--env DATA_FOLDER=$(abs_top_srcdir)/cypress_test/data/desktop/,WORKDIR=$(abs_top_srcdir)/cypress_test/workdir/desktop/ || \
+			--env DATA_FOLDER=$(abs_srcdir)/data/desktop/,WORKDIR=$(abs_srcdir)/workdir/desktop/ || \
 			(pkill loolwsd && false)
 	@echo
 	@echo "Running cypress mobile tests..."
@@ -34,7 +38,7 @@ check-local: @JAILS_PATH@
 	$(CYPRESS_BINARY) run --browser chrome \
 			--config integrationFolder=$(MOBILE_TEST_FOLDER),userAgent=$(MOBILE_USER_AGENT) \
 			--headless \
-			--env DATA_FOLDER=$(abs_top_srcdir)/cypress_test/data/mobile/,WORKDIR=$(abs_top_srcdir)/cypress_test/workdir/mobile/ || \
+			--env DATA_FOLDER=$(abs_srcdir)/data/mobile/,WORKDIR=$(abs_srcdir)/workdir/mobile/ || \
 			(pkill loolwsd && false)
 	@pkill loolwsd || true
 endif
diff --git a/cypress_test/integration_tests/desktop/example_desktop_test_spec.js b/cypress_test/integration_tests/desktop/example_desktop_test_spec.js
index c09604996..8a39b455f 100644
--- a/cypress_test/integration_tests/desktop/example_desktop_test_spec.js
+++ b/cypress_test/integration_tests/desktop/example_desktop_test_spec.js
@@ -1,37 +1,39 @@
+/* global describe it cy Cypress */
+
 describe('Example test suit 1', function() {
-  it('Example test case 1', function() {
-    // Get a clean test document
-    cy.task('copyFile', {
-      source_dir: Cypress.env('DATA_FOLDER'),
-      dest_dir: Cypress.env('WORKDIR'),
-      file_name: 'simple.odt',
-    });
+	it('Example test case 1', function() {
+		// Get a clean test document
+		cy.task('copyFile', {
+			sourceDir: Cypress.env('DATA_FOLDER'),
+			destDir: Cypress.env('WORKDIR'),
+			fileName: 'simple.odt',
+		});
 
-    // Open test document
-    cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file://' +
-      Cypress.env('WORKDIR') + 'simple.odt')
+		// Open test document
+		cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file://' +
+		Cypress.env('WORKDIR') + 'simple.odt')
 
-    // Wait for the document to fully load
-    cy.get('.leaflet-tile-loaded')
+		// Wait for the document to fully load
+		cy.get('.leaflet-tile-loaded')
 
-    // Select a text
-    cy.get('#document-container').dblclick()
-    cy.get(".leaflet-marker-icon")
+		// Select a text
+		cy.get('#document-container').dblclick()
+		cy.get('.leaflet-marker-icon')
 
-    // Click on bold toolbar button
-    cy.get('#tb_editbar_item_bold').click()
+		// Click on bold toolbar button
+		cy.get('#tb_editbar_item_bold').click()
 
-    // Remove selection and do a reselection
-    cy.get('#document-container').click()
-    cy.get('.leaflet-marker-icon').should('not.be.visible');
+		// Remove selection and do a reselection
+		cy.get('#document-container').click()
+		cy.get('.leaflet-marker-icon').should('not.be.visible');
 
-    cy.get('#document-container').dblclick()
-    cy.get(".leaflet-marker-icon")
+		cy.get('#document-container').dblclick()
+		cy.get('.leaflet-marker-icon')
 
-    // Bold toolbar button is checked
-    cy.get('#tb_editbar_item_bold table.w2ui-button.checked')
+		// Bold toolbar button is checked
+		cy.get('#tb_editbar_item_bold table.w2ui-button.checked')
 
-    // Click on bold toolbar button
-    cy.get('#tb_editbar_item_bold').click()
-  })
+		// Click on bold toolbar button
+		cy.get('#tb_editbar_item_bold').click()
+	})
 })
diff --git a/cypress_test/integration_tests/desktop/example_desktop_test_spec2.js b/cypress_test/integration_tests/desktop/example_desktop_test_spec2.js
index 63a9a43ca..163a28c84 100644
--- a/cypress_test/integration_tests/desktop/example_desktop_test_spec2.js
+++ b/cypress_test/integration_tests/desktop/example_desktop_test_spec2.js
@@ -1,37 +1,39 @@
+/* global describe it cy Cypress */
+
 describe('Example test suit 2', function() {
-  it('Example test case 1', function() {
-    // Get a clean test document
-    cy.task('copyFile', {
-      source_dir: Cypress.env('DATA_FOLDER'),
-      dest_dir: Cypress.env('WORKDIR'),
-      file_name: 'simple.odt',
-    });
+	it('Example test case 1', function() {
+		// Get a clean test document
+		cy.task('copyFile', {
+			sourceDir: Cypress.env('DATA_FOLDER'),
+			destDir: Cypress.env('WORKDIR'),
+			fileName: 'simple.odt',
+		});
 
-    // Open test document
-    cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file://' +
-      Cypress.env('WORKDIR') + 'simple.odt')
+		// Open test document
+		cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file://' +
+			Cypress.env('WORKDIR') + 'simple.odt')
 
-    // Wait for the document to fully load
-    cy.get('.leaflet-tile-loaded')
+		// Wait for the document to fully load
+		cy.get('.leaflet-tile-loaded')
 
-    // Select a text
-    cy.get('#document-container').dblclick()
-    cy.get(".leaflet-marker-icon")
+		// Select a text
+		cy.get('#document-container').dblclick()
+		cy.get('.leaflet-marker-icon')
 
-    // Click on bold toolbar button
-    cy.get('#tb_editbar_item_italic').click()
+		// Click on bold toolbar button
+		cy.get('#tb_editbar_item_italic').click()
 
-    // Remove selection and do a reselection
-    cy.get('#document-container').click()
-    cy.get('.leaflet-marker-icon').should('not.be.visible');
+		// Remove selection and do a reselection
+		cy.get('#document-container').click()
+		cy.get('.leaflet-marker-icon').should('not.be.visible');
 
-    cy.get('#document-container').dblclick()
-    cy.get(".leaflet-marker-icon")
+		cy.get('#document-container').dblclick()
+		cy.get('.leaflet-marker-icon')
 
-    // Bold toolbar button is checked
-    cy.get('#tb_editbar_item_italic table.w2ui-button.checked')
+		// Bold toolbar button is checked
+		cy.get('#tb_editbar_item_italic table.w2ui-button.checked')
 
-    // Click on bold toolbar button
-    cy.get('#tb_editbar_item_italic').click()
-  })
+		// Click on bold toolbar button
+		cy.get('#tb_editbar_item_italic').click()
+	})
 })
diff --git a/cypress_test/integration_tests/mobile/toolbar_spec.js b/cypress_test/integration_tests/mobile/toolbar_spec.js
index a7df48fa4..3ef580d3a 100644
--- a/cypress_test/integration_tests/mobile/toolbar_spec.js
+++ b/cypress_test/integration_tests/mobile/toolbar_spec.js
@@ -1,201 +1,203 @@
+/* global describe it cy Cypress beforeEach*/
+
 describe('Toolbar tests', function() {
-  beforeEach(function() {
-    // Get a clean test document
-    cy.task('copyFile', {
-      source_dir: Cypress.env('DATA_FOLDER'),
-      dest_dir: Cypress.env('WORKDIR'),
-      file_name: 'empty.odt',
-    });
-
-    // Open test document
-    cy.viewport('iphone-3')
-    cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file://' +
-      Cypress.env('WORKDIR') + 'empty.odt')
-
-    // Wait for the document to fully load
-    cy.get('.leaflet-tile-loaded')
-  });
-
-  it('State of mobile wizard toolbar item.', function() {
-    // Mobile wizard toolbar button is disabled by default
-    cy.get('#tb_actionbar_item_mobile_wizard')
-      .should('have.class', 'disabled')
-
-    // Click on edit button
-    cy.get('#mobile-edit-button').click()
-
-    // Button should be enabled now
-    cy.get('#tb_actionbar_item_mobile_wizard')
-      .should('not.have.class', 'disabled')
-  })
-
-  it('State of insertion mobile wizard toolbar item.', function() {
-    // Insertion mobile wizard toolbar button is disabled by default
-    cy.get('#tb_actionbar_item_insertion_mobile_wizard')
-      .should('have.class', 'disabled')
-
-    // Click on edit button
-    cy.get('#mobile-edit-button').click()
-
-    // Button should be enabled now
-    cy.get('#tb_actionbar_item_insertion_mobile_wizard')
-      .should('not.have.class', 'disabled')
-  })
-
-  it('State of insert comment toolbar item.', function() {
-    // Insertion mobile wizard toolbar button is disabled by default
-    cy.get('#tb_actionbar_item_insertcomment')
-      .should('have.class', 'disabled')
-
-    // Click on edit button
-    cy.get('#mobile-edit-button').click()
-
-    // Button should be enabled now
-    cy.get('#tb_actionbar_item_insertcomment')
-      .should('not.have.class', 'disabled')
-  })
-
-  it('State of undo toolbar item.', function() {
-    // Insertion mobile wizard toolbar button is disabled by default
-    cy.get('#tb_actionbar_item_undo')
-      .should('have.class', 'disabled')
-
-    // Click on edit button
-    cy.get('#mobile-edit-button').click()
-
-    // Button should be still disabled
-    cy.get('#tb_actionbar_item_undo')
-      .should('have.class', 'disabled')
-
-    // Type somthing in the document
-    cy.get('#document-container').type("x")
-
-    // Button should become enabled
-    cy.get('#tb_actionbar_item_undo')
-      .should('not.have.class', 'disabled')
-  })
-
-  it('State of redo toolbar item.', function() {
-    // Insertion mobile wizard toolbar button is disabled by default
-    cy.get('#tb_actionbar_item_redo')
-      .should('have.class', 'disabled')
-
-    // Click on edit button
-    cy.get('#mobile-edit-button').click()
-
-    // Button should be still disabled
-    cy.get('#tb_actionbar_item_redo')
-      .should('have.class', 'disabled')
-
-    // Type somthing in the document
-    cy.get('#document-container').type("x")
-
-    // Button should be still disabled
-    cy.get('#tb_actionbar_item_redo')
-      .should('have.class', 'disabled')
-
-    // Do an undo
-    cy.get('#tb_actionbar_item_undo')
-      .should('not.have.class', 'disabled')
-    cy.get('#tb_actionbar_item_undo').click()
-
-    // Button should become enabled
-    cy.get('#tb_actionbar_item_redo')
-      .should('not.have.class', 'disabled')
-  })
-
-  it('Open and close mobile wizard by toolbar item.', function() {
-    // Click on edit button
-    cy.get('#mobile-edit-button').click()
-
-    // Click on mobile wizard toolbar item
-    cy.get('#tb_actionbar_item_mobile_wizard')
-      .should('not.have.class', 'disabled')
-      .click()
-
-    // Mobile wizard is opened and it has any content
-    cy.get('#mobile-wizard-content')
-      .should('not.be.empty');
-
-    // Toolbar button is checked
-    cy.get('#tb_actionbar_item_mobile_wizard table')
-      .should('have.class', 'checked')
-
-    cy.get('#tb_actionbar_item_mobile_wizard')
-      .click()
-
-    // Mobile wizard is closed
-    cy.get('#mobile_wizard')
-      .should('not.be.visible');
-
-    cy.get('#tb_actionbar_item_mobile_wizard table')
-      .should('not.have.class', 'checked')
-
-    // Open mobile wizard again
-    cy.get('#tb_actionbar_item_mobile_wizard')
-      .click()
-
-    // Mobile wizard is opened and it has any content
-    // TODO: fix this bug
-    /*cy.get('#mobile-wizard-content')
-      .should('not.be.empty'); */
-  })
-
-  it('Open and close insertion mobile wizard by toolbar item.', function() {
-    // Click on edit button
-    cy.get('#mobile-edit-button').click()
-
-    // Click on toolbar item
-    cy.get('#tb_actionbar_item_insertion_mobile_wizard')
-      .should('not.have.class', 'disabled')
-      .click()
-
-    // Mobile wizard is opened and it has any content
-    cy.get('#mobile-wizard-content')
-      .should('not.be.empty');
-
-    // Toolbar button is checked
-    cy.get('#tb_actionbar_item_insertion_mobile_wizard table')
-      .should('have.class', 'checked')
-
-    // Click on toolbar item again
-    cy.get('#tb_actionbar_item_insertion_mobile_wizard')
-      .click()
-
-    // Mobile wizard is closed
-    cy.get('#mobile_wizard')
-      .should('not.be.visible');
-
-    cy.get('#tb_actionbar_item_insertion_mobile_wizard table')
-      .should('not.have.class', 'checked')
-
-    // Open mobile wizard again
-    cy.get('#tb_actionbar_item_insertion_mobile_wizard')
-      .click()
-
-    // Mobile wizard is opened and it has any content
-    cy.get('#mobile-wizard-content')
-      .should('not.be.empty');
-  })
-
-  it('Open insert comment dialog by toolbar item.', function() {
-    // Click on edit button
-    cy.get('#mobile-edit-button').click()
-
-    // Click on toolbar item
-    cy.get('#tb_actionbar_item_insertcomment')
-      .should('not.have.class', 'disabled')
-      .click()
-
-    // Comment insertion dialog is opened
-    cy.get('.loleaflet-annotation-table')
-      .should('be.visible');
-
-    // Close the dialog
-    cy.contains('Cancel')
-      .click()
-
-    cy.get('.loleaflet-annotation-table')
-      .should('be.not.visible');
-  })
+	beforeEach(function() {
+		// Get a clean test document
+		cy.task('copyFile', {
+			sourceDir: Cypress.env('DATA_FOLDER'),
+			destDir: Cypress.env('WORKDIR'),
+			fileName: 'empty.odt',
+		});
+
+		// Open test document
+		cy.viewport('iphone-3')
+		cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file://' +
+			Cypress.env('WORKDIR') + 'empty.odt')
+
+		// Wait for the document to fully load
+		cy.get('.leaflet-tile-loaded')
+	});
+
+	it('State of mobile wizard toolbar item.', function() {
+		// Mobile wizard toolbar button is disabled by default
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.should('have.class', 'disabled')
+
+		// Click on edit button
+		cy.get('#mobile-edit-button').click()
+
+		// Button should be enabled now
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.should('not.have.class', 'disabled')
+	})
+
+	it('State of insertion mobile wizard toolbar item.', function() {
+		// Insertion mobile wizard toolbar button is disabled by default
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.should('have.class', 'disabled')
+
+		// Click on edit button
+		cy.get('#mobile-edit-button').click()
+
+		// Button should be enabled now
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.should('not.have.class', 'disabled')
+	})
+
+	it('State of insert comment toolbar item.', function() {
+		// Insertion mobile wizard toolbar button is disabled by default
+		cy.get('#tb_actionbar_item_insertcomment')
+			.should('have.class', 'disabled')
+
+		// Click on edit button
+		cy.get('#mobile-edit-button').click()
+
+		// Button should be enabled now
+		cy.get('#tb_actionbar_item_insertcomment')
+			.should('not.have.class', 'disabled')
+	})
+
+	it('State of undo toolbar item.', function() {
+		// Insertion mobile wizard toolbar button is disabled by default
+		cy.get('#tb_actionbar_item_undo')
+			.should('have.class', 'disabled')
+
+		// Click on edit button
+		cy.get('#mobile-edit-button').click()
+
+		// Button should be still disabled
+		cy.get('#tb_actionbar_item_undo')
+			.should('have.class', 'disabled')
+
+		// Type somthing in the document
+		cy.get('#document-container').type('x')
+
+		// Button should become enabled
+		cy.get('#tb_actionbar_item_undo')
+			.should('not.have.class', 'disabled')
+	})
+
+	it('State of redo toolbar item.', function() {
+		// Insertion mobile wizard toolbar button is disabled by default
+		cy.get('#tb_actionbar_item_redo')
+			.should('have.class', 'disabled')
+
+		// Click on edit button
+		cy.get('#mobile-edit-button').click()
+
+		// Button should be still disabled
+		cy.get('#tb_actionbar_item_redo')
+			.should('have.class', 'disabled')
+
+		// Type somthing in the document
+		cy.get('#document-container').type('x')
+
+		// Button should be still disabled
+		cy.get('#tb_actionbar_item_redo')
+			.should('have.class', 'disabled')
+
+		// Do an undo
+		cy.get('#tb_actionbar_item_undo')
+			.should('not.have.class', 'disabled')
+		cy.get('#tb_actionbar_item_undo').click()
+
+		// Button should become enabled
+		cy.get('#tb_actionbar_item_redo')
+			.should('not.have.class', 'disabled')
+	})
+
+	it('Open and close mobile wizard by toolbar item.', function() {
+		// Click on edit button
+		cy.get('#mobile-edit-button').click()
+
+		// Click on mobile wizard toolbar item
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.should('not.have.class', 'disabled')
+			.click()
+
+		// Mobile wizard is opened and it has any content
+		cy.get('#mobile-wizard-content')
+			.should('not.be.empty');
+
+		// Toolbar button is checked
+		cy.get('#tb_actionbar_item_mobile_wizard table')
+			.should('have.class', 'checked')
+
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click()
+
+		// Mobile wizard is closed
+		cy.get('#mobile_wizard')
+			.should('not.be.visible');
+
+		cy.get('#tb_actionbar_item_mobile_wizard table')
+			.should('not.have.class', 'checked')
+
+		// Open mobile wizard again
+		cy.get('#tb_actionbar_item_mobile_wizard')
+			.click()
+
+		// Mobile wizard is opened and it has any content
+		// TODO: fix this bug
+		/*cy.get('#mobile-wizard-content')
+			.should('not.be.empty'); */
+	})
+
+	it('Open and close insertion mobile wizard by toolbar item.', function() {
+		// Click on edit button
+		cy.get('#mobile-edit-button').click()
+
+		// Click on toolbar item
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.should('not.have.class', 'disabled')
+			.click()
+
+		// Mobile wizard is opened and it has any content
+		cy.get('#mobile-wizard-content')
+			.should('not.be.empty');
+
+		// Toolbar button is checked
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard table')
+			.should('have.class', 'checked')
+
+		// Click on toolbar item again
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click()
+
+		// Mobile wizard is closed
+		cy.get('#mobile_wizard')
+			.should('not.be.visible');
+
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard table')
+			.should('not.have.class', 'checked')
+
+		// Open mobile wizard again
+		cy.get('#tb_actionbar_item_insertion_mobile_wizard')
+			.click()
+
+		// Mobile wizard is opened and it has any content
+		cy.get('#mobile-wizard-content')
+			.should('not.be.empty');
+	})
+
+	it('Open insert comment dialog by toolbar item.', function() {
+		// Click on edit button
+		cy.get('#mobile-edit-button').click()
+
+		// Click on toolbar item
+		cy.get('#tb_actionbar_item_insertcomment')
+			.should('not.have.class', 'disabled')
+			.click()
+
+		// Comment insertion dialog is opened
+		cy.get('.loleaflet-annotation-table')
+			.should('be.visible');
+
+		// Close the dialog
+		cy.contains('Cancel')
+			.click()
+
+		cy.get('.loleaflet-annotation-table')
+			.should('be.not.visible');
+	})
 })
diff --git a/cypress_test/package.json b/cypress_test/package.json
index 7bc27e046..70f7f46fe 100644
--- a/cypress_test/package.json
+++ b/cypress_test/package.json
@@ -4,7 +4,8 @@
   "description": "Cypress integration test suit",
   "license": "MPL-2.0",
   "dependencies": {
-    "cypress": "3.8.1"
+    "cypress": "3.8.1",
+    "eslint": "6.8.0"
   },
   "repository": {
     "type": "git",
diff --git a/cypress_test/plugins/index.js b/cypress_test/plugins/index.js
index 60070efcb..8bf86dcba 100644
--- a/cypress_test/plugins/index.js
+++ b/cypress_test/plugins/index.js
@@ -1,10 +1,13 @@
-const tasks = require('./tasks');
+/* global require */
 
-module.exports = (on, config) => {
-  // `on` is used to hook into various events Cypress emits
-  on('task', {
-    copyFile: tasks.copyFile,
-  });
+var tasks = require('./tasks');
 
-  return config;
-};
+function plugin(on, config) {
+	on('task', {
+		copyFile: tasks.copyFile
+	});
+
+	return config;
+}
+
+module.exports = plugin;
diff --git a/cypress_test/plugins/tasks.js b/cypress_test/plugins/tasks.js
index 2488d610c..1f2f52a53 100644
--- a/cypress_test/plugins/tasks.js
+++ b/cypress_test/plugins/tasks.js
@@ -1,16 +1,19 @@
-const fs = require('fs');
+/* global require Promise */
 
-const copyFile = args =>
-  new Promise(resolve => {
-    var source_file = args.source_dir + args.file_name
-    var dest_file = args.dest_dir + args.file_name
+var fs = require('fs');
 
-    if (fs.existsSync(source_file)) {
-      fs.mkdirSync(args.dest_dir, { recursive: true });
-      fs.writeFileSync(dest_file, fs.readFileSync(source_file));
-      resolve(`File ${source_file} copied to ${dest_file}`);
-    }
-    resolve(`File ${source_file} does not exist`);
-  });
+function copyFile(args) {
+	return new Promise(function(resolve) {
+		var sourceFile = args.sourceDir + args.fileName;
+		var destFile = args.destDir + args.fileName;
 
-module.exports = { copyFile };
+		if (fs.existsSync(sourceFile)) {
+			fs.mkdirSync(args.destDir, { recursive: true });
+			fs.writeFileSync(destFile, fs.readFileSync(sourceFile));
+			resolve('File ${sourceFile} copied to ${destFile}');
+		}
+		resolve('File ${sourceFile} does not exist');
+	});
+}
+
+module.exports.copyFile = copyFile;
commit ab854f96d2e1f2da6f3860063dee64df5d38934e
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue Jan 14 18:19:09 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Jan 14 18:19:09 2020 +0100

    cypress: Move general cypress options to cypress.json
    
    Change-Id: Iad6263f31ec9ef813424e4aab673c2ade1f7f3e5

diff --git a/cypress_test/Makefile.am b/cypress_test/Makefile.am
index 4efdfea24..cbee18e7d 100644
--- a/cypress_test/Makefile.am
+++ b/cypress_test/Makefile.am
@@ -24,7 +24,7 @@ check-local: @JAILS_PATH@
 	@echo "Running cypress desktop tests..."
 	@echo
 	$(CYPRESS_BINARY) run --browser chrome \
-			--config integrationFolder=$(DESKTOP_TEST_FOLDER),video=false,pluginsFile=plugins/index.js \
+			--config integrationFolder=$(DESKTOP_TEST_FOLDER) \
 			--headless \
 			--env DATA_FOLDER=$(abs_top_srcdir)/cypress_test/data/desktop/,WORKDIR=$(abs_top_srcdir)/cypress_test/workdir/desktop/ || \
 			(pkill loolwsd && false)
@@ -32,7 +32,7 @@ check-local: @JAILS_PATH@
 	@echo "Running cypress mobile tests..."
 	@echo
 	$(CYPRESS_BINARY) run --browser chrome \
-			--config integrationFolder=$(MOBILE_TEST_FOLDER),video=false,userAgent=$(MOBILE_USER_AGENT),pluginsFile=plugins/index.js \
+			--config integrationFolder=$(MOBILE_TEST_FOLDER),userAgent=$(MOBILE_USER_AGENT) \
 			--headless \
 			--env DATA_FOLDER=$(abs_top_srcdir)/cypress_test/data/mobile/,WORKDIR=$(abs_top_srcdir)/cypress_test/workdir/mobile/ || \
 			(pkill loolwsd && false)
@@ -43,3 +43,4 @@ clean-local:
 	rm -rf node_modules
 	rm -rf workdir
 	rm -rf cypress
+	rm -rf package-lock.json
diff --git a/cypress_test/cypress.json b/cypress_test/cypress.json
index 92401d400..c4e304f82 100644
--- a/cypress_test/cypress.json
+++ b/cypress_test/cypress.json
@@ -1,3 +1,5 @@
 {
-    "integrationFolder": "integration_tests"
+    "integrationFolder" : "integration_tests",
+    "video" : false,
+    "pluginsFile" : "plugins/index.js"
 }
commit 8e93a7f351021a352deef5a0006bf957237a76ae
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue Jan 14 18:14:23 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Jan 14 18:14:28 2020 +0100

    cypress: Move plugins folder out of cypress subfolder
    
    Change-Id: Ia3a9a58b7f7e5e64c1e2f4211b75a33bbbb00c0e

diff --git a/cypress_test/.gitignore b/cypress_test/.gitignore
index 007b3cfbe..3e5e8dbd2 100644
--- a/cypress_test/.gitignore
+++ b/cypress_test/.gitignore
@@ -1,8 +1,4 @@
 node_modules
-cypress/fixtures
-cypress/integration
-cypress/screenshots
-cypress/support
-cypress/videos
+cypress
 package-lock.json
 workdir
diff --git a/cypress_test/Makefile.am b/cypress_test/Makefile.am
index 4a6e77930..4efdfea24 100644
--- a/cypress_test/Makefile.am
+++ b/cypress_test/Makefile.am
@@ -24,7 +24,7 @@ check-local: @JAILS_PATH@
 	@echo "Running cypress desktop tests..."
 	@echo
 	$(CYPRESS_BINARY) run --browser chrome \
-			--config integrationFolder=$(DESKTOP_TEST_FOLDER),video=false \
+			--config integrationFolder=$(DESKTOP_TEST_FOLDER),video=false,pluginsFile=plugins/index.js \
 			--headless \
 			--env DATA_FOLDER=$(abs_top_srcdir)/cypress_test/data/desktop/,WORKDIR=$(abs_top_srcdir)/cypress_test/workdir/desktop/ || \
 			(pkill loolwsd && false)
@@ -32,7 +32,7 @@ check-local: @JAILS_PATH@
 	@echo "Running cypress mobile tests..."
 	@echo
 	$(CYPRESS_BINARY) run --browser chrome \
-			--config integrationFolder=$(MOBILE_TEST_FOLDER),video=false,userAgent=$(MOBILE_USER_AGENT) \
+			--config integrationFolder=$(MOBILE_TEST_FOLDER),video=false,userAgent=$(MOBILE_USER_AGENT),pluginsFile=plugins/index.js \
 			--headless \
 			--env DATA_FOLDER=$(abs_top_srcdir)/cypress_test/data/mobile/,WORKDIR=$(abs_top_srcdir)/cypress_test/workdir/mobile/ || \
 			(pkill loolwsd && false)
@@ -42,8 +42,4 @@ endif
 clean-local:
 	rm -rf node_modules
 	rm -rf workdir
-	rm -rf cypress/fixtures
-	rm -rf cypress/integration
-	rm -rf cypress/screenshots
-	rm -rf cypress/support
-	rm -rf cypress/videos
+	rm -rf cypress
diff --git a/cypress_test/cypress/plugins/index.js b/cypress_test/plugins/index.js
similarity index 100%
rename from cypress_test/cypress/plugins/index.js
rename to cypress_test/plugins/index.js
diff --git a/cypress_test/cypress/plugins/tasks.js b/cypress_test/plugins/tasks.js
similarity index 100%
rename from cypress_test/cypress/plugins/tasks.js
rename to cypress_test/plugins/tasks.js
commit 782cb53bdb8c295cf0b503b7f0e8e7064aea9c56
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue Jan 14 18:08:51 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Jan 14 18:08:51 2020 +0100

    cypress: Always create a copy of the test document.
    
    Before test execution. So the modifications won't
    change the test documents.
    
    Change-Id: I1b04fe96e8182033d44aeeaa3a7632dd81031a05

diff --git a/cypress_test/.gitignore b/cypress_test/.gitignore
index 27d395a6a..007b3cfbe 100644
--- a/cypress_test/.gitignore
+++ b/cypress_test/.gitignore
@@ -1,3 +1,8 @@
 node_modules
-cypress/
+cypress/fixtures
+cypress/integration
+cypress/screenshots
+cypress/support
+cypress/videos
 package-lock.json
+workdir
diff --git a/cypress_test/Makefile.am b/cypress_test/Makefile.am
index ec992c254..4a6e77930 100644
--- a/cypress_test/Makefile.am
+++ b/cypress_test/Makefile.am
@@ -26,7 +26,7 @@ check-local: @JAILS_PATH@
 	$(CYPRESS_BINARY) run --browser chrome \
 			--config integrationFolder=$(DESKTOP_TEST_FOLDER),video=false \
 			--headless \
-			--env TEST_DATA_FOLDER=$(abs_top_srcdir)/cypress_test/data/desktop/ || \
+			--env DATA_FOLDER=$(abs_top_srcdir)/cypress_test/data/desktop/,WORKDIR=$(abs_top_srcdir)/cypress_test/workdir/desktop/ || \
 			(pkill loolwsd && false)
 	@echo
 	@echo "Running cypress mobile tests..."
@@ -34,11 +34,16 @@ check-local: @JAILS_PATH@
 	$(CYPRESS_BINARY) run --browser chrome \
 			--config integrationFolder=$(MOBILE_TEST_FOLDER),video=false,userAgent=$(MOBILE_USER_AGENT) \
 			--headless \
-			--env TEST_DATA_FOLDER=$(abs_top_srcdir)/cypress_test/data/mobile/ || \
+			--env DATA_FOLDER=$(abs_top_srcdir)/cypress_test/data/mobile/,WORKDIR=$(abs_top_srcdir)/cypress_test/workdir/mobile/ || \
 			(pkill loolwsd && false)
 	@pkill loolwsd || true
 endif
 
 clean-local:
 	rm -rf node_modules
-	rm -rf cypress
+	rm -rf workdir
+	rm -rf cypress/fixtures
+	rm -rf cypress/integration
+	rm -rf cypress/screenshots
+	rm -rf cypress/support
+	rm -rf cypress/videos
diff --git a/cypress_test/cypress/plugins/index.js b/cypress_test/cypress/plugins/index.js
new file mode 100644
index 000000000..60070efcb
--- /dev/null
+++ b/cypress_test/cypress/plugins/index.js
@@ -0,0 +1,10 @@
+const tasks = require('./tasks');
+
+module.exports = (on, config) => {
+  // `on` is used to hook into various events Cypress emits
+  on('task', {
+    copyFile: tasks.copyFile,
+  });
+
+  return config;
+};
diff --git a/cypress_test/cypress/plugins/tasks.js b/cypress_test/cypress/plugins/tasks.js
new file mode 100644
index 000000000..2488d610c
--- /dev/null
+++ b/cypress_test/cypress/plugins/tasks.js
@@ -0,0 +1,16 @@
+const fs = require('fs');
+
+const copyFile = args =>
+  new Promise(resolve => {
+    var source_file = args.source_dir + args.file_name
+    var dest_file = args.dest_dir + args.file_name
+
+    if (fs.existsSync(source_file)) {
+      fs.mkdirSync(args.dest_dir, { recursive: true });
+      fs.writeFileSync(dest_file, fs.readFileSync(source_file));
+      resolve(`File ${source_file} copied to ${dest_file}`);
+    }
+    resolve(`File ${source_file} does not exist`);
+  });
+
+module.exports = { copyFile };
diff --git a/cypress_test/integration_tests/desktop/example_desktop_test_spec.js b/cypress_test/integration_tests/desktop/example_desktop_test_spec.js
index d8b4f52a4..c09604996 100644
--- a/cypress_test/integration_tests/desktop/example_desktop_test_spec.js
+++ b/cypress_test/integration_tests/desktop/example_desktop_test_spec.js
@@ -1,8 +1,15 @@
 describe('Example test suit 1', function() {
   it('Example test case 1', function() {
+    // Get a clean test document
+    cy.task('copyFile', {
+      source_dir: Cypress.env('DATA_FOLDER'),
+      dest_dir: Cypress.env('WORKDIR'),
+      file_name: 'simple.odt',
+    });
+
     // Open test document
     cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file://' +
-      Cypress.env('TEST_DATA_FOLDER') + 'simple.odt')
+      Cypress.env('WORKDIR') + 'simple.odt')
 
     // Wait for the document to fully load
     cy.get('.leaflet-tile-loaded')
diff --git a/cypress_test/integration_tests/desktop/example_desktop_test_spec2.js b/cypress_test/integration_tests/desktop/example_desktop_test_spec2.js
index 37ffc5dc6..63a9a43ca 100644
--- a/cypress_test/integration_tests/desktop/example_desktop_test_spec2.js
+++ b/cypress_test/integration_tests/desktop/example_desktop_test_spec2.js
@@ -1,8 +1,15 @@
 describe('Example test suit 2', function() {
   it('Example test case 1', function() {
+    // Get a clean test document
+    cy.task('copyFile', {
+      source_dir: Cypress.env('DATA_FOLDER'),
+      dest_dir: Cypress.env('WORKDIR'),
+      file_name: 'simple.odt',
+    });
+
     // Open test document
     cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file://' +
-      Cypress.env('TEST_DATA_FOLDER') + 'simple.odt')
+      Cypress.env('WORKDIR') + 'simple.odt')
 
     // Wait for the document to fully load
     cy.get('.leaflet-tile-loaded')
diff --git a/cypress_test/integration_tests/mobile/toolbar_spec.js b/cypress_test/integration_tests/mobile/toolbar_spec.js
index 8dc950dd9..a7df48fa4 100644
--- a/cypress_test/integration_tests/mobile/toolbar_spec.js
+++ b/cypress_test/integration_tests/mobile/toolbar_spec.js
@@ -1,9 +1,16 @@
 describe('Toolbar tests', function() {
   beforeEach(function() {
+    // Get a clean test document
+    cy.task('copyFile', {
+      source_dir: Cypress.env('DATA_FOLDER'),
+      dest_dir: Cypress.env('WORKDIR'),
+      file_name: 'empty.odt',
+    });
+
     // Open test document
     cy.viewport('iphone-3')
     cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file://' +
-      Cypress.env('TEST_DATA_FOLDER') + 'empty.odt')
+      Cypress.env('WORKDIR') + 'empty.odt')
 
     // Wait for the document to fully load
     cy.get('.leaflet-tile-loaded')
commit 5b30be8a57cdb39c32e3fb7fbd35b2e445674bb1
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue Jan 14 17:10:07 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Jan 14 17:11:04 2020 +0100

    cypress: Use env variable to get file path.
    
    Instead of a hard coded one. Also create new
    test documents for cypress tests.
    
    Change-Id: I5f9b2c6914669f77742e1a011d736bbf18c54877

diff --git a/cypress_test/Makefile.am b/cypress_test/Makefile.am
index ae5725cca..ec992c254 100644
--- a/cypress_test/Makefile.am
+++ b/cypress_test/Makefile.am
@@ -11,9 +11,6 @@ check-local: @JAILS_PATH@
 	@pkill loolwsd || true
 	@echo "Launching loolwsd for testing.."
 	@fc-cache "@LO_PATH@"/share/fonts/truetype
-	@cp $(top_srcdir)/test/data/hello.odt $(top_srcdir)/test/data/hello-world.odt
-	@cp $(top_srcdir)/test/data/hello.ods $(top_srcdir)/test/data/hello-world.ods
-	@cp $(top_srcdir)/test/data/hello.odp $(top_srcdir)/test/data/hello-world.odp
 	@echo
 	../loolwsd --o:sys_template_path="@SYSTEMPLATE_PATH@" \
 			--o:child_root_path="@JAILS_PATH@" --o:storage.filesystem[@allow]=true \
@@ -28,14 +25,16 @@ check-local: @JAILS_PATH@
 	@echo
 	$(CYPRESS_BINARY) run --browser chrome \
 			--config integrationFolder=$(DESKTOP_TEST_FOLDER),video=false \
-			--headless || \
+			--headless \
+			--env TEST_DATA_FOLDER=$(abs_top_srcdir)/cypress_test/data/desktop/ || \
 			(pkill loolwsd && false)
 	@echo
 	@echo "Running cypress mobile tests..."
 	@echo
 	$(CYPRESS_BINARY) run --browser chrome \
 			--config integrationFolder=$(MOBILE_TEST_FOLDER),video=false,userAgent=$(MOBILE_USER_AGENT) \
-			--headless || \
+			--headless \
+			--env TEST_DATA_FOLDER=$(abs_top_srcdir)/cypress_test/data/mobile/ || \
 			(pkill loolwsd && false)
 	@pkill loolwsd || true
 endif
diff --git a/cypress_test/data/desktop/simple.odt b/cypress_test/data/desktop/simple.odt
new file mode 100644
index 000000000..833aa18fa
Binary files /dev/null and b/cypress_test/data/desktop/simple.odt differ
diff --git a/cypress_test/data/mobile/empty.odt b/cypress_test/data/mobile/empty.odt
new file mode 100644
index 000000000..b8fe3d9dc
Binary files /dev/null and b/cypress_test/data/mobile/empty.odt differ
diff --git a/cypress_test/integration_tests/desktop/example_desktop_test_spec.js b/cypress_test/integration_tests/desktop/example_desktop_test_spec.js
index 68d6b4f18..d8b4f52a4 100644
--- a/cypress_test/integration_tests/desktop/example_desktop_test_spec.js
+++ b/cypress_test/integration_tests/desktop/example_desktop_test_spec.js
@@ -1,7 +1,8 @@
 describe('Example test suit 1', function() {
   it('Example test case 1', function() {
-    // Open test documnt
-    cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file:///home/zolnai/libreoffice/online/test/data/hello-world.odt')
+    // Open test document
+    cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file://' +
+      Cypress.env('TEST_DATA_FOLDER') + 'simple.odt')
 
     // Wait for the document to fully load
     cy.get('.leaflet-tile-loaded')
diff --git a/cypress_test/integration_tests/desktop/example_desktop_test_spec2.js b/cypress_test/integration_tests/desktop/example_desktop_test_spec2.js
index fde36a757..37ffc5dc6 100644
--- a/cypress_test/integration_tests/desktop/example_desktop_test_spec2.js
+++ b/cypress_test/integration_tests/desktop/example_desktop_test_spec2.js
@@ -1,7 +1,8 @@
 describe('Example test suit 2', function() {
   it('Example test case 1', function() {
-    // Open test documnt
-    cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file:///home/zolnai/libreoffice/online/test/data/hello-world.odt')
+    // Open test document
+    cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file://' +
+      Cypress.env('TEST_DATA_FOLDER') + 'simple.odt')
 
     // Wait for the document to fully load
     cy.get('.leaflet-tile-loaded')
diff --git a/cypress_test/integration_tests/mobile/toolbar_spec.js b/cypress_test/integration_tests/mobile/toolbar_spec.js
index 83851f976..8dc950dd9 100644
--- a/cypress_test/integration_tests/mobile/toolbar_spec.js
+++ b/cypress_test/integration_tests/mobile/toolbar_spec.js
@@ -1,8 +1,9 @@
 describe('Toolbar tests', function() {
   beforeEach(function() {
-    // Open test documnt
+    // Open test document
     cy.viewport('iphone-3')
-    cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file:///home/zolnai/libreoffice/online/test/data/hello-world.odt')
+    cy.visit('http://localhost:9980/loleaflet/fc04ba550/loleaflet.html?file_path=file://' +
+      Cypress.env('TEST_DATA_FOLDER') + 'empty.odt')
 
     // Wait for the document to fully load
     cy.get('.leaflet-tile-loaded')
commit 720504ad1498ff99da7cb0a2a9978e989b1784f1
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue Jan 14 16:05:33 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Jan 14 16:36:39 2020 +0100

    cypress: Make sure loolwsd is killed after make check.
    
    Even if ony of the tests fails.
    
    Change-Id: I18e7daff854fd51d4ba374d9d537ba76e171269c

diff --git a/cypress_test/Makefile.am b/cypress_test/Makefile.am
index bb4740348..ae5725cca 100644
--- a/cypress_test/Makefile.am
+++ b/cypress_test/Makefile.am
@@ -26,11 +26,17 @@ check-local: @JAILS_PATH@
 	@echo
 	@echo "Running cypress desktop tests..."
 	@echo
-	$(CYPRESS_BINARY) run --browser chrome --config integrationFolder=$(DESKTOP_TEST_FOLDER),video=false --headless
+	$(CYPRESS_BINARY) run --browser chrome \
+			--config integrationFolder=$(DESKTOP_TEST_FOLDER),video=false \
+			--headless || \
+			(pkill loolwsd && false)
 	@echo
 	@echo "Running cypress mobile tests..."
 	@echo
-	$(CYPRESS_BINARY) run --browser chrome --config integrationFolder=$(MOBILE_TEST_FOLDER),video=false,userAgent=$(MOBILE_USER_AGENT) --headless
+	$(CYPRESS_BINARY) run --browser chrome \
+			--config integrationFolder=$(MOBILE_TEST_FOLDER),video=false,userAgent=$(MOBILE_USER_AGENT) \
+			--headless || \
+			(pkill loolwsd && false)
 	@pkill loolwsd || true
 endif
 
commit a815a0ce4f7f1f5f0b82dad7ce7da728ee1bac05
Author:     Tamás Zolnai <tamas.zolnai at collabora.com>
AuthorDate: Tue Jan 14 14:19:06 2020 +0100
Commit:     Tamás Zolnai <tamas.zolnai at collabora.com>
CommitDate: Tue Jan 14 14:20:45 2020 +0100

    cypress: Running make check locally works better then cyrun.
    
    Change-Id: Ifcbefa925b3b46e7955cd3cfb107b105f053cf59

diff --git a/cypress_test/README b/cypress_test/README
index efeb6e10a..86f1c77b2 100644
--- a/cypress_test/README
+++ b/cypress_test/README
@@ -5,22 +5,19 @@ Running tests
 ------------------
 
 All tests are part of the make check build. So you can
-just execute it from the root folder of online repository.
+just execute it from the root folder or under the
+cypress_test folder to run cypress tests only.
 
     make check
 
-To run only cypress test cases, you need to start loolwsd
+To run cypress test cases selectively, you need to start loolwsd
 server first. To do that you can call make run on a separate
 command line window, so LibreOffice online is started.
 
-After the server is running you can execute the test,
+After the server is running you can execute the tests,
 calling the given run command. You need to run the
 command under cypress_test\ folder.
 
-To run all cypress tests:
-
-    npm run cyrun
-
 To run all desktop tests:
 
     npm run cyrun_desktop
diff --git a/cypress_test/package.json b/cypress_test/package.json
index a9d281112..7bc27e046 100644
--- a/cypress_test/package.json
+++ b/cypress_test/package.json
@@ -11,7 +11,6 @@
     "url": "git://gerrit.libreoffice.org/online.git"
   },
   "scripts": {
-    "cyrun": "npm run cyrun_desktop && npm run cyrun_mobile",
     "cyrun_desktop": "node_modules/cypress/bin/cypress run --browser chrome --config integrationFolder=integration_tests/desktop --headless",
     "cyrun_mobile": "node_modules/cypress/bin/cypress run --browser chrome --config integrationFolder=integration_tests/mobile,userAgent=\"cypress mobile test\" --headless",
     "cyopen_desktop": "node_modules/cypress/bin/cypress open --config integrationFolder=integration_tests/desktop",


More information about the Libreoffice-commits mailing list