telephonyserver/etelmultimode/TETEL/te_EtelMM/TE_EtelMMLbsStepBase.cpp
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserver/etelmultimode/TETEL/te_EtelMM/TE_EtelMMLbsStepBase.cpp	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,463 @@
+// Copyright (c) 2006-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:
+//
+
+/**
+ @file
+*/
+
+#include "TE_EtelMMTestStepBase.h"
+#include "testdef.h"
+
+
+/**
+	Preamble for all CEtelMMLbsTestStepBase
+*/
+TVerdict CEtelMMLbsTestStepBase::doTestStepPreambleL()
+	{
+	//base class preamble
+	CEtelMMTestStepBase::doTestStepPreambleL();
+	TInt ret=iPhone.Open(iTelServer,DMMTSY_PHONE_NAME);
+	TEST(ret==KErrNone);
+	TInt lbsOpenFlag ;
+	TBool existsLbsOpenFlag = GetIntFromConfig(ConfigSection(), _L("LbsOpenFlag"), lbsOpenFlag);
+	if(!existsLbsOpenFlag)
+		{
+		ret=iLocationSvc.Open(iPhone);
+		TEST(ret == KErrNone);	
+		INFO_PRINTF2(_L("Test %d - RMobileLocationServices::Open request"), ret);
+		}
+	return TestStepResult() ;
+	}
+
+/**
+	Postamble for all CEtelMMLbsTestStepBase
+*/
+TVerdict CEtelMMLbsTestStepBase::doTestStepPostambleL()
+	{
+	TInt lbsCloseFlag ;
+	TBool existsLbsCloseFlag = GetIntFromConfig(ConfigSection(), _L("LbsCloseFlag"), lbsCloseFlag);
+	if(!existsLbsCloseFlag)
+		{
+		iLocationSvc.Close();
+		INFO_PRINTF1(_L("Test- RMobileLocationServices::Close request"));
+		}
+	iPhone.Close();	
+	
+	//base class postamble
+	CEtelMMTestStepBase::doTestStepPostambleL();
+ 	return TestStepResult() ;
+	}
+
+void CEtelMMLbsTestStepBase::ValidateMCRefTimeParams()
+{
+	TInt expectedGpsWeek ;
+	GetIntFromConfig(ConfigSection(), _L("expectedGpsWeek"), expectedGpsWeek );
+
+	TInt expectedGpsTowOneMsce ;
+	GetIntFromConfig(ConfigSection(), _L("expectedGpsTowOneMsce"), expectedGpsTowOneMsce );
+
+	TBool expectedReftimeRequest;
+	GetBoolFromConfig(ConfigSection(), _L("expectedReftimeRequest"), expectedReftimeRequest);
+
+	TInt expectedRefTimeLsPart  ;
+	GetIntFromConfig(ConfigSection(), _L("expectedRefTimeLsPart"), expectedRefTimeLsPart  );
+
+	TInt expectedRefTimeMsPart  ;
+	GetIntFromConfig(ConfigSection(), _L("expectedRefTimeMsPart"), expectedRefTimeMsPart  );
+
+	TInt expectedRefTimeSfn  ;
+	GetIntFromConfig(ConfigSection(), _L("expectedRefTimeSfn"), expectedRefTimeSfn  );
+
+	TBool expectedAcqAsstRequest;
+	GetBoolFromConfig(ConfigSection(), _L("expectedAcqAsstRequest"), expectedAcqAsstRequest);
+
+	TBool expectedIntegrityRequest;
+	GetBoolFromConfig(ConfigSection(), _L("expectedIntegrityRequest"), expectedIntegrityRequest);
+
+	TInt expectedAcqAsstTime ;
+	GetIntFromConfig(ConfigSection(), _L("expectedAcqAsstTime"), expectedAcqAsstTime );
+
+	TInt expectedModePrimaryCode ;
+	GetIntFromConfig(ConfigSection(), _L("expectedModePrimaryCode"), expectedModePrimaryCode );
+
+	TInt expectedModeCellId ;
+	GetIntFromConfig(ConfigSection(), _L("expectedModeCellId"), expectedModeCellId );
+
+	TBool expectedModeStatusRequest;
+	GetBoolFromConfig(ConfigSection(), _L("expectedModeStatusRequest"), expectedModeStatusRequest);
+
+	//Reference Time Data populated and status is false
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iReferencTime.iGpsWeek == expectedGpsWeek);		
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iReferencTime.iGpsTowOneMsec == expectedGpsTowOneMsce );
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iGpsAddlDataStatus.iReferenceTimeRequest == expectedReftimeRequest);	
+		
+	//	Acquisition Assistance Data populated and status is false
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iReferencTime.iUtranGpsRefTime.iLsPart == expectedRefTimeLsPart);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iReferencTime.iUtranGpsRefTime.iMsPart == expectedRefTimeMsPart);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iReferencTime.iUtranGpsRefTime.iSfn == expectedRefTimeSfn);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iGpsAddlDataStatus.iAcquisitionAssistanceReq == expectedAcqAsstRequest);
+	
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iGpsAddlDataStatus.iRealTimeIntegrityRequest == expectedIntegrityRequest);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iAcquisitionAssistance.iGpsReferenceTime == expectedAcqAsstTime	);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iAcquisitionAssistance.iUtranGpsReferenceTime.iPrimaryScramblingCode == expectedModePrimaryCode);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iAcquisitionAssistance.iUtranGpsReferenceTime.iCellParametersID == expectedModeCellId);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iReferencTime.iUtranGpsRefTime.iModeSpecificInfoStatus == expectedModeStatusRequest);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iReferencTime.iUtranGpsRefTime.iModeSpecificInfo.iPrimaryScramblingCode == expectedModeCellId);
+}
+
+
+void CEtelMMLbsTestStepBase::ValidateMCRefLocParams()
+	{
+	TInt expectedRefLocLatSign ;
+	GetIntFromConfig(ConfigSection(), _L("expectedRefLocLatSign"), expectedRefLocLatSign );
+
+	TInt expectedRefLocLongSign ;
+	GetIntFromConfig(ConfigSection(), _L("expectedRefLocLongSign"), expectedRefLocLongSign );
+
+	TBool expectedRefLocRequest;
+	GetBoolFromConfig(ConfigSection(), _L("expectedRefLocRequest"), expectedRefLocRequest);
+	
+	// Reference Location data populated and status is false
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iReferenceLocation.iLatitudeSign == DMMTSY_PHONE_LCS_MC_GPS_REFLOC_LATSIGN1);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iReferenceLocation.iLatitude == expectedRefLocLatSign);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iReferenceLocation.iLongitude == expectedRefLocLongSign) ;
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iGpsAddlDataStatus.iReferenceLocationRequest == expectedRefLocRequest);
+	}
+
+	
+void CEtelMMLbsTestStepBase::ValidateMCModelParams()
+	{
+	TInt expectedNavEphemeris ;
+	GetIntFromConfig(ConfigSection(), _L("expectedNavEphemeris"), expectedNavEphemeris );
+
+	TInt expectedNavSatId ;
+	GetIntFromConfig(ConfigSection(), _L("expectedNavSatId"), expectedNavSatId );
+
+	TBool expectedNavModelRequest;
+	GetBoolFromConfig(ConfigSection(), _L("expectedNavModelRequest"), expectedNavModelRequest);
+
+	//	NavigationModel data populated and status is false	
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iNavigationModel.iEphemerisParameter.iCodeOnL2 == expectedNavEphemeris);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iNavigationModel.iSatID == expectedNavSatId);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iNavigationModel.iSatelliteStatus == DMMTSY_PHONE_LCS_MC_GPS_NAVIGATION_SATSTATUS1);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iGpsAddlDataStatus.iNavigationModelRequest == expectedNavModelRequest);
+
+	TInt expectedIonModel ;
+	GetIntFromConfig(ConfigSection(), _L("expectedIonModel"), expectedIonModel );
+
+	TBool expectedIonModelRequest;
+	GetBoolFromConfig(ConfigSection(), _L("expectedIonModelRequest"), expectedIonModelRequest);
+	
+	//	Ionospheric data populated and status is false	
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iIonosphericModel.iAlfa1 == expectedIonModel);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iGpsAddlDataStatus.iIonosphericModelRequest == expectedIonModelRequest);	
+
+	TInt expectedUtcModel1 ;
+	GetIntFromConfig(ConfigSection(), _L("expectedUtcModel1"), expectedUtcModel1 );
+
+	TBool expectedUtcModelRequest;
+	GetBoolFromConfig(ConfigSection(), _L("expectedUtcModelRequest"), expectedUtcModelRequest);
+
+	//UTC data populated and status is false		
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iUtcModel.iA1 == expectedUtcModel1);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iGpsAddlDataStatus.iUtcModelRequest == expectedUtcModelRequest);
+	}
+
+
+void CEtelMMLbsTestStepBase::ValidateMCParams()
+	{
+
+	TBool isVelocityRequested;
+	GetBoolFromConfig(ConfigSection(), _L("velocityRequested"), isVelocityRequested);
+
+	TInt expectedGpsTow ;
+	GetIntFromConfig(ConfigSection(), _L("expectedGpsTow"), expectedGpsTow );
+
+	TBool expectedCorrectionRequest;
+	GetBoolFromConfig(ConfigSection(), _L("expectedCorrectionRequest"), expectedCorrectionRequest);
+
+	TInt expectedGpsAlmanac ;
+	GetIntFromConfig(ConfigSection(), _L("expectedGpsAlmanac"), expectedGpsAlmanac );
+
+	TBool expectedGpsAlmanacRequest;
+	GetBoolFromConfig(ConfigSection(), _L("expectedGpsAlmanacRequest"), expectedGpsAlmanacRequest);
+
+	TInt expectedBadSatList ;
+	GetIntFromConfig(ConfigSection(), _L("expectedBadSatList"), expectedBadSatList );
+
+	TInt expectedHorAccuracy ;
+	GetIntFromConfig(ConfigSection(), _L("expectedHorAccuracy"), expectedHorAccuracy );
+
+	TInt expectedVertAccuracy ;
+	GetIntFromConfig(ConfigSection(), _L("expectedVertAccuracy"), expectedVertAccuracy );
+
+	TBool expectedAddlAsstDataRequest;
+	GetBoolFromConfig(ConfigSection(), _L("expectedAddlAsstDataRequest"), expectedAddlAsstDataRequest);
+
+	TEST(iMeasurementControl.iVelocityRequested == isVelocityRequested);
+	TEST(iMeasurementControl.iMeasReportTransferMode == DMMTSY_PHONE_LCS_MC_RPTTRANSFERMODE);
+
+	//DGPS corrections data populated and status is false		
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iDgpsCorrections.iGpsTow == expectedGpsTow);	
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iGpsAddlDataStatus.iDgpsCorrectionsRequest == expectedCorrectionRequest);	
+			
+	//Almanac data populated and status is false
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iAlmanac.iWnA == expectedGpsAlmanac);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iGpsAddlDataStatus.iAlmanacRequest	== expectedGpsAlmanacRequest);
+	
+	//RealTime integrity data populated and status is false
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosGpsAssistanceData.iBadSatList[0] == expectedBadSatList);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosReportingQuantity.iHorzAccuracy == expectedHorAccuracy);
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosReportingQuantity.iVertAccuracy == expectedVertAccuracy);
+	//Additional Assistance Data is not required
+	TEST(iMeasurementControl.iMeasurementCommand.iSetup.iUePosReportingQuantity.iAddlAssistanceDataReq == expectedAddlAsstDataRequest);
+	}
+
+void CEtelMMLbsTestStepBase::SendCompleteMeasurementReport()
+{
+	TBool errorStatus;
+	GetBoolFromConfig(ConfigSection(), _L("ErrorStatus"), errorStatus);
+
+	TInt positionEstLatSign;
+	GetIntFromConfig(ConfigSection(), _L("PositionEstLatSign"), positionEstLatSign);
+
+	TInt velocityEstStatus;
+	GetIntFromConfig(ConfigSection(), _L("VelocityEstStatus"), velocityEstStatus);
+
+	TInt velocityEstHorzSpeed;
+	GetIntFromConfig(ConfigSection(), _L("VelocityEstHorzSpeed"), velocityEstHorzSpeed);
+
+	TInt velocityEstHorzBearing ;
+	GetIntFromConfig(ConfigSection(), _L("VelocityEstHorzBearing "), velocityEstHorzBearing );
+
+	TInt positionEstInfo1;
+	GetIntFromConfig(ConfigSection(), _L("PositionEstInfo1"), positionEstInfo1);
+
+	TInt refTimeLsPart;
+	GetIntFromConfig(ConfigSection(), _L("RefTimeLsPart"), refTimeLsPart);
+
+	TInt refTimeMsPart;
+	GetIntFromConfig(ConfigSection(), _L("RefTimeMsPart"), refTimeMsPart);
+
+	TInt refTimeSfn;
+	GetIntFromConfig(ConfigSection(), _L("RefTimeSfn"), refTimeSfn);
+
+	TBool modeStatusRequest;
+	GetBoolFromConfig(ConfigSection(), _L("ModeStatusRequest"), modeStatusRequest);
+
+	TInt modeTDDId;
+	GetIntFromConfig(ConfigSection(), _L("ModeTDDId"), modeTDDId);
+
+	TInt positionEstInfo5;
+	GetIntFromConfig(ConfigSection(), _L("PositionEstInfo5"), positionEstInfo5);
+
+	TInt positionEstElipseLat;
+	GetIntFromConfig(ConfigSection(), _L("PositionEstElipseLat"), positionEstElipseLat);
+
+	TInt positionEstElipseLong;
+	GetIntFromConfig(ConfigSection(), _L("PositionEstElipseLong"), positionEstElipseLong);
+
+	TInt paramListSatId;
+	GetIntFromConfig(ConfigSection(), _L("ParamListSatId"), paramListSatId);
+
+	TInt paramListGpsChips;
+	GetIntFromConfig(ConfigSection(), _L("ParamListGpsChips"), paramListGpsChips);
+
+	TInt paramListPathInd;
+	GetIntFromConfig(ConfigSection(), _L("ParamListPathInd"), paramListPathInd);
+
+	if(positionEstInfo1 == 1)
+		iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iUePosPositionEstimateInfo.iPosEstimateStatus = DMMTSY_PHONE_LCS_MC_GPS_POSESTINFO1;
+	if(positionEstInfo5 == 5)
+		iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iUePosPositionEstimateInfo.iPosEstimateStatus = DMMTSY_PHONE_LCS_MC_GPS_POSESTINFO5;
+	if(positionEstLatSign == 1)
+		iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iUePosPositionEstimateInfo.iPostionEstimate.iEllipsoidPoint.iLatitudeSign = DMMTSY_PHONE_LCS_MC_GPS_POSEST_ELIPSOIDPT_LATSIGN1;
+    iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iPosErrorStatus = errorStatus;
+    
+	//velocity estimate status is EHorzVelPresent, send report with Horiontal velocity
+	if(velocityEstStatus == 1)
+    	iMeasurementReport.iVelEstimateStatus = DMMTSY_PHONE_LCS_MC_GPS_VELOCITYEST_STATUS1;
+    iMeasurementReport.iVelocityEstimate.iHorzVelocity.iHorzSpeed = velocityEstHorzSpeed;
+    iMeasurementReport.iVelocityEstimate.iHorzVelocity.iBearing = velocityEstHorzBearing;
+	
+	iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iUePosPositionEstimateInfo.iPosEstimateRefTime.iUtranGpsRefTimeResult.iLsPart = refTimeLsPart;
+	iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iUePosPositionEstimateInfo.iPosEstimateRefTime.iUtranGpsRefTimeResult.iMsPart = refTimeMsPart;	
+	iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iUePosPositionEstimateInfo.iPosEstimateRefTime.iUtranGpsRefTimeResult.iSfn =	refTimeSfn;
+	
+	//Measurement mode status is false so send report with iTddRefID
+	iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iUePosPositionEstimateInfo.iPosEstimateRefTime.iUtranGpsRefTimeResult.iGpsMeasModeStatus = modeStatusRequest;
+	iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iUePosPositionEstimateInfo.iPosEstimateRefTime.iUtranGpsRefTimeResult.iGpsMeasModeSpecificInfo.iTddRefID=modeTDDId;
+
+	//Position estimate status is EEllipsoidPointPresent, send report containing position estimate for Ellipsoid point
+	iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iUePosPositionEstimateInfo.iPostionEstimate.iEllipsoidPoint.iLatitude = 	positionEstElipseLat;
+	iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iUePosPositionEstimateInfo.iPostionEstimate.iEllipsoidPoint.iLongitude = positionEstElipseLong;
+	
+ 	iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iUePosGpsMeasurement.iGpsMeasurementParamList[0].iSatID = paramListSatId;
+ 	iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iUePosGpsMeasurement.iGpsMeasurementParamList[0].iFractionalGpsChips = paramListGpsChips; 
+ 	if(paramListPathInd ==1)
+ 		iMeasurementReport.iMeasuredResults.iTUePosMeasuredResults.iUePosGpsMeasurement.iGpsMeasurementParamList[0].iMultipathIndicator = DMMTSY_PHONE_LCS_MC_GPS_PARAMLIST_PATHINDICATOR1 ;
+}
+
+void CEtelMMLbsTestStepBase::SetMolrParams()
+{
+	TInt domain;
+	GetIntFromConfig(ConfigSection(), _L("Domain"), domain);
+	
+	TInt molrType;
+	GetIntFromConfig(ConfigSection(), _L("Molrtype"), molrType);
+
+	TInt locationestimationtype;
+	GetIntFromConfig(ConfigSection(), _L("locationestimationtype"), locationestimationtype);
+
+	TInt locationMethod;
+	GetIntFromConfig(ConfigSection(), _L("LocationMethods"), locationMethod);
+
+	TInt horizontalAccuracy;
+	GetIntFromConfig(ConfigSection(), _L("HorizontalAccuracy"), horizontalAccuracy);
+
+	TInt verticalAccuracy;
+	GetIntFromConfig(ConfigSection(), _L("VerticalAccuracy"), verticalAccuracy);
+
+	TInt responseTime;
+	GetIntFromConfig(ConfigSection(), _L("ResponseTime"), responseTime);
+
+	TPtrC gpsAssistanceData;
+	GetStringFromConfig(ConfigSection(), _L("GPSAssistanceData"), gpsAssistanceData );
+
+	TPtrC expectedLocationEstimate ;
+	TBool exists1 = GetStringFromConfig(ConfigSection(), _L("expectedLocationEstimate"), expectedLocationEstimate );
+
+	TPtrC expectedVelocityEstimate;
+	GetStringFromConfig(ConfigSection(), _L("expectedVelocityEstimate"), expectedVelocityEstimate );
+
+	TPtrC expectedMolrError;
+	GetStringFromConfig(ConfigSection(), _L("expectedMolrError"), expectedMolrError );
+
+	TPtrC invalidClientIdFlag;
+	TBool existsInvalidClientIdFlag = GetStringFromConfig(ConfigSection(), _L("InvalidClientIdFlag"), invalidClientIdFlag);
+	TInt ret;	
+	//set domain to Packet Switched
+	if (domain == 1)
+		{
+  		ret = iLocationSvc.SetLcsDomain(DMMTSY_SETLCS_DOMAIN1);		
+		}
+	else
+		{
+  		ret = iLocationSvc.SetLcsDomain(DMMTSY_SETLCS_DOMAIN2);		
+		}
+	
+  	TEST(ret == KErrNone);
+ 
+
+	if(molrType == 1)
+		iStartMolr.iMolrType=DMMTSY_MOLR_TYPE1;
+	if(locationestimationtype == 1)
+		iStartMolr.iMolrLocationEstimateType = DMMTSY_MOLR_LOCATION_ESTIMATION_TYPE1;
+	if(locationMethod == 3)
+		iStartMolr.iLocationMethod=DMMTSY_MOLR_LOCATION_METHOD3;
+	if(responseTime == 1)	
+		iStartMolr.iQos.iResponseTime = DMMTSY_MOLR_RESPONSE_TIME1;
+	
+	iStartMolr.iQos.iHorizontalAccuracy = horizontalAccuracy;
+	iStartMolr.iQos.iVerticalAccuracy = verticalAccuracy;
+	iStartMolr.iGpsAssistanceData.Copy(gpsAssistanceData);
+	if(existsInvalidClientIdFlag)
+			iStartMolr.iLcsClientExternalID=DMMTSY_INVALID_EXTERNAL_CLIENT_ID;	
+}
+
+
+ void CEtelMMLbsTestStepBase::OOMTest_LBS()
+ {
+ 	const TInt KMaxTests = 1000;	
+ 	TBool oomAvailable = EFalse; 
+	TInt failure=1;
+ 	TRequestStatus mtlrStatus;
+	TRequestStatus reqStatus;
+    RMobileLocationServices::TNotifyMtlrV7   iNotifyMtlr;
+	iNotifyMtlr.iLocationInfo.iLcsClientName.iLcsDataCodingScheme = DMMTSY_DATA_CODING_SCHEME1;
+	RMobileLocationServices::TNotifyMtlrV7Pckg  notifyMtlrPckg(iNotifyMtlr);
+	while (!oomAvailable  && failure < KMaxTests)
+		{
+	  	iTelServer.__DbgFailNext(failure);
+      	iLocationSvc.NotifyMtlr(mtlrStatus,notifyMtlrPckg);
+   		User::WaitForRequest(mtlrStatus);
+   		INFO_PRINTF2(_L("Notify MTLR %d "),mtlrStatus.Int()); 
+		TEST(mtlrStatus==KErrNone);
+		if(mtlrStatus!=KErrNone)	
+			{
+			INFO_PRINTF2(_L("Failing after %d Allocs"),failure); 
+			} 
+		else 
+			{ 
+			INFO_PRINTF2(_L("Passing after %d Allocs"),failure); 
+			} 
+		iTelServer.__DbgFailNextAvailable(oomAvailable); 
+		failure++; 
+		}
+		
+	// KMaxTests is used to stop the above while statement looping
+	// indefinitely. If KMaxTests is reached then we can guess that something
+	// has gone wrong and the test should be failed.
+	TESTCHECKCONDITION(failure < KMaxTests);
+
+ }
+ 
+void CEtelMMLbsTestStepBase::OOMTest_DialEmergencyCall()
+ {
+ 	const TInt KMaxTests = 1000;	
+ 	RMobilePhone mmPhone;
+	TInt ret=mmPhone.Open(iTelServer,DMMTSY_PHONE_NAME);
+	TEST(ret==KErrNone);
+	RMobileLine mmLine;
+	ret=mmLine.Open(mmPhone,DMMTSY_LINE_VOICE_NAME);
+    TEST(ret==KErrNone);
+	RMobileCall mmCall;
+	TName callName;
+	ret=mmCall.OpenNewCall(mmLine,callName);
+    TEST(ret==KErrNone);
+	TRequestStatus reqStatus;
+	TBuf<RMobileENStore::KEmergencyNumberSize> aNumber(DMMTSY_EN_STORE_AMBULANCE_NUM);
+
+	TBool oomAvailable = EFalse; 
+	TInt failure=1;
+	while (!oomAvailable  && failure < KMaxTests)
+		{
+	  	iTelServer.__DbgFailNext(failure);
+     	mmCall.DialEmergencyCall(reqStatus, aNumber);
+   		User::WaitForRequest(reqStatus);
+		INFO_PRINTF2(_L("mmCall.DialEmergencyCall(reqStatus, aNumber);%d "),reqStatus.Int());
+		TEST(reqStatus==KErrNone); 
+		if(reqStatus!=KErrNone)	
+			{
+			INFO_PRINTF2(_L("Failing after %d Allocs"),failure); 
+			} 
+		else 
+			{ 
+			INFO_PRINTF2(_L("Passing after %d Allocs"),failure); 
+			} 
+
+		iTelServer.__DbgFailNextAvailable(oomAvailable); 
+		failure++; 
+		}
+		
+	// KMaxTests is used to stop the above while statement looping
+	// indefinitely. If KMaxTests is reached then we can guess that something
+	// has gone wrong and the test should be failed.
+	TESTCHECKCONDITION(failure < KMaxTests);
+	
+	mmCall.Close();
+	mmLine.Close();
+	mmPhone.Close();
+ }