diff -r 238255e8b033 -r 84d9eb65b26f messagingappbase/smsmtm/test/src/T_SmcmFail.cpp --- a/messagingappbase/smsmtm/test/src/T_SmcmFail.cpp Fri Apr 16 14:56:15 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,678 +0,0 @@ -// Copyright (c) 2000-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 "T_SmcmFail.h" -#include - -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); - } - -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; - - CSmcmFailTest* SmcmTest = CSmcmFailTest::NewL(*smsTest, KNullDesC, nextTest); - CleanupStack::PushL(SmcmTest); - - SmcmTest->StartL(); - - CleanupStack::PopAndDestroy(3); //SmcmTest. scheduler - } - -CSmcmFailTest::CSmcmFailTest(CSmsTestUtils& aSmsTest, const TDesC& aScriptFile, TInt& aCurrentTest) -: CSmsTestBase(aSmsTest, aScriptFile, aCurrentTest) - { - } - -void CSmcmFailTest::RunAutoL() - { - iSmsTest.TestStart(++iNextTest, _L("CSmsSettings Fail")); - TestSettingsFailL(); - iSmsTest.TestFinish(iNextTest); - - iSmsTest.TestStart(++iNextTest, _L("CSmsNumber Fail")); - TestNumberFailL(); - iSmsTest.TestFinish(iNextTest); - - iSmsTest.TestStart(++iNextTest, _L("CSmsHeader Fail")); - TestHeaderFailL(); - iSmsTest.TestFinish(iNextTest); - - iSmsTest.TestStart(++iNextTest, _L("Load Fail")); - TestLoadFailL(); //Cannot be done 'cause of defect in message server - iSmsTest.TestFinish(iNextTest); - - iSmsTest.TestStart(++iNextTest, _L("Save Fail")); - TestSaveFailL(); //Cannot be done 'cause of defect in message server - iSmsTest.TestFinish(iNextTest); - - iSmsTest.TestStart(++iNextTest, _L("Addressee Fail")); - TestAddresseeFailL(); //Cannot be done 'cause of defect in message server - iSmsTest.TestFinish(iNextTest); - - iSmsTest.TestStart(++iNextTest, _L("Bio Fail")); - this->TestBifFailL(); - iSmsTest.TestFinish(iNextTest); - - - iSmsTest.TestStart(++iNextTest, _L("Reply Fail")); - TestReplyFailL(); - iSmsTest.TestFinish(iNextTest); - - iSmsTest.TestStart(++iNextTest, _L("Forward Fail")); - TestForwardFailL(); //Cannot be done 'cause of defect in message server - iSmsTest.TestFinish(iNextTest); - } - -CSmcmFailTest::~CSmcmFailTest() - { - delete iRichText; - delete iParaLayer; - delete iCharLayer; - } - -void CSmcmFailTest::ConstructL() - { - iSmsTest.SetLogToFile(); - iSmsTest.InstantiateClientMtmsL(); - - iSelection = new (ELeave) CMsvEntrySelection(); - iTimer = CTestTimer::NewL(); - - iParaLayer =CParaFormatLayer::NewL(); - iCharLayer = CCharFormatLayer::NewL(); - iRichText = CRichText::NewL(iParaLayer, iCharLayer, CEditableText::EFlatStorage,256); - - CActiveScheduler::Add(this); - } - -CSmcmFailTest* CSmcmFailTest::NewL(CSmsTestUtils& aSmsTest, const TDesC& aScriptFile, TInt& aCurrentTest) - { - CSmcmFailTest* self = new (ELeave) CSmcmFailTest(aSmsTest, aScriptFile, aCurrentTest); - CleanupStack::PushL(self); - - self->ConstructL(); - - CleanupStack::Pop(); - return self; - } - -void CSmcmFailTest::ShowMenuL() - { - iSmsTest.ResetMenu(); - - iSmsTest.AppendToMenuL(_L("Start")); - - TInt result = iSmsTest.DisplayMenu(_L("SMS Client MTM Test")); - - if (result <= 0) - return; - - switch (result) - { - case 1: - RunAutoL(); - break; - default: - User::Leave(KErrArgument); - break; - } - - if (!iSmsTest.RunAuto()) - { - iSmsTest.Printf(_L("Press any key to continue...\n")); - test.Getch(); - } - - ShowMenuL(); - } - -void CSmcmFailTest::TestSettingsFailL() - { - CSmsSettings* settings = NULL; - - TInt error; - TInt failCount = 0; - - //Failure Test CSmsSettings::NewL - do - { - __UHEAP_FAILNEXT(failCount++); - - TRAP(error, settings = CSmsSettings::NewL()); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - } - - } - while (error); - - iSmsTest.Printf(_L("CSmsSettings::NewL Fail Count %d\n"), failCount); - CleanupStack::PushL(settings); - - failCount = 0; - - //Failure Test CSmsSettings::AddServiceCenterL() - do - { - __UHEAP_FAILNEXT(failCount++); - - TInt scCount = settings->ServiceCenterCount(); - TRAP(error, settings->AddServiceCenterL(_L("Anthony"), _L("+44"))); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - test(scCount == settings->ServiceCenterCount()); - } - else - { - test(scCount == settings->ServiceCenterCount() - 1); - } - } - while (error); - - iSmsTest.Printf(_L("CSmsSettings::AddSCAddress Fail Count %d\n"), failCount); - CSmsSettings* settings2 = CSmsSettings::NewL(); - CleanupStack::PushL(settings2); - failCount = 0; - - //Failure Test CSmsSettings::CopyL() - do - { - __UHEAP_FAILNEXT(failCount++); - - TRAP(error, settings2->CopyL(*settings)); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - } - } - while (error); - - iSmsTest.Printf(_L("CSmsSettings::CopyL Fail Count %d\n"), failCount); - - CleanupStack::PopAndDestroy(); //settings2 - CleanupStack::PopAndDestroy(); //settings - } - -void CSmcmFailTest::TestHeaderFailL() - { - CSmsHeader* header = NULL; - - TInt error; - TInt failCount = 0; - - //Failure Test CSmsHeader::NewL, Deliver - do - { - __UHEAP_FAILNEXT(failCount++); - - TRAP(error, header = CSmsHeader::NewL(CSmsPDU::ESmsDeliver,*iRichText)); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - } - - } - while (error); - - iSmsTest.Printf(_L("CSmsHeader::NewL (Deliver) Fail Count %d\n"), failCount); - delete header; - - failCount = 0; - - //Failure Test CSmsHeader::NewL, StatusReport - do - { - __UHEAP_FAILNEXT(failCount++); - - TRAP(error, header = CSmsHeader::NewL(CSmsPDU::ESmsStatusReport,*iRichText)); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - } - } - while (error); - - iSmsTest.Printf(_L("CSmsHeader::NewL (StatusReport) Fail Count %d\n"), failCount); - delete header; - - failCount = 0; - - //Failure Test CSmsHeader::NewL, Submit - do - { - __UHEAP_FAILNEXT(failCount++); - - TRAP(error, header = CSmsHeader::NewL(CSmsPDU::ESmsSubmit,*iRichText)); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - } - - } - while (error); - - iSmsTest.Printf(_L("CSmsHeader::NewL (Submit) Fail Count %d\n"), failCount); - delete header; - } - -void CSmcmFailTest::TestNumberFailL() - { - CSmsNumber* number = NULL; - - TInt error; - TInt failCount = 0; - - //Failure Test CSmsNumber::NewL - do - { - __UHEAP_FAILNEXT(failCount++); - - TRAP(error, number = CSmsNumber::NewL()); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - } - - } - while (error); - - iSmsTest.Printf(_L("CSmsNumber::NewL Fail Count %d\n"), failCount); - CleanupStack::PushL(number); - CSmsNumber* number2 = NULL; - - failCount = 0; - - //Failure Test CSmsNumber::NewL,2 - do - { - __UHEAP_FAILNEXT(failCount++); - - TRAP(error, number2 = CSmsNumber::NewL(*number)); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - } - - } - while (error); - - iSmsTest.Printf(_L("CSmsNumber::NewL (Number) Fail Count %d\n"), failCount); - CleanupStack::PushL(number2); - - number->SetAddressL(_L("44")); - number->SetNameL(_L("AA")); - - failCount = 0; - - //Failure Test CSmsNumber::CopyL - do - { - __UHEAP_FAILNEXT(failCount++); - - TRAP(error, number2->CopyL(*number)); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - } - else - { - test(number->Name() == number2->Name()); - test(number->Address() == number2->Address()); - } - } - while (error); - - iSmsTest.Printf(_L("CSmsNumber::CopyL Fail Count %d\n"), failCount); - CleanupStack::PopAndDestroy(); //number - CleanupStack::PopAndDestroy(); //number2 - } - - -void CSmcmFailTest::TestReplyFailL() - { - iSmsTest.Test().Next(_L("CSmsClientMtm Reply Fail")); - - CMsvOperationWait* wait = CMsvOperationWait::NewLC(); - CMsvOperation* op = NULL; - TInt error; - TMsvPartList part=0; - TInt failCount = 0; - - do - { - CleanFolderL(KMsvDraftEntryId); - CleanFolderL(KMsvGlobalOutBoxIndexEntryId); - CleanFolderL(KMsvGlobalInBoxIndexEntryId); - - TMsvId id = iSmsTest.CreateDummyMessageToReceiveL(); - Session().CleanupEntryPushL(id); - Client().SwitchCurrentEntryL(id); // Lets go to the received area - Client().LoadMessageL(); - - __UHEAP_FAILNEXT(failCount++); - - TRAP(error, op = Client().ReplyL(KMsvDraftEntryId, part, wait->iStatus)); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - - if (failCount % 100 == 0) - iSmsTest.Printf(_L("CSmsClientMtm::ReplyL still failing, count = %d\n"), failCount); - } - - CleanupStack::PopAndDestroy(); //id - } - while (error); - - iSmsTest.Printf(_L("CSmsClientMtm::ReplyL Fail Count %d\n"), failCount); - CleanupStack::PushL(op); - wait->Start(); - CActiveScheduler::Start(); - - CleanupStack::PopAndDestroy(2); //op, wait - } - -void CSmcmFailTest::CleanFolderL(TMsvId aFolder) - { - CMsvOperationWait* wait = CMsvOperationWait::NewLC(); - CMsvOperation* op = NULL; - - iSmsTest.SetEntryL(aFolder); - CMsvEntrySelection* sel = MsvEntry().ChildrenL(); - - CleanupStack::PushL(sel); - if (sel->Count()) - { - iSmsTest.Printf(_L("Deleting %d existing messages\n"), sel->Count()); - op = MsvEntry().DeleteL(*sel, wait->iStatus); - CleanupStack::PushL(op); - wait->Start(); - CActiveScheduler::Start(); - CleanupStack::PopAndDestroy(); //op - } - CleanupStack::PopAndDestroy(2); //sel, wait - } - -void CSmcmFailTest::TestForwardFailL() - { - iSmsTest.Test().Next(_L("CSmsClientMtm Forward Fail")); - - CleanFolderL(KMsvDraftEntryId); - CleanFolderL(KMsvGlobalOutBoxIndexEntryId); - CleanFolderL(KMsvGlobalInBoxIndexEntryId); - - TMsvId id = iSmsTest.CreateDummyMessageToReceiveL(); - Client().SwitchCurrentEntryL(id); - Client().LoadMessageL(); - - TMsvPartList part=0; - - TInt error; - TInt failCount = 0; - CMsvOperationWait* wait = CMsvOperationWait::NewLC(); - CMsvOperation* op = NULL; - - do - { - __UHEAP_FAILNEXT(failCount++); - - TRAP(error, op = Client().ForwardL(KMsvDraftEntryId, part, wait->iStatus)); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - - if (failCount % 100 == 0) - iSmsTest.Printf(_L("CSmsClientMtm::ForwardL still failing, count = %d\n"), failCount); - } - - } - while (error); - - CleanupStack::PushL(op); - iSmsTest.Printf(_L("CSmsClientMtm::ForwardL Fail Count %d\n"), failCount); - wait->Start(); - CActiveScheduler::Start(); - - CleanupStack::PopAndDestroy(2); //op, wait - } - -void CSmcmFailTest::TestLoadFailL() - { - iSmsTest.Test().Next(_L("CSmsClientMtm Load Fail")); - - CleanFolderL(KMsvDraftEntryId); - CleanFolderL(KMsvGlobalOutBoxIndexEntryId); - CleanFolderL(KMsvGlobalInBoxIndexEntryId); - - TMsvId id = iSmsTest.CreateDummyMessageToSendL(); - Client().SwitchCurrentEntryL(id); - - TInt error; - TInt failCount = 0; - - do - { - __UHEAP_FAILNEXT(failCount++); - - TRAP(error, Client().LoadMessageL()); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - } - } - while (error); - - iSmsTest.Printf(_L("CSmsClientMtm::LoadMessageL Fail Count %d\n"), failCount); - } - -void CSmcmFailTest::TestSaveFailL() - { - iSmsTest.Test().Next(_L("CSmsClientMtm Save Fail")); - - CleanFolderL(KMsvDraftEntryId); - CleanFolderL(KMsvGlobalOutBoxIndexEntryId); - CleanFolderL(KMsvGlobalInBoxIndexEntryId); - - TMsvId id = iSmsTest.CreateDummyMessageToSendL(); - Client().SwitchCurrentEntryL(id); - Client().LoadMessageL(); - - TInt error; - TInt failCount = 0; - - do - { - __UHEAP_FAILNEXT(failCount++); - - TRAP(error, Client().SaveMessageL()); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - } - } - while (error); - - iSmsTest.Printf(_L("CSmsClientMtm::SaveMessageL Fail Count %d\n"), failCount); - } - -void CSmcmFailTest::TestAddresseeFailL() - { - iSmsTest.Test().Next(_L("CSmsClientMtm Save Fail")); - - CleanFolderL(KMsvDraftEntryId); - CleanFolderL(KMsvGlobalOutBoxIndexEntryId); - CleanFolderL(KMsvGlobalInBoxIndexEntryId); - - TMsvId id = iSmsTest.CreateDummyMessageToSendL(); - Client().SwitchCurrentEntryL(id); - Client().LoadMessageL(); - - TInt error; - TInt failCount = 0; - - do - { - __UHEAP_FAILNEXT(failCount++); - - TInt count = Client().AddresseeList().Count(); - TRAP(error, Client().AddAddresseeL(_L("44"))); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - test(count == Client().AddresseeList().Count()); - } - else - { - test(count == Client().AddresseeList().Count() - 1); - } - } - while (error); - - iSmsTest.Printf(_L("CSmsClientMtm Addressee1 Fail Count %d\n"), failCount); - - failCount = 0; - - do - { - __UHEAP_FAILNEXT(failCount++); - - TInt count = Client().AddresseeList().Count(); - TRAP(error, Client().AddAddresseeL(_L("44"), _L("AA"))); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory); - test(count == Client().AddresseeList().Count()); - } - else - { - test(count == Client().AddresseeList().Count() - 1); - } - } - while (error); - - iSmsTest.Printf(_L("CSmsClientMtm Addressee2 Fail Count %d\n"), failCount); - } - -void CSmcmFailTest::TestBifFailL() - { - iSmsTest.Test().Next(_L("CSmsClientMtm Bio Fail")); - - CleanFolderL(KMsvDraftEntryId); - CleanFolderL(KMsvGlobalOutBoxIndexEntryId); - CleanFolderL(KMsvGlobalInBoxIndexEntryId); - - TMsvId id = iSmsTest.CreateDummyMessageToSendL(); - Client().SwitchCurrentEntryL(id); - Client().LoadMessageL(); - - TInt error; - TInt failCount = 0; - - CBIODatabase* bdb = CBIODatabase::NewLC(Session().FileSession()); - - if (!bdb->BIOCount()) - { - CleanupStack::PopAndDestroy(); //bdb - iSmsTest.Printf(_L("No Bio messages in Bio DB\n")); - return; - } - - // Get the whole bif file class - const CBioInfoFileReader& reader = bdb->BifReader(0); - - do - { - __UHEAP_FAILNEXT(failCount++); - - TRAP(error, Client().BioTypeChangedL(reader.MessageTypeUid())); - - __UHEAP_RESET; - - if (error) - { - test(error == KErrNoMemory || error == KErrNotFound); - } - } - while (error && error != KErrNotFound); - - iSmsTest.Printf(_L("CSmsClientMtm::BioTypeChangedL Fail Count %d\n"), failCount); - CleanupStack::PopAndDestroy(); //bdb - }