aboutsummaryrefslogtreecommitdiff
path: root/autotests/testolmaccount.cpp
diff options
context:
space:
mode:
authorAlexey Rusakov <Kitsune-Ral@users.sf.net>2022-05-16 10:41:54 +0200
committerAlexey Rusakov <Kitsune-Ral@users.sf.net>2022-05-16 10:42:24 +0200
commit79b3dba1ed4b6870c4e989ada88e33b1ce0ddc21 (patch)
tree1a29d39730f2f6eca8d58e57c15266cfa961f773 /autotests/testolmaccount.cpp
parenta3486fd0e9786c47564ce8173a2e4039135b10f9 (diff)
downloadlibquotient-79b3dba1ed4b6870c4e989ada88e33b1ce0ddc21.tar.gz
libquotient-79b3dba1ed4b6870c4e989ada88e33b1ce0ddc21.zip
QOlmExpected and associated refactoring
As mentioned in the commit introducing `Expected`, `QOlmExpected` is simply an alias for `Expected<T, QOlmError>`. This simplifies quite a few function signatures in `QOlm*` classes and collapses unwieldy `std::holds_alternative<>`/`std::get<>` constructs into a neat contextual bool cast and an invocation of `operator*` or `value()`/`error()` accessors that don't need to specify the type. While refactoring the code, I found a couple of cases of mismatching `uint32_t` and `qint32_t` in return values; a couple of cases where `decrypt()` returns `QString` which is in fact `QByteArray` (e.g., in `QOlmSession::decrypt()`); there's a repetitive algorithm in `Connection::Private::sessionDecryptPrekey()` and `sessionDecryptGeneral()`
Diffstat (limited to 'autotests/testolmaccount.cpp')
-rw-r--r--autotests/testolmaccount.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/autotests/testolmaccount.cpp b/autotests/testolmaccount.cpp
index 9989665a..e31ff6d3 100644
--- a/autotests/testolmaccount.cpp
+++ b/autotests/testolmaccount.cpp
@@ -21,7 +21,7 @@ void TestOlmAccount::pickleUnpickledTest()
QOlmAccount olmAccount(QStringLiteral("@foo:bar.com"), QStringLiteral("QuotientTestDevice"));
olmAccount.createNewAccount();
auto identityKeys = olmAccount.identityKeys();
- auto pickled = std::get<QByteArray>(olmAccount.pickle(Unencrypted{}));
+ auto pickled = olmAccount.pickle(Unencrypted{}).value();
QOlmAccount olmAccount2(QStringLiteral("@foo:bar.com"), QStringLiteral("QuotientTestDevice"));
olmAccount2.unpickle(pickled, Unencrypted{});
auto identityKeys2 = olmAccount2.identityKeys();
@@ -57,8 +57,7 @@ void TestOlmAccount::signatureValid()
const auto identityKeys = olmAccount.identityKeys();
const auto ed25519Key = identityKeys.ed25519;
const auto verify = utility.ed25519Verify(ed25519Key, message, signature);
- QVERIFY(std::holds_alternative<bool>(verify));
- QVERIFY(std::get<bool>(verify) == true);
+ QVERIFY(verify.value_or(false));
}
void TestOlmAccount::oneTimeKeysValid()