diff -r 9f5ae1728557 -r db3f5fa34ec7 messagingfw/msgtestfw/TestActions/Capabilities/src/IPCCommandForCapsPermissions.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/msgtestfw/TestActions/Capabilities/src/IPCCommandForCapsPermissions.cpp Wed Nov 03 22:41:46 2010 +0530 @@ -0,0 +1,178 @@ +// 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: +// + +#include "IPCCommandForCapsPermissions.h" +#include "pigeonservermtm.h" +#include +#include + + +#include "MCLIENT.H" +#include "MSERVER.H" + +#include "SendProxyClient.h" + + +#include "CMtfTestCase.h" +#include "CMtfTestActionParameters.h" + + + +void IPCCommandReportPassOrFailForCapsPermissions( CMtfTestCase& aTestCase, const TDesC& aTestName, TInt aError ,TInt aPass ) + { + + if ( aError == KErrNone ) + { + if (aPass==1) + { + aTestCase.INFO_PRINTF2(_L("%S :: PASS :: Test Expected to Fail and Fails") , &aTestName ); + aTestCase.SetTestStepResult(EPass); + } + else if (aPass==0) + { + + aTestCase.ERR_PRINTF2(_L("%S :: FAIL :: Test Expected to Fail but Passes") , &aTestName ); + aTestCase.SetTestStepResult(EFail); + } + else + { + aTestCase.ERR_PRINTF2(_L("%S :: FAIL :: Should Specify PASS/FAIL") , &aTestName ); + aTestCase.SetTestStepResult(EFail); + } + } + else if ( aError == KErrPermissionDenied ) + { + if (aPass==1) + { + aTestCase.ERR_PRINTF2(_L("%S :: FAIL :: Test Expected to Pass but Fails") , &aTestName ); + aTestCase.SetTestStepResult(EFail); + } + else if (aPass==0) + { + aTestCase.INFO_PRINTF2(_L("%S :: PASS :: Test Expected to Fail and Passes") , &aTestName ); + aTestCase.SetTestStepResult(EPass); + } + else + { + aTestCase.ERR_PRINTF2(_L("%S :: FAIL :: Should Specify PASS/FAIL") , &aTestName ); + aTestCase.SetTestStepResult(EFail); + } + } + else + { + aTestCase.ERR_PRINTF3(_L("%S :: FAIL Unknown error (%d) ") , &aTestName , aError ); + aTestCase.SetTestStepResult(EFail); + } + + } + + +_LIT(KDescription , "CreateEntry" ); +_LIT(KNewAddress , "Symbian" ); + + +void FillInSimpleMessageEntry( TMsvId aMessageId, TMsvId aParentId, TMsvId aServiceId, TMsvEntryForward& aEntry) +{ + + aEntry.SetId(aMessageId); + aEntry.SetParent( aParentId ); + aEntry.iType = KUidMsvMessageEntry; + aEntry.iMtm = KUidMsgTypeSMTP; + aEntry.iServiceId = aServiceId; + + aEntry.iDescription.Set(KDescription); + + aEntry.iDetails.Set(KNewAddress); + aEntry.iDate.HomeTime(); + +} + +void FillInServiceEntry( TMsvId aMessageId, TMsvEntryForward& aEntry) +{ + // This is a service entry, so we need to set parent to root and service ID to + // the entry id (ie serviceId is same as entry id) + aEntry.SetId(aMessageId); + aEntry.SetParent( KMsvRootIndexEntryId ); + aEntry.iType = KUidMsvServiceEntry; + aEntry.iMtm = KUidMsgTypeSMTP; + aEntry.iServiceId = aMessageId; + + aEntry.iDescription.Set(KDescription); + aEntry.iDetails.Set(KNewAddress); + aEntry.iDate.HomeTime(); +} + + +void FillInRemoteMessageEntry( TMsvId aMessageId, TMsvId aParentId, TMsvId aServiceId, TMsvEntryForward& aEntry) +{ + aEntry.SetId(aMessageId); + aEntry.SetParent( aParentId ); + aEntry.iType = KUidMsvMessageEntry; + aEntry.iMtm = KUidMsgTypePigeon; + aEntry.iServiceId = aServiceId; + + aEntry.iDescription.Set(KDescription); + + aEntry.iDetails.Set(KNewAddress); + aEntry.iDate.HomeTime(); + +} + +_LIT(KNewAddress1 , "OverwriteMe" ); + + +// Useful routine just to see and check what has actally gone into the messaginging server. +// Note must have correct capabilities. + +void CheckWentInStoreL(CMtfTestCase& aTestCase, const TDesC& aTestName, + RProxyServerSession& RPSS , TMsvId id, TMsvEntryForward& entry , TMsvOp& operationId ) + { + + HBufC8* iBuffer = HBufC8::NewLC(KMsvSessionBufferLength); + TPtr8 ptr=iBuffer->Des(); + TMsvEntryForward entryStore=entry; + entryStore.SetId(id); + + entryStore.iDetails.Set( KNewAddress1 ); + + TMsvId aService(0); + TPckg service(aService); + + operationId++; + TInt error = RPSS.SendReceive(EMsvGetEntry,TIpcArgs(entryStore.Id(),&ptr,&service)); + if (error!=KErrNone) + { + aTestCase.ERR_PRINTF2(_L("%S :: PROBLEM :: Unable to read the message back.") , &aTestName ); + User::LeaveIfError(error); + } + + + TMsvPackedEntry packedEntry(iBuffer); + packedEntry.UnpackEntry(entryStore); + + if ( entryStore.iDetails == KNewAddress1 ) + { + aTestCase.ERR_PRINTF2(_L("%S :: PROBLEM :: Message was not modified in the store.") , &aTestName ); + User::LeaveIfError(error); + } + else + { + //RDebug::Printf( " CheckWentInStoreL :: WORKS!!!!!!!!!!!!!!!!!!!!!!!!\n" ); //????? + } + + CleanupStack::Check(iBuffer); + CleanupStack::PopAndDestroy(); + + }