From 81da3f7678074373a4acc6f76e1d6c003b177fe2 Mon Sep 17 00:00:00 2001 From: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com> Date: Mon, 24 Oct 2022 15:06:11 -0300 Subject: [PATCH] conference: fix sinks creation test The sinks only should be created when there is a video device available. If no video device is available, no sinks should be created. Change-Id: Iec35288bf9966eb664470b2f8c1e5738f6909893 --- test/unitTest/call/conference.cpp | 35 ++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/test/unitTest/call/conference.cpp b/test/unitTest/call/conference.cpp index 2ab4717bc1..aab58e0acf 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(); -- GitLab