--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/sendas/test/unit/inc/SENDAS2MTM.H Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,202 @@
+// 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 <mtmuids.h>
+#include <mtclbase.h>
+
+_LIT(KTestSendas2MtmDefaultsFolder, "c:\\test\\sendas2\\%08X.default");
+
+class CSendMtm : public CBaseMtm
+ {
+public:
+ IMPORT_C static CSendMtm* NewL(CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aSession);
+ ~CSendMtm();
+ //
+ // from MMsvEntryObserver
+ void HandleEntryEvent(TMsvEntryEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3);
+ //
+ // from CBaseMtm
+ void SaveMessageL();
+ void LoadMessageL();
+ CMsvOperation* ReplyL (TMsvId aDestination, TMsvPartList aPartlist, TRequestStatus& aCompletionStatus);
+ CMsvOperation* ForwardL(TMsvId aDestination, TMsvPartList aPartList, TRequestStatus& aCompletionStatus);
+ TMsvPartList ValidateMessage(TMsvPartList aPartList);
+ TMsvPartList Find(const TDesC& aTextToFind, TMsvPartList aPartList);
+ //const CDesCArray& AddresseeList();
+ const CMsvRecipientList& AddresseeList();
+ void AddAddresseeL(const TDesC& aRealAddress);
+ void AddAddresseeL(const TDesC& aRealAddress, const TDesC& aAlias);
+ void RemoveAddressee(TInt aIndex);
+ void InvokeSyncFunctionL(TInt aFunctionId,const CMsvEntrySelection& aSelection, TDes8& aParameter);
+ CMsvOperation* InvokeAsyncFunctionL(TInt aFunctionId,const CMsvEntrySelection& aSelection, TDes8& aParameter, TRequestStatus& aCompletionStatus);
+ //
+ TInt QueryCapability(TUid aCapability, TInt& aResponse);
+ virtual void SetSubjectL(const TDesC& aSubject);
+ //
+ virtual TMsvId DefaultServiceL() const;
+ virtual void RemoveDefaultServiceL();
+ virtual void ChangeDefaultServiceL(const TMsvId& aService);
+ //
+ virtual void AddAddresseeL(TMsvRecipientType aType, const TDesC& aRealAddress);
+ virtual void AddAddresseeL(TMsvRecipientType aType, const TDesC& aRealAddress, const TDesC& aAlias);
+protected:
+ //
+ // from CBaseMtm
+ void ContextEntrySwitched();
+ //
+private:
+ CSendMtm(CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aSession);
+ //
+private:
+ RFs& iFs;
+ };
+
+
+
+EXPORT_C CSendMtm* CSendMtm::NewL(CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aSession)
+ {
+ CSendMtm* myclntmtm=new(ELeave) CSendMtm(aRegisteredMtmDll, aSession);
+ return myclntmtm;
+ }
+
+CSendMtm::~CSendMtm()
+ {
+ }
+
+void CSendMtm::HandleEntryEvent(TMsvEntryEvent /*aEvent*/, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/)
+ {
+ }
+
+void CSendMtm::SaveMessageL()
+ {
+ CMsvStore* store = iMsvEntry->EditStoreL();
+ CleanupStack::PushL(store);
+ StoreBodyL(*store);
+ store->CommitL();
+ CleanupStack::PopAndDestroy(); // store
+ }
+
+void CSendMtm::LoadMessageL()
+ {
+ CMsvStore* store = iMsvEntry->ReadStoreL();
+ CleanupStack::PushL(store);
+ RestoreBodyL(*store);
+ CleanupStack::PopAndDestroy(); // store
+ }
+
+CMsvOperation* CSendMtm::ReplyL(TMsvId /*aDestination*/, TMsvPartList /*aPartlist*/, TRequestStatus& /*aCompletionStatus*/)
+ {
+ return NULL;
+ }
+
+CMsvOperation* CSendMtm::ForwardL(TMsvId /*aDestination*/, TMsvPartList /*aPartList*/, TRequestStatus& /*aCompletionStatus*/)
+ {
+ return NULL;
+ }
+
+TMsvPartList CSendMtm::Find(const TDesC& /*aTextToFind*/, TMsvPartList /*aPartList*/)
+ {
+ return 0;
+ }
+
+const CMsvRecipientList& CSendMtm::AddresseeList()
+ {
+ return *iAddresseeList;
+ }
+
+void CSendMtm::AddAddresseeL(const TDesC& aRealAddress)
+ {
+ iAddresseeList->AppendL(aRealAddress);
+ }
+
+void CSendMtm::AddAddresseeL(const TDesC& aRealAddress, const TDesC& aAlias)
+ {
+ TBuf<256> buf;
+ buf.Copy(aAlias);
+ buf.Append(_L(" <"));
+ buf.Append(aRealAddress);
+ buf.Append(_L(">"));
+ iAddresseeList->AppendL(buf);
+ }
+
+void CSendMtm::RemoveAddressee(TInt aIndex)
+ {
+ iAddresseeList->Delete(aIndex);
+ }
+
+void CSendMtm::ContextEntrySwitched()
+ {
+ }
+
+void CSendMtm::InvokeSyncFunctionL(TInt /*aFunctionId*/,const CMsvEntrySelection& /*aSelection*/, TDes8& /*aParameter*/)
+ {
+ User::Leave(KErrNotSupported);
+ }
+
+CMsvOperation* CSendMtm::InvokeAsyncFunctionL(TInt /*aFunctionId*/,const CMsvEntrySelection& /*aSelection*/, TDes8& /*aParameter*/, TRequestStatus& aCompletionStatus)
+ {
+ TRequestStatus* status=&aCompletionStatus;
+ User::RequestComplete(status,KErrNotSupported);
+ return NULL;;
+ }
+
+TMsvId CSendMtm::DefaultServiceL() const
+ {
+ TFileName filename;
+ filename.Format(KTestSendas2MtmDefaultsFolder, Type().iUid);
+ TPckgBuf<TMsvId> msvbuf;
+ RFile file;
+ CleanupClosePushL(file);
+
+ if (file.Open(iFs, filename, EFileRead) == KErrNone)
+ {
+ User::LeaveIfError(file.Read(msvbuf));
+ }
+ else
+ {
+ User::Leave(KErrNotFound);
+ }
+ CleanupStack::PopAndDestroy(&file);
+ return msvbuf();
+ }
+
+void CSendMtm::RemoveDefaultServiceL()
+ {
+ TFileName filename;
+ filename.Format(KTestSendas2MtmDefaultsFolder, Type().iUid);
+ iFs.Delete(filename);
+ }
+
+void CSendMtm::ChangeDefaultServiceL(const TMsvId& aService)
+ {
+ TFileName filename;
+ filename.Format(KTestSendas2MtmDefaultsFolder, Type().iUid);
+ TPckgBuf<TMsvId> msvbuf;
+ msvbuf() = aService;
+ RFile file;
+ CleanupClosePushL(file);
+ iFs.MkDirAll(filename);
+ User::LeaveIfError(file.Replace(iFs, filename, EFileRead) == KErrNone);
+ User::LeaveIfError(file.Write(msvbuf));
+ CleanupStack::PopAndDestroy(&file);
+ }
+
+CSendMtm::CSendMtm(CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aSession) :
+ CBaseMtm(aRegisteredMtmDll, aSession), iFs(aSession.FileSession())
+ {
+ __DECLARE_NAME(_S("CSendAs2Mtm"));
+ }
+
+