diff -r 6beaa9cf4752 -r 4ca382093dae buildverification/smoketest/messaging/Src/TestMessStoreProcessUtil.cpp --- a/buildverification/smoketest/messaging/Src/TestMessStoreProcessUtil.cpp Mon Feb 22 17:54:00 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,256 +0,0 @@ -// Copyright (c) 2003-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 CTestMessStoreProcessUtil. Base class process what is in the message store -// -// - -/** - @file TestMessStoreProcessUtil.cpp -*/ - -#include "TestMessStoreProcessUtil.h" - -// EPOC include -#include - -/** - * @name Constant Literals used. - */ -/*@{*/ -// Literal constants used for the character set -_LIT(KChineseGB2312, "ChineseGB2312"); -_LIT(KChineseHz, "ChineseHz"); -_LIT(KChineseBig5, "ChineseBig5"); -/*@}*/ - -CTestMessStoreProcessUtil::CTestMessStoreProcessUtil(CTestMessBase& aTestStep, TBool aReadOnly) -: CBase() -, iTestStep(aTestStep) -, iReadOnly(aReadOnly) - { - } - -/** - * Process the message entry - * @param TMsvId aMsvId - Id of message to edit - * @return TInt - return TErrNone if all worked - * -*/ -TInt CTestMessStoreProcessUtil::ProcessEntryL(TMsvId aMsvId) - { - TInt ret=KErrNone; - CMsvEntry* msvEntry=iTestStep.Session().GetEntryL(aMsvId); - CleanupStack::PushL(msvEntry); - - if ( msvEntry->HasStoreL() ) - { - CMsvStore* store=NULL; - if ( iReadOnly ) - { - store=msvEntry->ReadStoreL(); - } - else - { - store=msvEntry->EditStoreL(); - } - CleanupStack::PushL(store); - - RArray ids; - ids.Append(KUidMsgFileIMailHeader); - ids.Append(KUidMsgFileMimeHeader); - ids.Append(KUidMsgFileInternetAccessPreferences); - ids.Append(KUidMsvSMSHeaderStream); - ids.Append(KUidMsvDefaultServices); - ids.Append(KMsvEntryRichTextBody); - for ( TUint uidIndex=ids.Count(); uidIndex>0; ) - { - TUid uid=ids[--uidIndex]; - - if ( store->IsPresentL(uid) ) - { - if ( uid==KUidMsgFileIMailHeader ) - { - // Process the CImHeader info - ProcessImHeaderL(*store); - } - else if ( uid==KUidMsgFileMimeHeader ) - { - // Process the CImMimeHeader info - ProcessImMimeHeaderL(*store); - } - else if ( uid==KUidMsgFileInternetAccessPreferences ) - { - } - else if ( uid==KUidMsvSMSHeaderStream ) - { - // Process the CSmsHeader info - ProcessSmsHeaderStreamL(*store); - } - else if ( uid==KUidMsvDefaultServices ) - { - } - else if ( uid==KMsvEntryRichTextBody ) - { - // Process the CRichText info - ProcessRichTextBodyL(*store); - } - else - { - iTestStep.INFO_PRINTF2(_L("Cannot process %x"), uid.iUid); - } - } - } - - // Commit to the store - if ( !iReadOnly ) - { - store->CommitL(); - } - CleanupStack::PopAndDestroy(store); - } - - CleanupStack::PopAndDestroy(msvEntry); - - return ret; - } - -// Process the CImHeader information -void CTestMessStoreProcessUtil::ProcessImHeaderL(CMsvStore& aStore) - { - CImHeader* header=CImHeader::NewLC(); - TRAPD(err, header->RestoreL(aStore)); - - if ( err==KErrNone ) - { - ProcessImHeaderL(*header); - if ( !iReadOnly ) - { - header->StoreL(aStore); - } - } - - CleanupStack::PopAndDestroy(header); - } - -// Process the CImMimeHeader information -void CTestMessStoreProcessUtil::ProcessImMimeHeaderL(CMsvStore& aStore) - { - CImMimeHeader* header=CImMimeHeader::NewLC(); - TRAPD(err, header->RestoreL(aStore)); - - if ( err==KErrNone ) - { - ProcessImMimeHeaderL(*header); - if ( !iReadOnly ) - { - header->StoreL(aStore); - } - } - - CleanupStack::PopAndDestroy(header); - } - - -// Process the CSmsHeader information -void CTestMessStoreProcessUtil::ProcessSmsHeaderStreamL(CMsvStore& aStore) - { - CParaFormatLayer* paraFormatLayer=CParaFormatLayer::NewL(); - CleanupStack::PushL(paraFormatLayer); - - CCharFormatLayer* charFormatLayer=CCharFormatLayer::NewL(); - CleanupStack::PushL(charFormatLayer); - - CRichText* bodyText=CRichText::NewL(paraFormatLayer, charFormatLayer); - CleanupStack::PushL(bodyText); - - CSmsHeader* header = CSmsHeader::NewL(CSmsPDU::ESmsDeliver, *bodyText); - CleanupStack::PushL(header); - - TRAPD(err, header->RestoreL(aStore)); - if ( err == KErrNone ) - { - ProcessSmsHeaderStreamL(*header); - if ( !iReadOnly ) - { - header->StoreL(aStore); - } - } - - CleanupStack::PopAndDestroy(4, paraFormatLayer); - } - - -// Process the CRichText information -void CTestMessStoreProcessUtil::ProcessRichTextBodyL(CMsvStore& aStore) - { - CParaFormatLayer* paraFormatLayer=CParaFormatLayer::NewL(); - CleanupStack::PushL(paraFormatLayer); - - CCharFormatLayer* charFormatLayer=CCharFormatLayer::NewL(); - CleanupStack::PushL(charFormatLayer); - - CRichText* bodyText=CRichText::NewL(paraFormatLayer, charFormatLayer); - CleanupStack::PushL(bodyText); - - TRAPD(err, aStore.RestoreBodyTextL(*bodyText)); - if ( err == KErrNone ) - { - ProcessRichTextBodyL(*bodyText); - if ( !iReadOnly ) - { - aStore.StoreBodyTextL(*bodyText); - } - } - - CleanupStack::PopAndDestroy(3, paraFormatLayer); - } - -/** - * Saves the new character set to the message - * @param TPtrC aCharacterSetType - New Character set type to be stored for the received message - * @param TUint &aCharSetVal - character set value - * @return TBool - * @panic None - * @leave None - * -*/ -TBool CTestMessStoreProcessUtil::ValidCharacterSetInfo(const TPtrC& aCharacterSetType, TUint &aCharSetVal) - { - TBool hasSet = ETrue; - - if ( aCharacterSetType.Compare(KChineseGB2312) == 0 ) - { - iTestStep.INFO_PRINTF1(_L("Character set set to Chinese GB2312")); - aCharSetVal = KCharacterSetIdentifierGb2312; - } - else if (aCharacterSetType.Compare(KChineseHz) == 0) - { - iTestStep.INFO_PRINTF1(_L("Character set set to Chinese Hz")); - aCharSetVal = KCharacterSetIdentifierHz; - } - else if ( aCharacterSetType.Compare(KChineseBig5) == 0 ) - { - iTestStep.INFO_PRINTF1(_L("Character set set to Chinese Big5")); - aCharSetVal = KCharacterSetIdentifierBig5; - } - else - { - // To be updated later - hasSet= EFalse; - iTestStep.ERR_PRINTF2(_L("Character not supported in test code: %S"), &aCharacterSetType); - iTestStep.SetTestStepResult(EFail); - } - - return hasSet; - }