common/tools/ats/smoketest/lbs/lbsclient/src/ctlbsclientpostp188.cpp
changeset 748 e13acd883fbe
child 872 17498133d9ad
equal deleted inserted replaced
747:76f9aaeefbab 748:e13acd883fbe
       
     1 // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of the License "Symbian Foundation License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 
       
    17 
       
    18 //  INCLUDES
       
    19 #include "ctlbsclientpostp188.h"
       
    20 #include <EPos_CPosModules.h>
       
    21 #include <EPos_CPosModuleUpdate.h>
       
    22 
       
    23 // CONSTANTS
       
    24 const TInt32 KUidNonExistingPsy = 0x01111111;
       
    25 const TInt KMaxMessageSize = 200;
       
    26 
       
    27 // ================= MEMBER FUNCTIONS =======================
       
    28 
       
    29 // ---------------------------------------------------------
       
    30 // Constructor.
       
    31 // ---------------------------------------------------------
       
    32 CT_LbsClientPosTp188::CT_LbsClientPosTp188(CT_LbsServer& aParent): CT_LbsPortedStepBase(aParent)
       
    33 	{  
       
    34 	_LIT(KTestName,"Tp188 - Get Module Status");
       
    35 	SetTestStepName(KTestName); 
       
    36 	}
       
    37 
       
    38 // ---------------------------------------------------------
       
    39 // Destructor.
       
    40 // ---------------------------------------------------------
       
    41 CT_LbsClientPosTp188::~CT_LbsClientPosTp188()
       
    42 	{
       
    43 	}
       
    44 
       
    45 // ---------------------------------------------------------
       
    46 // CT_LbsClientPosTp188::StartL
       
    47 //
       
    48 // (other items were commented in a header).
       
    49 // ---------------------------------------------------------
       
    50 //
       
    51 void CT_LbsClientPosTp188::StartL()
       
    52     {
       
    53 	SetupPsyL(iUidTestStatusPsy);
       
    54 
       
    55     // Synchronous request to start server.
       
    56     ConnectL();
       
    57 
       
    58 	// Request status information for PSY.
       
    59 	TPositionModuleStatus moduleStatus = TPositionModuleStatus();
       
    60 	TInt err = iPosServer.GetModuleStatus(moduleStatus, iUidTestStatusPsy);
       
    61 	_LIT(KErrFailStatus1, "1. Error when getting module status, error code = %d");
       
    62 	AssertTrueL(err == KErrNone, KErrFailStatus1, err);
       
    63    
       
    64     iModuleStatus.SetDeviceStatus(TPositionModuleStatus::EDeviceInactive);
       
    65     iModuleStatus.SetDataQualityStatus(TPositionModuleStatus::EDataQualityUnknown);
       
    66 	
       
    67 	CheckModuleStatusL(moduleStatus);
       
    68 
       
    69 	// Disable PSY.
       
    70 	CPosModules* db = CPosModules::OpenL();
       
    71     CleanupStack::PushL(db);
       
    72     CPosModuleUpdate* moduleUpdate = CPosModuleUpdate::NewLC();
       
    73 
       
    74     moduleUpdate->SetUpdateAvailability(EFalse);
       
    75     db->UpdateModuleL(iUidTestStatusPsy, *moduleUpdate);
       
    76 
       
    77 	User::After(1000000);
       
    78 
       
    79 	// Request status information for PSY.
       
    80 	err = iPosServer.GetModuleStatus(moduleStatus, iUidTestStatusPsy);
       
    81 	_LIT(KErrFailStatus2, "2. Error when getting module status, error code = %d");
       
    82 	AssertTrueL(err == KErrNone, KErrFailStatus2, err);
       
    83 
       
    84     iModuleStatus.SetDeviceStatus(TPositionModuleStatus::EDeviceDisabled);
       
    85     iModuleStatus.SetDataQualityStatus(TPositionModuleStatus::EDataQualityUnknown);
       
    86 
       
    87 	User::After(1000000);
       
    88 
       
    89 	CheckModuleStatusL(moduleStatus);
       
    90 
       
    91 	// Request status information for a non-existing PSY.
       
    92 	TUid aNonExistingUid;
       
    93 	aNonExistingUid.iUid = KUidNonExistingPsy;
       
    94 	err = iPosServer.GetModuleStatus(moduleStatus, aNonExistingUid);
       
    95 	_LIT(KErrFailStatus3, "3. Error when getting module status, error code = %d");
       
    96 	AssertTrueL(err == KErrNotFound, KErrFailStatus3, err);
       
    97 	
       
    98     SetupPsyL(iUidTestStatusPsy);
       
    99 
       
   100 	// Request to be notified about Module Status Events.
       
   101 	TPositionModuleStatusEvent statusEvent;
       
   102 	TRequestStatus status = KErrNone;
       
   103 	statusEvent.SetRequestedEvents(TPositionModuleStatusEvent::EEventDeviceStatus); // Obligatory to set Requested events, EEventAll works also.
       
   104 	iPosServer.NotifyModuleStatusEvent(statusEvent, status, iUidTestStatusPsy);
       
   105 	
       
   106 	// Open a subsession to PSY.
       
   107 	err = OpenPositionerByName(iUidTestStatusPsy);
       
   108 	_LIT(KErrFailStatus4, "4. Error when opening module , error code = %d");
       
   109 	AssertTrueL(err == KErrNone, KErrFailStatus4, err);
       
   110 	
       
   111 	CleanupStack::PopAndDestroy(moduleUpdate);
       
   112     CleanupStack::PopAndDestroy(db);
       
   113 	
       
   114 	User::WaitForRequest(status);
       
   115 	_LIT(KErrFailStatus5, "5. Error in completed request, error code = %d");
       
   116 	AssertTrueL(status.Int() == KErrNone, KErrFailStatus5, err);
       
   117 
       
   118 	// Request status information for PSY.
       
   119 	err = iPosServer.GetModuleStatus(moduleStatus, iUidTestStatusPsy);
       
   120 	_LIT(KErrFailStatus6, "6. Error whe getting module status, error code = %d");
       
   121 	AssertTrueL(err == KErrNone, KErrFailStatus6, err);
       
   122 
       
   123     iModuleStatus.SetDeviceStatus(TPositionModuleStatus::EDeviceReady);
       
   124     iModuleStatus.SetDataQualityStatus(TPositionModuleStatus::EDataQualityNormal);
       
   125 	CheckModuleStatusL(moduleStatus);
       
   126 	
       
   127 	ClosePositioner();
       
   128 
       
   129 
       
   130 	Disconnect();
       
   131 
       
   132 	}
       
   133 
       
   134 // ---------------------------------------------------------
       
   135 // CT_LbsClientPosTp188::CheckModuleStatus
       
   136 //
       
   137 // (other items were commented in a header).
       
   138 // ---------------------------------------------------------
       
   139 //
       
   140 void CT_LbsClientPosTp188::CheckModuleStatusL(const TPositionModuleStatus& aStatus)
       
   141 	{
       
   142 	TBuf<KMaxMessageSize> buf;	
       
   143 	_LIT(KStatus,"Checking module status");
       
   144 	INFO_PRINTF1(KStatus);
       
   145 	
       
   146 	_LIT(KDevSta, "Device Status (EDeviceUnknown = 0, EDeviceError = 1, EDeviceDisabled = 2, EDeviceInactive = 3, EDeviceInitialising = 4, EDeviceStandBy = 5,  EDeviceReady = 6, EDeviceActive = 7) :  %d");
       
   147 	buf.Format(KDevSta, aStatus.DeviceStatus());
       
   148 	INFO_PRINTF1(buf);
       
   149 	buf.Zero();
       
   150 	
       
   151 	_LIT(KDatQual, "Data Quality Status (EDataQualityUnknown = 0, EDataQualityLoss = 1, EDataQualityPartial = 2, EDataQualityNormal = 3) : ,  %d");
       
   152 	buf.Format(KDatQual, aStatus.DataQualityStatus());
       
   153 	INFO_PRINTF1(buf);
       
   154 	buf.Zero();
       
   155 	
       
   156 	//unused TInt myVar = iModuleStatus.DeviceStatus();
       
   157 	//unused TInt myVar2 = aStatus.DeviceStatus();
       
   158 
       
   159     if (iModuleStatus.DeviceStatus() != aStatus.DeviceStatus() ||
       
   160         iModuleStatus.DataQualityStatus() != aStatus.DataQualityStatus())
       
   161         {
       
   162         if (iModuleStatus.DeviceStatus() != aStatus.DeviceStatus())
       
   163         {
       
   164         	_LIT(KError, "Status is not correct, Status returned %d Status expected %d");
       
   165         	buf.Format(KError, aStatus.DeviceStatus(), iModuleStatus.DeviceStatus());
       
   166         	LogErrorAndLeaveL(buf);	
       
   167         }
       
   168         else
       
   169         {
       
   170         	_LIT(KError , "Quality is not correct, Quality returned %d Quality expected");
       
   171         	buf.Format(KError, aStatus.DataQualityStatus(), iModuleStatus.DataQualityStatus());
       
   172         	LogErrorAndLeaveL(KError);	
       
   173         }
       
   174         
       
   175         }
       
   176 	}
       
   177 
       
   178 // End of file