diff -r 000000000000 -r 8e480a14352b messagingfw/msgtest/testutils/sms/src/SmsTestBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/msgtest/testutils/sms/src/SmsTestBase.cpp Mon Jan 18 20:36:02 2010 +0200 @@ -0,0 +1,250 @@ +// 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 "smstestbase.h" +#include +#include +#include +#include + +EXPORT_C CSmsTestBase::~CSmsTestBase() + { + if (iOperation) + { + iOperation->Cancel(); + delete iOperation; + iOperation = NULL; + } + + delete iSelection; + iSelection = NULL; + + if (iTimer) + { + iTimer->Cancel(); + delete iTimer; + iTimer = NULL; + } + + delete iTestName; + iTestName = NULL; + } + +EXPORT_C CSmsTestBase::CSmsTestBase(CSmsTestUtils& aSmsTest, const TDesC& aScriptFile, TInt& aNextTest, TInt aPriority) +: CActive(aPriority), iComplete(EFalse), iError(KErrNone), iScriptFile(aScriptFile), iSmsTest(aSmsTest), iNextTest(aNextTest) + { + } + +EXPORT_C void CSmsTestBase::DisplayLogL() + { + CLogFilter* filter = CLogFilter::NewL(); + CleanupStack::PushL(filter); + + iSmsTest.DisplayLogL(*filter, ETrue); + + CleanupStack::PopAndDestroy(); //filter + + if (!iSmsTest.RunAuto()) + { + iSmsTest.Test().Printf(_L("\nPress any key to continue...\n")); + iSmsTest.Test().Getch(); + } + } + +EXPORT_C void CSmsTestBase::ClearLogL() + { + CLogFilter* filter = CLogFilter::NewL(); + CleanupStack::PushL(filter); + + iSmsTest.ClearLogL(*filter); + + CleanupStack::PopAndDestroy(); //filter + + if (!iSmsTest.RunAuto()) + { + iSmsTest.Test().Printf(_L("\nPress any key to continue...\n")); + iSmsTest.Test().Getch(); + } + } + +EXPORT_C TInt CSmsTestBase::RunError(TInt aError) + { + if (iStatus == KErrNone) + iStatus = aError; + + return KErrNone; + } + +EXPORT_C void CSmsTestBase::DoTestForwardMsgL(TMsvId aId) +// Test forwarding this message (ie Create a forwarded SMS, +// place it in the drafts folder & then send it). + { + // Load the SMS Client MTM if not already done so + if (! iSmsTest.iSmsClientMtm) + iSmsTest.InstantiateClientMtmsL(); + + // Get the SMS Client MTM to use & load this message + Client().SwitchCurrentEntryL(aId); + Client().LoadMessageL(); + + // Forward the message & store it in the Drafts folder + TMsvPartList part=0; + TRequestStatus status(0); + CMsvOperation* op = Client().ForwardL(KMsvDraftEntryId, part, status); + CleanupStack::PushL(op); + + TMsvId temp; + TPckgC paramPack(temp); + const TDesC8& progBuf2 = op->ProgressL(); + paramPack.Set(progBuf2); + TMsvId progress=paramPack(); + + CleanupStack::PopAndDestroy(); //op + op = NULL; + + Client().SwitchCurrentEntryL(progress); + Client().LoadMessageL(); + + // Add additional text & an Addressee to the Forwarded Message + Client().Body().InsertL(0,_L("This is a forwarded Msg. ")); + Client().AddAddresseeL(KScriptItemRecipientsDef); + + // Change the description of the new message + CMsvEntry& cEntry = Client().Entry(); + TMsvEntry tEntry = cEntry.Entry(); + tEntry.iDescription.Set(_L("Forwarded Msg")); + cEntry.ChangeL(tEntry); + + // Get the ID of the new Forwarded Message + TMsvId newEntryId = cEntry.EntryId(); + + // Save the new message + Client().SaveMessageL(); + + // Now send the Forwarded Message that we have just created + DoTestSendMesssageL(newEntryId); + } + + +EXPORT_C void CSmsTestBase::DoTestSendMesssageL(TMsvId aMsgId) +// Test Sending this message + { + iSmsTest.Test().Next(_L("Sending")); + iSmsTest.Printf(_L("Sending %d messages...\n"), 1); + iSmsTest.DisplayMessageL(aMsgId); + + // Get the Parent Id of the message we want to send & + // then set the entry to this parent + iSmsTest.SetEntryL(aMsgId); + TMsvEntry entryToSend = iSmsTest.Entry(); + TMsvId parentId = entryToSend.Parent(); + iSmsTest.SetEntryL(parentId); + + delete iOperation; + iOperation = NULL; + + // Send the message, by copying it to the SMS Service. + iOperation = MsvEntry().CopyL(aMsgId, iSmsTest.iSmsServiceId, iStatus); + + SetActive(); + } + +EXPORT_C void CSmsTestBase::DoTestSendingL(const TDesC& aScript, TBool aMove) +// +// +// + { + iSmsTest.Test().Next(_L("Sending")); + + TTime now; + now.HomeTime(); + now += (TTimeIntervalSeconds) 5; + + iSmsTest.DeleteSmsMessagesL(KMsvGlobalOutBoxIndexEntryId); + iSelection->Reset(); + + // Create the test messages specified in the script file and place in the Outbox. + iSmsTest.Printf(_L("Creating msgs in outbox from script %S\n"), &aScript); + TBool read = EFalse; + TRAPD(err, read = iSmsTest.ReadScriptL(aScript, KMsvGlobalOutBoxIndexEntryId, *iSelection, now)); + + iSmsTest.Test()(!err && read); + + iSmsTest.Printf(_L("Sending %d messages...\n"), iSelection->Count()); + iSmsTest.DisplayMessagesL(*iSelection); + iSmsTest.SetEntryL(KMsvGlobalOutBoxIndexEntryId); + + delete iOperation; + + // Send the message, by copying it to the SMS Service. + if (aMove) + { + iOperation = MsvEntry().MoveL(*iSelection, iSmsTest.iSmsServiceId, iStatus); + } + else + { + iOperation = MsvEntry().CopyL(*iSelection, iSmsTest.iSmsServiceId, iStatus); + } + + SetActive(); + } + +EXPORT_C void CSmsTestBase::DoTestSchedulingL(const TDesC& aScript, TBool aMove, TTimeIntervalSeconds aFromNow) + { + iSmsTest.Test().Next(_L("Scheduling")); + iSmsTest.DeleteSmsMessagesL(KMsvGlobalOutBoxIndexEntryId); + iSelection->Reset(); + + TTime now; + now.HomeTime(); + now += aFromNow; + + iSmsTest.Printf(_L("Creating msgs in outbox from script %S\n"), &aScript); + TBool read = EFalse; + TRAPD(err, read = iSmsTest.ReadScriptL(aScript, KMsvGlobalOutBoxIndexEntryId, *iSelection, now)); + + iSmsTest.Test()(!err && read); + + iSmsTest.Printf(_L("Scheduled %d messages...\n"), iSelection->Count()); + iSmsTest.DisplayMessagesL(*iSelection); + MsvEntry().SetEntryL(KMsvGlobalOutBoxIndexEntryId); + + delete iOperation; + + TInt cmd = aMove ? ESmsMtmCommandScheduleMove : ESmsMtmCommandScheduleCopy; + + iOperation = Session().TransferCommandL(*iSelection, cmd, TPtrC8(), iStatus); + SetActive(); + } + +EXPORT_C void CSmsTestBase::StartL() + { + TRAP(iError, iSmsTest.RunAuto() ? RunAutoL() : ShowMenuL()); + + if (iError) + { + if (iNextTest) + { + iSmsTest.TestFinish(iNextTest, iError); + } + + iSmsTest.TestHarnessFailed(iError); + } + else + { + iSmsTest.TestHarnessCompleted(); + iComplete = ETrue; + } + }