diff -r 000000000000 -r 72b543305e3a email/imap4mtm/imapsyncmanager/test/src/ctestsyncfoldertree.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imap4mtm/imapsyncmanager/test/src/ctestsyncfoldertree.cpp Thu Dec 17 08:44:11 2009 +0200 @@ -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 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; + }