[Telepathy-commits] [telepathy-qt4/master] streamed-media-chan: Do not exit loop on onGroupMembersChanged slot (just cache the result).

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Wed Mar 25 07:32:40 PDT 2009


---
 tests/dbus/streamed-media-chan.cpp |   40 ++++++++++++++++-------------------
 1 files changed, 18 insertions(+), 22 deletions(-)

diff --git a/tests/dbus/streamed-media-chan.cpp b/tests/dbus/streamed-media-chan.cpp
index d469469..d523986 100644
--- a/tests/dbus/streamed-media-chan.cpp
+++ b/tests/dbus/streamed-media-chan.cpp
@@ -171,7 +171,6 @@ void TestStreamedMediaChan::onGroupMembersChanged(
     mChangedRP = groupRemotePendingMembersAdded;
     mChangedRemoved = groupMembersRemoved;
     mDetails = details;
-    mLoop->exit(0);
 }
 
 void TestStreamedMediaChan::onStreamRemoved(const MediaStreamPtr &stream)
@@ -364,16 +363,15 @@ void TestStreamedMediaChan::testOutgoingCall()
     QVERIFY(mChan->streams().contains(stream));
 
     // wait the contact to appear on RP
-    if (mChan->groupRemotePendingContacts().size() == 0) {
-        QCOMPARE(mLoop->exec(), 0);
-        QCOMPARE(mChangedRP.size(), 1);
-        QVERIFY(mChan->groupRemotePendingContacts().contains(otherContact));
-        QCOMPARE(mChan->awaitingRemoteAnswer(), true);
+    while (mChan->groupRemotePendingContacts().size() == 0) {
+        mLoop->processEvents();
     }
+    QVERIFY(mChan->groupRemotePendingContacts().contains(otherContact));
+    QCOMPARE(mChan->awaitingRemoteAnswer(), true);
+
     // wait the contact to accept the call
-    if (mChan->groupContacts().size() == 1) {
-        QCOMPARE(mLoop->exec(), 0);
-        QCOMPARE(mChangedCurrent.size(), 1);
+    while (mChan->groupContacts().size() != 2) {
+        mLoop->processEvents();
     }
     QCOMPARE(mChan->groupContacts().size(), 2);
     QCOMPARE(mChan->awaitingRemoteAnswer(), false);
@@ -570,12 +568,11 @@ void TestStreamedMediaChan::testOutgoingCallNoAnswer()
                             const Telepathy::Client::Contacts &,
                             const Telepathy::Client::Channel::GroupMemberChangeDetails &))));
     // wait the contact to appear on RP
-    if (mChan->groupRemotePendingContacts().size() == 0) {
-        QCOMPARE(mLoop->exec(), 0);
-        QCOMPARE(mChangedRP.size(), 1);
-        QVERIFY(mChan->groupRemotePendingContacts().contains(otherContact));
-        QCOMPARE(mChan->awaitingRemoteAnswer(), true);
+    while (mChan->groupRemotePendingContacts().size() == 0) {
+        mLoop->processEvents();
     }
+    QVERIFY(mChan->groupRemotePendingContacts().contains(otherContact));
+    QCOMPARE(mChan->awaitingRemoteAnswer(), true);
     QCOMPARE(mChan->groupRemotePendingContacts().size(), 1);
 
     /* assume we're never going to get an answer, and hang up */
@@ -653,16 +650,15 @@ void TestStreamedMediaChan::testOutgoingCallTerminate()
     QCOMPARE(mLoop->exec(), 0);
 
     // wait the contact to appear on RP
-    if (mChan->groupRemotePendingContacts().size() == 0) {
-        QCOMPARE(mLoop->exec(), 0);
-        QCOMPARE(mChangedRP.size(), 1);
-        QVERIFY(mChan->groupRemotePendingContacts().contains(otherContact));
-        QCOMPARE(mChan->awaitingRemoteAnswer(), true);
+    while (mChan->groupRemotePendingContacts().size() == 0) {
+        mLoop->processEvents();
     }
+    QVERIFY(mChan->groupRemotePendingContacts().contains(otherContact));
+    QCOMPARE(mChan->awaitingRemoteAnswer(), true);
+
     // wait the contact to accept the call
-    if (mChan->groupContacts().size() == 1) {
-        QCOMPARE(mLoop->exec(), 0);
-        QCOMPARE(mChangedCurrent.size(), 1);
+    while (mChan->groupContacts().size() != 2) {
+        mLoop->processEvents();
     }
     QCOMPARE(mChan->groupContacts().size(), 2);
     QCOMPARE(mChan->awaitingRemoteAnswer(), false);
-- 
1.5.6.5




More information about the telepathy-commits mailing list