--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/locationtriggering/tsrc/lbtengine_test/LbtUnitTestModule/src/LbtUnitTestModuleBlocks.cpp Mon Sep 27 16:57:22 2010 +0530
@@ -0,0 +1,923 @@
+/*
+* Copyright (c) 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: This file contains testclass implementation.
+*
+*/
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <StifTestInterface.h>
+#include <etelmm.h>
+#include <centralrepository.h>
+#include "LbtUnitTestModule.h"
+#include "lbtgeogsmcell.h"
+#include "lbtgeowcdmacell.h"
+#include "lbtsettingsmanager.h"
+#include "lbtdiskspacelistner.h"
+#include "lbttriggernode.h"
+#include "lbtcontextsourceplugincommon.h"
+#include "lbtcellinfo.h"
+#include "lbtoperation.h"
+#include "lbtlogger.h"
+
+
+static const TInt KArrayIndex = 5;
+const TInt KCRUidLocationTriggeringSettings(0x1028312F);
+
+const TBuf<236> testFileName(_L("C:\\data\\testdata.log"));
+
+TInt ThreadFunction( TAny* aParam );
+
+enum TCenRepKeys
+ {
+ ELbtMinimumTriggerArea = 0x00000007,
+ ELbtTrackModeInterval = 0x00000008,
+ ELbtLocRequestTimeOut = 0x00000009,
+ ELbtMinHysteresisArea = 0x0000000A,
+ ELbtDaysForCleanup = 0x0000000B,
+ ELbtSleepTime = 0x0000000C,
+ ELbtMaxActiveTriggers = 0x0000000D,
+ };
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::Delete
+// Delete here all resources allocated and opened from test methods.
+// Called from destructor.
+// -----------------------------------------------------------------------------
+//
+void CLbtUnitTestModule::Delete()
+ {
+ // Lbt logger is created by the first LOG call, it is destroyed
+ // only during termination. This has to be explicitly destroyed.
+ STOPLOGGING
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CLbtUnitTestModule::RunMethodL(
+ CStifItemParser& aItem )
+ {
+
+ static TStifFunctionInfo const KFunctions[] =
+ {
+ // Copy this line for every implemented function.
+ // First string is the function name used in TestScripter script file.
+ // Second is the actual implementation member function.
+ ENTRY( "TestCLbtGeoGsmCellNewL", CLbtUnitTestModule::TestCLbtGeoGsmCellNewL ),
+ ENTRY( "TestCLbtGeoGsmCellNewLC", CLbtUnitTestModule::TestCLbtGeoGsmCellNewLC ),
+ ENTRY( "TestCLbtGeoGsmCellNew1L", CLbtUnitTestModule::TestCLbtGeoGsmCellNew1L ),
+ ENTRY( "TestCLbtGeoGsmCellNew1LC", CLbtUnitTestModule::TestCLbtGeoGsmCellNew1LC ),
+ ENTRY( "TestSetAndGetBsicL", CLbtUnitTestModule::TestSetAndGetBsicL ),
+ ENTRY( "TestGsmCGISpecifiedDuringCreationL", CLbtUnitTestModule::TestGsmCGISpecifiedDuringCreationL ),
+ ENTRY( "TestGsmCellInternalizeExternalizeL", CLbtUnitTestModule::TestGsmCellInternalizeExternalizeL ),
+ ENTRY( "TestCLbtGeoWcdmaCellL", CLbtUnitTestModule::TestCLbtGeoWcdmaCellL ),
+ ENTRY( "TestCLbtGeoWcdmaCellLC", CLbtUnitTestModule::TestCLbtGeoWcdmaCellLC ),
+ ENTRY( "TestCLbtGeoWcdmaCell1L", CLbtUnitTestModule::TestCLbtGeoWcdmaCell1L ),
+ ENTRY( "TestCLbtGeoWcdmaCell1LC", CLbtUnitTestModule::TestCLbtGeoWcdmaCell1LC ),
+ ENTRY( "TestSetAndGetWcdmaInfoL", CLbtUnitTestModule::TestSetAndGetWcdmaInfoL ),
+ ENTRY( "TestWcdmaCGISpecifiedDuringCreationL", CLbtUnitTestModule::TestWcdmaCGISpecifiedDuringCreationL ),
+ ENTRY( "TestWcdmaCellInternalizeExternalizeL", CLbtUnitTestModule::TestWcdmaCellInternalizeExternalizeL ),
+ ENTRY( "TestSetAndGetOptimisationLevelL", CLbtUnitTestModule::TestSetAndGetOptimisationLevelL ),
+ ENTRY( "TestSetAndGetNppModuleIdL", CLbtUnitTestModule::TestSetAndGetNppModuleIdL ),
+ ENTRY( "TestSetAndGetMinUpdateIntOnGpsFailureL", CLbtUnitTestModule::TestSetAndGetMinUpdateIntOnGpsFailureL ),
+ ENTRY( "TestSetAndGetMaximumUserSpeedL", CLbtUnitTestModule::TestSetAndGetMaximumUserSpeedL ),
+ ENTRY( "TestSetAndGetTrigMechStateL", CLbtUnitTestModule::TestSetAndGetTrigMechStateL ),
+ ENTRY( "TestTriggerConfigParamsL", CLbtUnitTestModule::TestTriggerConfigParamsL ),
+ ENTRY( "TestCLbtDiskSpaceListnerStartToListenL", CLbtUnitTestModule::TestCLbtDiskSpaceListnerStartToListenL ),
+ ENTRY( "TestCLbtDiskSpaceListnerCancelL", CLbtUnitTestModule::TestCLbtDiskSpaceListnerCancelL ),
+ ENTRY( "TestTriggerNodeMethodsL", CLbtUnitTestModule::TestTriggerNodeMethodsL ),
+ ENTRY( "TestGsmCellInfoMethodsL", CLbtUnitTestModule::TestGsmCellInfoMethodsL ),
+ ENTRY( "TestWcdmaCellInfoMethodsL", CLbtUnitTestModule::TestWcdmaCellInfoMethodsL ),
+ ENTRY( "TestLbtOperationsMethodL", CLbtUnitTestModule::TestLbtOperationsMethodL )
+ //ADD NEW ENTRY HERE
+ // [test cases entries] - Do not remove
+
+ };
+
+ const TInt count = sizeof( KFunctions ) /
+ sizeof( TStifFunctionInfo );
+
+ return RunInternalL( KFunctions, count, aItem );
+
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestCLbtGeoGsmCellNewL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestCLbtGeoGsmCellNewL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtGeoGsmCell* gsmCell = CLbtGeoGsmCell::NewL();
+ delete gsmCell;
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestCLbtGeoGsmCellNewLC
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestCLbtGeoGsmCellNewLC( CStifItemParser& /*aItem*/ )
+ {
+ CLbtGeoGsmCell* gsmCell = CLbtGeoGsmCell::NewLC();
+ CleanupStack::PopAndDestroy( gsmCell );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestCLbtGeoGsmCellNew1L
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestCLbtGeoGsmCellNew1L( CStifItemParser& /*aItem*/ )
+ {
+ TBuf<4> Networkcountrycode = _L("1000");
+ TBuf<8> Networkidentitycode = _L("10000000");
+ TUint Locationareacode = 100;
+ TUint CellId = 100;
+ CLbtGeoGsmCell* gsmCell = CLbtGeoGsmCell::NewL(
+ RMobilePhone::ENetworkModeGsm,
+ Networkcountrycode,
+ Networkidentitycode,
+ Locationareacode,
+ CellId);
+ delete gsmCell;
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestCLbtGeoGsmCellNew1LC
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestCLbtGeoGsmCellNew1LC( CStifItemParser& /*aItem*/ )
+ {
+ TBuf<4> Networkcountrycode = _L("1000");
+ TBuf<8> Networkidentitycode = _L("10000000");
+ TUint Locationareacode = 100;
+ TUint CellId = 100;
+ CLbtGeoGsmCell* gsmCell = CLbtGeoGsmCell::NewLC(
+ RMobilePhone::ENetworkModeGsm,
+ Networkcountrycode,
+ Networkidentitycode,
+ Locationareacode,
+ CellId);
+ CleanupStack::PopAndDestroy( gsmCell );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestSetAndGetBsicL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestSetAndGetBsicL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtGeoGsmCell* gsmCell = CLbtGeoGsmCell::NewLC();
+ RArray<TInt> bsicArray;
+ CleanupClosePushL( bsicArray );
+ for( TInt i=0;i<KArrayIndex;i++ )
+ {
+ bsicArray.AppendL( i+1 );
+ }
+ gsmCell->SetBsic( bsicArray );
+
+ RArray<TInt> retBsicArray = gsmCell->Bsic();
+ for( TInt i=0;i<bsicArray.Count();i++ )
+ {
+ if( bsicArray[i] != retBsicArray[i] )
+ {
+ User::Leave( KErrArgument );
+ }
+ }
+ CleanupStack::PopAndDestroy( 2 );
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestGsmCGISpecifiedDuringCreationL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestGsmCGISpecifiedDuringCreationL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtGeoGsmCell* gsmCell = CLbtGeoGsmCell::NewL();
+ CleanupStack::PushL( gsmCell );
+ TBool cgiSpecified = gsmCell->CGISpecifiedDuringCreation();
+ if( cgiSpecified )
+ {
+ User::Leave( KErrArgument );
+ }
+ CleanupStack::PopAndDestroy( gsmCell );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestGsmCellInternalizeExternalizeL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestGsmCellInternalizeExternalizeL( CStifItemParser& /*aItem*/ )
+ {
+ TBuf<4> Networkcountrycode = _L("1000");
+ TBuf<8> Networkidentitycode = _L("10000000");
+ TUint Locationareacode = 100;
+ TUint CellId = 100;
+
+ CLbtGeoGsmCell* gsmCell = CLbtGeoGsmCell::NewL(
+ RMobilePhone::ENetworkModeGsm,
+ Networkcountrycode,
+ Networkidentitycode,
+ Locationareacode,
+ CellId);
+ CleanupStack::PushL( gsmCell );
+
+ CBufFlat* buffer= CBufFlat::NewL(256);
+ CleanupStack::PushL( buffer );
+
+ // Externalize
+ RBufWriteStream wr;
+ CleanupClosePushL( wr );
+ wr.Open(*buffer);
+ gsmCell->ExternalizeL( wr );
+ wr.CommitL();
+ CleanupStack::PopAndDestroy( &wr );
+
+ // Internalize
+
+ RBufReadStream rd;
+ rd.Open(*buffer);
+ CleanupClosePushL(rd);
+
+ CLbtGeoGsmCell* newGsmCell = CLbtGeoGsmCell::NewLC();
+ newGsmCell->InternalizeL(rd);
+
+ if( newGsmCell->NetworkType() != RMobilePhone::ENetworkModeGsm ||
+ newGsmCell->NetworkCountryCode() != Networkcountrycode ||
+ newGsmCell->NetworkIdentityCode() != Networkidentitycode ||
+ newGsmCell->LocationAreaCode() != Locationareacode ||
+ newGsmCell->CellId() != CellId )
+ {
+ User::Leave( KErrArgument );
+ }
+ CleanupStack::PopAndDestroy( 4 );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestCLbtGeoWcdmaCellL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestCLbtGeoWcdmaCellL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtGeoWcdmaCell* wcdmaCell = CLbtGeoWcdmaCell::NewL();
+ delete wcdmaCell;
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestCLbtGeoWcdmaCellLC
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestCLbtGeoWcdmaCellLC( CStifItemParser& /*aItem*/ )
+ {
+ CLbtGeoWcdmaCell* wcdmaCell = CLbtGeoWcdmaCell::NewLC();
+ CleanupStack::PopAndDestroy( wcdmaCell );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestCLbtGeoWcdmaCell1L
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestCLbtGeoWcdmaCell1L( CStifItemParser& /*aItem*/ )
+ {
+ TBuf<4> Networkcountrycode = _L("1000");
+ TBuf<8> Networkidentitycode = _L("10000000");
+ TUint Locationareacode = 100;
+ TUint CellId = 100;
+ CLbtGeoWcdmaCell* wcdmaCell = CLbtGeoWcdmaCell::NewL(
+ RMobilePhone::ENetworkModeWcdma,
+ Networkcountrycode,
+ Networkidentitycode,
+ Locationareacode,
+ CellId);
+ delete wcdmaCell;
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestCLbtGeoWcdmaCell1LC
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestCLbtGeoWcdmaCell1LC( CStifItemParser& /*aItem*/ )
+ {
+ TBuf<4> Networkcountrycode = _L("1000");
+ TBuf<8> Networkidentitycode = _L("10000000");
+ TUint Locationareacode = 100;
+ TUint CellId = 100;
+
+ CLbtGeoWcdmaCell* wcdmaCell = CLbtGeoWcdmaCell::NewLC(
+ RMobilePhone::ENetworkModeWcdma,
+ Networkcountrycode,
+ Networkidentitycode,
+ Locationareacode,
+ CellId );
+ CleanupStack::PopAndDestroy( wcdmaCell );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestSetAndGetWcdmaInfoL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestSetAndGetWcdmaInfoL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtGeoWcdmaCell* wcdmaCell = CLbtGeoWcdmaCell::NewLC();
+
+ TLbtWcdmaCellInfo wcdmaCellInfo;
+ wcdmaCellInfo.iCell.iCarrierRssi = 10;
+ wcdmaCellInfo.iCell.iEcNo = 20;
+ wcdmaCellInfo.iCell.iPathLoss = 30;
+ wcdmaCellInfo.iCell.iRscp = 40;
+ wcdmaCell->SetWcdmaCellInfo( wcdmaCellInfo );
+
+ TLbtWcdmaCellInfo retWcdmaCellInfo = wcdmaCell->WcdmaCellInfo();
+
+ if( wcdmaCellInfo.iCell.iCarrierRssi != retWcdmaCellInfo.iCell.iCarrierRssi ||
+ wcdmaCellInfo.iCell.iEcNo != retWcdmaCellInfo.iCell.iEcNo ||
+ wcdmaCellInfo.iCell.iPathLoss != retWcdmaCellInfo.iCell.iPathLoss ||
+ wcdmaCellInfo.iCell.iRscp != retWcdmaCellInfo.iCell.iRscp )
+ {
+ User::Leave( KErrArgument );
+ }
+ CleanupStack::PopAndDestroy( wcdmaCell );
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestWcdmaCGISpecifiedDuringCreationL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestWcdmaCGISpecifiedDuringCreationL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtGeoWcdmaCell* wcdmaCell = CLbtGeoWcdmaCell::NewL();
+ CleanupStack::PushL( wcdmaCell );
+ TBool cgiSpecified = wcdmaCell->CGISpecifiedDuringCreation();
+ if( cgiSpecified )
+ {
+ User::Leave( KErrArgument );
+ }
+ CleanupStack::PopAndDestroy( wcdmaCell );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestWcdmaCellInternalizeExternalizeL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestWcdmaCellInternalizeExternalizeL( CStifItemParser& /*aItem*/ )
+ {
+ TBuf<4> Networkcountrycode = _L("1000");
+ TBuf<8> Networkidentitycode = _L("10000000");
+ TUint Locationareacode = 100;
+ TUint CellId = 100;
+
+ CLbtGeoWcdmaCell* wcdmaCell = CLbtGeoWcdmaCell::NewL(
+ RMobilePhone::ENetworkModeWcdma,
+ Networkcountrycode,
+ Networkidentitycode,
+ Locationareacode,
+ CellId);
+ CleanupStack::PushL( wcdmaCell );
+
+ CBufFlat* buffer= CBufFlat::NewL(256);
+ CleanupStack::PushL( buffer );
+
+ // Externalize
+ RBufWriteStream wr;
+ CleanupClosePushL( wr );
+ wr.Open(*buffer);
+ wcdmaCell->ExternalizeL( wr );
+ wr.CommitL();
+ CleanupStack::PopAndDestroy( &wr );
+
+ // Internalize
+
+ RBufReadStream rd;
+ rd.Open(*buffer);
+ CleanupClosePushL(rd);
+
+ CLbtGeoWcdmaCell* newWcdmaCell = CLbtGeoWcdmaCell::NewLC();
+ newWcdmaCell->InternalizeL(rd);
+
+ if( newWcdmaCell->NetworkType() != RMobilePhone::ENetworkModeWcdma ||
+ newWcdmaCell->NetworkCountryCode() != Networkcountrycode ||
+ newWcdmaCell->NetworkIdentityCode() != Networkidentitycode ||
+ newWcdmaCell->LocationAreaCode() != Locationareacode ||
+ newWcdmaCell->CellId() != CellId )
+ {
+ User::Leave( KErrArgument );
+ }
+ CleanupStack::PopAndDestroy( 4 );
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestSetAndGetOptimisationLevelL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestSetAndGetOptimisationLevelL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtSettingsManager* settingsManager = CLbtSettingsManager::NewL();
+ CleanupStack::PushL( settingsManager );
+ settingsManager->SetOptimizationLevel( 10 );
+ if( settingsManager->GetOptimizationLevel() != 10 )
+ {
+ User::Leave( KErrArgument );
+ }
+ CleanupStack::PopAndDestroy( settingsManager );
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestSetAndGetModuleIdL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestSetAndGetModuleIdL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtSettingsManager* settingsManager = CLbtSettingsManager::NewL();
+ CleanupStack::PushL( settingsManager );
+ TUid moduleId = TUid::Uid( 270526860 );
+ settingsManager->SetModuleId( moduleId );
+ if( settingsManager->GetModuleId() != moduleId )
+ {
+ User::Leave( KErrArgument );
+ }
+ CleanupStack::PopAndDestroy( settingsManager );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestSetAndGetNppModuleIdL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestSetAndGetNppModuleIdL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtSettingsManager* settingsManager = CLbtSettingsManager::NewL();
+ CleanupStack::PushL( settingsManager );
+ TUid moduleId = TUid::Uid( 16777216 );
+ settingsManager->SetModuleId( moduleId );
+ if( settingsManager->GetModuleId() != moduleId )
+ {
+ User::Leave( KErrArgument );
+ }
+ CleanupStack::PopAndDestroy( settingsManager );
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestSetAndGetMinUpdateIntOnGpsFailureL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestSetAndGetMinUpdateIntOnGpsFailureL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtSettingsManager* settingsManager = CLbtSettingsManager::NewL();
+ CleanupStack::PushL( settingsManager );
+
+ settingsManager->SetMinimumUpdateIntervalOnGpsFailure( 10000000 );
+ if( settingsManager->GetMinimumUpdateIntervalOnGpsFailure() != 10000000 )
+ {
+ User::Leave( KErrArgument );
+ }
+ CleanupStack::PopAndDestroy( settingsManager );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestSetAndGetMaximumUserSpeedL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestSetAndGetMaximumUserSpeedL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtSettingsManager* settingsManager = CLbtSettingsManager::NewL();
+ CleanupStack::PushL( settingsManager );
+
+ settingsManager->SetMaximumUserSpeed( 42 );
+ if( settingsManager->GetMaximumUserSpeed() != 42 )
+ {
+ User::Leave( KErrArgument );
+ }
+ CleanupStack::PopAndDestroy( settingsManager );
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestSetAndGetTrigMechStateL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestSetAndGetTrigMechStateL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtSettingsManager* settingsManager = CLbtSettingsManager::NewL();
+ CleanupStack::PushL( settingsManager );
+
+ settingsManager->SetTriggeringMechanismState( ETriggeringMechanismOn );
+ if( settingsManager->GetTriggeringMechanismState() != ETriggeringMechanismOn )
+ {
+ User::Leave( KErrArgument );
+ }
+ CleanupStack::PopAndDestroy( settingsManager );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestTriggerConfigParamsL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestTriggerConfigParamsL( CStifItemParser& /*aItem*/ )
+ {
+ // Read values from cenrep.
+
+ CRepository* repository = CRepository::NewL(TUid::Uid(KCRUidLocationTriggeringSettings));
+ CleanupStack::PushL( repository );
+ // Get all the values and store it in RAM
+ TInt minTriggerArea;
+ repository->Get(ELbtMinimumTriggerArea, minTriggerArea);
+ TInt trackModeInt;
+ repository->Get(ELbtTrackModeInterval, trackModeInt);
+ TInt locRequestTimeOut;
+ repository->Get(ELbtLocRequestTimeOut, locRequestTimeOut);
+ TInt minHysteresisArea;
+ repository->Get(ELbtMinHysteresisArea, minHysteresisArea);
+ TInt daysForCleanup;
+ repository->Get(ELbtDaysForCleanup, daysForCleanup);
+ TInt enabledValidTriggerCount;
+ repository->Get(ELbtMaxActiveTriggers, enabledValidTriggerCount);
+ CLbtSettingsManager* settingsManager = CLbtSettingsManager::NewL();
+ CleanupStack::PushL( settingsManager );
+
+ if( settingsManager->MinimumTriggeringArea() != minTriggerArea )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ if( settingsManager->TrackingModeInterval() != trackModeInt )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ if( settingsManager->GetLocationRequestTimeOut() != locRequestTimeOut )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ if( settingsManager->MinimumHysteresisArea() != minHysteresisArea )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ if( settingsManager->NumberOfDaysForCleanup() != daysForCleanup )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ if( settingsManager->EnabledValidTriggerCount() != enabledValidTriggerCount )
+ {
+ User::Leave( KErrArgument );
+ }
+ CleanupStack::PopAndDestroy( 2 );
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestCLbtDiskSpaceListnerStartToListenL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestCLbtDiskSpaceListnerStartToListenL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtDiskSpaceListner* diskSpaceListner = CLbtDiskSpaceListner::NewL( *this );
+ CleanupStack::PushL( diskSpaceListner );
+
+ diskSpaceListner->StartToListen();
+
+ RThread thread;
+ TThreadFunction funcPtr = ThreadFunction;
+ thread.Create(_L("TestLbtThread"),funcPtr,KDefaultStackSize,NULL,NULL);
+ thread.Resume();
+
+ iWait->Start();
+ thread.Kill( 0 );
+ thread.Close();
+ CleanupStack::PopAndDestroy( diskSpaceListner );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestCLbtDiskSpaceListnerCancelL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestCLbtDiskSpaceListnerCancelL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtDiskSpaceListner* diskSpaceListner = CLbtDiskSpaceListner::NewL( *this );
+ CleanupStack::PushL( diskSpaceListner );
+
+ diskSpaceListner->StartToListen();
+
+ // Cancel is called in the destructor.
+ CleanupStack::PopAndDestroy( diskSpaceListner );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestTriggerNodeMethodsL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestTriggerNodeMethodsL( CStifItemParser& /*aItem*/ )
+ {
+ TTriggerNode triggerNode;
+
+ HBufC* buffer = HBufC::NewLC( 10 );
+ TPtr ptr =buffer->Des();
+ TPtrC retPtr;
+ TReal value;
+
+ // Test set and get trigger name.
+ ptr.Copy(_L("Test"));
+ triggerNode.SetTriggerNameL( ptr );
+ triggerNode.GetTriggerName( retPtr );
+ if( ptr != retPtr )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ // Test set and get latitude.
+ ptr.Copy(_L("12.7"));
+ triggerNode.SetLatitudeL( ptr );
+ triggerNode.GetLatitude( value );
+ if( value != 12.7 )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ // Test set and get longitude.
+ ptr.Copy(_L("72.7"));
+ triggerNode.SetLongitudeL( ptr );
+ triggerNode.GetLongitude( value );
+ if( value != 72.7 )
+ {
+ User::Leave( KErrArgument );
+ }
+
+
+ // Test set and get region.
+ ptr.Copy(KRegionValue);
+ triggerNode.SetRegionL( ptr );
+ triggerNode.GetRegion( retPtr );
+ if( ptr != retPtr )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ // Test set and get radius.
+ ptr.Copy(_L("10"));
+ triggerNode.SetRadiusL( ptr );
+ triggerNode.GetRadius( value );
+ if( value != KMinRadius )
+ {
+ User::Leave( KErrArgument );
+ }
+
+
+ // Test set and get direction.
+ ptr.Copy(KNullDesC);
+ triggerNode.SetDirectionL( ptr );
+ if( triggerNode.GetDirection() != CLbtTriggerConditionArea::EFireOnEnter )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ // Test set and get context source.
+ ptr.Copy(KDefaultContextSourceName);
+ triggerNode.SetContextSource( ptr );
+ if( triggerNode.GetContextSource() != KDefaultContextSourceName )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ // Test set and get current state.
+ triggerNode.SetCurrentStateL( ptr );
+ if( triggerNode.GetCurrentState() != CLbtTriggerEntry::EStateEnabled )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ CleanupStack::PopAndDestroy( buffer );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestGsmCellInfoMethodsL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestGsmCellInfoMethodsL( CStifItemParser& /*aItem*/ )
+ {
+ // Test GSM cell info methods.
+ RMmCustomAPI::TMmCellInfo info;
+
+ //Construct dummy cell info with GSM params.
+ info.iMode = RMmCustomAPI::TMmCellInfo::EGSM;
+
+ info.iGsmCellInfo.iTA = 10;
+
+ CLbtCellInfo* cellInfo = CLbtCellInfo::NewL( info );
+ CleanupStack::PushL( cellInfo );
+
+ // Get the GSM NMR array.
+ RArray<TGsmNMR> gsmArray = cellInfo->GetNMR();
+ if( gsmArray.Count() != 0 )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ // Check the count of cell info.
+ if( cellInfo->Count() != 0 )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ // Read the TA from the cell info.
+ if( cellInfo->GetTA() != 10 )
+ {
+ User::Leave( KErrArgument );
+ }
+ //Get the cell id count for GSM network. It is not
+ // supported for GSM. Hence it should return 0.
+ if( cellInfo->CellChangeCount() != 0 )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ // Attempt to find GSM cell info at 0th index should fail.
+ TGsmNMR gsmNmr;
+ TInt index = 0;
+ if( cellInfo->Find( index, gsmNmr ) )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ // Add same cell info again
+ cellInfo->AddNMRData( info );
+
+ // Start the iterator
+ CLbtCellInfo::TCellInfoArrayIterator itr = cellInfo->Begin();
+
+ if( itr.Next( gsmNmr ) )
+ {
+ User::Leave( KErrArgument );
+ }
+ itr.Reset();
+
+ // Reset the info
+ cellInfo->Reset();
+
+ CleanupStack::PopAndDestroy( cellInfo );
+ return KErrNone;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestWcdmaCellInfoMethodsL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestWcdmaCellInfoMethodsL( CStifItemParser& /*aItem*/ )
+ {
+ // Test WCDMA cell info methods.
+ RMmCustomAPI::TMmCellInfo info;
+
+ //Construct dummy cell info with WCDMA params.
+ info.iMode = RMmCustomAPI::TMmCellInfo::EWCDMA;
+
+ //Set scrambling code and cell id.
+ info.iWcdmaCellInfo.iPrimaryScrambilingCode = 10;
+ info.iWcdmaCellInfo.iNwkMeasureReport[0].iCellMeasuredResult[0].iCID = 100;
+
+ CLbtCellInfo* cellInfo = CLbtCellInfo::NewL( info );
+ CleanupStack::PushL( cellInfo );
+
+ // Get the WCDMA NMR array.
+ RArray<TWcdmaNMR> wcdmaArray = cellInfo->GetWcdmaNMR();
+ if( wcdmaArray.Count() == 0 )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ // Check the count of cell info.
+ if( cellInfo->Count() == 0 )
+ {
+ User::Leave( KErrArgument );
+ }
+
+ //Get the cell id count for WCDMA network. It is not
+ // supported for GSM. Hence it should return 0.
+ if( cellInfo->CellChangeCount() == 0 )
+ {
+ User::Leave( KErrArgument );
+ }
+
+
+ // Add same cell info again
+ cellInfo->AddNMRData( info );
+
+ // Start the iterator
+ CLbtCellInfo::TCellInfoArrayIterator itr = cellInfo->Begin();
+
+ TWcdmaNMR wcdmaNmr;
+ if( !itr.Next( wcdmaNmr ) )
+ {
+ User::Leave( KErrArgument );
+ }
+ itr.Reset();
+
+ // Reset the info
+ cellInfo->Reset();
+
+ CleanupStack::PopAndDestroy( cellInfo );
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::TestLbtOperationsMethodL
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt CLbtUnitTestModule::TestLbtOperationsMethodL( CStifItemParser& /*aItem*/ )
+ {
+ CLbtGeoAreaBase* areaBase = NULL;
+ TRequestStatus status;
+
+ CLBTOperation* lbtOperation = CLBTOperation::CreateGeoAreaForCurrentLocationL(
+ status,
+ CLbtGeoAreaBase::ECellular,
+ &areaBase );
+ delete lbtOperation;
+ delete areaBase;
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CLbtUnitTestModule::HandleDiskSpaceChange
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+void CLbtUnitTestModule::HandleDiskSpaceChange()
+ {
+ iWait->AsyncStop();
+ }
+
+
+// -----------------------------------------------------------------------------
+// ThreadFunction
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt ThreadFunction( TAny* /*aParam*/)
+ {
+ TInt error;
+ RFs fs;
+ fs.Connect();
+ RFile file;
+ error = file.Create( fs,testFileName,EFileWrite);
+ if(error == KErrAlreadyExists )
+ {
+ fs.Delete( testFileName );
+ }
+ file.Close();
+ fs.Close();
+ return KErrNone;
+ }
+
+
+
+// [End of File]