diff --git a/test/unitTest/call/conference.cpp b/test/unitTest/call/conference.cpp index 2ab4717bc15a31ea97cb9e637d677ebeaea8cd2e..aab58e0acfc02d02ffdf9e6cc0e81cd9a40e4d4a 100644 --- a/test/unitTest/call/conference.cpp +++ b/test/unitTest/call/conference.cpp @@ -24,6 +24,7 @@ #include <string> #include "manager.h" +#include "client/videomanager.h" #include "jamidht/connectionmanager.h" #include "jamidht/jamiaccount.h" #include "../../test_runner.h" @@ -465,19 +466,33 @@ ConferenceTest::testCreateParticipantsSinks() startConference(); - auto infos = DRing::getConferenceInfos(aliceId, confId); + auto expectedNumberOfParticipants = 3; - CPPUNIT_ASSERT(cv.wait_for(lk, 5s, [&] { - bool sinksStatus = true; - for (auto& info : infos) { - if (info["uri"] == bobUri) { - sinksStatus &= (Manager::instance().getSinkClient(info["sinkId"]) != nullptr); - } else if (info["uri"] == carlaUri) { - sinksStatus &= (Manager::instance().getSinkClient(info["sinkId"]) != nullptr); + // Check participants number + CPPUNIT_ASSERT(cv.wait_for(lk, 30s, [&]{ return pInfos_.size() == expectedNumberOfParticipants; })); + + if (not jami::getVideoDeviceMonitor().getDeviceList().empty()) { + JAMI_INFO() << "Check sinks if video device available."; + for (auto& info : pInfos_) { + auto uri = string_remove_suffix(info["uri"], '@'); + if (uri == bobUri) { + CPPUNIT_ASSERT(cv.wait_for(lk, 5s, [&]{ return Manager::instance().getSinkClient(info["sinkId"]) != nullptr; })); + } else if (uri == carlaUri) { + CPPUNIT_ASSERT(cv.wait_for(lk, 5s, [&]{ return Manager::instance().getSinkClient(info["sinkId"]) != nullptr; })); } } - return sinksStatus; - })); + } else { + JAMI_INFO() << "Check sinks if no video device available."; + for (auto& info : pInfos_) { + auto uri = string_remove_suffix(info["uri"], '@'); + if (uri == bobUri) { + CPPUNIT_ASSERT(cv.wait_for(lk, 5s, [&]{ return Manager::instance().getSinkClient(info["sinkId"]) == nullptr; })); + } else if (uri == carlaUri) { + CPPUNIT_ASSERT(cv.wait_for(lk, 5s, [&]{ return Manager::instance().getSinkClient(info["sinkId"]) == nullptr; })); + } + } + } + hangupConference();