--- 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 <biodb.h>
-
-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
- }