buildverification/smoketest/contacts/src/TestContact.cpp
branchRCL_3
changeset 19 4ca382093dae
parent 5 6beaa9cf4752
child 20 493058e57c8c
--- a/buildverification/smoketest/contacts/src/TestContact.cpp	Mon Feb 22 17:54:00 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,491 +0,0 @@
-// Copyright (c) 2004-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 CTestContact
-// 
-//
-
-#include <cntfldst.h>
-
-#include "TestContact.h"
-
-CTestContact* CTestContact::NewL(CContactItem& aSeedContact)
-	{
-	CTestContact* self=CTestContact::NewLC(aSeedContact);
-	CleanupStack::Pop();
-	return self;
-	}
-
-CTestContact* CTestContact::NewLC(CContactItem& aSeedContact)
-	{
-	CTestContact* self=new(ELeave) CTestContact();
-	CleanupStack::PushL(self);
-	self->ConstructL(aSeedContact);
-	return self;
-	}
-
-CTestContact* CTestContact::NewL(CContactItem* aSeedContact)
-	{
-	CTestContact* self=CTestContact::NewLC(aSeedContact);
-	CleanupStack::Pop();
-	return self;
-	}
-
-CTestContact* CTestContact::NewLC(CContactItem* aSeedContact)
-	{
-	CTestContact* self=new(ELeave) CTestContact();
-	CleanupStack::PushL(self);
-	self->ConstructL(aSeedContact);
-	return self;
-	}
-
-CTestContact::CTestContact() : iDestroyOnExit(EFalse)
-	{
-	}
-
-void CTestContact::ConstructL(CContactItem& aSeedContact)
-	{
-	iDestroyOnExit=ETrue;
-	iContactItem=CContactCard::NewL(&aSeedContact);
-	}
-
-void CTestContact::ConstructL(CContactItem* aSeedContact)
-	{
-	iDestroyOnExit=EFalse;
-	iContactItem=aSeedContact;
-	}
-
-CTestContact::~CTestContact()
-	{
-	if (iDestroyOnExit)
-		delete iContactItem;
-	iContactItem=NULL;
-	}
-
-CContactItem& CTestContact::ContactItem()
-	{
-	return *iContactItem;
-	}
-
-const TPtrC CTestContact::FirstNameL()
-	{
-	return TextFieldL(KUidContactFieldGivenName);
-	}
-
-const TPtrC CTestContact::LastNameL()
-	{
-	return TextFieldL(KUidContactFieldFamilyName);
-	}
-
-const TPtrC CTestContact::CompanyNameL()
-	{
-	return TextFieldL(KUidContactFieldCompanyName);
-	}
-
-const TPtrC CTestContact::JobTitleL()
-	{
-	return TextFieldL(KUidContactFieldJobTitle);
-	}
-
-const TPtrC CTestContact::WorkPhoneL()
-	{
-	CContentType* contentType=CContentType::NewL();
-	CleanupStack::PushL(contentType);
-	contentType->AddFieldTypeL(KUidContactFieldPhoneNumber);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapWORK);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
-	const TPtrC text=TextFieldL(*contentType);
-	CleanupStack::PopAndDestroy(); // contentType.
-	return text;
-	}
-
-const TPtrC CTestContact::WorkMobileL()
-	{
-	CContentType* contentType=CContentType::NewL();
-	CleanupStack::PushL(contentType);
-	contentType->AddFieldTypeL(KUidContactFieldPhoneNumber);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapWORK);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapCELL);
-	const TPtrC text=TextFieldL(*contentType);
-	CleanupStack::PopAndDestroy(); // contentType.
-	return text;
-	}
-
-const TPtrC CTestContact::HomePhoneL()
-	{
-	CContentType* contentType=CContentType::NewL();
-	CleanupStack::PushL(contentType);
-	contentType->AddFieldTypeL(KUidContactFieldPhoneNumber);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapHOME);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
-	const TPtrC text=TextFieldL(*contentType);
-	CleanupStack::PopAndDestroy(); // contentType.
-	return text;
-	}
-
-const TPtrC CTestContact::HomeMobileL()
-	{
-	CContentType* contentType=CContentType::NewL();
-	CleanupStack::PushL(contentType);
-	contentType->AddFieldTypeL(KUidContactFieldPhoneNumber);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapHOME);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapCELL);
-	const TPtrC text=TextFieldL(*contentType);
-	CleanupStack::PopAndDestroy(); // contentType.
-	return text;
-	}
-
-const TPtrC CTestContact::FaxL()
-	{
-	return TextFieldL(KUidContactFieldFax);
-	}
-
-const TPtrC CTestContact::EmailAddressL()
-	{
-	return TextFieldL(KUidContactFieldEMail);
-	}
-
-const TPtrC CTestContact::InternetAddressL()
-	{
-	return TextFieldL(KUidContactFieldUrl);
-	}
-
-const TPtrC CTestContact::StreetL()
-	{
-	return TextFieldL(KUidContactFieldAddress);
-	}
-
-const TPtrC CTestContact::TownL()
-	{
-	return TextFieldL(KUidContactFieldLocality);
-	}
-
-const TPtrC CTestContact::CountyL()
-	{
-	return TextFieldL(KUidContactFieldRegion);
-	}
-
-const TPtrC CTestContact::PostCodeL()
-	{
-	return TextFieldL(KUidContactFieldPostcode);
-	}
-
-const TPtrC CTestContact::CountryL()
-	{
-	return TextFieldL(KUidContactFieldCountry);
-	}
-
-const TPtrC CTestContact::NotesL()
-	{
-	return TextFieldL(KUidContactFieldNote);
-	}
-
-const TPtrC CTestContact::NickNameL()
-	{
-	return TextFieldL(KUidContactFieldSecondName);
-	}
-
-const TPtrC CTestContact::PictureL()
-	{
-	return TextFieldL(KUidContactFieldPicture);
-	}
-
-void CTestContact::SetFirstNameL(const TDesC& aFirstName)
-	{
- 	SetTextFieldL(KUidContactFieldGivenName, aFirstName, KUidContactFieldVCardMapUnusedN);
-	}
-
-void CTestContact::SetLastNameL(const TDesC& aLastName)
-	{
- 	SetTextFieldL(KUidContactFieldFamilyName, aLastName, KUidContactFieldVCardMapUnusedN);
-	}
-
-void CTestContact::SetCompanyNameL(const TDesC& aCompanyName)
-	{
-	SetTextFieldL(KUidContactFieldCompanyName, aCompanyName, KUidContactFieldVCardMapORG);
-	}
-
-void CTestContact::SetJobTitleL(const TDesC& aJobTitle)
-	{
-	SetTextFieldL(KUidContactFieldJobTitle,aJobTitle);
-	}
-
-void CTestContact::SetWorkPhoneL(const TDesC& aWorkPhone)
-	{
-	CContentType* contentType=CContentType::NewL();
-	CleanupStack::PushL(contentType);
-	contentType->AddFieldTypeL(KUidContactFieldPhoneNumber);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapWORK);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
-	SetTextFieldL(*contentType,aWorkPhone);
-	CleanupStack::PopAndDestroy(); // contentType.
-	}
-
-void CTestContact::SetWorkMobileL(const TDesC& aWorkMobile)
-	{
-	CContentType* contentType=CContentType::NewL();
-	CleanupStack::PushL(contentType);
-	contentType->AddFieldTypeL(KUidContactFieldPhoneNumber);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapWORK);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapCELL);
-	SetTextFieldL(*contentType,aWorkMobile);
-	CleanupStack::PopAndDestroy(); // contentType.
-	}
-
-void CTestContact::SetHomePhoneL(const TDesC& aHomePhone)
-	{
-	CContentType* contentType=CContentType::NewL();
-	CleanupStack::PushL(contentType);
-	contentType->AddFieldTypeL(KUidContactFieldPhoneNumber);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapHOME);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
-	SetTextFieldL(*contentType,aHomePhone);
-	CleanupStack::PopAndDestroy(); // contentType.
-	}
-
-void CTestContact::SetHomeMobileL(const TDesC& aHomeMobile)
-	{
-	CContentType* contentType=CContentType::NewL();
-	CleanupStack::PushL(contentType);
-	contentType->AddFieldTypeL(KUidContactFieldPhoneNumber);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapHOME);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapVOICE);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapCELL);
-	SetTextFieldL(*contentType,aHomeMobile);
-	CleanupStack::PopAndDestroy(); // contentType.
-	}
-
-void CTestContact::SetFaxL(const TDesC& aFax)
-	{
-	SetTextFieldL(KUidContactFieldFax,aFax);
-	}
-
-void CTestContact::SetHomeEmailAddressL(const TDesC& aEmailAddress)
-	{
-	CContentType* contentType=CContentType::NewL();
-	CleanupStack::PushL(contentType);
-	contentType->AddFieldTypeL(KUidContactFieldEMail);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapHOME);
-	SetTextFieldL(*contentType,aEmailAddress);
-	CleanupStack::PopAndDestroy(contentType);
-	}
-
-void CTestContact::SetWorkEmailAddressL(const TDesC& aEmailAddress)
-	{
-	CContentType* contentType=CContentType::NewL();
-	CleanupStack::PushL(contentType);
-	contentType->AddFieldTypeL(KUidContactFieldEMail);
-	contentType->AddFieldTypeL(KUidContactFieldVCardMapWORK);
-	SetTextFieldL(*contentType,aEmailAddress);
-	CleanupStack::PopAndDestroy(contentType);
-	}
-
-
-void CTestContact::SetInternetAddressL(const TDesC& aInternetAddress)
-	{
-	SetTextFieldL(KUidContactFieldUrl,aInternetAddress);
-	}
-
-void CTestContact::SetStreetL(const TDesC& aStreet)
-	{
-	SetTextFieldL(KUidContactFieldAddress,aStreet);
-	}
-
-void CTestContact::SetTownL(const TDesC& aTown)
-	{
-	SetTextFieldL(KUidContactFieldLocality,aTown);
-	}
-
-void CTestContact::SetCountyL(const TDesC& aCounty)
-	{
-	SetTextFieldL(KUidContactFieldRegion,aCounty);
-	}
-
-void CTestContact::SetPostCodeL(const TDesC& aPostCode)
-	{
-	SetTextFieldL(KUidContactFieldPostcode,aPostCode);
-	}
-
-void CTestContact::SetCountryL(const TDesC& aCountry)
-	{
-	SetTextFieldL(KUidContactFieldCountry,aCountry);
-	}
-
-void CTestContact::SetNotesL(const TDesC& aNotes)
-	{
-	SetTextFieldL(KUidContactFieldNote,aNotes);
-	}
-
-void CTestContact::SetNickNameL(const TDesC& aNickName)
-	{
-	CContentType* contentType=CContentType::NewL();
-	CleanupStack::PushL(contentType);
-	contentType->AddFieldTypeL(KUidContactFieldSecondName);
-	TRAPD(err, SetTextFieldL(*contentType,aNickName));
-        if (!err) { }
-	CleanupStack::PopAndDestroy(); // contentType.
-	}
-
-void CTestContact::SetPictureL(const TDesC8& aPicture)
-	{
-	CContentType* contentType=CContentType::NewL();
-	CleanupStack::PushL(contentType);
-	contentType->AddFieldTypeL(KUidContactFieldPicture);
-	SetPictureFieldL(aPicture);
-	CleanupStack::PopAndDestroy(contentType);
-	}
-
-const TPtrC CTestContact::TextFieldL(TFieldType aFieldType) const
-	{
-	CContactItemField& field=FindFieldL(aFieldType);
-	ASSERT(field.StorageType()==KStorageTypeText);
-	return STATIC_CAST(CContactTextField*,(field.Storage()))->Text();
-	}
-
-const TPtrC CTestContact::TextFieldL(const CContentType& aTypesToMatch) const
-	{
-	CContactItemField& field=FindFieldL(aTypesToMatch);
-	ASSERT(field.StorageType()==KStorageTypeText);
-	return STATIC_CAST(CContactTextField*,field.Storage())->Text();
-	}
-
-void CTestContact::InsertTextFieldL(TFieldType aID, const TDesC& aStringOfStuff )
-	{
- 	CContactItemField* itemFieldPtr = NULL;
- 	CContactTextField* textStoragePtr = NULL;
-
- 	itemFieldPtr = CContactItemField::NewLC( KStorageTypeText, aID );
- 	textStoragePtr = itemFieldPtr->TextStorage(); // we don't have ownership here, hence no stack.
-
- 	textStoragePtr->SetTextL( aStringOfStuff );
- 	textStoragePtr = NULL; // we've finished with this ptr now.
-
- 	iContactItem->AddFieldL( *itemFieldPtr ); // hand ownership over here
- 	CleanupStack::Pop( itemFieldPtr ); // and pop,
-	}
-
-void CTestContact::SetTextFieldL(TFieldType aFieldType,const TDesC& aText)
-	{
- 	TInt	fieldIndex=FindField(aFieldType);
-
- 	if ( fieldIndex > KErrNotFound )
-		{
- 		CContactItemField&	field=FindFieldL(aFieldType);
- 		ASSERT(field.StorageType()==KStorageTypeText);
- 		STATIC_CAST(CContactTextField*,field.Storage())->SetText(aText.AllocL());
-		}
- 	else
-		{
- 		InsertTextFieldL(aFieldType, aText);
-		}
-	}
-
-void CTestContact::SetTextFieldL(const CContentType& aTypesToMatch,const TDesC& aText) const
-	{
-	CContactItemField& field=FindFieldL(aTypesToMatch);
-	ASSERT(field.StorageType()==KStorageTypeText);
-	STATIC_CAST(CContactTextField*,field.Storage())->SetText(aText.AllocL());
-	}
-
-CContactItemField& CTestContact::FindFieldL(TFieldType aFieldType) const
-	{
-	CContactItemFieldSet& fields=iContactItem->CardFields();
-	TInt index=fields.Find(aFieldType);
-	User::LeaveIfError(index);
-	return fields[index];
-	}
-
-void CTestContact::SetTextFieldL(TFieldType aFieldType, const TDesC& aText, TUid aAddOnContentType)
-	{
-	CContactItemFieldSet& fields = iContactItem->CardFields();
-	CContactTextField* textField = NULL;
-	TInt fieldIndex = 0;
-
-	fieldIndex = FindField( aFieldType );
-
-	if (fieldIndex == KErrNotFound )
-		{
-		InsertTextFieldL( aFieldType, aText );
-		fieldIndex = FindField( aFieldType );
-		CContactItemField& field = fields[ fieldIndex ];
-		field.AddFieldTypeL( aAddOnContentType );
-		}
-		else if (fieldIndex >= KErrNone )
-		{
-		CContactItemField& field = fields[ fieldIndex ];
-		ASSERT(field.StorageType()==KStorageTypeText);
-		textField = static_cast<CContactTextField*>(field.Storage());
-		textField->SetText( aText.AllocL() );
-		field.AddFieldTypeL( aAddOnContentType );
-		}
-	}
-
-TInt CTestContact::FindField(TFieldType aFieldType) const
-	{
-	return iContactItem->CardFields().Find( aFieldType );
-	}
-
-CContactItemField& CTestContact::FindFieldL(const CContentType& aTypesToMatch) const
-	{
-	CContactItemFieldSet& fields=iContactItem->CardFields();
-	const TInt numTypesToMatch(aTypesToMatch.FieldTypeCount());
-	const TFieldType mainFieldType(aTypesToMatch.FieldType(0));
-	TInt index=-1;
-	FOREVER
-		{
-		index=fields.FindNext(mainFieldType,index+1);
-		User::LeaveIfError(index);
-
-		CContactItemField& thisPhoneField=fields[index];
-		const CContentType& thisPhoneFieldTypes=thisPhoneField.ContentType();
-		const TInt numFieldTypes(thisPhoneFieldTypes.FieldTypeCount());
-
-		if (numFieldTypes!=numTypesToMatch)
-			{
-			continue;
-			}
-
-		TInt numTypesLeftToMatch=numTypesToMatch;
-		for (TInt ii=0;ii<numFieldTypes;++ii)
-			{
-			TFieldType thisFieldType(thisPhoneFieldTypes.FieldType(ii));
-			for (TInt jj=0;jj<numTypesToMatch;++jj)
-				{
-				TFieldType thisFieldTypeToMatch(aTypesToMatch.FieldType(jj));
-				if (thisFieldType==thisFieldTypeToMatch)
-					{
-					if (--numTypesLeftToMatch<=0)
-						{
-						return thisPhoneField;
-						}
-
-					break;
-					}
-				}
-			}
-		}
-	}
-
-void CTestContact::SetPictureFieldL(const TDesC8& aPicture) const
-	{
-
-	CContactItemFieldSet& fieldSet=iContactItem->CardFields();
-	TInt pos;
-	pos=fieldSet.Find(KUidContactFieldPicture);
-	User::LeaveIfError(pos);
-	fieldSet[pos].StoreStorage()->SetThingL(aPicture);
-
-	}