mirror of
https://git.jami.net/savoirfairelinux/jami-daemon.git
synced 2025-08-12 22:09:25 +08:00
account_archive: add test for import/export on DHT
Change-Id: I547dfeaf1734873ac9f8db82a181769de11a2bb6
This commit is contained in:

committed by
Adrien Béraud

parent
a5aed459a0
commit
3236a6af07
@ -64,18 +64,23 @@ public:
|
|||||||
|
|
||||||
std::string aliceId;
|
std::string aliceId;
|
||||||
std::string bobId;
|
std::string bobId;
|
||||||
|
std::string bob2Id;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void testExportImportNoPassword();
|
void testExportImportNoPassword();
|
||||||
void testExportImportNoPasswordDoubleGunzip();
|
void testExportImportNoPasswordDoubleGunzip();
|
||||||
void testExportImportPassword();
|
void testExportImportPassword();
|
||||||
void testExportImportPasswordDoubleGunzip();
|
void testExportImportPasswordDoubleGunzip();
|
||||||
|
void testExportDht();
|
||||||
|
void testExportDhtWrongPassword();
|
||||||
|
|
||||||
CPPUNIT_TEST_SUITE(AccountArchiveTest);
|
CPPUNIT_TEST_SUITE(AccountArchiveTest);
|
||||||
CPPUNIT_TEST(testExportImportNoPassword);
|
CPPUNIT_TEST(testExportImportNoPassword);
|
||||||
CPPUNIT_TEST(testExportImportNoPasswordDoubleGunzip);
|
CPPUNIT_TEST(testExportImportNoPasswordDoubleGunzip);
|
||||||
CPPUNIT_TEST(testExportImportPassword);
|
CPPUNIT_TEST(testExportImportPassword);
|
||||||
CPPUNIT_TEST(testExportImportPasswordDoubleGunzip);
|
CPPUNIT_TEST(testExportImportPasswordDoubleGunzip);
|
||||||
|
CPPUNIT_TEST(testExportDht);
|
||||||
|
CPPUNIT_TEST(testExportDhtWrongPassword);
|
||||||
CPPUNIT_TEST_SUITE_END();
|
CPPUNIT_TEST_SUITE_END();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -92,6 +97,9 @@ AccountArchiveTest::setUp()
|
|||||||
void
|
void
|
||||||
AccountArchiveTest::tearDown()
|
AccountArchiveTest::tearDown()
|
||||||
{
|
{
|
||||||
|
if (!bob2Id.empty())
|
||||||
|
wait_for_removal_of({aliceId, bob2Id, bobId});
|
||||||
|
else
|
||||||
wait_for_removal_of({aliceId, bobId});
|
wait_for_removal_of({aliceId, bobId});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,6 +181,55 @@ AccountArchiveTest::testExportImportPasswordDoubleGunzip()
|
|||||||
wait_for_removal_of(accountId);
|
wait_for_removal_of(accountId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
AccountArchiveTest::testExportDht()
|
||||||
|
{
|
||||||
|
std::mutex mtx;
|
||||||
|
std::unique_lock<std::mutex> lk {mtx};
|
||||||
|
std::condition_variable cv;
|
||||||
|
std::map<std::string, std::shared_ptr<DRing::CallbackWrapperBase>> confHandlers;
|
||||||
|
std::string pin;
|
||||||
|
confHandlers.insert(DRing::exportable_callback<DRing::ConfigurationSignal::ExportOnRingEnded>(
|
||||||
|
[&](const std::string& accountId, int status, const std::string& p) {
|
||||||
|
if (accountId == bobId && status == 0)
|
||||||
|
pin = p;
|
||||||
|
cv.notify_one();
|
||||||
|
}));
|
||||||
|
DRing::registerSignalHandlers(confHandlers);
|
||||||
|
CPPUNIT_ASSERT(DRing::exportOnRing(bobId, "test"));
|
||||||
|
CPPUNIT_ASSERT(cv.wait_for(lk, std::chrono::seconds(10), [&] { return !pin.empty(); }));
|
||||||
|
|
||||||
|
auto bobAccount = Manager::instance().getAccount<JamiAccount>(bobId);
|
||||||
|
|
||||||
|
std::map<std::string, std::string> details = DRing::getAccountTemplate("RING");
|
||||||
|
details[ConfProperties::ARCHIVE_PIN] = pin;
|
||||||
|
details[ConfProperties::ARCHIVE_PASSWORD] = "test";
|
||||||
|
|
||||||
|
bob2Id = jami::Manager::instance().addAccount(details);
|
||||||
|
wait_for_announcement_of(bob2Id);
|
||||||
|
auto bob2Account = Manager::instance().getAccount<JamiAccount>(bob2Id);
|
||||||
|
CPPUNIT_ASSERT(bob2Account->getUsername() == bobAccount->getUsername());
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
AccountArchiveTest::testExportDhtWrongPassword()
|
||||||
|
{
|
||||||
|
std::mutex mtx;
|
||||||
|
std::unique_lock<std::mutex> lk {mtx};
|
||||||
|
std::condition_variable cv;
|
||||||
|
std::map<std::string, std::shared_ptr<DRing::CallbackWrapperBase>> confHandlers;
|
||||||
|
int status;
|
||||||
|
confHandlers.insert(DRing::exportable_callback<DRing::ConfigurationSignal::ExportOnRingEnded>(
|
||||||
|
[&](const std::string& accountId, int s, const std::string&) {
|
||||||
|
if (accountId == bobId)
|
||||||
|
status = s;
|
||||||
|
cv.notify_one();
|
||||||
|
}));
|
||||||
|
DRing::registerSignalHandlers(confHandlers);
|
||||||
|
CPPUNIT_ASSERT(DRing::exportOnRing(bobId, "wrong"));
|
||||||
|
CPPUNIT_ASSERT(cv.wait_for(lk, std::chrono::seconds(10), [&] { return status == 1; }));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace test
|
} // namespace test
|
||||||
} // namespace jami
|
} // namespace jami
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user