void TestSymbianEngine::saveContactWithFavoriteDetail() { QContactManager::Error err; QContactFetchHint hint; //save a contact without favorite detail QContact c1; c1.setType(QContactType::TypeContact); QContactName name1; name1.setFirstName("somename"); c1.saveDetail(&name1); QVERIFY(m_engine->saveContact(&c1, &err)); QVERIFY(err == QContactManager::NoError); //fetch contact and check there is no favorite detail QContact savedContact1 = m_engine->contact(c1.localId(), hint, &err); QVERIFY(err == QContactManager::NoError); QVERIFY(savedContact1.details<QContactFavorite>().count() == 0); //save a contact with a favorite detail QContact c2; c2.setType(QContactType::TypeContact); QContactName name2; name2.setFirstName("firstname"); c2.saveDetail(&name2); QContactFavorite fav; fav.setFavorite(true); fav.setIndex(100); c2.saveDetail(&fav); QVERIFY(m_engine->saveContact(&c2, &err)); QVERIFY(err == QContactManager::NoError); //fetch contact and check there is a preferred detail we saved QContact savedContact2 = m_engine->contact(c2.localId(), hint, &err); QVERIFY(err == QContactManager::NoError); QContactFavorite savedFav = savedContact2.detail<QContactFavorite>(); QVERIFY(savedFav.isFavorite()); QVERIFY(savedFav.index() == 100); //remove favorite detail and save contact savedContact2.removeDetail(&savedFav); QVERIFY(m_engine->saveContact(&savedContact2, &err)); QVERIFY(err == QContactManager::NoError); //fetch contact and check there is no favorite detail QContact savedContact3 = m_engine->contact(savedContact2.localId(), hint, &err); QVERIFY(err == QContactManager::NoError); QVERIFY(savedContact3.details<QContactFavorite>().count() == 0); //save a contact with a favorite detail, favorite index is 0 QContact c3; c3.setType(QContactType::TypeContact); QContactName name3; name3.setFirstName("firstname3"); c3.saveDetail(&name3); QContactFavorite fav3; fav3.setFavorite(true); fav3.setIndex(0); c3.saveDetail(&fav3); QVERIFY(m_engine->saveContact(&c3, &err)); QVERIFY(err == QContactManager::NoError); //fetch contact and check there is a preferred detail we saved QContact savedContact4 = m_engine->contact(c3.localId(), hint, &err); QVERIFY(err == QContactManager::NoError); QContactFavorite savedFav4 = savedContact4.detail<QContactFavorite>(); QVERIFY(savedFav4.isFavorite()); QVERIFY(savedFav4.index() == 0); //remove favorite detail by changing QContactFavorite detail and save contact savedFav4.setFavorite(false); savedContact4.saveDetail(&savedFav4); QVERIFY(m_engine->saveContact(&savedContact4, &err)); QVERIFY(err == QContactManager::NoError); //fetch contact and check there is no favorite detail QContact savedContact5 = m_engine->contact(savedContact4.localId(), hint, &err); QVERIFY(err == QContactManager::NoError); QVERIFY(savedContact5.details<QContactFavorite>().count() == 0); }