Commit graph

38 commits

Author SHA1 Message Date
Ashod Nakashian
25784d8677 wsd: test: use LOK_ASSERT_STATE for more informative report
Change-Id: Ibd8589e3d6a2ca226578258c3cc1b9d85cad2d2c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2024-03-05 12:21:50 +01:00
Ashod Nakashian
2e8561195c wsd: move deprecated logic under legacy_server config
We no longer send LOOL-WOPI headers, unless
the configuration specifically flags for
legacy servers. But we always send COOL-WOPI
even to legacy servers, to help them upgrade
seamlessly.

Change-Id: Ifc919ed8f6665cd8f846117ef4e8b7ef09fbd563
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2024-03-02 04:02:26 -05:00
Aron Budea
3b8f3d07f6 Replace Util::startsWith/endsWith w/ C++20 equivalent
Replace a few cases of Util::toString(...), too.

Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I53c5dbbdf2f60710e94add9dd137aa9becb7bd3e
2024-02-22 08:08:32 +01:00
Michael Meeks
eda61d1bb9 WOPI timestamp test fixes.
Adapt checks for empty or non-empty timestamps so that we can
match previous failures, and ensure coolwsd is sending us the
right override state.

Change-Id: I604e3aa0315753ae02e5a6e4173d6b3b3ffa3b3e
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
2024-02-21 09:38:49 +00:00
Ashod Nakashian
61cf7b9601 wsd: clean up unused header includes
Clang-tidy recommendation driven header
include clean-up.

Change-Id: I30c32866b7798e70df0463ee6bc7a0bcc3de5049
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2024-01-08 08:38:48 +01:00
Michael Meeks
7183a3d3de spdx: improve machine and human readability of headers.
Change-Id: Ice934380029bf27054e830fffc07a5d037d1430f
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
2023-11-14 19:36:31 +00:00
Ashod Nakashian
48918f9b3b wsd: test: fix typo in test name
Change-Id: Ifbc0c8dd6609fc55e86867c44e0e3ef62fb592f7
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-09-25 08:58:39 +02:00
Ashod Nakashian
d7a56a2747 wsd: test: exclude readonly sessions from modification indication
New unit-test that reproduces the corner-case
with disconnection. With graceful unloading
a previous unit-test verified that it worked
as expected.

This is restored from e6798e9062
after it was reverted (due to a PDF comment saving regression).
Since the issue is fixed separately in
0b27e85fc5, these tests can
now be restored.

Change-Id: Id84cda4f4599c559018247c32ea1205e154e4984
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-09-25 08:58:39 +02:00
Andras Timar
17c77bf059 Revert "wsd: exclude readonly sessions from modification indication"
This reverts commit e6798e9062.
Reason: this commit caused a regression. PDF comments were not saved.

Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I180ecb9e298e37bd5a989a8cd6d23d02c25a6929
2023-09-20 19:57:01 +02:00
Ashod Nakashian
e6798e9062 wsd: exclude readonly sessions from modification indication
Read only sessions cannot modify the document, so
we shouldn't consider input from such a session
as potentially modifying the document. This
becomes important during an abrupt disconnection
where we look at isPossiblyModified() as an
indicator for data-loss.

New unit-test that reproduces the corner-case
with disconnection. With graceful unloading
a previous unit-test verified that it worked
as expected.

Change-Id: Id84cda4f4599c559018247c32ea1205e154e4984
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-09-01 07:18:12 -04:00
Caolán McNamara
62504735ea cid#318868 silence bogus Double free
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I4ef594a2274a6a2b646ce2a305cdab6263390ef7
2023-08-16 15:15:59 +02:00
Ashod Nakashian
75ae9894b9 wsd: Util::make_unique -> std::make_unique
Change-Id: I1063913f91571ea6ad95386a3da6a4072574d155
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-08-03 08:40:20 +02:00
Ashod Nakashian
2fd159bc0c wsd: better always-save-on-exit handling
Change-Id: Id718f81fc2eb0af5ca5bfe61e687de5258dbdd7d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-07-12 07:00:41 -04:00
Ashod Nakashian
e2b8388dfa wsd: test: logging in UnitWOPIFailUpload
Change-Id: I4c51e6a56e5cf28b11a5652b5849ca54c25ee53b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-07-08 04:19:00 -04:00
Ashod Nakashian
bc5e9f1ed0 wsd: test: use configCheckFileInfo instead of handleHttpRequest
Change-Id: Iff526bda55e112877df74d55f21bc8108bb384f2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-06-20 03:55:19 -04:00
Ashod Nakashian
fc80fb66bf wsd: test: refactor assertGetFileRequest into the handler
Change-Id: I4a1a17bac9694f92ffab49d1c9143bab83f22835
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-06-20 03:55:19 -04:00
Ashod Nakashian
05ecebe482 wsd: cosmetics and header include fixups
Change-Id: I573e4336b57abfc7bcd77ff0a83042202147e53f
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-05-02 19:54:31 -04:00
Ashod Nakashian
cdec13ce76 wsd: test: simplify UnitWOPIExpiredToken
Change-Id: Ie9e2ccb828479cb2c9b9a072e712552d3a2383e1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-02-07 14:36:51 +01:00
Ashod Nakashian
325c27997b wsd: test: add IsExitSave check in UnitWOPIAsyncUpload_Close
Change-Id: I80936316fb172e5a4ef1811a66d061e63ea0bb27
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-01-29 08:53:31 -05:00
Ashod Nakashian
cb3f2627d2 wsd: set IsExitSave attribute before uploading
Change-Id: I4828133d83e66654b4151dad896bd9d6edaa0200
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-01-29 08:53:31 -05:00
Ashod Nakashian
20332f4078 wsd: only users can force uploading
Forced uploading is used to overwrite the
file in storage. This is useful when there
is a conflict. Only the user can decide to
do (or not do) that. As such, no auto-save
or any other case should force an upload.

The issue is that we can clobber a conflicted
version in storage by accident. Forced upload
was used for always_exit_on_save=true setting,
which wasn't really needed as the feature isn't
to forcefully upload, rather to just save and
upload as necessary.

Change-Id: Ie46f38f76392493fe8f8112f05953899963da99b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-01-27 08:44:53 -05:00
Ashod Nakashian
0adef5dd19 wsd: test: move UnitWOPIAsyncUpload_Close
Another failure-to-upload test that best
belongs to the UnitWOPIFailUpload suite.

Change-Id: I48f34413337f34a959a38402409e7321203dff35
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-01-27 08:03:18 -04:00
Ashod Nakashian
b9eb4111ae wsd: http: define named HTTP status codes
This replaces the hard-coded status-code
numbers with named compile-time constants.

Change-Id: Ibe678fb2c533b29efd696e4430f5377523eeb298
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-01-24 07:58:07 -05:00
Ashod Nakashian
9ccb57b4c3 wsd: test: move UnitWOPIAsyncUpload_Modify
This is a failure-to-upload test that best
belongs to the UnitWOPIFailUpload suite.

Change-Id: I28e4e55f8298fe964537f8b67b0e717ecf2e3935
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-01-23 11:07:55 -04:00
Ashod Nakashian
87456e2f8e wsd: test: add read-only storage tests
This creates the scenarios where the
storage is read-only (i.e. UserCanWrite=false)
and we have an editable document.

Change-Id: I2878e5e27bc3c3a809dde16f7c39a5ccda4a35a3
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-12-14 20:30:11 -05:00
Ashod Nakashian
08355a3282 wsd: test: add expired-token test
Change-Id: I0055fcb287b45d3a4e1fbaf4e364e8fa323c9b30
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-12-07 15:42:04 +03:00
Ashod Nakashian
a124356031 wsd: test: fail -> onDataLoss
The event we trigger when we detect data-loss
is best named to reflect that fact.
And since we can override the behavior,
for example if the test expected to trigger
the data-loss detection, then we can signal
the non-failure by the return value.

Change-Id: I67ca69ae783c956cfdd14d54dab5efb7cc3d258c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-11-21 08:45:17 -05:00
Ashod Nakashian
ad19bb3055 wsd: test: better PutFile assertion
This enabled previously-disabled PutFile
assertions, now that these cases are fixed,
which makes a number of tests more strict.

Change-Id: I77a0d552b43c73534cd4fbd066e34025d924f793
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-08-05 15:24:27 -04:00
Ashod Nakashian
a674a0d52e wsd: detect lost upload on exit and dumpState once only
Change-Id: If5a9601d9baa10dcdab38c57bfba82a45d8e5024
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-05-07 14:13:41 +01:00
Ashod Nakashian
31ff5bbcac wsd: test: assert forced uploading when expected
Change-Id: I17f83a010b71fca13d325e298760c4107fb1a39a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-03-09 19:24:40 -05:00
Ashod Nakashian
02f2860847 wsd: test: assert correct wopi GetFile and PutFile
Change-Id: I7e08d87eb382d67aed3ffaff32230e2c08d8c828
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-03-09 19:24:40 -05:00
Ashod Nakashian
e8319423b4 wsd: test: enable all conflict test scenarios
Change-Id: Ic1ae6804e90c99dfa0a8607a0d0d769a45353325
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-03-09 19:24:40 -05:00
Ashod Nakashian
b90638d436 wsd: test: ingest the doc content only when PutFile succeeds
Change-Id: I4d4accba34c2883b1cb4d6d43a40c89d2eb8a48f
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-03-09 19:24:40 -05:00
Ashod Nakashian
6b0d550b5b wsd: test: validate the number of wopi requests
We track the number of wopi requests done
during tests and compare with the expected,
in each test scenario. This ensures we don't
miss any expected/required wopi operation,
but also that we don't do more than the
necessary minimum.

Change-Id: I2474f54987a6a12c396b6c0566324772ee3300e6
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-03-09 19:24:40 -05:00
Ashod Nakashian
319685d858 wsd: test: minor cleanup of conflict tests
Change-Id: Ib56aa5fa609b76ce450fdea21f955b2130600a6a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-03-09 19:24:40 -05:00
Ashod Nakashian
6c1766d156 wsd: test: extend the timeout of the conflict tests
Change-Id: I4171ec923a29ee22abc4e40267949829d40fc776
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-02-24 07:38:13 -05:00
Ashod Nakashian
17ef1a4b80 wsd: test: more consistent test logging
And some include cleanup.

Change-Id: I3807553bf2abe6d36c5cc521bc82e5b089ae91ea
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-02-17 18:52:48 -05:00
Ashod Nakashian
af77b68d97 wsd: limit store failure when unloading
When saving and/or uploading fails, we have
to give up after a certain number of retries.

A new config entry, per_document.limit_store_failures,
controls the number of consecutive failures
before giving up. This prevents locking-up
documents while uploading.

Includes a new unit-test.

Change-Id: I1296df1691fcaa982df9e861d34cb946a2eda860
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-02-09 19:35:19 -05:00