email/imap4mtm/imapsyncmanager/test/src/ctestsyncfoldertree.cpp
changeset 31 ebfee66fde93
parent 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imap4mtm/imapsyncmanager/test/src/ctestsyncfoldertree.cpp	Fri Jun 04 10:25:39 2010 +0100
@@ -0,0 +1,244 @@
+// Copyright (c) 2006-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 "ctestsyncfoldertree.h"
+#include "cactivewaiter.h"
+#include "moutputstream.h"
+
+CTestSyncFolderTree::CTestSyncFolderTree()
+	:iActiveWaiter(NULL){
+	}
+
+CTestSyncFolderTree::~CTestSyncFolderTree()
+	{
+	
+	}
+
+void CTestSyncFolderTree::TestInboxNameL()
+	{
+	INFO_PRINTF1(_L("TestInboxNameL - Start"));
+
+	iActiveWaiter = new(ELeave)CActiveWaiter();
+	ConnectToRemoteServerL();
+
+	TBuf8<128> parameter;
+	iSel->Reset();
+	iSel->AppendL(iServiceId);
+	iImapServerMtm->StartCommandL(*iSel, KIMAP4MTMFullSync, parameter, iActiveWaiter->iStatus);
+	iActiveWaiter->WaitActive();
+	ASSERT_EQUALS( iActiveWaiter->iStatus.Int( ), KErrNone );
+
+	INFO_PRINTF1(_L("TestInboxNameL - Check Inbox exists"));
+	TMsvId id = FindFolderL(_L("Inbox"), ETrue);
+	ASSERT_TRUE(id != KErrNotFound);
+
+	INFO_PRINTF1(_L("TestInboxNameL - Check INBOX does not exist"));
+	id = FindFolderL(_L("INBOX"), ETrue);
+	ASSERT_TRUE(id == KErrNotFound);
+
+	DisconnectL();
+	delete iActiveWaiter;
+
+	INFO_PRINTF1(_L("TestInboxNameL - Complete"));
+	}
+
+
+void CTestSyncFolderTree::TestsSyncFolderL()
+	{
+	iActiveWaiter = new(ELeave)CActiveWaiter();
+	
+	ConnectToRemoteServerL();
+	
+	CreateFolderL(_L("Test1"),iServiceId);
+	SetSubscriptionL(_L("Test1"));
+
+	CreateFolderL(_L("Test2"),iServiceId);
+	SetSubscriptionL(_L("Test2"));
+
+	TBuf8<128> parameter;
+
+	iSel->Reset();
+	iSel->AppendL(iServiceId);
+
+	iImapServerMtm->StartCommandL(*iSel, KIMAP4MTMFullSync, parameter, iActiveWaiter->iStatus);
+	iActiveWaiter->WaitActive();
+	ASSERT_EQUALS( iActiveWaiter->iStatus.Int( ), KErrNone );
+
+//	Check whether they have been remotely subscribed
+	TMsvId id =	FindFolderL(_L("Test1"));
+
+	iEntry->SetEntry(id);
+	TBool sub = ((TMsvEmailEntry)iEntry->Entry()).Subscribed();
+	
+	id = FindFolderL(_L("Test2"));
+	iEntry->SetEntry(id);
+	sub = ((TMsvEmailEntry)iEntry->Entry()).Subscribed();
+	
+
+	iImapServerMtm->StartCommandL(*iSel, KIMAP4MTMFullSync, parameter, iActiveWaiter->iStatus);
+	iActiveWaiter->WaitActive();
+	iEntry->SetEntry(iServiceId);
+	/*iSel->Reset();
+	iSel->AppendL(serviceId);
+	imapServerMtm->StartCommandL(*iSel, KIMAP4MTMSyncTree, parameter, iActiveWaiter->iStatus);
+	iActiveWaiter->WaitActive();*/
+	CMsvEntrySelection* msvEntrySelection = new (ELeave) CMsvEntrySelection;
+	iEntry->GetChildren(*msvEntrySelection);
+	TInt count = msvEntrySelection->Count();
+	delete msvEntrySelection;
+
+	//TODO: Check whether folders have been created and synced 
+
+	/* id =	FindFolderL(_L("Test1"));
+		if(id == KErrNotFound)
+		{
+		CreateFolderL(_L("Test1"),serviceId);
+		id = FindFolderL(_L("Test1"));
+		}
+	CreateFolderL(_L("Test1child"),id);*/
+	DisconnectL();
+	delete iActiveWaiter;
+	}
+ 
+void CTestSyncFolderTree::TestsDeleteL()
+	{
+	iActiveWaiter = new(ELeave)CActiveWaiter();
+	ConnectToRemoteServerL();
+	ASSERT_EQUALS( iActiveWaiter->iStatus.Int( ), KErrNone );
+	CreateFolderL(_L("Test7"),iServiceId);
+	TBuf8<128> parameter;
+	DeleteFolderL(_L("Test7"));
+	iSel->Reset();
+	iSel->AppendL(iServiceId);
+	iImapServerMtm->StartCommandL(*iSel, KIMAP4MTMSyncTree , parameter, iActiveWaiter->iStatus);
+	iActiveWaiter->WaitActive();
+	DisconnectL();
+	ConnectToRemoteServerL();
+	iImapServerMtm->StartCommandL(*iSel, KIMAP4MTMFullSync, parameter, iActiveWaiter->iStatus);
+	iActiveWaiter->WaitActive();
+	 TMsvId id = FindFolderL(_L("Test7"));
+	
+	if(id==KErrNotFound )
+		{
+			// removed
+		}
+	DisconnectL();
+	}
+	
+void CTestSyncFolderTree::TestsMessageSyncLimitL()
+	{
+	TBuf8<128> parameter;
+	iActiveWaiter = new(ELeave)CActiveWaiter();
+
+	ConnectToRemoteServerL();
+	//Send some messages to remote server
+	for(TInt i = 0; i <2; ++i)
+		{
+		SendMessageL();
+		}
+
+	iSel->Reset();
+	iSel->AppendL(iServiceId);
+	iImapServerMtm->StartCommandL(*iSel, KIMAP4MTMFullSync, parameter, iActiveWaiter->iStatus);
+	iActiveWaiter->WaitActive();
+
+	}
+
+
+void CTestSyncFolderTree::TestsMessageSyncNewLimitL()
+	{
+	TBuf8<128> parameter;
+	iActiveWaiter = new(ELeave)CActiveWaiter();
+	ChangeSyncLimitL(5);
+	ConnectToRemoteServerL();
+	//Send some messages to remote server
+	for(TInt i = 0; i <5; ++i)
+		{
+		SendMessageL();
+		}
+
+	iSel->Reset();
+	iSel->AppendL(iServiceId);
+	iImapServerMtm->StartCommandL(*iSel, KIMAP4MTMFullSync, parameter, iActiveWaiter->iStatus);
+	iActiveWaiter->WaitActive();
+
+	}
+
+	
+void CTestSyncFolderTree::TestsNewMessageSyncL()
+	{
+	TBuf8<128> parameter;
+	iActiveWaiter = new(ELeave)CActiveWaiter();
+	// connect and sync 
+	ConnectToRemoteServerL();
+	iSel->Reset();
+	iSel->AppendL(iServiceId);
+	for(TInt i = 0; i <2; ++i)
+		{
+		SendMessageL();
+		}
+	iImapServerMtm->StartCommandL(*iSel, KIMAP4MTMFullSync , parameter, iActiveWaiter->iStatus);
+	iActiveWaiter->WaitActive();
+	}
+
+void CTestSyncFolderTree::TestRenameFolderL()
+	{
+	TBuf8<128> parameter;
+	iActiveWaiter = new(ELeave)CActiveWaiter();
+	ConnectToRemoteServerL();
+	iSel->Reset();
+	iSel->AppendL(iServiceId);
+	iImapServerMtm->StartCommandL(*iSel, KIMAP4MTMFullSync , parameter, iActiveWaiter->iStatus);
+	iActiveWaiter->WaitActive();
+	TMsvId id = FindFolderL(_L("Test1"));
+	if(id == KErrNotFound)
+		{
+		CreateFolderL(_L("Test1"),iServiceId);
+		id = FindFolderL(_L("Test1"));
+		}
+	TImap4RenameFolder cmd;
+	cmd.iNewName = _L("Test1Renamed");
+	TPckgC<TImap4RenameFolder> package(cmd);
+	iSel->Reset();
+	iSel->AppendL(id);
+	iImapServerMtm->StartCommandL(*iSel,KIMAP4MTMRenameFolder,package,iActiveWaiter->iStatus);
+	iActiveWaiter->WaitActive();
+	
+	iSel->Reset();
+	iSel->AppendL(iServiceId);
+	iImapServerMtm->StartCommandL(*iSel, KIMAP4MTMFullSync , parameter, iActiveWaiter->iStatus);
+	iActiveWaiter->WaitActive();
+	id = FindFolderL(_L("Test1Renamed"));
+		if(id == KErrNotFound)
+			{
+				// Rename Failed
+			}
+	DisconnectL();	
+	}
+	
+
+CTestSuite* CTestSyncFolderTree::CreateSuiteL(const TDesC& aName)
+// static
+	{
+	SUB_SUITE;
+	ADD_ASYNC_TEST_STEP(TestInboxNameL);
+	ADD_ASYNC_TEST_STEP(TestsSyncFolderL);
+	ADD_ASYNC_TEST_STEP(TestsDeleteL);
+	ADD_ASYNC_TEST_STEP(TestsMessageSyncLimitL);
+	ADD_ASYNC_TEST_STEP(TestsMessageSyncNewLimitL);
+	ADD_ASYNC_TEST_STEP(TestsNewMessageSyncL);
+	ADD_ASYNC_TEST_STEP(TestRenameFolderL);
+	END_SUITE;
+	}