messagingfw/msgtestfw/TestActions/Capabilities/src/IPCCommandForCapsPermissions.cpp
changeset 62 db3f5fa34ec7
parent 0 8e480a14352b
--- /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 <e32std.h>
+#include <e32base.h>
+
+
+#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<TMsvId> 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();
+	
+	}