diff -r e8c1ea2c6496 -r 8758140453c0 lbs/lbsclient/src/ctlbsclientpostp176.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lbs/lbsclient/src/ctlbsclientpostp176.cpp Thu Jan 21 12:53:44 2010 +0000 @@ -0,0 +1,203 @@ +// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + + + +// INCLUDES +#include "ctlbsclientpostp176.h" +#include +#include +#include +// ================= MEMBER FUNCTIONS ======================= + +// --------------------------------------------------------- +// Constructor. +// --------------------------------------------------------- +CT_LbsClientPosTp176::CT_LbsClientPosTp176(CT_LbsServer& aParent): CT_LbsPortedStepBase(aParent) + { + _LIT(KTestName, "TP176 - Basic PSY test"); + SetTestStepName(KTestName); + } + +// --------------------------------------------------------- +// Destructor. +// --------------------------------------------------------- +CT_LbsClientPosTp176::~CT_LbsClientPosTp176() + { + } + +// --------------------------------------------------------- +// CT_LbsClientPosTp176::CloseTest +// Always called after the test, even if the test leaves +// (other items were commented in a header). +// --------------------------------------------------------- +// +void CT_LbsClientPosTp176::CloseTest() + { + + } + +// --------------------------------------------------------- +// CT_LbsClientPosTp176::CloseTest +// Always called after the test, even if the test leaves +// (other items were commented in a header). +// --------------------------------------------------------- +// +void CT_LbsClientPosTp176::InitTestL() + { + + } + +// --------------------------------------------------------- +// CT_LbsClientPosTp176::StartL +// +// (other items were commented in a header). +// --------------------------------------------------------- +// +void CT_LbsClientPosTp176::StartL() + { + _LIT(KService, "service"); + CPosModules *modDb = CPosModules::OpenL(); + CleanupStack::PushL(modDb); + CPosModuleUpdate* moduleUpdate = CPosModuleUpdate::NewLC(); + + moduleUpdate->SetUpdateAvailability(ETrue); + modDb->UpdateModuleL(iUidTestPsyTp176, *moduleUpdate); + modDb->UpdateModuleL(iUidTestPsy1, *moduleUpdate); + + CleanupStack::PopAndDestroy(2); + + ConnectL(); + + User::LeaveIfError(OpenPositionerByName(iUidTestPsyTp176)); + TPositionInfo info = TPositionInfo(); + + // Request data from test psy 176 psy + TInt err = PerformSyncRequest(KService, &info); + + if (err != KErrNone) + { + _LIT(KErrorRequest, "The request was not completed with KErrorNone"); + LogErrorAndLeaveL(KErrorRequest); + } + + // just to make sure that dynamic quality is updated + err = PerformSyncRequest(KService, &info); + + if (err != KErrNone) + { + _LIT(KErrorRequest, "The request was not completed with KErrorNone"); + LogErrorAndLeaveL(KErrorRequest); + } + + + HPositionGenericInfo* genericInfo = HPositionGenericInfo::NewLC(); + + // Request a genericInfo from test psy 176 should fail. + err = PerformSyncRequest(KService, genericInfo); + + + //Magic number KErrHardwareNotAvailable is used to check that the psy is + //not responsible for determine if the class is supported. + if (err == KErrHardwareNotAvailable) + { + _LIT(KErrorRequest, "The type checking was done in the PSY"); + LogErrorAndLeaveL(KErrorRequest); + } + else if (err != KErrArgument) + { + _LIT(KErrWrongType, "Wrong error type returned"); + LogErrorAndLeaveL(KErrWrongType); + } + + + // not set uid + err = PerformSyncRequest(KService, &info); + + if (err != KErrGeneral) + { + _LIT(KErrorRequest, "The request was not completed with KErrGeneral"); + LogErrorAndLeaveL(KErrorRequest); + } + + + // incorrect uid, but existing + err = PerformSyncRequest(KService, &info); + if (err != KErrGeneral) + { + _LIT(KErrorRequest, "The request was not completed with KErrGeneral"); + LogErrorAndLeaveL(KErrorRequest); + } + + //incorrect uid + err = PerformSyncRequest(KService, &info); + if (err != KErrGeneral) + { + _LIT(KErrorRequest, "The request was not completed with KErrGeneral"); + LogErrorAndLeaveL(KErrorRequest); + } + + + ClosePositioner(); + Disconnect(); + + CleanupStack::PopAndDestroy(); //genericInfo + + } + + + +TBool CT_LbsClientPosTp176::IsQualityUpdatedL(TUid aUid) + { + TBool updated = ETrue; + CPosModules *modDb = CPosModules::OpenL(); + CleanupStack::PushL(modDb); + + TPositionQuality dynQuality; + + //TTimeIntervalMicroSeconds timeToFirstFix = dynQuality.TimeToNextFix(); + TTimeIntervalMicroSeconds timeToFirstFixBefore; + TReal32 horAccBefore; + TReal32 horAccAfter = dynQuality.HorizontalAccuracy(); + + if (aUid == iUidTestPsyTp176) + { + timeToFirstFixBefore = iQuality.TimeToNextFix(); + horAccBefore = iQuality.HorizontalAccuracy(); + } + else + { + timeToFirstFixBefore = iQualityTestPsy1.TimeToNextFix(); + horAccBefore = iQualityTestPsy1.HorizontalAccuracy(); + } + + + if (horAccBefore != horAccAfter) + { + updated = ETrue; + iQuality = dynQuality; + _LIT(KUpdated, "Dynamic Quality is updated"); + INFO_PRINTF1(KUpdated); + } + else + { + updated = EFalse; + _LIT(KNotUpdated, "Dynamic Quality is NOT updated"); + INFO_PRINTF1(KNotUpdated); + } + + CleanupStack::PopAndDestroy(); + return updated; + }