--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/pop3andsmtpmtm/imapservermtm/test/src/T_DUMP.cpp Mon May 03 12:29:07 2010 +0300
@@ -0,0 +1,303 @@
+// Copyright (c) 1998-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:
+// Testing Recieving of messages
+//
+//
+
+#include <e32test.h>
+#include <f32fsys.h>
+#include <s32file.h>
+#include <e32base.h>
+#include <txtetext.h>
+#include <txtrich.h>
+#include <bautils.h>
+#include <miuthdr.h>
+#include <miutmsg.h>
+#include <miutset.h> //KUidMsgTypePOP3
+#include <imutdll.h>
+#include <imcvtext.h>
+#include <imcvrecv.h>
+#include <imcvsend.h>
+
+#include <imapset.h>
+
+//Oyster includes
+#include <msvstd.h>
+#include <msvids.h>
+#include <msvuids.h>
+#include <msvruids.h>
+#include <msvreg.h>
+
+#include "msvindexadapter.h"
+
+#include "msvserv.h"
+#include <msventry.h>
+#include <msvapi.h>
+#include <mtclbase.h>
+#include <offop.h>
+
+#include "t_log.h"
+
+//----------------------------------------------------------------------------------------
+
+_LIT(KFilePathMailTest, "c:\\mailtest\\");
+
+//----------------------------------------------------------------------------------------
+
+LOCAL_D RTest test(_L("T_DUMP test harness"));
+
+LOCAL_D CTrapCleanup* theCleanup;
+LOCAL_D RFs theFs;
+LOCAL_C CActiveScheduler* theScheduler;
+
+class CTestTimer;
+LOCAL_D CTestTimer* timer;
+
+class CDummyMsvSessionObserver;
+
+LOCAL_C CMsvServer* theServer;
+
+//----------------------------------------------------------------------------------------
+
+class CDummyMsvSessionObserver : public CBase, public MMsvSessionObserver
+ {
+public:
+ void HandleSessionEvent(TMsvSessionEvent /*aEvent*/, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/)
+ {};
+ };
+class CTestTimer : public CTimer
+ {
+public:
+ static CTestTimer* NewL();
+private:
+ CTestTimer();
+ void RunL();
+ };
+
+CTestTimer::CTestTimer() : CTimer(EPriorityLow) {}
+
+void CTestTimer::RunL()
+ {
+ CActiveScheduler::Stop();
+ }
+
+CTestTimer* CTestTimer::NewL()
+ {
+ CTestTimer* self = new(ELeave) CTestTimer();
+ CleanupStack::PushL(self);
+ self->ConstructL(); // CTimer
+ CActiveScheduler::Add(self);
+ CleanupStack::Pop();
+ return self;
+ }
+
+class CTestActive : public CActive
+ {
+public:
+ CTestActive();
+ void ConstructL();
+// void ChangeEntryL(TMsvId aId);
+ ~CTestActive();
+private:
+ void RunL();
+ void DoCancel();
+private:
+// CImCalculateMsgSize* iMsgSize;
+ };
+
+LOCAL_C CTestActive* active;
+
+//ctestactive
+CTestActive::CTestActive()
+: CActive(EPriorityStandard)
+
+ {
+ __DECLARE_NAME(_S("CTestActive"));
+ }
+
+CTestActive::~CTestActive()
+ {
+ Cancel();
+// delete iMsgSize;
+ }
+
+void CTestActive::ConstructL()
+ {
+ CActiveScheduler::Add(this);
+// iMsgSize = CImCalculateMsgSize::NewL(theFs, *sEntry);
+ }
+
+#if 0
+void CTestActive::ChangeEntryL(TMsvId /*aId*/)
+ {
+// TTime time;
+// iMsgSize->StartL(iStatus, aId, ENoAlgorithm, time, domainName);
+ SetActive();
+ }
+#endif
+
+void CTestActive::RunL()
+ {
+// TInt32 size=iMsgSize->MessageSize();
+// test.Printf(TRefByValue<const TDesC>_L("message size is %d\n\n"), size);
+ CActiveScheduler::Stop();
+ }
+
+void CTestActive::DoCancel()
+ {
+// iMsgSize->Cancel();
+ }
+
+//----------------------------------------------------------------------------------------
+LOCAL_C void CreateAllTestDirectories()
+//----------------------------------------------------------------------------------------
+ {
+ // create c:\mailtest, c:\mailtest\imcv c:\mailtest\attach\ directories used by this test harness
+ RFs s;
+ TFileName buffer;
+ if(!s.Connect())
+ {
+ TBool stop=EFalse;
+ s.SetSessionPath(_L("c:\\"));
+ if(!s.MkDir(KFilePathMailTest))
+ {
+ buffer=KFilePathMailTest;
+ test.Printf(TRefByValue<const TDesC>_L("Created %S directory\n"),&buffer);
+ stop=ETrue;
+ }
+#if 0
+ if(!s.MkDirAll(KTestMessageDir))
+ {
+ buffer=KTestMessageDir;
+ test.Printf(TRefByValue<const TDesC>_L("Created %S directory\n"),&buffer);
+ stop=ETrue;
+ }
+ if(!s.MkDirAll(KLogsDir))
+ {
+ buffer=KLogsDir;
+ test.Printf(TRefByValue<const TDesC>_L("Created %S directory\n"),&buffer);
+ stop=ETrue;
+ }
+#endif
+ if(stop)
+ {
+ test.Printf(_L("[Press any key to continue...]\n\n"));
+ test.Getch();
+ }
+ s.Close();
+ }
+ }
+
+//----------------------------------------------------------------------------------------
+LOCAL_C void Up()
+//----------------------------------------------------------------------------------------
+ {
+ theScheduler = new (ELeave)CActiveScheduler;
+ CActiveScheduler::Install( theScheduler );
+ CleanupStack::PushL(theScheduler);
+
+ User::LeaveIfError(theFs.Connect());
+ theFs.SetSessionPath(_L("C:\\"));
+
+#if 0
+ theFs.SetSessionPath( KFilePathMailTest );
+
+ // Delete out the logs
+ CFileMan* fileMan=CFileMan::NewL(theFs);
+ fileMan->Delete(KLogsDir, CFileMan::ERecurse);
+ delete fileMan;
+#endif
+
+ // create a CMsvServer
+ timer = CTestTimer::NewL();
+ theServer = CMsvServer::NewL();
+ CleanupStack::PushL(theServer);
+
+ timer->After(100000);
+ CActiveScheduler::Start();
+ delete timer;
+
+ active = new (ELeave) CTestActive();
+ CleanupStack::PushL(active);
+ active->ConstructL();
+ }
+
+//----------------------------------------------------------------------------------------
+LOCAL_C void Down()
+//----------------------------------------------------------------------------------------
+ {
+ test.Printf(_L("---------------------\n"));
+ test.Printf(_L(" Going down \n"));
+ test.Printf(_L("---------------------\n"));
+ CleanupStack::PopAndDestroy(3); //active, msvserver, theScheduler
+ theFs.Close();
+ }
+
+//----------------------------------------------------------------------------------------
+LOCAL_C void doMainL()
+//----------------------------------------------------------------------------------------
+ {
+ CreateAllTestDirectories();
+ Up();
+
+ test.Console()->ClearScreen();
+ test.Console()->SetPos(0, 0);
+ test.Printf(_L("---------------------\n"));
+ test.Printf(_L(" Message dumper \n"));
+ test.Printf(_L("---------------------\n"));
+
+ __UHEAP_MARK;
+ COutputter* putter = COutputter::NewL( &test );
+ CleanupStack::PushL(putter);
+
+ putter->SetRFs( &theFs );
+ theFs.SetSessionPath( KFilePathMailTest );
+
+ CMsvServerEntry* entry = CMsvServerEntry::NewL( *theServer, KMsvNullIndexEntryId );
+ CleanupStack::PushL(entry);
+
+ // enable invisible entries
+ TMsvSelectionOrdering sort = entry->Sort();
+ sort.SetShowInvisibleEntries(ETrue);
+ entry->SetSort(sort);
+
+ CMsgOutputter* dumper = CMsgOutputter::NewL( putter, entry );
+ CleanupStack::PushL(dumper);
+
+ dumper->DumpL( KMsvRootIndexEntryId, CMsgOutputter::EToOneFile,
+ CMsgOutputter::EToOneFile, ETrue, ETrue);
+
+ CleanupStack::PopAndDestroy(3); // dumper, putter, entry
+ __UHEAP_MARKEND;
+
+ Down();
+ }
+
+//----------------------------------------------------------------------------------------
+GLDEF_C TInt E32Main()
+//----------------------------------------------------------------------------------------
+ {
+ __UHEAP_MARK;
+ test.Start(_L("T_DUMP Test harness"));
+ theCleanup=CTrapCleanup::New();
+
+ TRAPD(ret,doMainL());
+
+ test(ret==KErrNone);
+ delete theCleanup;
+ test.End();
+ test.Close();
+ __UHEAP_MARKEND;
+ return(KErrNone);
+ }