diff -r 000000000000 -r 1f04cf54edd8 symhelp/helpmodel/tsrc/TMODEL.CPP --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symhelp/helpmodel/tsrc/TMODEL.CPP Tue Jan 26 15:15:23 2010 +0200 @@ -0,0 +1,132 @@ +// Copyright (c) 2003-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: +// Test Help Model module +// +// + +// System includes +#include +#include + +// User includes +#include "hlpmodel.h" + +// Globals +static RFs TheFs; +static RTest TheTest(_L("TMODEL - Test Help Model API")); +static CTrapCleanup* TheTrapCleanup; +static CActiveScheduler* TheScheduler; + +// Constants +const TInt KTestCleanupStack=0x20; + + +/** +@SYMTestCaseID PIM-TMODEL-0001 +*/ + +static void Test1L() + { + __UHEAP_MARK; + TheTest.Next(_L("@SYMTestCaseID PIM-TMODEL-0001 Test 1: Test memory leaks in help model")); + CHlpModel::NewLC(TheFs, NULL); + CleanupStack::PopAndDestroy(); // model + __UHEAP_MARKEND; + + __UHEAP_MARK; + CHlpModel* model = CHlpModel::NewLC(TheFs, NULL); + model->OpenL(); + CleanupStack::PopAndDestroy(); // model + __UHEAP_MARKEND; + } + +/** +@SYMTestCaseID PIM-TMODEL-0002 +*/ + +static void Test2L() + { + __UHEAP_MARK; + TheTest.Next(_L("@SYMTestCaseID PIM-TMODEL-0002 Test 2: Test category listing")); + CHlpModel* model = CHlpModel::NewLC(TheFs, NULL); + model->OpenL(); + + TBuf entry; + CDesCArray* catList = new(ELeave) CDesCArrayFlat(2); + CleanupStack::PushL(catList); + + model->CategoryListL(catList); + for (TInt i=0; iCount(); i++) + { + entry.Append(catList->MdcaPoint(i)); + TheTest.Printf(_L("\n%S\n"), &entry); + } + //TheTest.Console()->Getch(); + model->CloseL(); + CleanupStack::PopAndDestroy(2); // catList, model + __UHEAP_MARKEND; + } + +static void setupFileServerAndSchedulerL() +// +// Initialise the cleanup stack. +// + { + TheTest(TheFs.Connect() == KErrNone); + TheScheduler = new (ELeave) CActiveScheduler; + CActiveScheduler::Install(TheScheduler); + } + + +static void setupCleanup() +// +// Initialise the cleanup stack. +// + { + TheTrapCleanup = CTrapCleanup::New(); + TheTest(TheTrapCleanup!=NULL); + TRAPD(r,\ + {\ + for (TInt i=KTestCleanupStack;i>0;i--)\ + CleanupStack::PushL((TAny*)0);\ + CleanupStack::Pop(KTestCleanupStack);\ + }); + TheTest(r==KErrNone); + } + +GLDEF_C TInt E32Main() +// +// Test Help Model API +// + { + __UHEAP_MARK; + + TheTest.Title(); + setupCleanup(); + + TRAPD(r, + setupFileServerAndSchedulerL(); + Test1L(); + Test2L(); + ) + TheTest(r==KErrNone); + + delete TheScheduler; + delete TheTrapCleanup; + TheFs.Close(); + TheTest.Close(); + + __UHEAP_MARKEND; + return KErrNone; + }