LOCAL_C void NonDateBasedFilterTest() { //This test has been created because, formerly, //CContactDatabase::FilterDatabase(...) could not //filter on contact types ONLY. //Previously, the CCntFilter passed in had to //have specified filtering based on the //time-based states as well (e.g. new, modified, deleted). //Addresses DEF036345 CCntFilter* theFilter = CCntFilter::NewLC(); theFilter->SetContactFilterTypeGroup(EFalse); theFilter->SetContactFilterTypeTemplate(EFalse); theFilter->SetContactFilterTypeOwnCard(EFalse); theFilter->SetContactFilterTypeCard(ETrue); //Get a filtered version of the database CntTest->Db()->FilterDatabaseL(*theFilter); test(theFilter->iIds->Count()==KTotalNumRecords); CleanupStack::PopAndDestroy(theFilter); }
// SetInclude* are exclusive // SetContactFilterType* is cumulative // LOCAL_C void CheckFilterSettingsL(TBool aSetting) { CCntFilter* filter = CCntFilter::NewLC(); filter->Reset(); filter->SetIncludeModifiedContacts(aSetting); if (aSetting) { test(filter->IncludeModifiedContacts()); test(!filter->IncludeNewContacts()); test(!filter->IncludeDeletedContacts()); } filter->SetIncludeNewContacts(aSetting); if (aSetting) { test(filter->IncludeNewContacts()); test(!filter->IncludeModifiedContacts()); test(!filter->IncludeDeletedContacts()); } filter->SetIncludeDeletedContacts(aSetting); if (aSetting) { test(filter->IncludeDeletedContacts()); test(!filter->IncludeModifiedContacts()); test(!filter->IncludeNewContacts()); } filter->SetContactFilterTypeCard(aSetting); filter->SetContactFilterTypeGroup(aSetting); filter->SetContactFilterTypeTemplate(aSetting); filter->SetContactFilterTypeOwnCard(aSetting); if (aSetting) { test(filter->ContactFilterTypeGroup()); test(filter->ContactFilterTypeCard()); test(filter->ContactFilterTypeTemplate()); test(filter->ContactFilterTypeOwnCard()); } else { test(!filter->ContactFilterTypeGroup()); test(!filter->ContactFilterTypeCard()); test(!filter->ContactFilterTypeTemplate()); test(!filter->ContactFilterTypeOwnCard()); } filter->SetContactFilterTypeALL(aSetting); if (aSetting) { test(filter->ContactFilterTypeALL()); test(filter->ContactFilterTypeGroup()); test(filter->ContactFilterTypeCard()); test(filter->ContactFilterTypeTemplate()); test(filter->ContactFilterTypeOwnCard()); } TTime time; time.UniversalTime(); filter->SetFilterDateTime(time); test(filter->GetFilterDateTime()==time); CleanupStack::PopAndDestroy(filter); }