--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/apicompatanamdw/bcdrivers/os/lbs/LocAcquisition/src/testpositionserver.cpp Thu Apr 22 17:15:08 2010 +0530
@@ -0,0 +1,470 @@
+/*
+* Copyright (c) 2007 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: Test Class For RPositionServer
+*
+*/
+
+
+// System Includes
+
+
+// User Includes
+#include "testpositionserver.h"
+
+
+// Constant Declarations
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// C++ Default Constructor
+// ---------------------------------------------------------------------------
+//
+CTestPositionServer::CTestPositionServer(CStifLogger* aLog)
+ :CActive(0),iLog(aLog)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+// ---------------------------------------------------------------------------
+// C++ Destructor
+// ---------------------------------------------------------------------------
+//
+CTestPositionServer::~CTestPositionServer()
+ {
+ if( IsActive() )
+ {
+ Cancel();
+ }
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::RunL
+//
+// RunL to Handle Completed Request
+// ---------------------------------------------------------
+//
+void CTestPositionServer::RunL()
+ {
+ if(iStatus != KErrCancel)
+ {
+ iLog->Log(_L("RunL %d"),iStatus.Int());
+ CActiveScheduler::Stop();
+ }
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::DoCancel
+//
+// To Handle Cancel Request
+// ---------------------------------------------------------
+//
+void CTestPositionServer::DoCancel()
+ {
+ TInt err = iPosServer.CancelRequest(EPositionServerNotifyModuleStatusEvent);
+ iLog->Log(_L("CancelL %d"),err);
+
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::CancelRequest
+//
+// To Cancel the Outstanding Request
+// ---------------------------------------------------------
+//
+TInt CTestPositionServer::CancelRequest()
+ {
+ TInt err = iPosServer.CancelRequest(EPositionServerNotifyModuleStatusEvent);
+ iLog->Log(_L("CancelL %d"),err);
+ return err;
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::RunError
+//
+// To Handle Error in RunL
+// ---------------------------------------------------------
+//
+TInt CTestPositionServer::RunError(TInt aError)
+ {
+ iLog->Log(_L("Leave in RunL %d"),aError);
+ return aError;
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::PositionServer
+//
+// (other items are commented in a header).
+// ---------------------------------------------------------
+//
+RPositionServer& CTestPositionServer::PositionServer()
+ {
+ return iPosServer;
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::Connect
+//
+// (other items are commented in a header).
+// ---------------------------------------------------------
+//
+TInt CTestPositionServer::Connect()
+ {
+ TInt err = iPosServer.Connect();
+ if(err != KErrNone)
+ {
+ TBuf<100> msg;
+ msg.Copy(_L("Position server connect failed with error code :"));
+ msg.AppendNum(err);
+ iLog->Log(msg);
+ }
+ else
+ {
+ iLog->Log(_L("Position Server connect - passed"));
+ }
+ return err;
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::Disconnect
+//
+// (other items are commented in a header).
+// ---------------------------------------------------------
+//
+TInt CTestPositionServer::Disconnect()
+ {
+ iPosServer.Close();
+ iLog->Log(_L("Closing Position Server - passed"));
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::Disconnect
+//
+// (other items are commented in a header).
+// ---------------------------------------------------------
+//
+TInt CTestPositionServer::VersionCheck()
+ {
+ TVersion ver = iPosServer.Version();
+ if(ver.iMajor == 1 && ver.iMinor == 0 && ver.iBuild == 0 )
+ {
+ iLog->Log(_L("Version numbers are Verified to be correct!"));
+ return KErrNone;
+ }
+ else
+ {
+ iLog->Log(_L("Wrong Version"));
+ return KErrGeneral;
+ }
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::GetDefaultModule
+//
+// (other items are commented in a header).
+// ---------------------------------------------------------
+//
+TInt CTestPositionServer::GetDefaultModule()
+ {
+ TPositionModuleId moduleId;
+ TInt err = iPosServer.GetDefaultModuleId(moduleId);
+ TBuf<100> msg;
+
+ if(err != KErrNone)
+ {
+ msg.Copy(_L("GetDefaultModule failed with error code :"));
+ msg.AppendNum(err);
+ iLog->Log(msg);
+ }
+ else
+ {
+ msg.Copy(_L("GetDefaultModule passed Id of Module is:"));
+ msg.AppendNumUC(moduleId.iUid, EHex);
+ iLog->Log(msg);
+ }
+
+ return err;
+
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::GetModuleNum
+//
+// (other items are commented in a header).
+// ---------------------------------------------------------
+//
+TInt CTestPositionServer::GetModuleNum()
+ {
+ TInt err;
+ TUint number;
+
+ err = iPosServer.GetNumModules(number);
+ TBuf<100> msg;
+
+ if(err != KErrNone)
+ {
+ msg.Copy(_L("GetModuleNumPanic failed with error code :"));
+ msg.AppendNum(err);
+ iLog->Log(msg);
+ }
+ else
+ {
+ msg.Copy(_L("GetModuleNumPanic passed Number of Module is:"));
+ msg.AppendNum(number);
+ iLog->Log(msg);
+ }
+
+ return err;
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::GetModuleInfoIndex
+//
+// (other items are commented in a header).
+// ---------------------------------------------------------
+//
+TInt CTestPositionServer::GetModuleInfoIndex(TInt aIndex)
+ {
+ TPositionModuleInfo infoModule;
+ TInt err;
+ err = iPosServer.GetModuleInfoByIndex(aIndex,infoModule);
+ TBuf<100> msg;
+
+ if(err != KErrNone)
+ {
+ msg.Copy(_L("GetModuleInfoByIndex failed with error code :"));
+ msg.AppendNum(err);
+ iLog->Log(msg);
+ }
+ else
+ {
+ TBuf<100> moduleName;
+ infoModule.GetModuleName(moduleName);
+ msg.Copy(_L("GetModuleInfoByIndex passed Module Name is:"));
+ msg.Append(moduleName);
+ iLog->Log(msg);
+ }
+
+ return err;
+
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::GetModuleInfoId
+//
+// (other items are commented in a header).
+// ---------------------------------------------------------
+//
+TInt CTestPositionServer::GetModuleInfoId(TPositionModuleId aUid)
+ {
+ TPositionModuleInfo infoModule;
+ TInt err;
+
+ err = iPosServer.GetModuleInfoById(aUid,infoModule);
+ TBuf<100> msg;
+ if(err != KErrNone)
+ {
+ msg.Copy(_L("GetModuleInfoById failed with error code :"));
+ msg.AppendNum(err);
+ iLog->Log(msg);
+ }
+ else
+ {
+ TBuf<100> moduleName;
+ infoModule.GetModuleName(moduleName);
+ msg.Copy(_L("GetModuleInfoById passed Module Name is:"));
+ msg.Append(moduleName);
+ iLog->Log(msg);
+ }
+
+ return err;
+
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::GetModuleStatus
+//
+// (other items are commented in a header).
+// ---------------------------------------------------------
+//
+TInt CTestPositionServer::GetModuleStatus(TPositionModuleId aUid)
+ {
+ TPositionModuleStatus moduleStatus;
+ TInt err;
+ TBuf<100> msg;
+ err = iPosServer.GetModuleStatus(moduleStatus,aUid);
+ if(err != KErrNone)
+ {
+ msg.Copy(_L("GetModuleStatus failed with error code :"));
+ msg.AppendNum(err);
+ iLog->Log(msg);
+ }
+ else
+ {
+ TBuf<20> intStatus;
+ intStatus.Num(moduleStatus.DeviceStatus());
+ msg.Copy(_L("GetModuleStatus passed Device Status is :"));
+ msg.Append(intStatus);
+ iLog->Log(msg);
+ }
+ return err;
+
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::GetModuleChangeNotification
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CTestPositionServer::GetModuleChangeNotification(TInt aEvent, TPositionModuleId aUid)
+ {
+ TPositionModuleStatus moduleStatus;
+ TPositionModuleStatusEventBase::_TModuleEvent event = TPositionModuleStatusEvent::EEventNone;
+
+ //Setting of Event type according to aEvent parameter
+ switch(aEvent)
+ {
+ case 0:
+ event = TPositionModuleStatusEvent::EEventNone;
+ break;
+ case 4:
+ event = TPositionModuleStatusEvent::EEventAll;
+ break;
+ }
+ iModuleEvent.SetRequestedEvents(event);
+
+ // Asynchronous module status
+ iPosServer.NotifyModuleStatusEvent(iModuleEvent, iStatus, aUid);
+
+ if(0 != aEvent)
+ {
+ SetActive();
+ TInt err = iPositioner.Open(iPosServer, aUid);
+ CActiveScheduler::Start();
+
+ iPositioner.Close();
+ }
+ TBuf<100> msg;
+ msg.Copy(_L("In GetModuleChangeNotificationErr1: NotifyModuleStatusEvent returned with :"));
+ msg.AppendNum(iStatus.Int());
+ iLog->Log(msg);
+ return iStatus.Int();
+}
+
+// ---------------------------------------------------------
+// CTestPositionServer::GetModuleChangeNotificationCancel
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CTestPositionServer::GetModuleChangeNotificationCancel(TInt aEvent, TPositionModuleId aUid)
+ {
+ TPositionModuleStatus moduleStatus;
+ TPositionModuleStatusEventBase::_TModuleEvent event = TPositionModuleStatusEvent::EEventNone;
+
+ //Setting of Event type according to aEvent parameter
+ switch(aEvent)
+ {
+ case 0:
+ event = TPositionModuleStatusEvent::EEventNone;
+ break;
+ case 4:
+ event = TPositionModuleStatusEvent::EEventAll;
+ break;
+ }
+ iModuleEvent.SetRequestedEvents(event);
+
+ // Asynchronous module status
+ iPosServer.NotifyModuleStatusEvent(iModuleEvent, iStatus, aUid);
+ SetActive();
+ iLog->Log(_L("Started RunSession with status %d"),iStatus.Int());
+
+ Cancel();
+
+ TBuf<100> msg;
+ msg.Copy(_L("In GetModuleChangeNotificationErr2: NotifyModuleStatusEvent returned with :"));
+ msg.AppendNum(iStatus.Int());
+ iLog->Log(msg);
+ return iStatus.Int();
+ }
+
+// ---------------------------------------------------------
+// CTestPositionServer::DisconnectPanicOutstanding
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CTestPositionServer::DisconnectPanicOutstanding(TInt aEvent, TPositionModuleId aUid)
+{
+ TPositionModuleStatus moduleStatus;
+ TPositionModuleStatusEventBase::_TModuleEvent event = TPositionModuleStatusEvent::EEventNone;
+
+ //Setting of Event type according to aEvent parameter
+ switch(aEvent)
+ {
+ case 0:
+ event = TPositionModuleStatusEvent::EEventNone;
+ break;
+ case 4:
+ event = TPositionModuleStatusEvent::EEventAll;
+ break;
+ }
+ iModuleEvent.SetRequestedEvents(event);
+
+ // Asynchronous module status
+ iPosServer.NotifyModuleStatusEvent(iModuleEvent, iStatus, aUid);
+ SetActive();
+
+ TBuf<100> msg;
+ msg.Copy(_L("In DisconnectPanicOutstanding returned with :"));
+ msg.AppendNum(iStatus.Int());
+ iLog->Log(msg);
+ iPosServer.Close();
+}
+
+// ---------------------------------------------------------
+// CTestPositionServer::GetModuleChangeNotificationPanicDuplicate
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CTestPositionServer::GetModuleChangeNotificationPanicDuplicate(TInt aEvent, TPositionModuleId aUid)
+ {
+ TPositionModuleStatus moduleStatus;
+ TPositionModuleStatusEventBase::_TModuleEvent event = TPositionModuleStatusEvent::EEventNone;
+
+ //Setting of Event type according to aEvent parameter
+ switch(aEvent)
+ {
+ case 0:
+ event = TPositionModuleStatusEvent::EEventNone;
+ break;
+ case 4:
+ event = TPositionModuleStatusEvent::EEventAll;
+ break;
+ }
+ iModuleEvent.SetRequestedEvents(event);
+
+ // Asynchronous module status
+ iPosServer.NotifyModuleStatusEvent(iModuleEvent, iStatus, aUid);
+ SetActive();
+ TRequestStatus status;
+ iPosServer.NotifyModuleStatusEvent(iModuleEvent, status, aUid);
+ User::WaitForRequest(status);
+
+}
+