phonebookengines/contactsmodel/tsrc/Integration/CntPerfTest/src/ViewDefAllFieldsTest.cpp
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookengines/contactsmodel/tsrc/Integration/CntPerfTest/src/ViewDefAllFieldsTest.cpp	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,182 @@
+// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+/**
+ @file
+ @publishedAll
+ @released
+*/
+
+#include <e32panic.h>
+#include <test/testexecutelog.h>
+#include <cntfldst.h>
+#include "ClientServer.h"
+#include "ViewDefAllFieldsTest.h"
+
+_LIT(KTest1,"Testing ...");
+
+const LOCAL_D TInt KFields = 67;
+const LOCAL_D TInt KHfields = 3;
+
+//Number of contacts
+CViewDefAllFieldsTest::CViewDefAllFieldsTest():CViewDefBase(5)
+	{
+	// Call base class method to set up the human readable name for logging
+	SetTestStepName(SharedConstants::KViewDefAllFieldsTest);
+	}
+
+TVerdict CViewDefAllFieldsTest::doTestStepL()
+	{
+	
+	__UHEAP_MARK;
+
+	InitializeL();
+	iIterate->Reset();
+	INFO_PRINTF1(KTest1);
+	FieldCountTestL();
+	Cleanup();
+	__UHEAP_MARKEND;
+	
+	return TestStepResult();
+	}
+/**viewdef tests where contact item is opened/read using empty viewdefs or one containng,
+KUidContactFieldMatchAll only*/
+void CViewDefAllFieldsTest::FieldCountTestL()
+	{		
+	iViewII->AddL(KUidContactFieldMatchAll);
+	iViewIM->AddL(KUidContactFieldMatchAll);
+	iViewMI->AddL(KUidContactFieldMatchAll);
+	iViewMM->AddL(KUidContactFieldMatchAll);
+	
+	//commented out tests that fail
+	SINGLECOMPARE( FieldCountCompL(iIterate->NextL(),*iViewII,EFalse,EFalse,EFalse),0,0 );
+	SINGLECOMPARE( FieldCountCompL(iIterate->NextL(),*iViewIM,EFalse,EFalse,ETrue),0,0 );
+	//the behaviour of this test is inverted with regards to hidden fields, they are excluded.
+	SINGLECOMPARE( FieldCountCompL(iIterate->NextL(),*iViewMI,EFalse,ETrue,ETrue),0,0 );
+	SINGLECOMPARE( FieldCountCompL(iIterate->NextL(),*iViewMM,EFalse,ETrue,ETrue),0,0 );
+	//using the default viewdefs used in open and read causes a discrepency
+	SINGLECOMPARE( FieldCountCompL(iIterate->NextL(),*iViewAll,ETrue,EFalse,ETrue),0,0 );
+	
+	iViewII->Reset();
+	iViewIM->Reset();
+	iViewMI->Reset();
+	iViewMM->Reset();
+	}
+/**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
+		{
+		SingleCheck = INTCOMPARE( countr , ==,  0 , 0, 0 );
+		OverallResult = OverallResult && SingleCheck;
+	
+		SingleCheck = INTCOMPARE( (countrm - hcountrm) , ==,  KFields , 0, 0 );
+		OverallResult = OverallResult && SingleCheck;
+	
+		SingleCheck = INTCOMPARE( (countrm - hcountrm) , ==,  (counti - hcounti), 0, 0 );
+		OverallResult = OverallResult && SingleCheck;
+	
+		}
+		
+	if(aZeroH)
+		{
+		SingleCheck = INTCOMPARE(hcountrm , ==,  0, 0, 0 );
+		OverallResult = OverallResult && SingleCheck;
+	
+		SingleCheck = SINGLECOMPARE( ( (hcountr == 0) || ( (hcountr == hcountrv) && (countr == countrAll) ) ), 0, 0 );
+		OverallResult = OverallResult && SingleCheck;	
+		}
+	else
+		{
+		SingleCheck = INTCOMPARE(hcountrm , ==,  KHfields, 0, 0 );
+		OverallResult = OverallResult && SingleCheck;
+			
+		SingleCheck = INTCOMPARE(hcountr , ==,  hcountrm, 0, 0 );
+		OverallResult = OverallResult && SingleCheck;
+	
+		SingleCheck = INTCOMPARE(hcountrm , ==,  hcounti, 0, 0 );
+		OverallResult = OverallResult && SingleCheck;	
+		}
+		
+	return OverallResult;
+	}
+