unitTest fix: conversationRequest

- Added loop for testMalformedTrustRequest

Change-Id: Ia65980f52c68d8c5b1a2e78a9443103b74a7b3dd
This commit is contained in:
Fadi SHEHADEH
2022-12-28 10:58:34 -05:00
committed by Sébastien Blin
parent 08313117e8
commit 6b4d00f39e

View File

@ -113,7 +113,8 @@ void
ConversationRequestTest::setUp()
{
// Init daemon
libjami::init(libjami::InitFlag(libjami::LIBJAMI_FLAG_DEBUG | libjami::LIBJAMI_FLAG_CONSOLE_LOG));
libjami::init(
libjami::InitFlag(libjami::LIBJAMI_FLAG_DEBUG | libjami::LIBJAMI_FLAG_CONSOLE_LOG));
if (not Manager::instance().initialized)
CPPUNIT_ASSERT(libjami::start("jami-sample.yml"));
@ -314,7 +315,8 @@ ConversationRequestTest::testAddContact()
std::map<std::string, std::shared_ptr<libjami::CallbackWrapperBase>> confHandlers;
bool conversationReady = false, requestReceived = false, memberMessageGenerated = false;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& /*conversationId*/,
@ -378,7 +380,8 @@ ConversationRequestTest::testDeclineConversationRequestRemoveTrustRequest()
std::map<std::string, std::shared_ptr<libjami::CallbackWrapperBase>> confHandlers;
bool conversationReady = false, requestReceived = false, memberMessageGenerated = false;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& /*conversationId*/,
@ -434,9 +437,11 @@ ConversationRequestTest::testMalformedTrustRequest()
std::unique_lock<std::mutex> lk {mtx};
std::condition_variable cv;
std::map<std::string, std::shared_ptr<libjami::CallbackWrapperBase>> confHandlers;
bool conversationReady = false, requestReceived = false, memberMessageGenerated = false;
bool conversationReady = false, requestReceived = false, memberMessageGenerated = false,
requestDeclined = false;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& /*conversationId*/,
@ -464,6 +469,7 @@ ConversationRequestTest::testMalformedTrustRequest()
cv.notify_one();
}
}));
libjami::registerSignalHandlers(confHandlers);
aliceAccount->addContact(bobUri);
aliceAccount->sendTrustRequest(bobUri, {});
@ -480,12 +486,21 @@ ConversationRequestTest::testMalformedTrustRequest()
CPPUNIT_ASSERT(requests.size() == 0);
trustRequests = libjami::getTrustRequests(bobId);
CPPUNIT_ASSERT(trustRequests.size() == 1);
// Reload conversation will fix the state
// Reload conversation will fix the state (the trustRequest is removed in another thread)
bobAccount->convModule()->loadConversations();
requests = libjami::getConversationRequests(bobId);
CPPUNIT_ASSERT(requests.size() == 0);
auto start = std::chrono::steady_clock::now();
do {
trustRequests = libjami::getTrustRequests(bobId);
CPPUNIT_ASSERT(trustRequests.size() == 0);
requestDeclined = trustRequests.size() == 0;
if (!requestDeclined)
std::this_thread::sleep_for(1s);
} while (not requestDeclined and std::chrono::steady_clock::now() - start < 2s);
CPPUNIT_ASSERT(requestDeclined);
}
void
@ -501,7 +516,8 @@ ConversationRequestTest::testAddContactDeleteAndReAdd()
std::map<std::string, std::shared_ptr<libjami::CallbackWrapperBase>> confHandlers;
bool conversationReady = false, requestReceived = false, memberMessageGenerated = false;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& /*conversationId*/,
@ -627,7 +643,8 @@ ConversationRequestTest::testRemoveContact()
std::map<std::string, std::shared_ptr<libjami::CallbackWrapperBase>> confHandlers;
bool conversationReady = false, requestReceived = false, memberMessageGenerated = false;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& /*conversationId*/,
@ -647,7 +664,8 @@ ConversationRequestTest::testRemoveContact()
cv.notify_one();
}));
bool conversationRemovedAlice = false, conversationRemovedBob = false;
confHandlers.insert(libjami::exportable_callback<libjami::ConversationSignal::ConversationRemoved>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConversationSignal::ConversationRemoved>(
[&](const std::string& accountId, const std::string&) {
if (accountId == aliceId)
conversationRemovedAlice = true;
@ -711,7 +729,8 @@ ConversationRequestTest::testRemoveSelfDoesntRemoveConversation()
bool conversationReady = false, requestReceived = false, memberMessageGenerated = false,
conversationRemoved = false;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& /*conversationId*/,
@ -730,7 +749,8 @@ ConversationRequestTest::testRemoveSelfDoesntRemoveConversation()
}
cv.notify_one();
}));
confHandlers.insert(libjami::exportable_callback<libjami::ConversationSignal::ConversationRemoved>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConversationSignal::ConversationRemoved>(
[&](const std::string& accountId, const std::string&) {
if (accountId == bobId)
conversationRemoved = true;
@ -777,7 +797,8 @@ ConversationRequestTest::testRemoveConversationUpdateContactDetails()
bool conversationReady = false, requestReceived = false, memberMessageGenerated = false,
conversationRemoved = false;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& /*conversationId*/,
@ -796,7 +817,8 @@ ConversationRequestTest::testRemoveConversationUpdateContactDetails()
}
cv.notify_one();
}));
confHandlers.insert(libjami::exportable_callback<libjami::ConversationSignal::ConversationRemoved>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConversationSignal::ConversationRemoved>(
[&](const std::string& accountId, const std::string&) {
if (accountId == bobId)
conversationRemoved = true;
@ -842,7 +864,8 @@ ConversationRequestTest::testBanContact()
std::map<std::string, std::shared_ptr<libjami::CallbackWrapperBase>> confHandlers;
bool conversationReady = false, requestReceived = false, memberMessageGenerated = false;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& /*conversationId*/,
@ -902,7 +925,8 @@ ConversationRequestTest::testBanContactRemoveTrustRequest()
std::map<std::string, std::shared_ptr<libjami::CallbackWrapperBase>> confHandlers;
bool conversationReady = false, requestReceived = false, requestDeclined = true;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& /*conversationId*/,
@ -954,7 +978,8 @@ ConversationRequestTest::testAddOfflineContactThenConnect()
std::map<std::string, std::shared_ptr<libjami::CallbackWrapperBase>> confHandlers;
bool conversationReady = false, requestReceived = false, memberMessageGenerated = false;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& /*conversationId*/,
@ -1011,7 +1036,8 @@ ConversationRequestTest::testDeclineTrustRequestDoNotGenerateAnother()
bool conversationReady = false, requestReceived = false, memberMessageGenerated = false;
std::string convId = "";
auto bobConnected = false;
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& /*conversationId*/,
@ -1081,7 +1107,8 @@ ConversationRequestTest::testRemoveContactRemoveSyncing()
std::map<std::string, std::shared_ptr<libjami::CallbackWrapperBase>> confHandlers;
bool conversationReady = false, contactAdded = false, requestReceived = false;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& convId,
@ -1145,7 +1172,8 @@ ConversationRequestTest::testRemoveConversationRemoveSyncing()
bool conversationReady = false, contactAdded = false, requestReceived = false,
conversationRemoved = false;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& convId,
@ -1164,7 +1192,8 @@ ConversationRequestTest::testRemoveConversationRemoveSyncing()
}
cv.notify_one();
}));
confHandlers.insert(libjami::exportable_callback<libjami::ConversationSignal::ConversationRemoved>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConversationSignal::ConversationRemoved>(
[&](const std::string& accountId, const std::string&) {
if (accountId == bobId) {
conversationRemoved = true;
@ -1256,7 +1285,8 @@ ConversationRequestTest::testNeedsSyncingWithForCloning()
std::map<std::string, std::shared_ptr<libjami::CallbackWrapperBase>> confHandlers;
bool contactAdded = false, requestReceived = false;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& convId,
@ -1323,7 +1353,8 @@ ConversationRequestTest::testRemoveContactRemoveTrustRequest()
conversationB2Removed = false, requestB1Received = false, requestB2Received = false,
memberMessageGenerated = false;
std::string convId = "";
confHandlers.insert(libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConfigurationSignal::IncomingTrustRequest>(
[&](const std::string& account_id,
const std::string& /*from*/,
const std::string& /*conversationId*/,
@ -1346,7 +1377,8 @@ ConversationRequestTest::testRemoveContactRemoveTrustRequest()
}
cv.notify_one();
}));
confHandlers.insert(libjami::exportable_callback<libjami::ConversationSignal::ConversationRemoved>(
confHandlers.insert(
libjami::exportable_callback<libjami::ConversationSignal::ConversationRemoved>(
[&](const std::string& accountId, const std::string&) {
if (accountId == bobId) {
conversationB1Removed = true;