diff -r 000000000000 -r 2f259fa3e83a classicui_pub/aiw_service_handler_api/tsrc/src/testsdkaiwservicehandlerblocks.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/classicui_pub/aiw_service_handler_api/tsrc/src/testsdkaiwservicehandlerblocks.cpp Tue Feb 02 01:00:49 2010 +0200 @@ -0,0 +1,519 @@ +/* +* Copyright (c) 2002 - 2007 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: For testing aiw_service_handler_api +* +*/ + + + + + +// [INCLUDE FILES] +#include +#include +#include +#include + +#include "testsdkaiwservicehandler.h" + +// FORWARD DECLARATIONS +class CTestMenuObserver : public CBase, public MEikMenuObserver + { +public: + // from MEikMenuObserver, only for test, no use + void ProcessCommandL(TInt /*aCommandId*/){} + // from MEikMenuObserver, only for test, no use + void SetEmphasis(CCoeControl */*aMenuControl*/, TBool /*aEmphasis*/){} + }; + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::Delete +// Delete here all resources allocated and opened from test methods. +// Called from destructor. +// ----------------------------------------------------------------------------- +// +void CTestSDKAiwServiceHandler::Delete() + { + + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::RunMethodL +// Run specified method. Contains also table of test mothods and their names. +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::RunMethodL( + CStifItemParser& aItem ) + { + + static TStifFunctionInfo const KFunctions[] = + { + // First string is the function name used in TestScripter script file. + // Second is the actual implementation member function. + ENTRY( "TestAiwServiceHandlerNewFuncL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerNewFuncL ), + ENTRY( "TestAiwServiceHandlerDeconstructorL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerDeconstructorL ), + ENTRY( "TestAiwServiceHandlerResetL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerResetL ), + ENTRY( "TestAiwServiceHandlerNbrOfProvidersL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerNbrOfProvidersL ), + ENTRY( "TestAiwServiceHandlerAttachAndDetachL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerAttachAndDetachL ), + ENTRY( "TestAiwServiceHandlerGetInterestL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerGetInterestL ), + ENTRY( "TestAiwServiceHandlerGetCriteriaL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerGetCriteriaL ), + ENTRY( "TestAiwServiceHandlerInAndOutParamListL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerInAndOutParamListL ), + ENTRY( "TestAiwServiceHandlerInitializeMenuPaneL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerInitializeMenuPaneL ), + ENTRY( "TestAiwServiceHandlerServiceCmdByMenuCmdL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceCmdByMenuCmdL ), + ENTRY( "TestAiwServiceHandlerServiceExecuteMenuCmdL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceExecuteMenuCmdL ), + ENTRY( "TestAiwServiceHandlerServiceAttachMenuL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceAttachMenuL ), + ENTRY( "TestAiwServiceHandlerServiceDetachMenuL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceDetachMenuL ), + ENTRY( "TestAiwServiceHandlerServiceIsSubMenuEmptyL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceIsSubMenuEmptyL ), + ENTRY( "TestAiwServiceHandlerServiceIsAiwMenuL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceIsAiwMenuL ), + ENTRY( "TestAiwServiceHandlerServiceHandleSubmenuL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceHandleSubmenuL ), + ENTRY( "TestAiwServiceHandlerServiceReportMenuLaunchL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceReportMenuLaunch ), + ENTRY( "TestAiwServiceHandlerServiceExecuteServiceCmdL", CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceExecuteServiceCmdL), + + // [test cases entries] + + }; + + const TInt count = sizeof( KFunctions ) / sizeof( TStifFunctionInfo ); + + return RunInternalL( KFunctions, count, aItem ); + + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerNewFuncL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerNewFuncL( CStifItemParser& aItem ) + { + TInt num; + TInt err = aItem.GetNextInt(num); + if(err != KErrNone) + { + return err; + } + switch(num) + { + case ECaseOne: + { + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewL(); + CleanupStack::PushL(servicehandler); + STIF_ASSERT_NOT_NULL(servicehandler); + CleanupStack::PopAndDestroy(servicehandler); + break; + } + case ECaseTwo: + { + CAiwServiceHandler* servicehandlerforlc = CAiwServiceHandler::NewLC(); + STIF_ASSERT_NOT_NULL(servicehandlerforlc); + CleanupStack::PopAndDestroy(servicehandlerforlc); + break; + } + default: + return KErrNotSupported; + } + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerDeconstructorL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerDeconstructorL( CStifItemParser& /*aItem*/ ) + { + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewL(); + delete servicehandler; + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerResetL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerResetL( CStifItemParser& /*aItem*/ ) + { + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + servicehandler->Reset(); + CleanupStack::PopAndDestroy(servicehandler); + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerNbrOfProvidersL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerNbrOfProvidersL( CStifItemParser& /*aItem*/ ) + { + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + CAiwCriteriaItem* item = CAiwCriteriaItem::NewLC(); + TInt num = servicehandler->NbrOfProviders(item); + STIF_ASSERT_EQUALS(0, num); + CleanupStack::PopAndDestroy(2); + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerAttachAndDetachL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerAttachAndDetachL( CStifItemParser& aItem ) + { + TInt num = 0; + TInt err = aItem.GetNextInt( num ); + if ( err != KErrNone ) + { + return err; + } + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + const CAiwCriteriaItem* item = NULL; + switch ( num ) + { + case ECaseOne: + { + servicehandler->AttachL( R_AIW_INTEREST_ONE ); + item = servicehandler->GetCriteria( 0x8001 ); + STIF_ASSERT_NOT_NULL( item ); + item = NULL; + servicehandler->DetachL( R_AIW_INTEREST_TWO ); + item = servicehandler->GetCriteria( 0x8003 ); + STIF_ASSERT_NULL( item ); + CleanupStack::PopAndDestroy( servicehandler ); + break; + } + case ECaseTwo: + { + RCriteriaArray interest; + CleanupClosePushL( interest ); + _LIT8( KContentTypeLandmark, "application/x-landmark" ); + CAiwCriteriaItem* criteria = CAiwCriteriaItem::NewLC( KAiwCmdMnShowMap, KAiwCmdMnShowMap, KContentTypeLandmark ); + TUid base; + base.iUid = KAiwClassBase; + criteria->SetServiceClass( base ); + User::LeaveIfError( interest.Append( criteria ) ); + servicehandler->AttachL( interest ); + + RCriteriaArray temp; + CleanupClosePushL( temp ); + servicehandler->GetInterest( temp ); + STIF_ASSERT_EQUALS( 1, temp.Count() ); + + servicehandler->DetachL( temp ); + CleanupStack::Pop( &temp ); + CleanupStack::PopAndDestroy( 3 ); // criteria, interest, servicehandler + break; + } + default: + CleanupStack::PopAndDestroy( servicehandler ); + return KErrNotSupported; + } + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerGetInterestL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerGetInterestL( CStifItemParser& /*aItem*/ ) + { + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + RCriteriaArray interest; + CleanupClosePushL( interest ); + _LIT8( KContentTypeLandmark, "application/x-landmark" ); + CAiwCriteriaItem* criteria = CAiwCriteriaItem::NewLC( KAiwCmdMnShowMap, KAiwCmdMnShowMap, KContentTypeLandmark ); + TUid base; + base.iUid = KAiwClassBase; + criteria->SetServiceClass( base ); + User::LeaveIfError( interest.Append( criteria ) ); + + servicehandler->AttachL( interest ); + RCriteriaArray temp; + CleanupClosePushL( temp ); + temp.ResetAndDestroy(); + servicehandler->GetInterest( temp ); + STIF_ASSERT_EQUALS( 1, temp.Count() ); + + CleanupStack::PopAndDestroy( 4 ); // criteria, interest, servicehandler + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerGetCriteriaL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerGetCriteriaL( CStifItemParser& /*aItem*/ ) + { + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + servicehandler->AttachL( R_AIW_INTEREST_TWO ); + const CAiwCriteriaItem* item = NULL; + item = servicehandler->GetCriteria( 0x8003 ); + + STIF_ASSERT_NOT_NULL(item); + + CleanupStack::PopAndDestroy( servicehandler ); + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerInAndOutParamListL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerInAndOutParamListL( CStifItemParser& /*aItem*/ ) + { + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + CAiwGenericParamList* inlist = NULL; + CAiwGenericParamList* outlist = NULL; + inlist = &(servicehandler->InParamListL()); + outlist = &(servicehandler->OutParamListL()); + STIF_ASSERT_NOT_NULL( inlist ); + STIF_ASSERT_NOT_NULL( outlist ); + STIF_ASSERT_EQUALS( 0, inlist->Count() ); + STIF_ASSERT_EQUALS( 0, outlist->Count() ); + + CleanupStack::PopAndDestroy( servicehandler ); + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerInitializeMenuPaneL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerInitializeMenuPaneL( CStifItemParser& aItem ) + { + TInt num = 0; + TInt err = aItem.GetNextInt( num ); + if ( err != KErrNone ) + { + return err; + } + CTestMenuObserver* ob = new ( ELeave ) CTestMenuObserver; + CleanupStack::PushL( ob ); + + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + CEikMenuPane* menupane = new ( ELeave ) CEikMenuPane( ob ); + CleanupStack::PushL( menupane ); + TInt baseid = 0; + switch ( num ) + { + case ECaseOne: + { + servicehandler->InitializeMenuPaneL( *menupane, R_AIW_MENU, + baseid, servicehandler->InParamListL() ); + break; + } + case ECaseTwo: + { + servicehandler->InitializeMenuPaneL( *menupane, R_AIW_MENU, + baseid, servicehandler->InParamListL(), ETrue ); + break; + } + default: + CleanupStack::PopAndDestroy( menupane ); + CleanupStack::PopAndDestroy(servicehandler); + CleanupStack::PopAndDestroy( ob ); + return KErrNotSupported; + } + CleanupStack::Pop( menupane ); + CleanupStack::PopAndDestroy( servicehandler ); + CleanupStack::PopAndDestroy( ob ); + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceCmdByMenuCmdL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceCmdByMenuCmdL( CStifItemParser& /*aItem*/ ) + { + TInt baseid = 0; + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + servicehandler->AttachMenuL( R_AIW_MENU, R_AIW_INTEREST_TWO ); + servicehandler->ExecuteMenuCmdL( baseid, servicehandler->InParamListL(), + servicehandler->OutParamListL() ); + TInt num = servicehandler->ServiceCmdByMenuCmd( R_AIW_MENU ); + STIF_ASSERT_EQUALS( 0, num ); + CleanupStack::PopAndDestroy( servicehandler ); + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceExecuteMenuCmdL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceExecuteMenuCmdL( CStifItemParser& /*aItem*/ ) + { + CTestMenuObserver* ob = new ( ELeave ) CTestMenuObserver; + CleanupStack::PushL( ob ); + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + TInt baseid = 0; + CEikMenuPane* menupane = new ( ELeave ) CEikMenuPane( ob ); + CleanupStack::PushL( menupane ); + servicehandler->InitializeMenuPaneL( *menupane, R_AIW_MENU, + baseid, servicehandler->InParamListL(), ETrue ); + servicehandler->ExecuteMenuCmdL( baseid, servicehandler->InParamListL(), + servicehandler->OutParamListL() ); + CleanupStack::Pop( menupane ); + CleanupStack::PopAndDestroy( servicehandler ); + CleanupStack::PopAndDestroy( ob ); + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceAttachMenuL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceAttachMenuL( CStifItemParser& aItem ) + { + TInt num = 0; + TInt err = aItem.GetNextInt( num ); + if ( err != KErrNone ) + return err; + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + switch ( num ) + { + case ECaseOne: + { + servicehandler->AttachMenuL( R_AIW_MENU, R_AIW_INTEREST_TWO ); + CleanupStack::PopAndDestroy( servicehandler ); + break; + } + case ECaseTwo: + { + TResourceReader reader; + CCoeEnv::Static()->CreateResourceReaderLC( reader, R_AIW_INTEREST_TWO ); + servicehandler->AttachMenuL( R_AIW_MENU, reader ); + CleanupStack::PopAndDestroy( 2 ); + break; + } + case ECaseThree: + { + RCriteriaArray interest; + CleanupClosePushL( interest ); + _LIT8( KContentTypeLandmark, "application/x-landmark" ); + CAiwCriteriaItem* criteria = CAiwCriteriaItem::NewLC( KAiwCmdMnShowMap, KAiwCmdMnShowMap, KContentTypeLandmark ); + TUid base; + base.iUid = KAiwClassBase; + criteria->SetServiceClass( base ); + User::LeaveIfError( interest.Append( criteria ) ); + servicehandler->AttachMenuL( R_AIW_MENU, interest ); + CleanupStack::PopAndDestroy( 3 );// interest, criteria, servicehandler + break; + } + default: + CleanupStack::PopAndDestroy( servicehandler ); + return KErrNotSupported; + } + + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceDetachMenuL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceDetachMenuL( CStifItemParser& /*aItem*/ ) + { + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + servicehandler->AttachMenuL( R_AIW_MENU, R_AIW_INTEREST_TWO ); + servicehandler->DetachMenu( R_AIW_MENU, R_AIW_INTEREST_TWO ); + CleanupStack::PopAndDestroy( servicehandler ); + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceIsSubMenuEmptyL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceIsSubMenuEmptyL( CStifItemParser& /*aItem*/ ) + { + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + servicehandler->AttachMenuL( R_AIW_MENU, R_AIW_INTEREST_TWO ); + TBool result = servicehandler->IsSubMenuEmpty( 0x8901 ); + STIF_ASSERT_FALSE( result ); + CleanupStack::PopAndDestroy( servicehandler ); + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceIsAiwMenuL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceIsAiwMenuL( CStifItemParser& /*aItem*/ ) + { + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + servicehandler->AttachMenuL( R_AIW_MENU, R_AIW_INTEREST_TWO ); + TBool result = servicehandler->IsAiwMenu( R_AIW_MENU ); + STIF_ASSERT_FALSE( result ); + CleanupStack::PopAndDestroy( servicehandler ); + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceHandleSubmenuL +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceHandleSubmenuL( CStifItemParser& /*aItem*/ ) + { + TInt baseid = 0; + CTestMenuObserver* ob = new ( ELeave ) CTestMenuObserver; + CleanupStack::PushL( ob ); + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + CEikMenuPane* menupane = new ( ELeave ) CEikMenuPane( ob ); + CleanupStack::PushL( menupane ); + servicehandler->InitializeMenuPaneL( *menupane, R_AIW_MENU, + baseid, servicehandler->InParamListL(), ETrue ); + CleanupStack::Pop( menupane ); + TBool result = servicehandler->HandleSubmenuL( *menupane ); + STIF_ASSERT_FALSE( result ); + CleanupStack::PopAndDestroy( servicehandler ); + CleanupStack::PopAndDestroy( ob ); + return KErrNone; + } +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceReportMenuLaunch +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceReportMenuLaunch( CStifItemParser& /*aItem*/ ) + { + CAiwServiceHandler::ReportMenuLaunch(); + return KErrNone; + } + +// ----------------------------------------------------------------------------- +// CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceReportMenuLaunch +// ----------------------------------------------------------------------------- +// +TInt CTestSDKAiwServiceHandler::TestAiwServiceHandlerServiceExecuteServiceCmdL( CStifItemParser& /*aItem*/ ) + { + CAiwServiceHandler* servicehandler = CAiwServiceHandler::NewLC(); + servicehandler->AttachMenuL( R_AIW_MENU, R_AIW_INTEREST_TWO ); + servicehandler->ExecuteServiceCmdL( KAiwCmdMnShowMap, + servicehandler->InParamListL(), + servicehandler->OutParamListL(), + 0, + NULL ); + CleanupStack::PopAndDestroy( servicehandler ); + return KErrNone; + } + + + + + + +// [End of File]