diff -r 000000000000 -r 96612d01cf9f videofeeds/server/tsrc/VCXScheduledReminderTest/src/VCXScheduledReminderTestBlocks.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videofeeds/server/tsrc/VCXScheduledReminderTest/src/VCXScheduledReminderTestBlocks.cpp Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,1169 @@ +/* +* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: ?Description* +*/ + + + + +// INCLUDE FILES +#include +#include +#include + +#include "VCXScheduledReminderTest.h" + +#include +#include "VCXTestLog.h" +#include "CIptvUtil.h" +#include +#include "CIptvTestUtilities.h" + +#include +#include +//#include +#include "iptvvodscheduleddownloaddefinitions.h" +#include "IptvEngineUids.h" + +#include "CIptvTestTimer.h" + +// EXTERNAL DATA STRUCTURES +//extern ?external_data; + +// EXTERNAL FUNCTION PROTOTYPES +//extern ?external_function( ?arg_type,?arg_type ); + +// CONSTANTS +const TInt KTestPanic = -69; +const TInt KTmpBufLen = 256; +const TInt32 KInvalidPluginUid = -1; + +// MACROS +//#define ?macro ?macro_def + +// LOCAL CONSTANTS AND MACROS +//const ?type ?constant_var = ?constant; +//#define ?macro_name ?macro_def + +// MODULE DATA STRUCTURES +//enum ?declaration +//typedef ?declaration + +// LOCAL FUNCTION PROTOTYPES +//?type ?function_name( ?arg_type, ?arg_type ); + +// FORWARD DECLARATIONS +//class ?FORWARD_CLASSNAME; + +// ============================= LOCAL FUNCTIONS =============================== +void PrintTime(TTime time) + { + TDateTime date(time.DateTime()); + _LIT( KTimeFormat, "Time = %d.%d.%d %d:%d" ); + TBuf<80> buffer; + buffer.Format( KTimeFormat, date.Day() + 1, date.Month() + 1, date.Year(), date.Hour(), date.Minute() ); + VCXLOGLO2( "%S", &buffer ); + } + + +// ============================ MEMBER FUNCTIONS =============================== + +// ----------------------------------------------------------------------------- +// CVCXScheduledReminderTest::Delete +// Delete here all resources allocated and opened from test methods. +// Called from destructor. +// ----------------------------------------------------------------------------- +// +void CVCXScheduledReminderTest::Delete() + { + VCXLOGLO1(">>>CVCXScheduledReminderTest::Delete"); + if(iSchedulerClient) + { + delete iSchedulerClient; + iSchedulerClient = NULL; + } + + if(iTestUtil!=NULL) + { + delete iTestUtil; + iTestUtil=NULL; + } + + if(iShutdownTimer!=NULL) + { + iShutdownTimer->CancelTimer(); + delete iShutdownTimer; + iShutdownTimer = NULL; + } + + iScheduleArray.ResetAndDestroy(); + iScheduleArray.Close(); + VCXLOGLO1("<<>>CVCXScheduledReminderTest::SetTimeoutL"); + + iShutdownTimer = CIptvTestTimer::NewL(*this, 0); + + TInt timeout(0); + + if(iShutdownTimer != NULL) + { + if(KErrNone!=aItem.GetNextInt(timeout)) + { + VCXLOGLO1("Timeout value missing"); + VCXLOGLO1("<<After(interval); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::TimerComplete"); + + VCXLOGLO1("XXXXXXXX TESTCASE TIMEOUT XXXXXXXXX"); + + Signal( KErrTimedOut ); + //User::Leave( KErrTimedOut ); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::CreateL"); + // Print to UI + _LIT( KVCXScheduledReminderTest, "VCXScheduledReminderTest" ); + _LIT( KCreate, "In Create" ); + TestModuleIf().Printf( 0, KVCXScheduledReminderTest, KCreate ); + // Print to log file + iLog->Log( KCreate ); + + iSchedulerClient = CCseSchedulerApi::NewL(); + + iTestUtil = CIptvTestUtilities::NewL(); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::RefreshServiceL"); + // Print to UI + _LIT( KVCXScheduledReminderTest, "VCXScheduledReminderTest" ); + _LIT( KRefreshService, "In RefreshService" ); + TestModuleIf().Printf( 0, KVCXScheduledReminderTest, KRefreshService ); + // Print to log file + iLog->Log( KRefreshService ); + + TUint serviceId = GetServiceL(aItem); + + aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing); + + TTime refreshDate(0); + + TPtrC dateString; + if(aItem.GetNextString(dateString) != KErrNone) { + VCXLOGLO1("CVCXScheduledReminderTest::RefreshServiceL -- No date given as parameter, using Universal Time."); + refreshDate.UniversalTime(); + } + else { + VCXLOGLO2("CVCXScheduledReminderTest::RefreshServiceL -- Using date string %S", &dateString); + TInt err; + err = refreshDate.Set( dateString ); + if( err != KErrNone ) { + VCXLOGLO2("CVCXScheduledReminderTest::RefreshServiceL -- refreshDate.Set() returned error code %d", err); + return KErrArgument; + } + } + + VCXLOGLO2("CSchedulingTest::RefreshService: sid = %d", serviceId); + + TInt ret = iTestUtil->RefreshService(serviceId, refreshDate); + + VCXLOGLO2("CSchedulingTest::RefreshService returned %d", ret); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::SetIapL"); + // Print to UI + _LIT( KVCXScheduledReminderTest, "VCXScheduledReminderTest" ); + _LIT( KSetIap, "In SetIap" ); + TestModuleIf().Printf( 0, KVCXScheduledReminderTest, KSetIap ); + // Print to log file + iLog->Log( KSetIap ); + + TUint sid = GetServiceL(aItem); + TUint iap = GetIapL(aItem); + + VCXLOGLO3("CSchedulingTest::SetIap: sid = %d, iap = %d",sid, iap); + + TInt ret = iTestUtil->SetUsedIap(sid, iap); + + VCXLOGLO2("CSchedulingTest: SetUsedIap returned %d", ret); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::ScheduleDownloadL"); + // Print to UI + _LIT( KVCXScheduledReminderTest, "VCXScheduledReminderTest" ); + _LIT( KScheduleDownload, "In ScheduleDownload" ); + TestModuleIf().Printf( 0, KVCXScheduledReminderTest, KScheduleDownload ); + // Print to log file + iLog->Log( KScheduleDownload ); + + CCseScheduledProgram* program = CCseScheduledProgram::NewL(); + + + TInt start(0); + TInt end(0); + aItem.GetNextInt(start); + aItem.GetNextInt(end); + TTime now; + now.UniversalTime(); + TTime startTime = now + TTimeIntervalSeconds(start); + TTime endTime = now + TTimeIntervalSeconds(end); + program->SetStartTime(TTime(startTime)); + program->SetEndTime(TTime(endTime)); + + + VCXLOGLO1("Now / Universal time:"); + PrintTime(now); + TTime local; + local.HomeTime(); + VCXLOGLO1("Now / Local time:"); + PrintTime(local); + VCXLOGLO1("Scheduled starttime:"); + PrintTime(startTime); + VCXLOGLO1("Scheduled endtime:"); + PrintTime(endTime); + + + TUint id = GetServiceL(aItem); + HBufC8* dataBuf = HBufC8::NewLC(sizeof(TIptvServiceId)); + TPtr8 dataPtr(dataBuf->Des()); + RDesWriteStream writeStream; + CleanupClosePushL(writeStream); + writeStream.Open(dataPtr); + writeStream.WriteUint32L(id); + CleanupStack::PopAndDestroy(&writeStream); + program->SetApplicationDataL(dataPtr); + CleanupStack::PopAndDestroy(dataBuf); + + + TPtrC name(_L("")); + //aItem.GetNextString(name); + TBuf8 nameBuf; + nameBuf.Copy(name); + program->SetName(nameBuf); + + + TInt dbId(id); + //aItem.GetNextInt(dbId); + program->SetDbIdentifier(dbId); + + + TInt appUid( IPTV_SERVER_UID ); + //aItem.GetNextInt(appUid); + program->SetAppUid(appUid); + + + TInt pluginUid( KIptvScheduledDownloadPluginImplementationUid ); + //aItem.GetNextInt(pluginUid); + program->SetPluginUid(pluginUid); + + + TInt type( CCseScheduledProgram::ECseScheduleDownload ); + //aItem.GetNextInt(type); + program->SetScheduleType(type); + + //TUint32 pluginType = CCseScheduledProgram::ECseUniPlugin; + //program->SetPluginType(pluginType); + + iSchedulerClient->AddSchedule(*program); + + + VCXLOGLO1("<<>>VCXScheduledReminderTest::AddScheduleL"); + + // Print to UI + _LIT( KModule, "VCXScheduledReminderTest" ); + _LIT( KWhere, "In ScheduleDownload" ); + TestModuleIf().Printf( 0, KModule, KWhere ); + + // Construct the program + CCseScheduledProgram* program = CCseScheduledProgram::NewL(); + CleanupStack::PushL( program ); + + TPtrC name(_L("")); + TBuf8 nameBuf; + nameBuf.Copy(name); + program->SetName(nameBuf); + VCXLOGLO2("VCXScheduledReminderTest: ServiceName: %S", &nameBuf); + + // Set type + TInt schedType( 0 ); + if( aItem.GetNextInt( schedType ) != KErrNone ) + { + VCXLOGLO1("Unable to read NextInt"); + VCXLOGLO1("<<SetScheduleType( schedType ); + VCXLOGLO2("VCXScheduledReminderTest: ScheduleType: %d", schedType); + + // Set start & end + TInt start(0); + TInt end(0); + if( aItem.GetNextInt(start) != KErrNone ) + { + VCXLOGLO1("Unable to read NextInt to start"); + VCXLOGLO1("<<SetStartTime(TTime(startTime)); + program->SetEndTime(TTime(endTime)); + + // Print times + VCXLOGLO1("Now / Universal time:"); + PrintTime(now); + TTime local; + local.HomeTime(); + VCXLOGLO1("Now / Local time:"); + PrintTime(local); + VCXLOGLO1("Scheduled starttime:"); + PrintTime(TTime(startTime)); + VCXLOGLO1("Scheduled endtime:"); + PrintTime(TTime(endTime)); + + // Set plugin UID to use + TInt pluginId( 0 ); + if ( aItem.GetNextInt( pluginId ) != KErrNone ) + { + VCXLOGLO1("Unable to read NextInt"); + VCXLOGLO1("<<SetPluginUid( GetPluginUidByNumber(pluginId) ); + + // Set plugin type + TInt pluginType( 0 ); + if ( aItem.GetNextInt( pluginType ) != KErrNone ) + { + VCXLOGLO1("Unable to read NextInt"); + VCXLOGLO1("<<SetPluginType( CCseScheduledProgram::ECseUniPlugin ); + } + else + { + program->SetPluginType( CCseScheduledProgram::ECseMultiPlugin ); + } + + // Set app uid + // This is used as a default, does it matter? + program->SetAppUid( IPTV_SERVER_UID ); + + // Set application data + TUint id = GetServiceL(aItem); + VCXLOGLO2("VCXScheduledReminderTest: Using Service id: %d", id); + HBufC8* dataBuf = HBufC8::NewLC(sizeof(TIptvServiceId)); + TPtr8 dataPtr(dataBuf->Des()); + RDesWriteStream writeStream; + CleanupClosePushL(writeStream); + writeStream.Open(dataPtr); + writeStream.WriteUint32L(id); + CleanupStack::PopAndDestroy(&writeStream); + program->SetApplicationDataL(dataPtr); + CleanupStack::PopAndDestroy(dataBuf); + + VCXLOGLO1("VCXScheduledReminderTest::AddScheduleL: Adding following item:"); + program->DebugDump(); + + // Add schedule to engine + TInt error( 0 ); + error = iSchedulerClient->AddSchedule(*program); + VCXLOGLO2("VCXScheduledReminderTest: AddSchedule returned %d", error); + + CleanupStack::PopAndDestroy( program ); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::RemoveScheduleL"); + + // Print to UI + _LIT( KModule, "VCXScheduledReminderTest" ); + _LIT( KWhere, "In RemoveSchedule" ); + TestModuleIf().Printf( 0, KModule, KWhere ); + + TInt index( 0 ); + + // Attempt to read from aItem + if( aItem.GetNextInt( index ) != KErrNone ) + { + VCXLOGLO1("CVCXScheduledReminderTest::RemoveScheduleL: Unable to read parameter"); + VCXLOGLO1("<<RemoveSchedule( index ); + VCXLOGLO2("VCXScheduledReminderTest: RemoveSchedule returned %d", error); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::RemoveAllSchedulesL"); + + // Print to UI + _LIT( KModule, "VCXScheduledReminderTest" ); + _LIT( KWhere, "In RemoveAllSchedules" ); + TestModuleIf().Printf( 0, KModule, KWhere ); + + RPointerArray tempArray; + iSchedulerClient->GetSchedulesByAppUid( IPTV_SERVER_UID, tempArray ); + + TInt count( 0 ); + TInt error( 0 ); + for( count = 0; count < tempArray.Count(); count++ ) + { + error = iSchedulerClient->RemoveSchedule( tempArray[count]->DbIdentifier() ); + VCXLOGLO2("CVCXScheduledReminderTest: RemoveSchedule returned %d", error); + } + + tempArray.ResetAndDestroy(); + tempArray.Close(); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::RemoveAllFromArrayL"); + + // Print to UI + _LIT( KModule, "VCXScheduledReminderTest" ); + _LIT( KWhere, "In RemoveAllFromArrayL" ); + TestModuleIf().Printf( 0, KModule, KWhere ); + + TInt count( 0 ); + TInt error( 0 ); + for( count = 0; count < iScheduleArray.Count(); count++ ) + { + error = iSchedulerClient->RemoveSchedule( iScheduleArray[count]->DbIdentifier() ); + VCXLOGLO2("CVCXScheduledReminderTest: RemoveSchedule returned %d", error); + } + + // Clean up the iScheduleArray + EmptyArray( aItem ); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::GetScheduleL"); + + // Print to UI + _LIT( KModule, "VCXScheduledReminderTest" ); + _LIT( KWhere, "In GetScheduleL" ); + TestModuleIf().Printf( 0, KModule, KWhere ); + + CCseScheduledProgram* iProgram = CCseScheduledProgram::NewL(); + + TInt error( 0 ); + error = iSchedulerClient->GetSchedule( NULL, iProgram ); + VCXLOGLO2("CVCXScheduledReminderTest::GetScheduleL: error: %d", error); + + // Print + iProgram->DebugDump(); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::GetSchedulesByAppUidL"); + + // Print to UI + _LIT( KModule, "VCXScheduledReminderTest" ); + _LIT( KWhere, "In GetSchedulesByAppUIDL" ); + TestModuleIf().Printf( 0, KModule, KWhere ); + + // Fetch schedules from client + TInt error( 0 ); + error = iSchedulerClient->GetSchedulesByAppUid( IPTV_SERVER_UID, iScheduleArray ); + VCXLOGLO2("CVCXScheduledReminderTest: GetSchedulesByAppUid returned errorcode %d", error); + + // Print schedules + PrintArray( iScheduleArray ); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::GetOverlappingSchedulesL"); + + // Print to UI + _LIT( KModule, "VCXScheduledReminderTest" ); + _LIT( KWhere, "In GetOverlappingSchedulesL" ); + TestModuleIf().Printf( 0, KModule, KWhere ); + + CCseScheduledProgram* program = CCseScheduledProgram::NewL(); + CleanupStack::PushL( program ); + + //Program object, add type and starttime/endtime, etc etc + TInt type( 0 ); + if( aItem.GetNextInt( type ) != KErrNone ) + { + VCXLOGLO1("Unable to read NextInt"); + VCXLOGLO1("<<SetScheduleType( type ); + program->SetStartTime( startTime ); + program->SetEndTime( endTime ); + + // Fetch schedules from client + TInt error( 0 ); + error = iSchedulerClient->GetOverlappingSchedules( *program, iScheduleArray ); + VCXLOGLO2("CVCXScheduledReminderTest: GetOverlappingSchedules returned errorcode %d", error); + + CleanupStack::PopAndDestroy(); //CCseScheduledProgram + + // Print schedules + PrintArray( iScheduleArray ); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::GetSchedulesByPluginUidL"); + + // Print to UI + _LIT( KModule, "VCXScheduledReminderTest" ); + _LIT( KWhere, "In GetSchedulesByPluginUidL" ); + TestModuleIf().Printf( 0, KModule, KWhere ); + + // Set plugin UID to use + TInt pluginId( 0 ); + if ( aItem.GetNextInt( pluginId ) != KErrNone ) + { + VCXLOGLO1("Unable to read NextInt"); + VCXLOGLO1("<<GetSchedulesByPluginUid( pluginUid, iScheduleArray ); + VCXLOGLO2("CVCXScheduledReminderTest: GetSchedulesByPluginUidL returned errorcode %d", error); + + // Print schedules + PrintArray( iScheduleArray ); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::GetSchedulesByTypeL"); + + // Print to UI + _LIT( KModule, "VCXScheduledReminderTest" ); + _LIT( KWhere, "In GetSchedulesByTypeL" ); + TestModuleIf().Printf( 0, KModule, KWhere ); + + TInt type( 0 ); + if( aItem.GetNextInt( type ) != KErrNone ) + { + VCXLOGLO1("Unable to read NextInt"); + VCXLOGLO1("<<GetSchedulesByType( type, iScheduleArray ); + VCXLOGLO2("<<>>CVCXScheduledReminderTest::GetSchedulesByTimeL"); + + // Print to UI + _LIT( KModule, "VCXScheduledReminderTest" ); + _LIT( KWhere, "In GetSchedulesByTimeL" ); + TestModuleIf().Printf( 0, KModule, KWhere ); + + // Start & end times + TInt start( 0 ); + TInt end( 0 ); + if( aItem.GetNextInt( start ) != KErrNone ) + { + VCXLOGLO1("Unable to read NextInt"); + VCXLOGLO1("<<GetSchedulesByTime( startTime, endTime, iScheduleArray ); + VCXLOGLO2("VCXScheduledReminderTest: GetSchedulesByTime returned errorcode %d", error); + + // Print schedules + PrintArray( iScheduleArray ); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::CheckCountL"); + TInt expectedCount( 0 ); + TInt error( KErrNone ); + + if( aItem.GetNextInt( expectedCount ) != KErrNone ) + { + VCXLOGLO1("Unable to read NextInt"); + VCXLOGLO1("<< aList ) + { + // if the amount of items doesn't match, then lists obviously don't match + if( aList.Count() != iScheduleArray.Count() ) + { + return EFalse; + } + + // compare every item + TInt count(0); + for( count = 0; count < iScheduleArray.Count(); count++ ) + { + if( !CompareScheduleItems( aList[count], iScheduleArray[count] ) ) + { + return EFalse; + } + } + + // finally, if previous tests didn't return false, the lists obviously match! + return ETrue; + } + +// ----------------------------------------------------------------------------- +// CVCXScheduledReminderTest::CompareScheduleItems() +// Compares given programs +// ----------------------------------------------------------------------------- +// +TBool CVCXScheduledReminderTest::CompareScheduleItems( CCseScheduledProgram* aFirst, CCseScheduledProgram* aSecond ) + { + // Now this is easy and stupid. Is there any convenient way? + + if( aFirst->Name() != aSecond->Name() ) return EFalse; + if( aFirst->StartTime() != aSecond->StartTime() ) return EFalse; + if( aFirst->EndTime() != aSecond->EndTime() ) return EFalse; + if( aFirst->AppUid() != aSecond->AppUid() ) return EFalse; + if( aFirst->PluginUid() != aSecond->PluginUid() ) return EFalse; + if( aFirst->ApplicationData() != aSecond->ApplicationData() ) return EFalse; + if( aFirst->DbIdentifier() != aSecond->DbIdentifier() ) return EFalse; + if( aFirst->ScheduleType() != aSecond->ScheduleType() ) return EFalse; + + // If all else "fails" + return ETrue; + } + +// ----------------------------------------------------------------------------- +// CVCXScheduledReminderTest::PrintArray() +// +// ----------------------------------------------------------------------------- +// +void CVCXScheduledReminderTest::PrintArray( RPointerArray aList ) + { + TInt count( 0 ); + for( count = 0; count < aList.Count(); count++ ) + { + aList[count]->DebugDump(); + } + } + +// ----------------------------------------------------------------------------- +// CVCXScheduledReminderTest::GetPluginUidByNumber( TInt aValue ) +// Returns plugin uid based on number +// ----------------------------------------------------------------------------- +// +TInt32 CVCXScheduledReminderTest::GetPluginUidByNumber( TInt aValue ) + { + TInt32 pluginUID( 0 ); + + switch( aValue ) + { + case 0: + { + VCXLOGLO1("VCXScheduledReminderTest: Plugin id: KSceSchedulerPluginEcomIfUid"); + //pluginUID = KSceSchedulerPluginEcomIfUid; + break; + } + case 1: + { + VCXLOGLO1("VCXScheduledReminderTest: Plugin id: KIptvSchedulerPluginIpmlementationUid"); + //pluginUID = KIptvSchedulerPluginIpmlementationUid; + break; + } + case 2: + { + VCXLOGLO1("VCXScheduledReminderTest: Plugin id: KIptvSchedulerPluginUid"); + //pluginUID = KIptvSchedulerPluginUid; + break; + } + case 3: + { + VCXLOGLO1("VCXScheduledReminderTest: Plugin id: INVALID PLUGIN UID"); + pluginUID = KInvalidPluginUid; + break; + } + default: + { + VCXLOGLO1("VCXScheduledReminderTest: Plugin id: KIptvScheduledDownloadPluginImplementationUid"); + pluginUID = KIptvScheduledDownloadPluginImplementationUid; + break; + } + } + return pluginUID; + } + +// ----------------------------------------------------------------------------- +// CVCXScheduledReminderTest::AdjustClockL ( timeintervalinseconds ) +// adds to given interval to current system time. interval may also be negative. +// ----------------------------------------------------------------------------- +// +TInt CVCXScheduledReminderTest::AdjustClockL( CStifItemParser& aItem ) + { + VCXLOGLO1(">>>CVCXScheduledReminderTest::AdjustClockL"); + // Print to UI + _LIT( KVCXScheduledReminderTest, "VCXScheduledReminderTest" ); + _LIT( KAdjustClock, "In AdjustClock" ); + TestModuleIf().Printf( 0, KVCXScheduledReminderTest, KAdjustClock ); + // Print to log file + iLog->Log( KAdjustClock ); + + TInt tmp; + T1L( aItem.GetNextInt(tmp), KErrNone ); + TTimeIntervalSeconds ts(tmp); + + TTime oldTime; + oldTime.UniversalTime(); + + User::SetUTCTime(TTime(oldTime + ts)); + + VCXLOGLO2("CSchedulingTest: AdjustClock ts: %d", ts.Int()); + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::GetServiceL"); + + TPtrC serviceName; + TUint serviceId(0); + + aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing); + + if( KErrNone == aItem.GetNextString(serviceName) && iTestUtil!=NULL) + { + VCXLOGLO2("CVCXScheduledReminderTest:: Service name = %S",&serviceName); + TInt sidTemp(0); + + if( iTestUtil->GetServiceIdByNameL(serviceName, sidTemp) == KErrNone ) + { + serviceId = sidTemp; + } + else + { + TLex lex(serviceName); + TInt64 tmp2; + if(lex.Val(tmp2)==KErrNone) + { + serviceId = tmp2; + VCXLOGLO2("Service name not found, using parsed int %d.",serviceId); + } + else + { + VCXLOGLO1("Service not found"); + _LIT(KTestErr, "Invalid service"); + User::Panic(KTestErr, KTestPanic); + } + } + } + else + { + VCXLOGLO1("Missing parameter: service"); + _LIT(KTestErr, "Service missing"); + User::Panic(KTestErr,KTestPanic); + } + + VCXLOGLO1("<<>>CVCXScheduledReminderTest::GetIapL"); + + TPtrC iapName; + TUint32 iapId(0); + + aItem.SetParsingType(CStifItemParser::EQuoteStyleParsing); + + /* + TInt temp; + if( aItem.GetNextInt( temp ) == KErrNone ) { + iapId = (TUint32)temp; + VCXLOGLO2("Using int %d as Iap ID.",iapId); + } + else { + aItem.GetNextString(iapName); + if( !iTestUtil->GetIapIdL(iapName, iapId) ) { + VCXLOGLO1("Iap not found"); + _LIT(KTestErr, "Invalid iap"); + User::Panic(KTestErr,KTestPanic); + } + }*/ + + + if( KErrNone == aItem.GetNextString(iapName) && iTestUtil!=NULL) { + VCXLOGLO2("CVCXScheduledReminderTest:: Iap name = %S",&iapName); + if( !iTestUtil->GetIapIdL(iapName, iapId) ) { + TLex lex(iapName); + TInt64 tmp1; + if(lex.Val(tmp1)==KErrNone) { + iapId = tmp1; + VCXLOGLO2("Iap name not found, using parsed int %d.",iapId); + } + else { + VCXLOGLO1("Iap not found"); + _LIT(KTestErr, "Invalid iap"); + User::Panic(KTestErr,KTestPanic); + } + } + } + else { + VCXLOGLO1("Error finding Iap !"); + _LIT(KTestErr, "iap missing"); + User::Panic(KTestErr,KTestPanic); + } + + VCXLOGLO1("<<