[telepathy-qt4/master] roster-groups example: Added tests for removing contacts from a contact list group.

Andre Moreira Magalhaes (andrunko) andre.magalhaes at collabora.co.uk
Wed Jul 22 21:31:16 PDT 2009


---
 tests/dbus/conn-roster-groups.cpp |   29 ++++++++++++++++++++++++++++-
 1 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/tests/dbus/conn-roster-groups.cpp b/tests/dbus/conn-roster-groups.cpp
index ebe6385..c08a619 100644
--- a/tests/dbus/conn-roster-groups.cpp
+++ b/tests/dbus/conn-roster-groups.cpp
@@ -24,12 +24,14 @@ class TestConnRosterGroups : public Test
 
 public:
     TestConnRosterGroups(QObject *parent = 0)
-        : Test(parent), mConnService(0), mContactsAddedToGroup(0)
+        : Test(parent), mConnService(0),
+          mContactsAddedToGroup(0), mContactsRemovedFromGroup(0)
     { }
 
 protected Q_SLOTS:
     void onGroupAdded(const QString &group);
     void onContactAddedToGroup(const QString &group);
+    void onContactRemovedFromGroup(const QString &group);
     void expectConnInvalidated();
 
 private Q_SLOTS:
@@ -48,6 +50,7 @@ private:
 
     QString mGroupAdded;
     int mContactsAddedToGroup;
+    int mContactsRemovedFromGroup;
 };
 
 void TestConnRosterGroups::onGroupAdded(const QString &group)
@@ -62,6 +65,12 @@ void TestConnRosterGroups::onContactAddedToGroup(const QString &group)
     mLoop->exit(0);
 }
 
+void TestConnRosterGroups::onContactRemovedFromGroup(const QString &group)
+{
+    mContactsRemovedFromGroup++;
+    mLoop->exit(0);
+}
+
 void TestConnRosterGroups::expectConnInvalidated()
 {
     mLoop->exit(0);
@@ -213,6 +222,24 @@ void TestConnRosterGroups::testRosterGroups()
     foreach (const ContactPtr &contact, contacts) {
         QVERIFY(contact->groups().contains(group));
     }
+
+    // remove all contacts from group foo
+    contacts = contactManager->groupContacts(group);
+    foreach (const ContactPtr &contact, contacts) {
+        QVERIFY(connect(contact.data(),
+                        SIGNAL(removedFromGroup(const QString&)),
+                        SLOT(onContactRemovedFromGroup(const QString&))));
+    }
+    QVERIFY(connect(contactManager->groupRemoveContacts(group, contacts.toList()),
+                    SIGNAL(finished(Tp::PendingOperation*)),
+                    SLOT(expectSuccessfulCall(Tp::PendingOperation*))));
+    QCOMPARE(mLoop->exec(), 0);
+    while (mContactsRemovedFromGroup != contacts.size()) {
+        QCOMPARE(mLoop->exec(), 0);
+    }
+    foreach (const ContactPtr &contact, contacts) {
+        QVERIFY(!contact->groups().contains(group));
+    }
 }
 
 void TestConnRosterGroups::cleanup()
-- 
1.5.6.5




More information about the telepathy-commits mailing list