--- a/locationmgmt/locmonitor/test/LocInfoConversionUnitTest/src/LocInfoConversionUnitTestBlocks.cpp Wed Sep 15 00:02:22 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2017 +0,0 @@
-/*
-* 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 "LocInfoConversionUnitTest.h"
-#include "rlbslocmonitorsession.h"
-#include "rlbslocinfoconverter.h"
-#include "rlbslocmonitorareapositioner.h"
-#include <lbs/lbslocationinfo.h>
-#include <lbs/lbslocationcommon.h>
-#include "lbsposition.h"
-
-
-// Plug in
-const TInt KDummyPluginId = 537007117;
-const TInt KSuplPluginId = 537028467;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::Delete
-// Delete here all resources allocated and opened from test methods.
-// Called from destructor.
-// -----------------------------------------------------------------------------
-//
-void CLocInfoConversionUnitTest::Delete()
- {
-
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RunMethodL
-// Run specified method. Contains also table of test mothods and their names.
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RunMethodL(
- CStifItemParser& aItem )
- {
-
- static TStifFunctionInfo const KFunctions[] =
- {
- ENTRY( "UnitTest1", CLocInfoConversionUnitTest::RLbsLocInfoConverter_Connect1L ),
- ENTRY( "UnitTest2", CLocInfoConversionUnitTest::RLbsLocInfoConverter_Connect2L ),
- ENTRY( "UnitTest3", CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo1L ),
- ENTRY( "UnitTest4", CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo2L ),
- ENTRY( "UnitTest5", CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo3L ),
- ENTRY( "UnitTest6", CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo4L ),
- ENTRY( "UnitTest7", CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo5L ),
- ENTRY( "UnitTest8", CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo6L ),
- ENTRY( "UnitTest9", CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo7L ),
- ENTRY( "UnitTest10", CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo8L ),
- ENTRY( "UnitTest11", CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo9L ),
- ENTRY( "UnitTest12", CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo10L ),
- ENTRY( "UnitTest13", CLocInfoConversionUnitTest::RLbsLocInfoConverter_Cancel1L ),
- ENTRY( "UnitTest14", CLocInfoConversionUnitTest::RLbsLocInfoConverter_Cancel2L ),
- ENTRY( "UnitTest15", CLocInfoConversionUnitTest::RLbsLocInfoConverter_Cancel3L ),
- ENTRY( "UnitTest16", CLocInfoConversionUnitTest::RLbsLocInfoConverter_Cancel4L ),
- };
-
- const TInt count = sizeof( KFunctions ) /
- sizeof( TStifFunctionInfo );
-
- return RunInternalL( KFunctions, count, aItem );
-
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_Connect1
-// simple session and subsession.
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_Connect1L(CStifItemParser& /*aItem*/ )
- {
- TInt error;
- RLbsLocMonitorSession locMonitorSession;
- error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
- RLbsLocInfoConverter locInfoConverter;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
- locInfoConverter.Close();
- CleanupStack::PopAndDestroy( 2 ); // locInfoConverter,locMonitorSession
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_Connect2
-// Opening multiple subsession from single session
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_Connect2L(CStifItemParser& /*aItem*/ )
- {
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
- RLbsLocInfoConverter locInfoConverter;
- CleanupClosePushL( locInfoConverter );
- RLbsLocInfoConverter locInfoConverter1;
- CleanupClosePushL( locInfoConverter1 );
-
- locInfoConverter.OpenL( locMonitorSession );
- locInfoConverter1.OpenL( locMonitorSession );
- locInfoConverter.Close();
- locInfoConverter1.Close();
-
- CleanupStack::PopAndDestroy( 3 ); //locInfoConverter1,locInfoConverter and
- //locMonitorSession
- return KErrNone;
- }
-
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo1L
-// This test case tests the simple and corner case related
-// to RLbsLocInfoConverter::ConvertLocationInfoL
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo1L(CStifItemParser& /*aItem*/ )
- {
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
- RLbsLocInfoConverter locInfoConverter;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
-
- TUid conversionModuleId = TUid::Uid( KDummyPluginId );
-
- /**
- * Case 1: where NULL pointer is passed instead of location info
- */
- error = KErrNone;
- CLbsLocationInfo* locationInfo = CLbsLocationInfo::NewL();
- CleanupStack::PushL( locationInfo );
- TRAP( error,locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,ELbsConversionOutputPosition,
- conversionModuleId,iConversionHandler->iStatus ));
- if( error!= KErrArgument )
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * Case 2: where we pass location info.This is
- * just test where this method completes without leaving.
- */
-
- // Here we append gsmcell info object to the existing location info object.
- AppendAreaInfoObjectToLocationInfoL( locationInfo,ELbsAreaGsmCellInfoClass );
-
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
- locInfoConverter.CancelConvertLocationInfo();
- iConversionHandler->Cancel();
- CleanupStack::PopAndDestroy( locationInfo );
-
- /**
- * Case 3. Empty location info array is passed.
- */
- error = KErrNone;
- RPointerArray<CLbsLocationInfoBase> locationInfoArray;
- CleanupClosePushL( locationInfoArray );
- TRAP( error,locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus ));
-
- if( error != KErrArgument )
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * Case 4: where we pass location info array.This is
- * just test where this method completes without leaving.
- */
-
- // Here we create locationInfo object with gsm cell info object contained in it.
- CLbsLocationInfo* locationInfo1 = CreateLocationInfoObjectLC( ELbsAreaGsmCellInfoClass );
- locationInfoArray.Append( locationInfo1 );
-
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
- locInfoConverter.CancelConvertLocationInfo();
- iConversionHandler->Cancel();
-
- CleanupStack::Pop( 2 ); //locationInfo1,locationInfoArray
- locationInfoArray.ResetAndDestroy();
- CleanupStack::PopAndDestroy( 2 ); // locInfoConverter,locMonitorSession
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo2L
-// This test case tests ConvertLocationInfo when expected information is
-// of type ECoordinate
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo2L(CStifItemParser& /*aItem*/ )
- {
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
- RLbsLocInfoConverter locInfoConverter;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray;
- CleanupClosePushL( locationInfoArray );
-
- TUid conversionModuleId = TUid::Uid( KDummyPluginId );
-
- /**
- * case 1: Any information regarding the area is passed and
- * coordinate corresponding to that area info is expected.
- */
-
- // Here GSM cell info is passed as input area.
- CLbsLocationInfo* locationInfo = CreateLocationInfoObjectLC( ELbsAreaGsmCellInfoClass );
-
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,ELbsConversionOutputPosition
- ,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
- CActiveScheduler::Start();
-
- error = iConversionHandler->iStatus.Int();
- // If the conversion status is KErrNone, check for the corresponding
- // converted info.
- if( error == KErrNone )
- {
- CheckPositionConvertedInfoL( locationInfo );
- }
- // KErrNotSupported and KErrNotFound are allowed error codes.
- else if( !( error == KErrNotSupported || error == KErrNotFound ) )
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * case 2: Pass any information related to multiple area and we expect coordinate information
- * corresponding to each area information.
- */
-
- // Create one more location info object which holds wlan info for which corresponding coordinate
- // is expected.
- CLbsLocationInfo* locationInfo2 = CreateLocationInfoObjectLC( ELbsAreaWlanInfoClass );
-
- // Before pushing location info object, remove the converted info from it.
- // We had requested for coordinate info, hence we need to clear it before
- // we use it as input for next conversion.
- locationInfo->ResetAreaInfo( CLbsLocationInfo::ELbsPosInfo );
- locationInfoArray.Append( locationInfo );
-
- locationInfoArray.Append( locationInfo2 );
-
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- error = iConversionHandler->iStatus.Int();
- // Iterate through the array and check for converted info.
- if( error == KErrNone )
- {
- for( TInt i=0;i<locationInfoArray.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckPositionConvertedInfoL( locationInfo );
- }
- }
- // KErrNotSupported and KErrNotFound are allowed error codes.
- else if( !( error == KErrNotSupported || error == KErrNotFound ) )
- {
- User::Leave( KErrArgument );
- }
-
- CleanupStack::Pop( 3 ); // locationInfo,locationInfo1,locationInfoArray
- locationInfoArray.ResetAndDestroy();
- CleanupStack::PopAndDestroy( 2 ); // locInfoConverter,locMonitorSession
- return KErrNone;
- }
-
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo3L
-// This test case tests ConvertLocationInfo when expected information is
-// of type EGsm
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo3L(CStifItemParser& /*aItem*/ )
- {
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
- RLbsLocInfoConverter locInfoConverter;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray;
- CleanupClosePushL( locationInfoArray );
-
- TUid conversionModuleId = TUid::Uid( KDummyPluginId );;
-
- /**
- * case 1: Pass any area info and we expect GSM cell info
- */
-
- // Here WLAN info is passed as input area.
- CLbsLocationInfo* locationInfo = CreateLocationInfoObjectLC( ELbsAreaWlanInfoClass );
-
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionCacheOnly,ELbsConversionOutputGsm,
- conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- error = iConversionHandler->iStatus.Int();
- // If the conversion status is success, check for the corresponding
- // converted info.
- if( error == KErrNone )
- {
- CheckGsmCellConvertedInfoL( locationInfo );
- }
- // KErrNotSupported and KErrNotFound are allowed error codes.
- else if( !( error == KErrNotSupported || error == KErrNotFound ) )
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * case 2: Pass any information related to multiple area and we expect GSM cell info
- * corresponding to each area information.
- */
-
- // Create one more location info object which holds coordinate info for which corresponding GSM
- // cell info is expected.
- CLbsLocationInfo* locationInfo1 = CreateLocationInfoObjectLC( ELbsAreaPositionInfoClass );
-
- // Before pushing location info object, remove the converted info from it.
- // We had requested for GSM cell info, hence we need to clear it before
- // we use it for next conversion.
- locationInfo->ResetAreaInfo( CLbsLocationInfo::ELbsGsmInfo );
- locationInfoArray.Append( locationInfo );
- locationInfoArray.Append( locationInfo1 );
-
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionCacheOnly,ELbsConversionOutputGsm,
- conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- error = iConversionHandler->iStatus.Int();
- // Iterate through the array and check for converted info.
- if( error == KErrNone )
- {
- for( TInt i=0;i<locationInfoArray.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckGsmCellConvertedInfoL( locationInfo );
- }
- }
- // KErrNotSupported and KErrNotFound are allowed error codes.
- else if( !( error == KErrNotSupported || error == KErrNotFound ) )
- {
- User::Leave( KErrArgument );
- }
- CleanupStack::Pop( 3 ); // locationInfo,locationInfo1,locationInfoArray
- locationInfoArray.ResetAndDestroy();
- CleanupStack::PopAndDestroy( 2 ); // locInfoConverter,locMonitorSession
- return KErrNone;
- }
-
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo4L
-//This test case tests ConvertLocationInfo when expected information is
-// of type EWcdma
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo4L(CStifItemParser& /*aItem*/ )
- {
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
- RLbsLocInfoConverter locInfoConverter;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray;
- CleanupClosePushL( locationInfoArray );
-
- TUid conversionModuleId = TUid::Uid( KDummyPluginId );
-
- /**
- * case 1: Pass any area info pointer and we expect EWcdma type
- */
- CLbsLocationInfo* locationInfo = CreateLocationInfoObjectLC( ELbsAreaPositionInfoClass );
-
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionSilent,ELbsConversionOutputWcdma,
- conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- error = iConversionHandler->iStatus.Int();
- // If the conversion status is success, check for the corresponding
- // converted info.
- if( error == KErrNone )
- {
- CheckWcdmaCellConvertedInfoL( locationInfo );
- }
- // KErrNotSupported and KErrNotFound are allowed error codes.
- else if( !( error == KErrNotSupported || error == KErrNotFound ) )
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * case 2: Pass any information related to multiple area and we expect wcdma information
- * corresponding to each area information.
- */
-
- // Create one more location info object which holds wlan info for which corresponding WCDMA
- // cell info is expected.
- CLbsLocationInfo* locationInfo1 = CreateLocationInfoObjectLC( ELbsAreaWlanInfoClass );
-
- // Before pushing location info object, remove the converted info from it.
- // We had requested for WCDMA info, hence we need to clear it before
- // we use it as input for next conversion.
- locationInfo->ResetAreaInfo( CLbsLocationInfo::ELbsWcdmaInfo );
- locationInfoArray.Append( locationInfo );
- locationInfoArray.Append( locationInfo1 );
-
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionSilent,ELbsConversionOutputWcdma,
- conversionModuleId,iConversionHandler->iStatus );
-
- iConversionHandler->Start();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- error = iConversionHandler->iStatus.Int();
- // Iterate through the array and check for converted info.
- if( error == KErrNone )
- {
- for( TInt i=0;i<locationInfoArray.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckWcdmaCellConvertedInfoL( locationInfo );
- }
- }
- // KErrNotSupported and KErrNotFound are allowed error codes.
- else if( !( error == KErrNotSupported || error == KErrNotFound ) )
- {
- User::Leave( KErrArgument );
- }
-
- CleanupStack::Pop( 3 ); // locationInfo,locationInfo1,locationInfoArray
- locationInfoArray.ResetAndDestroy();
- CleanupStack::PopAndDestroy( 2 ); // locInfoConverter,locMonitorSession
- return KErrNone;
- }
-
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo5L
-// This test case tests ConvertLocationInfo when expected information is
-// of type EWlan
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo5L(CStifItemParser& /*aItem*/ )
- {
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
- RLbsLocInfoConverter locInfoConverter;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray;
- CleanupClosePushL( locationInfoArray );
-
- TUid conversionModuleId = TUid::Uid( KDummyPluginId );
-
- /**
- * case 1: Pass any area info pointer and we expect EWlan type
- */
- CLbsLocationInfo* locationInfo = CreateLocationInfoObjectLC( ELbsAreaWcmdaCellInfoClass );
-
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionCacheOnly,ELbsConversionOutputWlan,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // If the conversion status is success, check for the corresponding
- // converted info.
- if( iConversionHandler->iStatus == KErrNone )
- {
- CheckWlanConvertedInfoL( locationInfo );
- }
- // KErrNotSupported and KErrNotFound are allowed error codes.
- else if( !( iConversionHandler->iStatus == KErrNotSupported || iConversionHandler->iStatus == KErrNotFound ) )
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * Case 2: Pass any information related to multiple area and we expect Wlan info
- * corresponding to each area information.
- */
-
- // Create one more location info object which holds coordinate info for which corresponding
- // Wlan info is expected.
- CLbsLocationInfo* locationInfo1 = CreateLocationInfoObjectLC( ELbsAreaPositionInfoClass );
-
- // Before pushing location info object, remove the converted info from it.
- // We had requested for wlan info, hence we need to clear it before
- // we use it for next conversion.
- locationInfo->ResetAreaInfo( CLbsLocationInfo::ELbsWlanInfo );
- locationInfoArray.Append( locationInfo );
- locationInfoArray.Append( locationInfo1 );
-
- TRequestStatus status;
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionCacheOnly,ELbsConversionOutputWlan,conversionModuleId,iConversionHandler->iStatus);
- iConversionHandler->Start();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Iterate through the array and check for converted info.
- if( iConversionHandler->iStatus == KErrNone )
- {
- for( TInt i=0;i<locationInfoArray.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckWlanConvertedInfoL( locationInfo );
- }
- }
- // KErrNotSupported and KErrNotFound are allowed error codes.
- else if( !( iConversionHandler->iStatus == KErrNotSupported || iConversionHandler->iStatus == KErrNotFound ) )
- {
- User::Leave( KErrArgument );
- }
- CleanupStack::Pop( 3 ); // locationInfo,locationInfo1,locationInfoArray
- locationInfoArray.ResetAndDestroy();
- CleanupStack::PopAndDestroy( 2 ); // locInfoConverter,locMonitorSession
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo6L
-// This test case tests the scenario when user tries to request new single
-// conversion without waiting for completion of previous one.
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo6L(CStifItemParser& /*aItem*/ )
- {
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
- RLbsLocInfoConverter locInfoConverter;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
- TUid conversionModuleId = TUid::Uid( KDummyPluginId );
-
- CLbsLocationInfo* locationInfo = CreateLocationInfoObjectLC( ELbsAreaGsmCellInfoClass );
-
- // Here in this case input area doesnt matter
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- CLbsLocationInfo* locationInfo1 = CreateLocationInfoObjectLC( ELbsAreaWcmdaCellInfoClass );
-
- error = KErrNone;
- TRequestStatus status;
- TestModuleIf().SetExitReason( CTestModuleIf::EPanic, 0);
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo1,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,status );
-
- CleanupStack::PopAndDestroy( 2 ); // locationInfo1,locationInfo
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo7L
-// This test case tests the scenario when user tries to request new batch
-// conversion without waiting for completion of previous one.
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo7L(CStifItemParser& /*aItem*/ )
- {
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
- RLbsLocInfoConverter locInfoConverter;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
- TUid conversionModuleId = TUid::Uid( KNullUidValue );;
-
- // Here in this case input area doesnt matter
- RPointerArray<CLbsLocationInfoBase> locationInfoArray;
- CleanupClosePushL( locationInfoArray );
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray1;
- CleanupClosePushL( locationInfoArray1 );
-
- CLbsLocationInfo* locationInfo = CreateLocationInfoObjectLC( ELbsAreaGsmCellInfoClass );
-
- CLbsLocationInfo* locationInfo1 = CreateLocationInfoObjectLC( ELbsAreaWlanInfoClass );
-
- locationInfoArray.Append( locationInfo );
-
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId ,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- locationInfoArray1.Append( locationInfo1 );
-
- TRequestStatus status;
- TestModuleIf().SetExitReason( CTestModuleIf::EPanic, 0);
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray1,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,status );
-
- CleanupStack::Pop(4); // locationInfo1,locationInfoArray1,locationInfo,locationInfoArray
- locationInfoArray.ResetAndDestroy();
- locationInfoArray1.ResetAndDestroy();
- CleanupStack::PopAndDestroy( 2 ); // locInfoConverter,locMonitorSession
- return KErrNone;
- }
-
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo8L
-// This test case tests the scenario when user tries to request two conversion
-// using two subsessions simultaneously specifying same plugin.
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo8L(CStifItemParser& /*aItem*/ )
- {
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
-
- // Here we need to open two subsessions.
- RLbsLocInfoConverter locInfoConverter,locInfoConverter1;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
- CleanupClosePushL( locInfoConverter1 );
- locInfoConverter1.OpenL( locMonitorSession );
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray;
- CleanupClosePushL( locationInfoArray );
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray1;
- CleanupClosePushL( locationInfoArray1 );
-
- TUid conversionModuleId = TUid::Uid( KDummyPluginId );
-
- /**
- * Case 1: Users tries to request 2 simultaneous single conversion
- * using 2 subsession specifying same conversion uid.
- */
-
- // Here type of area input doesnt matter.
- CLbsLocationInfo* locationInfo = CreateLocationInfoObjectLC( ELbsAreaGsmCellInfoClass );
-
- CLbsLocationInfo* locationInfo1 = CreateLocationInfoObjectLC( ELbsAreaGsmCellInfoClass );
-
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- locInfoConverter1.ConvertLocationInfoL(
- *locationInfo1,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler1->iStatus );
- iConversionHandler1->Start();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Here we need to wait till both the request completes.Hence we need to block it once again
- // till the 2nd request completes.
- if( iConversionHandler->iStatus.Int() == KRequestPending ||
- iConversionHandler1->iStatus.Int() == KRequestPending )
- {
- CActiveScheduler::Start();
- }
-
- // Check the converted values in both the conversions.
- error = iConversionHandler->iStatus.Int();
- if( error == KErrNone )
- {
- CheckPositionConvertedInfoL( locationInfo );
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
- error = iConversionHandler1->iStatus.Int();
- if( error == KErrNone )
- {
- CheckPositionConvertedInfoL( locationInfo1 );
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * Case 2: Users tries to request 2 simultaneous bulk conversion
- * using 2 subsession specifying same conversion uid.
- */
-
- // Before we append the location info object to the info array,
- // we need to clear the converted info in each object.
- locationInfo->ResetAreaInfo( CLbsLocationInfo::ELbsPosInfo);
- locationInfo1->ResetAreaInfo( CLbsLocationInfo::ELbsPosInfo );
-
- locationInfoArray.Append( locationInfo );
- locationInfoArray1.Append( locationInfo1 );
-
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- locInfoConverter1.ConvertLocationInfoL(
- locationInfoArray1,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler1->iStatus );
- iConversionHandler1->Start();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Here we need to wait till both the request completes.Hence we need to block it once again
- // till the 2nd request completes.
- if( iConversionHandler->iStatus.Int() == KRequestPending ||
- iConversionHandler1->iStatus.Int() == KRequestPending )
- {
- CActiveScheduler::Start();
- }
-
- // Check the converted values in both the conversions.
- // Iterate through the array and check for converted info.
- error = iConversionHandler->iStatus.Int();
- if( error == KErrNone )
- {
- for( TInt i=0;i<locationInfoArray.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckPositionConvertedInfoL( locationInfo );
- }
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
- error = iConversionHandler1->iStatus.Int();
- if( error == KErrNone )
- {
- for( TInt i=0;i<locationInfoArray1.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray1[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckPositionConvertedInfoL( locationInfo );
- }
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
- CleanupStack::Pop(4); // locationInfo1,locationInfoArray1,locationInfo,locationInfoArray
- locationInfoArray.ResetAndDestroy();
- locationInfoArray1.ResetAndDestroy();
- CleanupStack::PopAndDestroy( 3 ); // locInfoConverter,locInfoConverter1,locMonitorSession
- return KErrNone;
- }
-
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo9L
-// This test case tests the scenario when user tries to request two conversion
-// using two subsessions simultaneously specifying different plugin.
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo9L(CStifItemParser& /*aItem*/ )
- {
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
-
- // Here we need two subsessions
- RLbsLocInfoConverter locInfoConverter,locInfoConverter1;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
- CleanupClosePushL( locInfoConverter1 );
- locInfoConverter1.OpenL( locMonitorSession );
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray;
- CleanupClosePushL( locationInfoArray );
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray1;
- CleanupClosePushL( locationInfoArray1 );
-
- TUid conversionModuleId1 = TUid::Uid( KDummyPluginId );
- TUid conversionModuleId2 = TUid::Uid( KSuplPluginId );
-
- /**
- * Case 1: Users tries to request 2 simultaneous single conversion
- * using 2 subsession specifying different conversion uid.
- */
-
- CLbsLocationInfo* locationInfo = CreateLocationInfoObjectLC( ELbsAreaWcmdaCellInfoClass );
-
- CLbsLocationInfo* locationInfo1 = CreateLocationInfoObjectLC( ELbsAreaWlanInfoClass );
-
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId1,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- locInfoConverter1.ConvertLocationInfoL(
- *locationInfo1,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId2,iConversionHandler1->iStatus );
- iConversionHandler1->Start();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Here we need to wait till both the request completes.Hence we need to block it once again
- // till the 2nd request completes.
- if( iConversionHandler->iStatus.Int() == KRequestPending ||
- iConversionHandler1->iStatus.Int() == KRequestPending )
- {
- CActiveScheduler::Start();
- }
-
- // Check the converted values in both the conversions.
- error = iConversionHandler->iStatus.Int();
- if( error == KErrNone )
- {
- CheckPositionConvertedInfoL( locationInfo );
- }
- else if( !( error == KErrNotFound || error == KErrNotSupported ) )
- {
- User::Leave( KErrArgument );
- }
-
- error = iConversionHandler1->iStatus.Int();
- if( error == KErrNone )
- {
- CheckPositionConvertedInfoL( locationInfo1 );
- }
- else if( !( error == KErrNotFound || error == KErrNotSupported ) )
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * Case 2: Users tries to request 2 simultaneous bulk conversion
- * using 2 subsession specifying same conversion uid.
- */
-
- // Before we append the location info object to the info array,
- // we need to clear the converted info in each object.
- locationInfo->ResetAreaInfo( CLbsLocationInfo::ELbsPosInfo );
- locationInfo1->ResetAreaInfo( CLbsLocationInfo::ELbsPosInfo );
-
- locationInfoArray.Append( locationInfo );
- locationInfoArray1.Append( locationInfo1 );
-
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId1,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- locInfoConverter1.ConvertLocationInfoL(
- locationInfoArray1,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId2,iConversionHandler1->iStatus );
- iConversionHandler1->Start();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Here we need to wait till both the request completes.Hence we need to block it once again
- // till the 2nd request completes.
- if( iConversionHandler->iStatus.Int() == KRequestPending ||
- iConversionHandler1->iStatus.Int() == KRequestPending )
- {
- CActiveScheduler::Start();
- }
-
- // Check the converted values in both the conversions.
- // Iterate through the array and check for converted info.
- error = iConversionHandler->iStatus.Int();
- if( error == KErrNone )
- {
- for( TInt i=0;i<locationInfoArray.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckPositionConvertedInfoL( locationInfo );
- }
- }
- else if( !( error == KErrNotFound || error == KErrNotSupported ) )
- {
- User::Leave( KErrArgument );
- }
-
- error = iConversionHandler1->iStatus.Int();
- if( error == KErrNone )
- {
- for( TInt i=0;i<locationInfoArray1.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray1[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckPositionConvertedInfoL( locationInfo );
- }
- }
- else if( !( error == KErrNotFound || error == KErrNotSupported ) )
- {
- User::Leave( KErrArgument );
- }
-
-
- CleanupStack::Pop(4); // locationInfo1,locationInfoArray1,locationInfo,locationInfoArray
- locationInfoArray.ResetAndDestroy();
- locationInfoArray1.ResetAndDestroy();
- CleanupStack::PopAndDestroy( 3 ); // locInfoConverter,locInfoConverter1,locMonitorSession
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo10L
-// This test case tests following unsuccessful conversion scenarios:
-// 1. Conversion preference not supported by plugin.
-// 2. Conversion request by specifying input area type same as requested type.
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_ConvertLocationInfo10L(CStifItemParser& /*aItem*/ )
- {
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
-
- // Here we need two subsessions
- RLbsLocInfoConverter locInfoConverter;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
- TUid conversionModuleId = TUid::Uid( KDummyPluginId );
- /**
- * Case 1: Users tries to request conversion by specifying conversion
- * preference not supported by plugin. Example plugin doesnt
- * support conversion using cache.
- */
- CLbsLocationInfo* locationInfo = CreateLocationInfoObjectLC( ELbsAreaWcmdaCellInfoClass );
-
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionCacheOnly,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Check the converted values in both the conversions.
- error = iConversionHandler->iStatus.Int();
- if( error != KErrNotSupported )
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * Case 2: Users tries to request for coordinate info by specifying
- * only coordinate info.
- */
- locationInfo->ResetAreaInfo();
- AppendAreaInfoObjectToLocationInfoL( locationInfo,ELbsAreaPositionInfoClass );
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Check the converted values in both the conversions.
- error = iConversionHandler->iStatus.Int();
- if( error != KErrNotSupported )
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * Case 3: Users tries to request for gsm cell info by specifying
- * only gsm cell info.
- */
- locationInfo->ResetAreaInfo();
- AppendAreaInfoObjectToLocationInfoL( locationInfo,ELbsAreaGsmCellInfoClass );
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,
- ELbsConversionOutputGsm,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Check the converted values in both the conversions.
- error = iConversionHandler->iStatus.Int();
- if( error != KErrNotSupported )
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * Case 4: Users tries to request for wcdma cell info by specifying
- * only wcdma cell info.
- */
- locationInfo->ResetAreaInfo();
- AppendAreaInfoObjectToLocationInfoL( locationInfo,ELbsAreaWcmdaCellInfoClass );
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,
- ELbsConversionOutputWcdma,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Check the converted values in both the conversions.
- error = iConversionHandler->iStatus.Int();
- if( error != KErrNotSupported )
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * Case 5: Users tries to request for wlan info by specifying
- * only wlan info.
- */
- locationInfo->ResetAreaInfo();
- AppendAreaInfoObjectToLocationInfoL( locationInfo,ELbsAreaWlanInfoClass );
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,
- ELbsConversionOutputWlan,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Check the converted values in both the conversions.
- error = iConversionHandler->iStatus.Int();
- if( error != KErrNotSupported )
- {
- User::Leave( KErrArgument );
- }
-
- CleanupStack::PopAndDestroy( 3 ); // locationInfo,locInfoConverter,locMonitorSession
- return KErrNone;
- }
-
-
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_Cancel1L
-// This test case tests the scenario when user tries to cancel the request before
-// and after the conversion request complete for both single and batch conversion.
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_Cancel1L(CStifItemParser& /*aItem*/ )
- {
-
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
- RLbsLocInfoConverter locInfoConverter;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray;
- CleanupClosePushL( locationInfoArray );
-
- TUid conversionModuleId = TUid::Uid( KDummyPluginId );
-
- // This can can be done for any area type here EGsm to ECoordinate conversion has
- // been used.
-
- /**
- * Case 1: Here single location information conversion is requested
- * and cancel is called before the conversion completes.
- */
- CLbsLocationInfo* locationInfo = CreateLocationInfoObjectLC( ELbsAreaGsmCellInfoClass );
-
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,ELbsConversionOutputPosition
- ,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
- locInfoConverter.CancelConvertLocationInfo();
- iConversionHandler->Cancel();
-
- error = iConversionHandler->iStatus.Int();
- // Request should be completed with the error code KErrCancel and
- // location info should not have converted information.
- if( error == KErrCancel )
- {
- CheckPositionConvertedInfoL( locationInfo,ENegative );
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * case 2: Here single location information conversion is requested
- * and cancel is called after the conversion completes.
- */
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,ELbsConversionOutputPosition
- ,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
- CActiveScheduler::Start();
- locInfoConverter.CancelConvertLocationInfo();
- iConversionHandler->Cancel();
-
- error = iConversionHandler->iStatus.Int();
- // Request should be completed with the error code KErrNone and
- // location info should have converted information.
- if( error == KErrNone )
- {
- CheckPositionConvertedInfoL( locationInfo );
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
- // case 3: Here mutiple location information conversion is
- // requested and cancel is called before the conversion completes.
-
- CLbsLocationInfo* locationInfo1 = CreateLocationInfoObjectLC( ELbsAreaGsmCellInfoClass );
-
- // We had requested for coordinate info, hence we need to clear it before
- // we use it as input for next conversion.
- locationInfo->ResetAreaInfo( CLbsLocationInfo::ELbsPosInfo );
- locationInfoArray.Append( locationInfo );
-
- locationInfoArray.Append( locationInfo1 );
-
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
- locInfoConverter.CancelConvertLocationInfo();
- iConversionHandler->Cancel();
-
- // Request should be completed with the error code KErrCancel and
- // location info should not have converted information.
- error = iConversionHandler->iStatus.Int();
-
- if( error == KErrCancel )
- {
- for( TInt i=0;i<locationInfoArray.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckPositionConvertedInfoL( locationInfo,ENegative );
- }
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
-
- /**
- * case 4: Here mutiple location information conversion is
- * requested and cancel is called after the conversion completes.
- */
-
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
- CActiveScheduler::Start();
- locInfoConverter.CancelConvertLocationInfo();
- iConversionHandler->Cancel();
-
- // Request should be completed with the error code KErrNone and
- // location info should have converted information.
- error = iConversionHandler->iStatus.Int();
-
- if( error == KErrNone )
- {
- for( TInt i=0;i<locationInfoArray.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckPositionConvertedInfoL( locationInfo );
- }
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
- CleanupStack::Pop( 3 ); // locationInfo,locationInfo1,locationInfoArray
- locationInfoArray.ResetAndDestroy();
- CleanupStack::PopAndDestroy( 2 ); // locInfoConverter,locMonitorSession
- return KErrNone;
- }
-
-
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_Cancel2L
-// This test case tests the scenario when user tries to cancel the conversion request
-// from the different subsession for both single and multiple conversion.
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_Cancel2L(CStifItemParser& /*aItem*/ )
- {
-
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
-
- // Here we need to subsessions.
- RLbsLocInfoConverter locInfoConverter,locInfoConverter1;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
- CleanupClosePushL( locInfoConverter1 );
- locInfoConverter1.OpenL( locMonitorSession );
-
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray;
- CleanupClosePushL( locationInfoArray );
-
- TUid conversionModuleId = TUid::Uid( KDummyPluginId );
-
- // This can can be done for any area type here EGsm to ECoordinate conversion has
- // been used.
-
- /**
- * Case 1: Here single location information conversion is
- * requested and cancel is called the different subsession.
- */
-
- CLbsLocationInfo* locationInfo = CreateLocationInfoObjectLC( ELbsAreaGsmCellInfoClass );
-
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,ELbsConversionOutputPosition
- ,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
- locInfoConverter1.CancelConvertLocationInfo();
- CActiveScheduler::Start();
-
- error = iConversionHandler->iStatus.Int();
- // Request should be completed with the error code KErrNone and
- // location info should have converted information.
- if( error == KErrNone )
- {
- CheckPositionConvertedInfoL( locationInfo );
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * Case 2: Here mutiple location information conversion is requested
- * and cancel is called from the different subsession.
- */
- CLbsLocationInfo* locationInfo1 = CreateLocationInfoObjectLC( ELbsAreaGsmCellInfoClass );
-
- // We had requested for coordinate info, hence we need to clear it before
- // we use it as input for next conversion.
- locationInfo->ResetAreaInfo( CLbsLocationInfo::ELbsPosInfo );
- locationInfoArray.Append( locationInfo );
-
- locationInfoArray.Append( locationInfo1 );
-
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
- locInfoConverter1.CancelConvertLocationInfo();
- CActiveScheduler::Start();
-
- // Request should be completed with the error code KErrNone and
- // location info should have converted information.
- error = iConversionHandler->iStatus.Int();
-
- if( error == KErrNone )
- {
- for( TInt i=0;i<locationInfoArray.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckPositionConvertedInfoL( locationInfo );
- }
- }
- else
- {
- User::Leave( KErrArgument );
- }
- CleanupStack::Pop( 3 ); // locationInfo,locationInfo1,locationInfoArray
- locationInfoArray.ResetAndDestroy();
- CleanupStack::PopAndDestroy( 3 ); // locInfoConverter,locInfoConverter1,locMonitorSession
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_Cancel3L
-// This test case tests the scenario when user tries to request two conversion
-// using two subsessions simultaneously specifying same plugin and we cancel one request
-// of two requests.
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_Cancel3L(CStifItemParser& /*aItem*/ )
- {
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
-
- // Here we need to open two subsessions.
- RLbsLocInfoConverter locInfoConverter,locInfoConverter1;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
- CleanupClosePushL( locInfoConverter1 );
- locInfoConverter1.OpenL( locMonitorSession );
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray;
- CleanupClosePushL( locationInfoArray );
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray1;
- CleanupClosePushL( locationInfoArray1 );
-
- TUid conversionModuleId = TUid::Uid( KDummyPluginId );
-
- /**
- * Case 1: Users tries to request 2 simultaneous single conversion
- * using 2 subsession specifying same conversion uid and
- * anyone conversion request is cancelled.
- */
-
- // Here type of area input doesnt matter.
- CLbsLocationInfo* locationInfo = CreateLocationInfoObjectLC( ELbsAreaGsmCellInfoClass );
-
- CLbsLocationInfo* locationInfo1 = CreateLocationInfoObjectLC( ELbsAreaGsmCellInfoClass );
-
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- locInfoConverter1.ConvertLocationInfoL(
- *locationInfo1,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler1->iStatus );
- iConversionHandler1->Start();
-
- // Here first request is called.
- locInfoConverter.CancelConvertLocationInfo();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Here we need to wait till both the request completes.Hence we need to block it once again
- // till the 2nd request completes.
- if( iConversionHandler->iStatus.Int() == KRequestPending ||
- iConversionHandler1->iStatus.Int() == KRequestPending )
- {
- CActiveScheduler::Start();
- }
-
- // Check the converted values in both the conversions.
- error = iConversionHandler->iStatus.Int();
- if( error == KErrCancel )
- {
- CheckPositionConvertedInfoL( locationInfo,ENegative );
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
- error = iConversionHandler1->iStatus.Int();
- if( error == KErrNone )
- {
- CheckPositionConvertedInfoL( locationInfo1 );
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * Case 2: Users tries to request 2 simultaneous bulk conversion
- * using 2 subsession specifying same conversion uid and
- * any one conversion request is cancelled.
- */
-
- // Before we append the location info object to the info array,
- // we need to clear the converted info in each object.
- locationInfo->ResetAreaInfo( CLbsLocationInfo::ELbsPosInfo );
- locationInfo1->ResetAreaInfo( CLbsLocationInfo::ELbsPosInfo );
-
- locationInfoArray.Append( locationInfo );
- locationInfoArray1.Append( locationInfo1 );
-
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- locInfoConverter1.ConvertLocationInfoL(
- locationInfoArray1,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId,iConversionHandler1->iStatus );
- iConversionHandler1->Start();
-
- // Here second request is called.
- locInfoConverter1.CancelConvertLocationInfo();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Here we need to wait till both the request completes.Hence we need to block it once again
- // till the 2nd request completes.
- if( iConversionHandler->iStatus.Int() == KRequestPending ||
- iConversionHandler1->iStatus.Int() == KRequestPending )
- {
- CActiveScheduler::Start();
- }
-
- // Check the converted values in both the conversions.
- // Iterate through the array and check for converted info.
- error = iConversionHandler->iStatus.Int();
- if( error == KErrNone )
- {
- for( TInt i=0;i<locationInfoArray.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckPositionConvertedInfoL( locationInfo );
- }
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
- error = iConversionHandler1->iStatus.Int();
- if( error == KErrCancel )
- {
- for( TInt i=0;i<locationInfoArray1.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray1[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckPositionConvertedInfoL( locationInfo,ENegative );
- }
- }
- else
- {
- User::Leave( KErrArgument );
- }
-
- CleanupStack::Pop(4); // locationInfo1,locationInfoArray1,locationInfo,locationInfoArray
- locationInfoArray.ResetAndDestroy();
- locationInfoArray1.ResetAndDestroy();
- CleanupStack::PopAndDestroy( 3 ); // locInfoConverter,locInfoConverter1,locMonitorSession
- return KErrNone;
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::RLbsLocInfoConverter_Cancel4L
-// This test case tests the scenario when user tries to request two conversion
-// using two subsessions simultaneously specifying different plugin.
-// -----------------------------------------------------------------------------
-//
-TInt CLocInfoConversionUnitTest::RLbsLocInfoConverter_Cancel4L(CStifItemParser& /*aItem*/ )
- {
- RLbsLocMonitorSession locMonitorSession;
- TInt error = locMonitorSession.Connect();
- if( error != KErrNone )
- {
- return error;
- }
- CleanupClosePushL( locMonitorSession );
-
- // Here we need two subsessions
- RLbsLocInfoConverter locInfoConverter,locInfoConverter1;
- CleanupClosePushL( locInfoConverter );
- locInfoConverter.OpenL( locMonitorSession );
-
- CleanupClosePushL( locInfoConverter1 );
- locInfoConverter1.OpenL( locMonitorSession );
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray;
- CleanupClosePushL( locationInfoArray );
-
- RPointerArray<CLbsLocationInfoBase> locationInfoArray1;
- CleanupClosePushL( locationInfoArray1 );
-
- TUid conversionModuleId1 = TUid::Uid( KDummyPluginId );
- TUid conversionModuleId2 = TUid::Uid( KSuplPluginId );
-
- /**
- * Case 1: Users tries to request 2 simultaneous single conversion
- * using 2 subsession specifying different conversion uid
- * any one request is cancelled.
- */
-
- CLbsLocationInfo* locationInfo = CreateLocationInfoObjectLC( ELbsAreaWcmdaCellInfoClass );
-
- CLbsLocationInfo* locationInfo1 = CreateLocationInfoObjectLC( ELbsAreaWlanInfoClass );
-
- locInfoConverter.ConvertLocationInfoL(
- *locationInfo,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId1,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
-
- locInfoConverter1.ConvertLocationInfoL(
- *locationInfo1,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId2,iConversionHandler1->iStatus );
- iConversionHandler1->Start();
-
- // Here first request is cancelled.
- locInfoConverter.CancelConvertLocationInfo();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Here we need to wait till both the request completes.Hence we need to block it once again
- // till the 2nd request completes.
- if( iConversionHandler->iStatus.Int() == KRequestPending ||
- iConversionHandler1->iStatus.Int() == KRequestPending )
- {
- CActiveScheduler::Start();
- }
-
- // Check the converted values in both the conversions.
- error = iConversionHandler->iStatus.Int();
- if( error == KErrCancel )
- {
- CheckPositionConvertedInfoL( locationInfo,ENegative );
- }
- else if( !( error == KErrNotFound || error == KErrNotSupported ) )
- {
- User::Leave( KErrArgument );
- }
-
- error = iConversionHandler1->iStatus.Int();
- if( error == KErrNone )
- {
- CheckPositionConvertedInfoL( locationInfo1 );
- }
- else if( !( error == KErrNotFound || error == KErrNotSupported ) )
- {
- User::Leave( KErrArgument );
- }
-
- /**
- * Case 2: Users tries to request 2 simultaneous bulk conversion
- * using 2 subsession specifying same conversion uid and
- * one conversion request is cancelled.
- */
-
- // Before we append the location info object to the info array,
- // we need to clear the converted info in each object.
- locationInfo->ResetAreaInfo( CLbsLocationInfo::ELbsPosInfo );
- locationInfo1->ResetAreaInfo( CLbsLocationInfo::ELbsPosInfo );
-
- locationInfoArray.Append( locationInfo );
- locationInfoArray1.Append( locationInfo1 );
-
- locInfoConverter.ConvertLocationInfoL(
- locationInfoArray,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId1,iConversionHandler->iStatus );
- iConversionHandler->Start();
-
- locInfoConverter1.ConvertLocationInfoL(
- locationInfoArray1,ELbsConversionNotDefined,
- ELbsConversionOutputPosition,conversionModuleId2,iConversionHandler1->iStatus );
- iConversionHandler1->Start();
-
- // Here we cancel 2nd request
- locInfoConverter1.CancelConvertLocationInfo();
-
- // This is just to block the control till the call back method is called.
- // Code after this statement will be resumed when Stop on CActiveScheduler
- // is called in the HandleLocationConversion method.
- CActiveScheduler::Start();
-
- // Here we need to wait till both the request completes.Hence we need to block it once again
- // till the 2nd request completes.
- if( iConversionHandler->iStatus.Int() == KRequestPending ||
- iConversionHandler1->iStatus.Int() == KRequestPending )
- {
- CActiveScheduler::Start();
- }
-
- // Check the converted values in both the conversions.
- // Iterate through the array and check for converted info.
- error = iConversionHandler->iStatus.Int();
- if( error == KErrNone )
- {
- for( TInt i=0;i<locationInfoArray.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckPositionConvertedInfoL( locationInfo );
- }
- }
- else if( !( error == KErrNotFound || error == KErrNotSupported ) )
- {
- User::Leave( KErrArgument );
- }
-
- error = iConversionHandler1->iStatus.Int();
- if( error == KErrCancel )
- {
- for( TInt i=0;i<locationInfoArray1.Count();i++ )
- {
- CLbsLocationInfoBase* locationInfobase = locationInfoArray1[i];
- CLbsLocationInfo* locationInfo = static_cast<CLbsLocationInfo*> ( locationInfobase );
- CheckPositionConvertedInfoL( locationInfo,ENegative );
- }
- }
- else if( !( error == KErrNotFound || error == KErrNotSupported ) )
- {
- User::Leave( KErrArgument );
- }
-
-
- CleanupStack::Pop(4); // locationInfo1,locationInfoArray1,locationInfo,locationInfoArray
- locationInfoArray.ResetAndDestroy();
- locationInfoArray1.ResetAndDestroy();
- CleanupStack::PopAndDestroy( 3 ); // locInfoConverter,locInfoConverter1,locMonitorSession
- return KErrNone;
- }
-
-
-// Helper methods
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::CreatePositionObjectLC
-// -----------------------------------------------------------------------------
-//
-CLbsPositionInfo* CLocInfoConversionUnitTest::CreatePositionInfoObjectLC()
- {
- TLocality locality;
- locality.SetCoordinate( 62.5285,23.9385 );
- locality.SetAccuracy( 100,0.0 );
- CLbsPositionInfo* positionInfo = CLbsPositionInfo::NewL( locality );
- CleanupStack::PushL( positionInfo );
- return positionInfo;
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::CreateGsmCellInfoObjectLC
-// -----------------------------------------------------------------------------
-//
-CLbsGsmCellInfo* CLocInfoConversionUnitTest::CreateGsmCellInfoObjectLC()
- {
- CLbsGsmCellInfo* gsmCellInfo = CLbsGsmCellInfo::NewL( 100,101,102,103);
- CleanupStack::PushL( gsmCellInfo );
- return gsmCellInfo;
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::CreateWcdmaCellInfoObjectLC
-// -----------------------------------------------------------------------------
-//
-CLbsWcdmaCellInfo* CLocInfoConversionUnitTest::CreateWcdmaCellInfoObjectLC()
- {
- CLbsWcdmaCellInfo* wcdmaCellInfo = CLbsWcdmaCellInfo::NewL( 100,101,102 );
- CleanupStack::PushL( wcdmaCellInfo );
- return wcdmaCellInfo;
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::CreateWlanInfoObjectLC
-// -----------------------------------------------------------------------------
-//
-CLbsWlanInfo* CLocInfoConversionUnitTest::CreateWlanInfoObjectLC()
- {
- TLbsWlanMacAddress macAddress(_L8("10.0.1"));
- CLbsWlanInfo* wlanInfo = CLbsWlanInfo::NewL( macAddress,10.1 );
- CleanupStack::PushL( wlanInfo );
- return wlanInfo;
- }
-
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::CreateLocationInfoObjectLC
-// -----------------------------------------------------------------------------
-//
-CLbsLocationInfo* CLocInfoConversionUnitTest::CreateLocationInfoObjectLC(
- TLbsAreaInfoClassType aAreaType )
- {
- CLbsLocationInfo* locationInfo = CLbsLocationInfo::NewL();
- CleanupStack::PushL( locationInfo );
- AppendAreaInfoObjectToLocationInfoL( locationInfo,aAreaType );
- return locationInfo;
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::AppendAreaInfoObjectToLocationInfoL
-// -----------------------------------------------------------------------------
-//
-void CLocInfoConversionUnitTest::AppendAreaInfoObjectToLocationInfoL(
- CLbsLocationInfo* aLocationInfo,
- TLbsAreaInfoClassType aAreaType )
- {
- switch( aAreaType )
- {
- case ELbsAreaPositionInfoClass:
- CLbsPositionInfo* positionInfo = NULL;
- positionInfo = CreatePositionInfoObjectLC();
- aLocationInfo->AddAreaInfoL( positionInfo );
- CleanupStack::Pop( positionInfo );
- break;
-
- case ELbsAreaGsmCellInfoClass:
- CLbsGsmCellInfo* gsmCellInfo = NULL;
- gsmCellInfo = CreateGsmCellInfoObjectLC();
- aLocationInfo->AddAreaInfoL( gsmCellInfo );
- CleanupStack::Pop( gsmCellInfo );
- break;
-
- case ELbsAreaWcmdaCellInfoClass:
- CLbsWcdmaCellInfo* wcdmaCellInfo = NULL;
- wcdmaCellInfo = CreateWcdmaCellInfoObjectLC();
- aLocationInfo->AddAreaInfoL( wcdmaCellInfo );
- CleanupStack::Pop( wcdmaCellInfo );
- break;
-
- case ELbsAreaWlanInfoClass:
- CLbsWlanInfo* wlanInfo = NULL;
- wlanInfo = CreateWlanInfoObjectLC();
- aLocationInfo->AddAreaInfoL( wlanInfo );
- CleanupStack::Pop( wlanInfo );
- break;
-
- default:
- break;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::CheckPositionConvertedInfoL
-// -----------------------------------------------------------------------------
-//
-void CLocInfoConversionUnitTest::CheckPositionConvertedInfoL( CLbsLocationInfo*
- aLocationInfo,
- TTestType
- aTestType )
- {
- RLbsAreaInfoBaseArray areaInfoArray;
- aLocationInfo->GetAreaInfo( areaInfoArray,CLbsLocationInfo::ELbsPosInfo );
- TInt count = areaInfoArray.Count();
- areaInfoArray.Reset();
- if( aTestType == EPositive )
- {
- if( !count )
- {
- User::Leave( KErrArgument );
- }
- }
- else
- {
- if( count )
- {
- User::Leave( KErrArgument );
- }
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::CheckGsmCellConvertedInfoL
-// -----------------------------------------------------------------------------
-//
-void CLocInfoConversionUnitTest::CheckGsmCellConvertedInfoL( CLbsLocationInfo*
- aLocationInfo,
- TTestType
- aTestType )
- {
- RLbsAreaInfoBaseArray areaInfoArray;
- aLocationInfo->GetAreaInfo( areaInfoArray,CLbsLocationInfo::ELbsGsmInfo );
- TInt count = areaInfoArray.Count();
- areaInfoArray.Reset();
- if( aTestType == EPositive )
- {
- if( !count )
- {
- User::Leave( KErrArgument );
- }
- }
- else
- {
- if( count )
- {
- User::Leave( KErrArgument );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::CheckWcdmaCellConvertedInfoL
-// -----------------------------------------------------------------------------
-//
-void CLocInfoConversionUnitTest::CheckWcdmaCellConvertedInfoL( CLbsLocationInfo*
- aLocationInfo,
- TTestType
- aTestType )
- {
- RLbsAreaInfoBaseArray areaInfoArray;
- aLocationInfo->GetAreaInfo( areaInfoArray,CLbsLocationInfo::ELbsWcdmaInfo );
- TInt count = areaInfoArray.Count();
- areaInfoArray.Reset();
- if( aTestType == EPositive )
- {
- if( !count )
- {
- User::Leave( KErrArgument );
- }
- }
- else
- {
- if( count )
- {
- User::Leave( KErrArgument );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CLocInfoConversionUnitTest::CheckWlanConvertedInfoL
-// -----------------------------------------------------------------------------
-//
-void CLocInfoConversionUnitTest::CheckWlanConvertedInfoL( CLbsLocationInfo*
- aLocationInfo,
- TTestType
- aTestType )
- {
- RLbsAreaInfoBaseArray areaInfoArray;
- aLocationInfo->GetAreaInfo( areaInfoArray,CLbsLocationInfo::ELbsWlanInfo );
- TInt count = areaInfoArray.Count();
- areaInfoArray.ResetAndDestroy();
- if( aTestType == EPositive )
- {
- if( !count )
- {
- User::Leave( KErrArgument );
- }
- }
- else
- {
- if( count )
- {
- User::Leave( KErrArgument );
- }
- }
- }
-// [End of File]