From 523b2780bf14575fef21ad3c5187027dc30a519c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Wed, 5 Jan 2022 16:37:36 -0500
Subject: [PATCH] account_archive: add test to validate changeAccountPassword

Change-Id: I7380645f022b1b08d2a961e191c3dd978916fe0e
---
 test/unitTest/account_archive/account_archive.cpp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/test/unitTest/account_archive/account_archive.cpp b/test/unitTest/account_archive/account_archive.cpp
index 6b45ecf9a9..74bc00e505 100644
--- a/test/unitTest/account_archive/account_archive.cpp
+++ b/test/unitTest/account_archive/account_archive.cpp
@@ -73,6 +73,7 @@ private:
     void testExportImportPasswordDoubleGunzip();
     void testExportDht();
     void testExportDhtWrongPassword();
+    void testChangePassword();
 
     CPPUNIT_TEST_SUITE(AccountArchiveTest);
     CPPUNIT_TEST(testExportImportNoPassword);
@@ -81,6 +82,7 @@ private:
     CPPUNIT_TEST(testExportImportPasswordDoubleGunzip);
     CPPUNIT_TEST(testExportDht);
     CPPUNIT_TEST(testExportDhtWrongPassword);
+    CPPUNIT_TEST(testChangePassword);
     CPPUNIT_TEST_SUITE_END();
 };
 
@@ -230,6 +232,19 @@ AccountArchiveTest::testExportDhtWrongPassword()
     CPPUNIT_ASSERT(cv.wait_for(lk, std::chrono::seconds(10), [&] { return status == 1; }));
 }
 
+void
+AccountArchiveTest::testChangePassword()
+{
+    // Test wrong password, should fail
+    CPPUNIT_ASSERT(!DRing::changeAccountPassword(aliceId, "wrong", "new"));
+    // Test correct password, should succeed
+    CPPUNIT_ASSERT(DRing::changeAccountPassword(aliceId, "", "new"));
+    // Now it should fail
+    CPPUNIT_ASSERT(!DRing::changeAccountPassword(aliceId, "", "new"));
+    // Remove password again (should succeed)
+    CPPUNIT_ASSERT(DRing::changeAccountPassword(aliceId, "new", ""));
+}
+
 } // namespace test
 } // namespace jami
 
-- 
GitLab