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>
Replace a few cases of Util::toString(...), too.
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Change-Id: I53c5dbbdf2f60710e94add9dd137aa9becb7bd3e
config.h should be included as the 1st line in each source file.
It should not be included in headers.
config_version.h which changes on every commit should not be
included widely - so remove it from the HttpRequest heeader to
save tinderbox's ccache.
Fetch version info from helper methods rather than in-lining via
defines, to better encapsulate.
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
Change-Id: If449a36f1ac61940f04d70d5f4180db389d9b4c4
Since we don't want to propagate Poco types
as well as our pair containers, it's best
to have these are named functions rather
than as operator<<.
Change-Id: I9772b8f314262147b6c445464bf3ce8cb598b56d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
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>
This decodes strings encoded using
encodeURIComponent.
For now, it wraps Poco::URI::decode,
which should be replaced in the future.
Change-Id: I608b327be81aeda37d2afc4dfd29828658e92dc8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
The client connection management had nothing to
do with the WopiTestServer and it was there
for convenience. The issue was that it was
not available to tests that do not need
the custom WopiTestServer and depending
on it would make them unnecessarily
complicated.
This adds a new intermediary class to manage
client connections in tests. The reason
this logic didn't move to UnitWSD or even
UnitBase is simply because the client
connection logic depends on the helpers
namespace and other test-specific code
that isn't available in COOLWSD. In short,
UnitBase and UnitWSD are primarily an
interface that COOLWSD and co depend on
and cannot contain test-specific logic
that isn't linked to coolwsd.
We also move the UnitWebSocket helper class.
Change-Id: I79567774164e137349dc162482529578f150353c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Also, don't rely on the timing to have only one
(editing) session by the time we disconnect.
Instead, make the second connection read-only
so that disconnecting the first will always
result in unlocking the document.
Change-Id: Ibbe8164b22d44b52e7b89ad2a677cb196904cac3
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This helps detect when tests cross-connect.
A rare, and very hard to find, issue went
like this:
A test (a random one) would recieve a request
that it didn't expect. This would cause it
to fail. It was clear that this was coming
from a different test--but which?
Meanwhile, another test (UnitWOPIHttpRedirect)
was in connectLOKit retry loop due to repeated
failure to connect.
With this patch, it was easy to see what was
happening, once the source was found. The
idea is to stamp the test sending the
request so the test-server can validate.
Upon failure, we can see the source test.
The source test (UnitWOPIHttpRedirect),
in the case in question, is a
server-side test. It flagged to exit once
it verified that the redirection worked
(in the GetFile serving the document).
Unfortunately, exiting didn't stop the
connection attempts in the same test. In
most cases the document would load before
DocBroker is stopped. But every so often
everything would shutdown and the test
would keep trying to connectLOKit.
Since we shutdown everything, we also
closed the listening port, which is now
available for other tests to re-use.
This is how UnitWOPIHttpRedirect requests
ended up at different tests, causing them
to fail sporadically.
The subsequent test fixes the retry logic.
The fix is left separate since this patch
is useful on its own, and independent of
the issue and the fix. This is just a tool.
Change-Id: I2848cc578a102fc0bd981e1ac71aaabc25f1a403
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
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>
Now the remaining tests that didn't have a name
get one and the logs are unified between old-
and new-style tests. Mostly.
This makes sure that all logs and assertions
properly log the test name and make test
failures easier to debug and fix.
Change-Id: Id159ffacc81642a6ec594c5143498408adab67cf
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This adds a better automatic test state
enum, with support for transitions.
It is intended to be used only in tests,
to simplify the writing of tests around
a state-machine.
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
(cherry picked from commit bf5e8a2d9f)
Change-Id: I8805dad57ca3c71c26cc30236d4832710e1717f9