pimprotocols/phonebooksync/Test/TE_PhBkSync/TestGetContactFormatSteps.cpp
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pimprotocols/phonebooksync/Test/TE_PhBkSync/TestGetContactFormatSteps.cpp	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,302 @@
+// Copyright (c) 2001-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:
+// This contains PhbkSync API GetContactFormat() related Unit Test Steps
+// 
+//
+
+
+#include "TE_PhBkSyncBase.h"
+#include "TestGetContactFormatSteps.h"
+
+void CPhbkSyncGetContactFormatTest_01::CheckContactFieldsFormatV1(RPhoneBookSession::TContactFieldsV1& aContactFormatV1)
+	{
+	TESTCHECKCONDITION(aContactFormatV1.iNameField.iLength > 0);
+	TESTCHECK(aContactFormatV1.iNameField.iCount, 1);
+	TESTCHECKCONDITION(aContactFormatV1.iNameField.iDisplayed);
+	TESTCHECKCONDITION(aContactFormatV1.iNumberField.iLength > 0);
+	TESTCHECK(aContactFormatV1.iNumberField.iCount, 1);
+	TESTCHECKCONDITION(aContactFormatV1.iNumberField.iDisplayed);
+	TESTCHECK(aContactFormatV1.iIccSlotField.iLength, -1);
+	TESTCHECK(aContactFormatV1.iIccSlotField.iCount, 1);
+	TESTCHECKCONDITION(aContactFormatV1.iIccSlotField.iDisplayed);
+	}
+
+void CPhbkSyncGetContactFormatTest_01::CheckContactFieldsFormatV2(RPhoneBookSession::TContactFieldsV2& aContactFormatV2, TUid aPhonebook)
+	{
+	CheckContactFieldsFormatV1(aContactFormatV2);
+
+	if ((aPhonebook == KUidIccGlobalSdnPhonebook) ||
+		(aPhonebook == KUidIccGlobalLndPhonebook) ||
+		(aPhonebook == KUidIccGlobalFdnPhonebook))
+		{
+		TESTCHECK(aContactFormatV2.iAdditionalNumString.iLength, 0);
+		TESTCHECK(aContactFormatV2.iAdditionalNumString.iCount, 0);
+		TESTCHECKCONDITION(!aContactFormatV2.iAdditionalNumString.iDisplayed);
+		TESTCHECK(aContactFormatV2.iGroupField.iLength, 0);
+		TESTCHECK(aContactFormatV2.iGroupField.iCount, 0);
+		TESTCHECKCONDITION(!aContactFormatV2.iGroupField.iDisplayed);
+		TESTCHECK(aContactFormatV2.iEmailField.iLength, 0);
+		TESTCHECK(aContactFormatV2.iEmailField.iCount, 0);
+		TESTCHECKCONDITION(!aContactFormatV2.iEmailField.iDisplayed);
+		}
+	else if ((aPhonebook == KUidIccGlobalAdnPhonebook) ||
+		(aPhonebook == KUidUsimAppAdnPhonebook))
+		{
+		// Assuming TMobilePhoneBookInfoV5...
+		TESTCHECK(aContactFormatV2.iAdditionalNumString.iLength, 41);
+		TESTCHECK(aContactFormatV2.iAdditionalNumString.iCount, 3);
+		TESTCHECKCONDITION(aContactFormatV2.iAdditionalNumString.iDisplayed);
+		TESTCHECK(aContactFormatV2.iGroupField.iLength, 47);
+		TESTCHECK(aContactFormatV2.iGroupField.iCount, 10);
+		TESTCHECKCONDITION(aContactFormatV2.iGroupField.iDisplayed);
+		TESTCHECK(aContactFormatV2.iEmailField.iLength, 47);
+		TESTCHECK(aContactFormatV2.iEmailField.iCount, 3);
+		TESTCHECKCONDITION(aContactFormatV2.iEmailField.iDisplayed);
+		}
+
+		TESTCHECK(aContactFormatV2.iPhonebook, aPhonebook);
+	}
+
+void CPhbkSyncGetContactFormatTest_01::CheckContactFieldsFormatV3(RPhoneBookSession::TContactFieldsV3& aContactFormatV3, TUid aPhonebook)
+	{
+	CheckContactFieldsFormatV2(aContactFormatV3, aPhonebook);
+
+	if (aPhonebook == KUidIccGlobalSdnPhonebook  ||
+		aPhonebook == KUidIccGlobalLndPhonebook  ||
+		aPhonebook == KUidIccGlobalFdnPhonebook)
+		{
+		TESTCHECK(aContactFormatV3.iAdditionalNumAlphaString.iLength, 0);
+		TESTCHECK(aContactFormatV3.iAdditionalNumAlphaString.iCount, 0);
+		TESTCHECKCONDITION(!aContactFormatV3.iAdditionalNumAlphaString.iDisplayed);
+		TESTCHECK(aContactFormatV3.iSecondNameField.iLength, 0);
+		TESTCHECK(aContactFormatV3.iSecondNameField.iCount, 0);
+		TESTCHECKCONDITION(!aContactFormatV3.iSecondNameField.iDisplayed);
+		}
+	else if (aPhonebook == KUidIccGlobalAdnPhonebook  ||
+			 aPhonebook == KUidUsimAppAdnPhonebook)
+		{
+		// Assuming TMobilePhoneBookInfoV5...
+		TESTCHECK(aContactFormatV3.iAdditionalNumAlphaString.iLength, 47);
+		TESTCHECK(aContactFormatV3.iAdditionalNumAlphaString.iCount, 3);
+		TESTCHECKCONDITION(aContactFormatV3.iAdditionalNumAlphaString.iDisplayed);
+		TESTCHECK(aContactFormatV3.iSecondNameField.iLength, 47);
+		TESTCHECK(aContactFormatV3.iSecondNameField.iCount, 1);
+		TESTCHECKCONDITION(aContactFormatV3.iSecondNameField.iDisplayed);
+		}
+	}
+
+void CPhbkSyncGetContactFormatTest_01::PrintGetContactFieldsFormatV1(RPhoneBookSession::TContactFieldsV1& aContactFormatV1)
+	{
+	INFO_PRINTF1(_L("RPhoneBookSession::TContactFieldsV1:"));
+	INFO_PRINTF2(_L("ExtensionId                      =%d"), aContactFormatV1.ExtensionId());
+
+	INFO_PRINTF2(_L("Format: iNameField.iLength       =%d"), aContactFormatV1.iNameField.iLength);
+	INFO_PRINTF2(_L("Format: iNameField.iCount        =%d"), aContactFormatV1.iNameField.iCount);
+	if (aContactFormatV1.iNameField.iDisplayed)
+		{
+		INFO_PRINTF1(_L("Format: iNameField.iDisplayed    =True"));
+		}
+	else
+		{
+		INFO_PRINTF1(_L("Format: iNameField.iDisplayed    =False"));
+		}
+
+	INFO_PRINTF2(_L("Format: iNumberField.iLength     =%d"), aContactFormatV1.iNumberField.iLength);
+	INFO_PRINTF2(_L("Format: iNumberField.iCount      =%d"), aContactFormatV1.iNumberField.iCount);
+	if (aContactFormatV1.iNumberField.iDisplayed)
+		{
+		INFO_PRINTF1(_L("Format: iNumberField.iDisplayed  =True"));
+		}
+	else
+		{
+		INFO_PRINTF1(_L("Format: iNumberField.iDisplayed  =False"));
+		}
+
+	INFO_PRINTF2(_L("Format: iIccSlotField.iLength    =%d"), aContactFormatV1.iIccSlotField.iLength);
+	INFO_PRINTF2(_L("Format: iIccSlotField.iCount     =%d"), aContactFormatV1.iIccSlotField.iCount);
+	if (aContactFormatV1.iIccSlotField.iDisplayed)
+		{
+		INFO_PRINTF1(_L("Format: iIccSlotField.iDisplayed =True"));
+		}
+	else
+		{
+		INFO_PRINTF1(_L("Format: iIccSlotField.iDisplayed =False"));
+		}
+	}
+
+void CPhbkSyncGetContactFormatTest_01::PrintGetContactFieldsFormatV2(RPhoneBookSession::TContactFieldsV2& aContactFormatV2)
+	{
+	PrintGetContactFieldsFormatV1(aContactFormatV2); // up cast
+
+	INFO_PRINTF1(_L("RPhoneBookSession::TContactFieldsV2:"));
+	INFO_PRINTF2(_L("ExtensionId                              =%d"), aContactFormatV2.ExtensionId());
+
+	INFO_PRINTF2(_L("Format: iAdditionalNumString.iLength     =%d"), aContactFormatV2.iAdditionalNumString.iLength);
+	INFO_PRINTF2(_L("Format: iAdditionalNumString.iCount      =%d"), aContactFormatV2.iAdditionalNumString.iCount);
+	if (aContactFormatV2.iAdditionalNumString.iDisplayed)
+		{
+		INFO_PRINTF1(_L("Format: iAdditionalNumString.iDisplayed  =True"));
+		}
+	else
+		{
+		INFO_PRINTF1(_L("Format: iAdditionalNumString.iDisplayed  =False"));
+		}
+
+	INFO_PRINTF2(_L("Format: iGroupField.iLength              =%d"), aContactFormatV2.iGroupField.iLength);
+	INFO_PRINTF2(_L("Format: iGroupField.iCount               =%d"), aContactFormatV2.iGroupField.iCount);
+	if (aContactFormatV2.iGroupField.iDisplayed)
+		{
+		INFO_PRINTF1(_L("Format: iGroupField.iDisplayed           =True"));
+		}
+	else
+		{
+		INFO_PRINTF1(_L("Format: iGroupField.iDisplayed           =False"));
+		}
+
+	INFO_PRINTF2(_L("Format: iEmailField.iLength              =%d"), aContactFormatV2.iEmailField.iLength);
+	INFO_PRINTF2(_L("Format: iEmailField.iCount               =%d"), aContactFormatV2.iEmailField.iCount);
+	if (aContactFormatV2.iEmailField.iDisplayed)
+		{
+		INFO_PRINTF1(_L("Format: iEmailField.iDisplayed           =True"));
+		}
+	else
+		{
+		INFO_PRINTF1(_L("Format: iEmailField.iDisplayed           =False"));
+		}
+
+	INFO_PRINTF2(_L("Format: iPhonebookUid                    =%d"), aContactFormatV2.iPhonebook);
+	}
+
+void CPhbkSyncGetContactFormatTest_01::PrintGetContactFieldsFormatV3(RPhoneBookSession::TContactFieldsV3& aContactFormatV3)
+	{
+	PrintGetContactFieldsFormatV2(aContactFormatV3); // up cast
+
+	INFO_PRINTF1(_L("RPhoneBookSession::TContactFieldsV3:"));
+	INFO_PRINTF2(_L("ExtensionId                                  =%d"), aContactFormatV3.ExtensionId());
+
+	INFO_PRINTF2(_L("Format: iAdditionalNumAlphaString.iLength    =%d"), aContactFormatV3.iAdditionalNumAlphaString.iLength);
+	INFO_PRINTF2(_L("Format: iAdditionalNumAlphaString.iCount     =%d"), aContactFormatV3.iAdditionalNumAlphaString.iCount);
+
+	if (aContactFormatV3.iAdditionalNumAlphaString.iDisplayed)
+		{
+		INFO_PRINTF1(_L("Format: iAdditionalNumAlphaString.iDisplayed =True"));
+		}
+	else
+		{
+		INFO_PRINTF1(_L("Format: iAdditionalNumAlphaString.iDisplayed =False"));
+		}
+
+	INFO_PRINTF2(_L("Format: iSecondNameField.iLength             =%d"), aContactFormatV3.iSecondNameField.iLength);
+	INFO_PRINTF2(_L("Format: iSecondNameField.iCount              =%d"), aContactFormatV3.iSecondNameField.iCount);
+
+	if (aContactFormatV3.iSecondNameField.iDisplayed)
+		{
+		INFO_PRINTF1(_L("Format: iSecondNameField.iDisplayed          =True"));
+		}
+	else
+		{
+		INFO_PRINTF1(_L("Format: iSecondNameField.iDisplayed          =False"));
+		}
+	}
+
+/**
+ * Test getting the format of a new contact and print this information
+ * to screen. Repeat for all supported honebooks.
+ */
+//
+//    Test step1 -- Test#53 in Unit Test Spec. Doc. //
+//
+CPhbkSyncGetContactFormatTest_01::CPhbkSyncGetContactFormatTest_01()
+	{
+	// store the name of this test step
+	SetTestStepName(_L("PhbkSyncGetContactFormatTest_01"));
+	}
+
+CPhbkSyncGetContactFormatTest_01::~CPhbkSyncGetContactFormatTest_01()
+	{
+	}
+
+/** 
+ * Test API GetContactFormat operation
+ */
+TVerdict CPhbkSyncGetContactFormatTest_01::doTestStepL( )
+	{
+	// 1. Load phonebook
+	SetSimTsyTestNumberL(0);
+
+	// 2. Loop for all phonebooks to produce contact format info
+	TInt i(0);
+	for (i=0; i<KTotalNumberOfPhoneBook; i++)
+		{ 
+
+		// get the contact format (both V1, V2 and V3) and print it out
+		RPhoneBookSession::TContactFieldsV3 contactFormatV3;
+		contactFormatV3.iPhonebook = iPhoneBook[i];
+		RPhoneBookSession::TContactFieldsV3Pckg contactFormatV3Pckg(contactFormatV3);
+		TInt returnCode = KErrNone;
+		returnCode = iSession.GetContactFormat(contactFormatV3Pckg); // Get contact format
+
+		//If GetContactFormat returns KErrNotReady (because Subscriber ID has not been obtained)
+		//Try again up to five times with a 1sec delay before each retry
+		if (returnCode == KErrNotReady)
+			{
+			TInt jj = 0;
+			while(jj < 5)
+				{
+				User::After(1000000);
+				returnCode = iSession.GetContactFormat(contactFormatV3Pckg);
+				if (returnCode != KErrNotReady)
+					{	
+					break;
+					}
+				jj++;
+				}
+			}
+
+		TESTCHECKL(returnCode, KErrNone);
+
+		//INFO_PRINTF2(_L("Combined V1, V2 & V3 Contact format Package for phonebook %d"), iPhoneBook[i]);
+		//PrintGetContactFieldsFormatV3(contactFormatV3);  
+
+		// Check results
+		CheckContactFieldsFormatV3(contactFormatV3, iPhoneBook[i]);
+
+		//
+		// Get the contact format (V1 and V2 only) and print it out...
+		//
+		RPhoneBookSession::TContactFieldsV2 contactFormatV2;
+		contactFormatV2.iPhonebook = iPhoneBook[i];
+		RPhoneBookSession::TContactFieldsV2Pckg contactFormatV2Pckg(contactFormatV2);
+		iSession.GetContactFormat(contactFormatV2Pckg); // Get contact format
+
+		//INFO_PRINTF2(_L("V1 & V2 Contact format Package Only for phonebook %d"),iPhoneBook[i]);
+		//PrintGetContactFieldsFormatV1(contactFormatV2);  
+
+		CheckContactFieldsFormatV1(contactFormatV2);
+
+		//
+		// Get the contact format (V1 only) and print it out...
+		//
+		RPhoneBookSession::TContactFieldsV1 contactFormatV1;
+		RPhoneBookSession::TContactFieldsV1Pckg contactFormatV1Pckg(contactFormatV1);
+		iSession.GetContactFormat(contactFormatV1Pckg); // Get contact format
+
+		//INFO_PRINTF2(_L("V1 Contact format Package Only for phonebook %d"),iPhoneBook[i]);
+		//PrintGetContactFieldsFormatV1(contactFormatV1);  
+
+		CheckContactFieldsFormatV1(contactFormatV1);
+		}
+
+	return TestStepResult();
+	}