void TestReadTextDefinitionL(CContactDatabase& aDb, TContactItemId aIccId, TContactItemId aNonIccId) { test.Next(_L("Test ReadTextDefinitionL")); // Successful read of icc entry CContactTextDef* textDef=CContactTextDef::NewLC(); textDef->AppendL(TContactTextDefItem(KUidContactFieldFamilyName)); TBuf<64> result; syncChecker->SetValidateResponseL(MContactSynchroniser::ERead,KErrNone); syncChecker->ResetMethodCallCountsL(); aDb.ReadContactTextDefL(aIccId,result,textDef); test(syncChecker->ValidateMethodCallCountL() == 1); test(result==KIccName); result.Zero(); // Unsuccessful read of icc entry because icc locked syncChecker->SetValidateResponseL(MContactSynchroniser::ERead,KErrAccessDenied); syncChecker->ResetMethodCallCountsL(); TRAPD(err, aDb.ReadContactTextDefL(aIccId,result,textDef)); test(err==KErrAccessDenied); test(result.Length() == 0); test(syncChecker->ValidateMethodCallCountL() == 1); // successful read of non-icc entry, even though icc locked syncChecker->ResetMethodCallCountsL(); TRAP(err, aDb.ReadContactTextDefL(aNonIccId,result,textDef)); test(err==KErrNone); test(result==KNonIccName); test(syncChecker->ValidateMethodCallCountL() == 0); CleanupStack::PopAndDestroy(textDef); }
/** * Verify that read validation is done for ReadContactTextDefL * * @param aDb Contact database * @param aId Contact item ID to read */ void TestReadTextDefinitionL(CContactDatabase& aDb, TContactItemId aId) { syncChecker->SetValidateResponseL(MContactSynchroniser::ERead,KErrNone); syncChecker->ResetMethodCallCountsL(); test(syncChecker->ValidateMethodCallCountL() == 0); TBuf<64> textDef; aDb.ReadContactTextDefL(aId,textDef); test(syncChecker->ValidateMethodCallCountL() == 1); syncChecker->SetValidateResponseL(MContactSynchroniser::ERead,KErrAccessDenied); syncChecker->ResetMethodCallCountsL(); test(syncChecker->ValidateMethodCallCountL() == 0); TRAPD(err, aDb.ReadContactTextDefL(aId,textDef)); test(err==KErrAccessDenied); test(syncChecker->ValidateMethodCallCountL() == 1); }