diff --git a/test/unitTest/conversation/conversationRequest.cpp b/test/unitTest/conversation/conversationRequest.cpp index c1eeb31cb27a047313a17240255979193e510585..f24a787180de9d9836b2aa5a69f04082b8569a2c 100644 --- a/test/unitTest/conversation/conversationRequest.cpp +++ b/test/unitTest/conversation/conversationRequest.cpp @@ -888,7 +888,7 @@ ConversationRequestTest::testRemoveContactRemoveSyncing() std::unique_lock<std::mutex> lk {mtx}; std::condition_variable cv; std::map<std::string, std::shared_ptr<DRing::CallbackWrapperBase>> confHandlers; - bool conversationReady = false, requestReceived = false; + bool conversationReady = false, contactAdded = false, requestReceived = false; std::string convId = ""; confHandlers.insert(DRing::exportable_callback<DRing::ConfigurationSignal::IncomingTrustRequest>( [&](const std::string& account_id, @@ -909,6 +909,13 @@ ConversationRequestTest::testRemoveContactRemoveSyncing() } cv.notify_one(); })); + confHandlers.insert(DRing::exportable_callback<DRing::ConfigurationSignal::ContactAdded>( + [&](const std::string& accountId, const std::string& uri, bool confirmed) { + if (accountId == bobId && uri == aliceUri) { + contactAdded = true; + } + cv.notify_one(); + })); DRing::registerSignalHandlers(confHandlers); aliceAccount->addContact(bobUri); aliceAccount->sendTrustRequest(bobUri, {}); @@ -916,6 +923,7 @@ ConversationRequestTest::testRemoveContactRemoveSyncing() Manager::instance().sendRegister(aliceId, false); // This avoid to sync immediately CPPUNIT_ASSERT(bobAccount->acceptTrustRequest(aliceUri)); + CPPUNIT_ASSERT(cv.wait_for(lk, std::chrono::seconds(30), [&]() { return contactAdded; })); CPPUNIT_ASSERT(DRing::getConversations(bobId).size() == 1); bobAccount->removeContact(aliceUri, false);