From 363a7e40e8aa12cb780b076cca8db4f47b70f4fa Mon Sep 17 00:00:00 2001
From: Alexey Rusakov <Kitsune-Ral@users.sf.net>
Date: Mon, 26 Sep 2022 09:44:20 +0200
Subject: Replace QOlmError with OlmErrorCode

QOlmError represents a subset of OlmErrorCode, and the associated
fromString() function uses undocumented strings produced inside Olm;
meanwhile OlmErrorCode is documented in its own header file. Each QOlm*
class now has lastErrorCode() next to lastError() (that, from now,
returns a textual representation straight from Olm, not QOlmError enum).

Also: including olm/error.h in e2ee/e2ee.h required some rearrangement
of the code to make sure non-E2EE configuration still builds.
---
 autotests/testolmaccount.cpp | 3 ++-
 autotests/testolmsession.cpp | 8 ++++++--
 2 files changed, 8 insertions(+), 3 deletions(-)

(limited to 'autotests')

diff --git a/autotests/testolmaccount.cpp b/autotests/testolmaccount.cpp
index 280705d0..eb428661 100644
--- a/autotests/testolmaccount.cpp
+++ b/autotests/testolmaccount.cpp
@@ -25,7 +25,8 @@ void TestOlmAccount::pickleUnpickledTest()
     auto identityKeys = olmAccount.identityKeys();
     auto pickled = olmAccount.pickle(Unencrypted{}).value();
     QOlmAccount olmAccount2(QStringLiteral("@foo:bar.com"), QStringLiteral("QuotientTestDevice"));
-    olmAccount2.unpickle(pickled, Unencrypted{});
+    auto unpickleResult = olmAccount2.unpickle(pickled, Unencrypted{});
+    QCOMPARE(unpickleResult, 0);
     auto identityKeys2 = olmAccount2.identityKeys();
     QCOMPARE(identityKeys.curve25519, identityKeys2.curve25519);
     QCOMPARE(identityKeys.ed25519, identityKeys2.ed25519);
diff --git a/autotests/testolmsession.cpp b/autotests/testolmsession.cpp
index 182659e7..66a04241 100644
--- a/autotests/testolmsession.cpp
+++ b/autotests/testolmsession.cpp
@@ -12,9 +12,13 @@ std::pair<QOlmSessionPtr, QOlmSessionPtr> createSessionPair()
     QByteArray pickledAccountA("eOBXIKivUT6YYowRH031BNv7zNmzqM5B7CpXdyeaPvala5mt7/OeqrG1qVA7vA1SYloFyvJPIy0QNkD3j1HiPl5vtZHN53rtfZ9exXDok03zjmssqn4IJsqcA7Fbo1FZeKafG0NFcWwCPTdmcV7REqxjqGm3I4K8MQFa45AdTGSUu2C12cWeOcbSMlcINiMral+Uyah1sgPmLJ18h1qcnskXUXQvpffZ5DiUw1Iz5zxnwOQF1GVyowPJD7Zdugvj75RQnDxAn6CzyvrY2k2CuedwqDC3fIXM2xdUNWttW4nC2g4InpBhCVvNwhZYxlUb5BUEjmPI2AB3dAL5ry6o9MFncmbN6x5x");
     QByteArray pickledAccountB("eModTvoFi9oOIkax4j4nuxw9Tcl/J8mOmUctUWI68Q89HSaaPTqR+tdlKQ85v2GOs5NlZCp7EuycypN9GQ4fFbHUCrS7nspa3GFBWsR8PnM8+wez5PWmfFZLg3drOvT0jbMjpDx0MjGYClHBqcrEpKx9oFaIRGBaX6HXzT4lRaWSJkXxuX92q8iGNrLn96PuAWFNcD+2JXpPcNFntslwLUNgqzpZ04aIFYwL80GmzyOgq3Bz1GO6u3TgCQEAmTIYN2QkO0MQeuSfe7UoMumhlAJ6R8GPcdSSPtmXNk4tdyzzlgpVq1hm7ZLKto+g8/5Aq3PvnvA8wCqno2+Pi1duK1pZFTIlActr");
     auto accountA = QOlmAccount("accountA:foo.com", "Device1UserA");
-    accountA.unpickle(pickledAccountA, Unencrypted{});
+    if (accountA.unpickle(pickledAccountA, Unencrypted{}) != OLM_SUCCESS)
+        qFatal("Failed to unpickle account A: %s", accountA.lastError());
+
     auto accountB = QOlmAccount("accountB:foo.com", "Device1UserB");
-    accountB.unpickle(pickledAccountB, Unencrypted{});
+    if (accountB.unpickle(pickledAccountB, Unencrypted{}) != OLM_SUCCESS)
+        qFatal("Failed to unpickle account B: %s", accountB.lastError());
+
 
     const QByteArray identityKeyA("qIEr3TWcJQt4CP8QoKKJcCaukByIOpgh6erBkhLEa2o");
     const QByteArray oneTimeKeyA("WzsbsjD85iB1R32iWxfJdwkgmdz29ClMbJSJziECYwk");
-- 
cgit v1.2.3