messagingappbase/smsmtm/test/src/t_smsbiofication.cpp
changeset 25 84d9eb65b26f
parent 23 238255e8b033
child 27 e4592d119491
child 37 518b245aa84c
child 79 2981cb3aa489
--- a/messagingappbase/smsmtm/test/src/t_smsbiofication.cpp	Fri Apr 16 14:56:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,638 +0,0 @@
-// Copyright (c) 1999-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 <e32test.h>
-#include <e32uid.h>
-#include <e32std.h>
-#include <smuthdr.h>
-#include <smscmds.h>
-#include "t_smsbiofication.h"
-#include <txtrich.h>
-#include <biouids.h>
-
-RTest test(_L("T_SmsBiofication Testrig"));
-CTrapCleanup* theCleanup;
-
-_LIT(KBioficationScript, "biofication.script");
-_LIT(KSmsTestFolderDetails, "Test folder");
-_LIT(KSmsTestFolderDescription, "Copied or moved message folder");
-
-
-CSmsBioficationTest* CSmsBioficationTest::NewLC(CSmsTestUtils& aSmsTest, const TDesC& aScriptFile, TInt& aNextTest)
-	{
-	CSmsBioficationTest* self = new (ELeave) CSmsBioficationTest(aSmsTest, aScriptFile, aNextTest);
-	CleanupStack::PushL(self);
-
-	self->ConstructL();
-	return self;
-	}
-
-CSmsBioficationTest::~CSmsBioficationTest()
-	{
-	delete iTestSelection;
-
-	iSocket.Close();
-	iSocketServ.Close();
-	}
-
-CSmsBioficationTest::CSmsBioficationTest(CSmsTestUtils& aSmsTest, const TDesC& aScriptFile, TInt& aNextTest)
-: CSmsTestBase(aSmsTest, aScriptFile, aNextTest), iState(EStateIdle)
-	{
-	}
-
-void CSmsBioficationTest::ConstructL()
-	{
-	SetTestNameL(KSmsBioficationTestName);
-	iSmsTest.SetLogToFile();
-
-	iSelection = new (ELeave) CMsvEntrySelection();
-	iTestSelection = new (ELeave) CMsvEntrySelection();
-	iTimer = CTestTimer::NewL();
-
-	User::LeaveIfError(iSocketServ.Connect());
-	TProtocolDesc protoinfo;
-	TProtocolName protocolname(KSmsDatagram);
-	User::LeaveIfError(iSocketServ.FindProtocol(protocolname,protoinfo));
-
-	User::LeaveIfError(iSocket.Open(iSocketServ,protoinfo.iAddrFamily,protoinfo.iSockType,protoinfo.iProtocol));
-	TSmsAddr smsaddr;
-	smsaddr.SetSmsAddrFamily(ESmsAddrSendOnly);
-	User::LeaveIfError(iSocket.Bind(smsaddr));
-
-	CActiveScheduler::Add(this);
-	}
-
-void CSmsBioficationTest::RunL()
-	{
-	CActiveScheduler::Stop();
-
-	iSmsTest(iStatus.Int() == KErrNone);
-
-	iSmsTest.SetProgressL(*iOperation);
-
-	switch (iState)
-		{
-		case EStateEnumerating:
-			{
-			RunEnumerateL();
-			break;
-			}
-		case EStateCopyingToPhoneStore:
-			{
-			RunCopyToPhoneStoreL();
-			break;
-			}
-		case EStateCopyingFromPhoneStore:
-		case EStateMovingFromPhoneStore:
-		case EStateDeletingFromPhoneStore:
-			{
-			RunCopyMoveDeleteFromPhoneStoreL();
-			break;
-			}
-		case EStateSending:
-			{
-			ChangeMtmUidsL(*iSelection);
-			break;
-			}
-		default:
-			break;
-		}
-	iState=EStateIdle;
-	}
-
-void CSmsBioficationTest::DoCancel()
-	{
-	if (iOperation)
-		{
-		iOperation->Cancel();
-		iSmsTest.Printf(_L("Operation Cancelled!\n"));
-		}
-	else
-		{
-		iSmsTest.Printf(_L("No operation to cancel!\n"));
-		}
-
-	delete iOperation;
-	iOperation = NULL;
-	}
-
-
-void CSmsBioficationTest::TestSetupL()
-	{
-	iSmsTest.Test().Next(_L("Test Setup"));
-	iState=EStateSettingUp;
-	TFullName name;
-	TFindProcess find(_L("watcher*"));
-	while (find.Next(name)==KErrNone)
-		{
-		RProcess process;
-		process.Open(find);
-		process.Terminate(KErrGeneral);
-		process.Close();
-		}
-	//  Create test folder
-	MsvEntry().SetEntryL(KMsvDraftEntryId);
-	TMsvEntry entry;
-	entry.iServiceId = iSmsTest.iSmsServiceId;
-	entry.SetVisible(ETrue);
-	entry.iMtm = KUidMsgTypeSMS;
-	entry.iDate.HomeTime();
-	entry.iType = KUidMsvFolderEntry;
-	entry.iDetails.Set(KSmsTestFolderDetails);
-	entry.iDescription.Set(KSmsTestFolderDescription);
-	MsvEntry().CreateL(entry);
-	iTestFolderId=MsvEntry().EntryId();
-
-	TTime now;
-	now.HomeTime();
-	iSmsTest.ReadScriptL(iScriptFile, KMsvNullIndexEntryId, *iSelection, now);
-	ChangeMtmUidsL(*iSelection);
-
-	iState=EStateIdle;
-
-	/*
-	User::LeaveIfError(iSocketServ.Connect());
-	TProtocolDesc protoinfo;
-	TProtocolName protocolname(KSmsDatagram);
-	User::LeaveIfError(iSocketServ.FindProtocol(protocolname,protoinfo));
-
-	User::LeaveIfError(iSocket.Open(iSocketServ,protoinfo.iAddrFamily,protoinfo.iSockType,protoinfo.iProtocol));
-	TSmsAddr smsaddr;
-	smsaddr.SetSmsAddrFamily(ESmsAddrSendOnly);
-	User::LeaveIfError(iSocket.Bind(smsaddr));
-	*/
-	}
-
-void CSmsBioficationTest::TestEnumerateL()
-	{
-	iSmsTest.Test().Next(_L("Enumerate Phone Stores"));
-	iState = EStateEnumerating;
-
-	iTestSelection->Reset();
-	iTestSelection->AppendL(iSmsTest.iSmsServiceId);
-
-	delete iOperation;
-	iOperation = NULL;
-	iOperation = Session().TransferCommandL(*iTestSelection, ESmsMtmCommandEnumeratePhoneStores, TPtrC8(), iStatus);
-	SetActive();
-	CActiveScheduler::Start();
-	}
-
-void CSmsBioficationTest::TestCopyToPhoneStoreL()
-	{
-	iSmsTest.Test().Next(_L("Copy To Phone Store"));
-	iState = EStateCopyingToPhoneStore;
-
-	delete iTestSelection;
-	iTestSelection = NULL;
-	iTestSelection=iSelection->CopyL();
-	iTestSelection->InsertL(0,iSmsTest.iSmsServiceId);
-
-	delete iOperation;
-	iOperation = NULL;
-	iOperation = Session().TransferCommandL(*iTestSelection, ESmsMtmCommandCopyToPhoneStore, TPtrC8(), iStatus);
-	SetActive();
-	CActiveScheduler::Start();
-	}
-
-void CSmsBioficationTest::TestCopyFromPhoneStoreL()
-	{
-	iSmsTest.Test().Next(_L("Copy From Phone Store"));
-	iState = EStateCopyingFromPhoneStore;
-
-	DeleteEntriesFromTestFolderL();
-
-	MsvEntry().SetEntryL(iEnumerationFolderId);
-
-	delete iTestSelection;
-	iTestSelection = NULL;
-	iTestSelection = MsvEntry().ChildrenL();
-	iTestSelection->InsertL(0,iSmsTest.iSmsServiceId);
-
-	TPckgBuf<TMsvId> pkg(iTestFolderId);
-
-	delete iOperation;
-	iOperation = NULL;
-	iOperation = Session().TransferCommandL(*iTestSelection, ESmsMtmCommandCopyFromPhoneStore, pkg, iStatus);
-	SetActive();
-	CActiveScheduler::Start();
-	}
-
-void CSmsBioficationTest::TestMoveFromPhoneStoreL()
-	{
-	iSmsTest.Test().Next(_L("Move From Phone Store"));
-	iState = EStateMovingFromPhoneStore;
-
-	DeleteEntriesFromTestFolderL();
-
-	MsvEntry().SetEntryL(iEnumerationFolderId);
-	delete iTestSelection;
-	iTestSelection = NULL;
-	iTestSelection = MsvEntry().ChildrenL();
-	iTestSelection->InsertL(0,iSmsTest.iSmsServiceId);
-
-	TPckgBuf<TMsvId> pkg(iTestFolderId);
-
-	delete iOperation;
-	iOperation = NULL;
-	iOperation = Session().TransferCommandL(*iTestSelection, ESmsMtmCommandMoveFromPhoneStore, pkg, iStatus);
-	SetActive();
-	CActiveScheduler::Start();
-	}
-
-void CSmsBioficationTest::TestDeleteFromPhoneStoreL()
-	{
-	iSmsTest.Test().Next(_L("Delete From SIM"));
-	iState = EStateDeletingFromPhoneStore;
-
-	MsvEntry().SetEntryL(iEnumerationFolderId);
-	delete iTestSelection;
-	iTestSelection = NULL;
-	iTestSelection = MsvEntry().ChildrenL();
-	iTestSelection->InsertL(0,iSmsTest.iSmsServiceId);
-
-	delete iOperation;
-	iOperation = NULL;
-	iOperation = Session().TransferCommandL(*iTestSelection, ESmsMtmCommandDeleteFromPhoneStore, TPtrC8(), iStatus);
-	SetActive();
-	CActiveScheduler::Start();
-	}
-
-void CSmsBioficationTest::TestSendL()
-	{
-	iSmsTest.Test().Next(_L("Send"));
-	iState = EStateSending;
-
-	iSmsTest.Test().Next(_L("Test Send Entry\n"));
-
-	DeleteEntriesFromTestFolderL();
-
-	for (TInt i=iSelection->Count()-1; i>=0; i--)
-		{
-		MsvEntry().SetEntryL(iSelection->At(i));
-		TMsvEntry entry=MsvEntry().Entry();
-		if (entry.Parent()!=KMsvGlobalOutBoxIndexEntryId)
-			iSelection->Delete(i);
-		else
-			{
-			entry.iMtm=KUidMsgTypeSMS;
-			MsvEntry().ChangeL(entry);
-			MsvEntry().SetEntryL(KMsvGlobalOutBoxIndexEntryId);
-			MsvEntry().CopyL(iSelection->At(i),iTestFolderId);
-			}
-		}
-
-	MsvEntry().SetEntryL(iTestFolderId);
-	delete iTestSelection;
-	iTestSelection = NULL;
-	iTestSelection = MsvEntry().ChildrenL();
-
-	delete iOperation;
-	iOperation = NULL;
-	iOperation = MsvEntry().CopyL(*iTestSelection, iSmsTest.iSmsServiceId, iStatus);
-
-	SetActive();
-	CActiveScheduler::Start();
-	}
-
-void CSmsBioficationTest::TestDeleteEnumerationFolderL()
-	{
-	iSmsTest.Test().Next(_L("Test Delete Enumeration Folder\n"));
-
-	iTestSelection->Reset();
-	CMsvOperationWait* wait = CMsvOperationWait::NewLC();
-	wait->Start();
-
-	iSmsTest.SetEntryL(iEnumerationFolderId);
-	iSmsTest.SetEntryL(iSmsTest.Entry().Parent());
-
-	CMsvOperation* op = iSmsTest.iMsvEntry->DeleteL(iEnumerationFolderId, wait->iStatus);
-	CleanupStack::PushL(op);
-
-	CActiveScheduler::Start();
-
-	iSmsTest.Printf(_L("Remote DeleteL() completed with %d\n"), wait->iStatus.Int());
-
-	User::LeaveIfError(wait->iStatus.Int());
-
-	iSmsTest.SetProgressL(*op);
-
-	iSmsTest.Printf(_L("Operation completed with %d, msg count %d\n"), iSmsTest.iProgress.iError, iSmsTest.iProgress.iMsgCount);
-	User::LeaveIfError(iSmsTest.iProgress.iError);
-
-	CleanupStack::PopAndDestroy(2); //wait, op
-	iState = EStateIdle;
-	}
-
-
-void CSmsBioficationTest::RunAutoL()
-	{
-	iSmsTest.SetLogToConsole(ETrue);
-
-	iSmsTest.TestStart(++iNextTest, _L("Test 1 - Setup"));
-	TestSetupL();
-	User::LeaveIfError(iStatus.Int());
-	iSmsTest.TestFinish(iNextTest, KErrNone);
-
-	
-
-	iSmsTest.TestStart(++iNextTest, _L("Test 1 - Enumerate"));
-	TestEnumerateL();
-	User::LeaveIfError(iStatus.Int());
-	iSmsTest.TestFinish(iNextTest, KErrNone);
-
-	
-
-	if (iTestSelection->Count())
-		{
-		iSmsTest.TestStart(++iNextTest, _L("Test 1 - Delete From Phone Store"));
-		TestDeleteFromPhoneStoreL();
-		User::LeaveIfError(iStatus.Int());
-		iSmsTest.TestFinish(iNextTest, KErrNone);
-		}
-
-	
-
-	iSmsTest.TestStart(++iNextTest, _L("Test 1 - Enumerate"));
-	TestEnumerateL();
-	User::LeaveIfError(iStatus.Int());
-	test(iTestSelection->Count()==0);
-	iSmsTest.TestFinish(iNextTest, KErrNone);
-
-	const TInt KWaitAfterEnum = 10;
-	const TInt KWaitAfterSend = 10;
-	iSmsTest.Printf(_L("Waiting %d seconds after enum...\n"), KWaitAfterEnum);
-	User::After(KWaitAfterEnum * 1000000);
-	iSmsTest.Printf(_L("Finished waiting\n"));
-
-	
-
-	iSmsTest.TestStart(++iNextTest, _L("Test 2 - Copy to Phone Store"));
-	TestCopyToPhoneStoreL();
-	User::LeaveIfError(iStatus.Int());
-	iSmsTest.TestFinish(iNextTest, KErrNone);
-
-	
-
-
-	iSmsTest.TestStart(++iNextTest, _L("Test 2 - Enumerate"));
-	TestEnumerateL();
-	User::LeaveIfError(iStatus.Int());
-	test(CompareSelectionsL(*iSelection,*iTestSelection));
-	iSmsTest.TestFinish(iNextTest, KErrNone);
-
-	
-
-	iSmsTest.TestStart(++iNextTest, _L("Test 2 - Copy From Phone Store"));
-	TestCopyFromPhoneStoreL();
-	User::LeaveIfError(iStatus.Int());
-	test(CompareSelectionsL(*iSelection,*iTestSelection));
-	iSmsTest.TestFinish(iNextTest, KErrNone);
-
-	
-
-	iSmsTest.TestStart(++iNextTest, _L("Test 2 - Delete From Phone Store"));
-	TestDeleteFromPhoneStoreL();
-	User::LeaveIfError(iStatus.Int());
-	iSmsTest.TestFinish(iNextTest, KErrNone);
-
-	
-
-	iSmsTest.TestStart(++iNextTest, _L("Test 2 - Enumerate"));
-	TestEnumerateL();
-	User::LeaveIfError(iStatus.Int());
-	test(iTestSelection->Count()==0);
-	iSmsTest.TestFinish(iNextTest, KErrNone);
-
-	
-
-	iSmsTest.TestStart(++iNextTest, _L("Test 3 - Send"));
-	TestSendL();
-	User::LeaveIfError(iStatus.Int());
-	iSmsTest.TestFinish(iNextTest, KErrNone);
-
-	iSmsTest.Printf(_L("Waiting %d seconds after send...\n"), KWaitAfterSend);
-	User::After(KWaitAfterSend * 1000000);
-	iSmsTest.Printf(_L("Finished waiting\n"));
-
-	iSmsTest.TestStart(++iNextTest, _L("Test 2 - Enumerate"));
-	TestEnumerateL();
-	User::LeaveIfError(iStatus.Int());
-	test(CompareSelectionsL(*iSelection,*iTestSelection));
-	iSmsTest.TestFinish(iNextTest, KErrNone);
-
-	iSmsTest.TestStart(++iNextTest, _L("Test 3 - Move from Phone Store"));
-	TestMoveFromPhoneStoreL();
-	User::LeaveIfError(iStatus.Int());
-	test(CompareSelectionsL(*iSelection,*iTestSelection));
-	iSmsTest.TestFinish(iNextTest, KErrNone);
-
-	iSmsTest.TestStart(++iNextTest, _L("Test 2 - Enumerate"));
-	TestEnumerateL();
-	User::LeaveIfError(iStatus.Int());
-	test(iTestSelection->Count()==0);
-	iSmsTest.TestFinish(iNextTest, KErrNone);
-
-	iSmsTest.TestStart(++iNextTest, _L("Test 2 - Delete Enumeration Folder"));
-	TestDeleteEnumerationFolderL();
-	User::LeaveIfError(iStatus.Int());
-	iSmsTest.TestFinish(iNextTest, KErrNone);
-	}
-
-void CSmsBioficationTest::ShowMenuL()
-	{
-	}
-
-void CSmsBioficationTest::DeleteEntriesFromTestFolderL()
-	{
-	MsvEntry().SetEntryL(iTestFolderId);
-	delete iTestSelection;
-	iTestSelection = NULL;
-	iTestSelection = MsvEntry().ChildrenL();
-	if (iTestSelection->Count())
-		{
-		CMsvOperationWait* wait = CMsvOperationWait::NewLC();
-		wait->Start();
-		CMsvOperation* op=MsvEntry().DeleteL(*iTestSelection,wait->iStatus);
-		CleanupStack::PushL(op);
-		CActiveScheduler::Start();
-		User::LeaveIfError(wait->iStatus.Int());
-		iSmsTest.SetProgressL(*op);
-		User::LeaveIfError(iSmsTest.iProgress.iError);
-		CleanupStack::PopAndDestroy(2); //wait, op
-		iTestSelection->Reset();
-		}
-	}
-
-void CSmsBioficationTest::ChangeMtmUidsL(CMsvEntrySelection& aSelection)
-	{
-	for (TInt i=0; i<aSelection.Count(); i++)
-		{
-		MsvEntry().SetEntryL(aSelection[i]);
-		TMsvEntry entry=MsvEntry().Entry();
-		if (entry.iBioType!=EBioMsgIdUnknown)
-			{
-			entry.iMtm=KUidBIOMessageTypeMtm;  //  The test utils do not set the correct MTM uid for BIO messages
-			MsvEntry().ChangeL(entry);
-			}
-		}
-	}
-
-TBool CSmsBioficationTest::CompareSelectionsL(const CMsvEntrySelection& aSelection1,const CMsvEntrySelection& aSelection2)
-	{
-	TInt count1=aSelection1.Count();
-	TInt count2=aSelection2.Count();
-	iSmsTest.Printf(_L("Comparing selections, 1st msg count %d, 2nd msg count %d\n"), count1,count2);
-	TBool thesame=count1==count2;
-	for (TInt i=0; thesame && (i<count1); i++)
-		{
-		CMsvEntrySelection* selection2=aSelection2.CopyLC();
-		thesame=EFalse;
-		for (TInt j=0; (!thesame) && (j<count2); j++)
-			{
-			thesame=CompareEntriesL(aSelection1[i],selection2->At(j));
-			if (thesame)
-				selection2->Delete(j);
-			}
-		CleanupStack::PopAndDestroy();
-		}
-	return thesame;
-	}
-
-TBool CSmsBioficationTest::CompareEntriesL(TMsvId aId1, TMsvId aId2)
-	{
-	TBool thesame=iSmsTest.AreMessagesSameTextL(aId1,aId2);
-	if (thesame)
-		{
-		MsvEntry().SetEntryL(aId1);
-		TMsvEntry entry1=MsvEntry().Entry();
-		MsvEntry().SetEntryL(aId2);
-		TMsvEntry entry2=MsvEntry().Entry();
-		thesame=(entry1.iBioType==entry2.iBioType) && (entry1.iMtm==entry2.iMtm);
-		}
-	return thesame;
-	}
-
-void CSmsBioficationTest::RunEnumerateL()
-	{
-	TInt err = iStatus.Int();
-
-	if (err == KErrNone)
-		{
-		err = iSmsTest.iProgress.iError;
-		iStatus = err;
-
-		if (err == KErrNone)
-			{
-			iEnumerationFolderId=iSmsTest.iProgress.iEnumerateFolder;
-			MsvEntry().SetEntryL(iEnumerationFolderId);
-			delete iTestSelection;
-			iTestSelection = NULL;
-			iTestSelection = MsvEntry().ChildrenL();
-
-			iSmsTest.Printf(_L("%d message(s) on SIM. %d message(s) now contained in folder %d.\n"), iSmsTest.iProgress.iMsgCount, iTestSelection->Count(), iEnumerationFolderId);
-			iSmsTest.DisplayMessagesL(*iTestSelection);
-			}
-		}
-
-	iSmsTest.Printf(_L("Enumerate Phone Store completed with %d\n"), err);
-	iState = EStateIdle;
-
-	delete iOperation;
-	iOperation = NULL;
-	}
-
-void CSmsBioficationTest::RunCopyToPhoneStoreL()
-	{
-	TInt err = iStatus.Int();
-
-	if (err == KErrNone)
-		{
-		err = iSmsTest.iProgress.iError;
-		}
-
-	iSmsTest.Printf(_L("Copy To SIM completed with error %d\n"), err);
-
-	iState = EStateIdle;
-	}
-
-void CSmsBioficationTest::RunCopyMoveDeleteFromPhoneStoreL()
-	{
-	TInt err = iStatus.Int();
-
-	if (err == KErrNone)
-		{
-		err = iSmsTest.iProgress.iError;
-		}
-
-	MsvEntry().SetEntryL(iTestFolderId);
-	delete iTestSelection;
-	iTestSelection = NULL;
-	iTestSelection = MsvEntry().ChildrenL();
-
-	switch (iState)
-		{
-		case EStateCopyingFromPhoneStore:
-			iSmsTest.Printf(_L("Copy From Phone Store completed with error %d\n"), err);
-			break;
-		case EStateMovingFromPhoneStore:
-			iSmsTest.Printf(_L("Move From Phone Store completed with error %d\n"), err);
-			break;
-		case EStateDeletingFromPhoneStore:
-			iSmsTest.Printf(_L("Delete From Phone Store completed with error %d\n"), err);
-			break;
-		default:
-			break;
-		}
-
-	iState = EStateIdle;
-	}
-
-LOCAL_C void doMainL()
-	{
-	CActiveScheduler* scheduler = new (ELeave) CActiveScheduler;
-	CleanupStack::PushL(scheduler);
-	CActiveScheduler::Install( scheduler );
-
-	CSmsTestUtils* smsTest = CSmsTestUtils::NewL(test);
-	CleanupStack::PushL(smsTest);
-	TInt nextTest = 0;
-
-	smsTest->NotifySaPhoneOnL();
-
-	CSmsBioficationTest* bioficationTest = CSmsBioficationTest::NewLC(*smsTest, KBioficationScript, nextTest);
-
-	smsTest->WaitForInitializeL();
-
-	bioficationTest->StartL();
-
-	CleanupStack::PopAndDestroy(3); //bioficationTest, smsTest, scheduler
-	}
-
-GLDEF_C TInt E32Main()
-	{	
-	__UHEAP_MARK;
-	test.Start(_L("Setup"));
-	theCleanup = CTrapCleanup::New();
-	TRAPD(ret,doMainL());		
-	test(ret==KErrNone);
-	delete theCleanup;	
-	test.Console()->SetPos(0, 13);
-	test.End();
-	test.Close();
-	__UHEAP_MARKEND;
-	return(KErrNone);
-	}
-