void TestCntPresenceInfoProvider::testHandlePresenceUpdate() { QSignalSpy spy(mCntPresenceInfoProvider, SIGNAL(infoFieldReady(CntInfoProvider*, int, ContactInfoField, const QString&))); PrcPresenceWriter *writer = PrcPresenceWriter::createWriter(); PrcPresenceReader *reader = PrcPresenceReader::createReader(); PrcPresenceBuddyInfoQt *dummyBuddy = PrcPresenceBuddyInfoQt::createInstance(); dummyBuddy->setIdentity("sip:[email protected]"); dummyBuddy->setAvailability(PrcPresenceBuddyInfoQt::PrcAvailable, "meh"); writer->writePresence(*dummyBuddy); mCntPresenceInfoProvider->handlePresenceUpdate(true, dummyBuddy); QCOMPARE(spy.count(), 0); mCntPresenceInfoProvider->handlePresenceUpdate(false, dummyBuddy); QCOMPARE(spy.count(), 0); mCntPresenceInfoProvider->handlePresenceUpdate(true, NULL); QCOMPARE(spy.count(), 0); PrcPresenceBuddyInfoQt *buddy = reader->presenceInfo("sip:[email protected]"); buddy->setAvailability(PrcPresenceBuddyInfoQt::PrcNotAvailable, "meh"); writer->writePresence(*buddy); QTest::qWait(5000); QCOMPARE(spy.count(), 1); QContactManager manager("symbian"); QContact c = manager.contact(mCntPresenceInfoProvider->mBuddyMap.value("sip:[email protected]")); QList<QContactOnlineAccount> accounts = c.details<QContactOnlineAccount>(); foreach (QContactOnlineAccount account, accounts) { c.removeDetail(&account); }
void removeDetail( QContact& contact ) { T detail = contact.detail<T>(); contact.removeDetail( &detail ); }