// 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 <e32test.h>#include <f32file.h>// User includes#include "hlpmodel.h"// Globalsstatic RFs TheFs;static RTest TheTest(_L("TMODEL - Test Help Model API"));static CTrapCleanup* TheTrapCleanup;static CActiveScheduler* TheScheduler;// Constantsconst 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<KHlpMaxTextColLength> entry; CDesCArray* catList = new(ELeave) CDesCArrayFlat(2); CleanupStack::PushL(catList); model->CategoryListL(catList); for (TInt i=0; i<catList->Count(); 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; }