/** open acid, increase access count to 1, attempt to delete contact, check that it has not been deleted, set access count to 0, delete, and check that it has been deleted. */ void CAccessCountTests::AccessCountTestL(const TContactItemId aCid) { TInt err = KErrNone; static const TInt KAccessCount = 1;//increase access count of contact by 1, TInt i = 0; OpenL(aCid,*iViewAll); SetContactFieldsL(*iContactItem); for(i = 0; i < KAccessCount; ++i ) { iContactItem->IncAccessCount(); } CommitL(); ReadL(aCid, *iViewAll); const TInt KInitialAccessCount = iContactItem->AccessCount();//facount const TInt KInitialFieldCount = iFields->Count(); //fcount const TInt KInitialEmptyFields = CountEmpty(*iFields);//fhcount Close(); INTCOMPARE( KInitialEmptyFields , ==, 0 , 0, 0 ); INTCOMPARE( KInitialFieldCount , >, 0 , 0, 0 ); for(i = 0; i < KAccessCount; ++i ) { iContactsDatabase->DeleteContactL(aCid); } ReadL(aCid,*iViewAll); const TInt KModifiedAccessCount = iContactItem->AccessCount();//dacount const TInt KModifiedFieldCount = iFields->Count();//dcount const TInt KModifiedEmptyFields = CountEmpty(*iFields);//dHcount Close(); /* check that deleting a contact doesnt modify its access count check that deleting a contact with access count > 1, deletes all fields associated with contact but not the contact item itself */ INTCOMPARE( KModifiedAccessCount , ==, KInitialAccessCount , 0, 0 ); INTCOMPARE( KInitialFieldCount , ==, KModifiedFieldCount , 0, 0 ); INTCOMPARE( KModifiedEmptyFields , ==, KInitialFieldCount , 0, 0 ); INTCOMPARE( KModifiedFieldCount , ==, KModifiedEmptyFields , 0, 0 ); OpenL(aCid,*iViewAll); for(i = 0; i < KAccessCount; ++i ) { iContactItem->DecAccessCount(); } const TInt lAcount = iContactItem->AccessCount(); CommitL(); INTCOMPARE( lAcount , ==, 0, 0, 0 ); TRAP( err, ReadL(aCid, *iViewAll) ); Close(); INTCOMPARE( err , ==, KErrNotFound , 0, 0 ); }
bool CItemGridArray::IsFull() { return CountEmpty() == 0; }
TBool CViewDefAnyFieldsTest::FieldCountCompL( const TContactItemId &aCid, CContactItemViewDef &aView, const TBool aExcludeN, const TBool aExcludeH, const TBool aZeroH, const TBool aMultiple) { TBool SingleTestResult = EFalse; TBool OverallTestResult = EFalse; TInt countM = 0; TInt countR = 0; TInt fieldsIV = 0; TInt emptyfsM = 0; TInt emptyfsR = 0; TInt hcountM = 0; TInt hcountR = 0; TInt hfieldsIV = 0; TInt length = 0; length = iExistingUidsArray->Count(); for(TInt i = 0, j = 0; i < length;) { OverallTestResult = EFalse; if( (*iExistingUidsArray)[i] == 0 ) { ++i; continue; } aView.AddL(TUid::Uid((*iExistingUidsArray)[i])); ReadL(aCid,*iViewAll,EFalse); FieldsInView(aView, fieldsIV, hfieldsIV); countR = iFields->Count(); hcountR = CountHiddenFields(*iFields); emptyfsR = CountEmpty(*iFields); Close(); ReadMinimalL(aCid, aView, *iDefView,EFalse); countM = iFields->Count(); hcountM = CountHiddenFields(*iFields); emptyfsM = CountEmpty(*iFields); Close(); SingleTestResult = INTCOMPARE( 0 , ==, emptyfsM, i, 0 ); OverallTestResult = SingleTestResult; SingleTestResult = INTCOMPARE( 0 , ==, emptyfsR, i, 0 ); OverallTestResult = OverallTestResult && SingleTestResult; SingleTestResult = INTCOMPARE( hcountR , >, 0 , i, 0 ); OverallTestResult = OverallTestResult && SingleTestResult; if(aExcludeN) { SingleTestResult = INTCOMPARE( ( (countR - fieldsIV) - hcountR ) , ==, (countM - hcountM) , i, 0 ); OverallTestResult = OverallTestResult && SingleTestResult; } else { SingleTestResult = INTCOMPARE( fieldsIV , ==, (countM - hcountM) , i, 0 ); OverallTestResult = OverallTestResult && SingleTestResult; } if(aExcludeH) { if( aZeroH) { SingleTestResult = INTCOMPARE( 0 , ==, hcountM, i, 0 ); OverallTestResult = OverallTestResult && SingleTestResult; } else { SingleTestResult = INTCOMPARE( ( hcountR - hfieldsIV) , ==, hcountM , i, 0 ); OverallTestResult = OverallTestResult && SingleTestResult; } }
/**opens and read contct aCid using the default viewdefs. then it reads and minimally reads aCid using aView, it stores the number relevant fields after each read/open, then checks that the values match the expected resluts as constrained by aZeroN/H, aZeroN == all normal fields should be excluded, aZeroH == all hidden fields should be excluded*/ TBool CViewDefAllFieldsTest::FieldCountCompL( const TContactItemId aCid, const CContactItemViewDef &aView, const TBool aDefault, const TBool aZeroN, const TBool aZeroH) { TBool SingleCheck = EFalse; TBool OverallResult = ETrue; TInt counti = 0; TInt countr = 0; TInt countrv = 0; TInt countrAll = 0; TInt countrAllv = 0; TInt countrm = 0; TInt hcounti = 0; TInt hcountr = 0; TInt hcountrv = 0; TInt hcountrm = 0; OpenL(aCid,aView, ETrue); SetContactFieldsL(*iContactItem); counti = iFields->Count(); hcounti = CountHiddenFields(*iFields); CommitL(); ReadL(aCid,*iViewAll,EFalse); countrv = CountEmpty(*iFields); countrAllv = iFields->Count(); hcountrv = CountHiddenFields(*iFields); Close(); ReadL(aCid,aView,aDefault); countr = CountEmpty(*iFields); countrAll = iFields->Count(); hcountr = CountHiddenFields(*iFields); Close(); ReadMinimalL(aCid, aView, *iDefView, aDefault); countrm = iFields->Count(); hcountrm = CountHiddenFields(*iFields); Close(); SingleCheck = INTCOMPARE( countrAllv, ==, counti, 0, 0 ); OverallResult = OverallResult && SingleCheck; SingleCheck = INTCOMPARE(hcounti , ==, hcountrv, 0, 0 ); OverallResult = OverallResult && SingleCheck; SingleCheck = INTCOMPARE(countrv , ==, 0, 0, 0 ); OverallResult = OverallResult && SingleCheck; SingleCheck = INTCOMPARE( ( countrAll - countr) , ==, countrm , 0, 0 ); OverallResult = OverallResult && SingleCheck; if(aZeroN) { SingleCheck = INTCOMPARE( ( countr - hcountr ) , ==, ( counti - hcounti ) , 0, 0 ); OverallResult = OverallResult && SingleCheck; SingleCheck = INTCOMPARE( ( countrm - hcountrm ) , ==, 0 , 0, 0 ); OverallResult = OverallResult && SingleCheck; } else {