diff -r 5d7fec11a5ce -r 03d9ade4748d buildverification/smoketest/contacts/src/TestContact.cpp --- a/buildverification/smoketest/contacts/src/TestContact.cpp Fri Jun 11 16:24:17 2010 +0100 +++ /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 - -#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(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;iiCardFields(); - TInt pos; - pos=fieldSet.Find(KUidContactFieldPicture); - User::LeaveIfError(pos); - fieldSet[pos].StoreStorage()->SetThingL(aPicture); - - }