common/tools/ats/smoketest/lbs/lbsclient/src/ctlbsclientstepmodstatus.cpp
author Maciej Seroka <maciejs@symbian.org>
Tue, 10 Nov 2009 13:50:58 +0000
changeset 748 e13acd883fbe
child 872 17498133d9ad
permissions -rw-r--r--
Added new smoketest
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
748
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     1
// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     2
// All rights reserved.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     3
// This component and the accompanying materials are made available
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     4
// under the terms of the License "Symbian Foundation License v1.0"
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     5
// which accompanies this distribution, and is available
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     6
// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     7
//
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     8
// Initial Contributors:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    10
//
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    11
// Contributors:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    12
//
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    13
// Description:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    14
// @file ctlbsclientstepmodstatus.cpp
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    15
// This is the class implementation for the Module Information Tests
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    16
// 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    17
//
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    18
 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    19
#include "ctlbsclientstepmodstatus.h"
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    20
#include "ctlbsclientstep.h"
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    21
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    22
#include <e32property.h>
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    23
#include <lbs.h>
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    24
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    25
#include "tlbsutils.h"
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    26
#include "ctlbsasyncwaiter.h"
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    27
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    28
/**
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    29
 * Destructor
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    30
 */
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    31
CT_LbsClientStep_ModStat::~CT_LbsClientStep_ModStat()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    32
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    33
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    34
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    35
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    36
/**
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    37
 * Constructor
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    38
 */
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    39
CT_LbsClientStep_ModStat::CT_LbsClientStep_ModStat(CT_LbsClientServer& aParent) : CT_LbsClientStep(aParent)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    40
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    41
	SetTestStepName(KLbsClientStep_ModStatus);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    42
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    43
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    44
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    45
/**
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    46
Static Constructor
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    47
*/
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    48
CT_LbsClientStep_ModStat* CT_LbsClientStep_ModStat::New(CT_LbsClientServer& aParent)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    49
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    50
	return new CT_LbsClientStep_ModStat(aParent);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    51
	// Note the lack of ELeave.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    52
	// This means that having insufficient memory will return NULL;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    53
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    54
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    55
/**
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    56
 *	Sets requested event mask as specified for supplied module. 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    57
 *  Kicks test module to cause events requested then waits for event(s)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    58
 *  Updates the supplied module status 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    59
 *  returns TRUE if everything went as expected, FALSE otherwise
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    60
 */
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    61
 /**
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    62
 *	Sets requested event mask as specified for supplied module. 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    63
 *  Kicks test module to cause events requested then waits for event(s)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    64
 *  Updates the supplied module status 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    65
 *  returns TRUE if everything went as expected, FALSE otherwise
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    66
 */
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    67
 TBool CT_LbsClientStep_ModStat::DoRequestAndVerifyModStatusEventsL(TPositionModuleStatusEvent::TModuleEvent aReqEventsMask, TPositionModuleStatus& aModStatus, TPositionModuleId aModId = KPositionNullModuleId )
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    68
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    69
	TBool result = TRUE;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    70
	TPositionModuleStatusEvent statusEvent;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    71
	TPositionModuleId agpsmodId;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    72
								
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    73
	// we're interested in the agps module id
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    74
	T_LbsUtils utils;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    75
	agpsmodId = utils.GetAGpsModuleIdL(iServer);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    76
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    77
	//  Set event mask to select requested status events								
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    78
	statusEvent.SetRequestedEvents(aReqEventsMask);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    79
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    80
	// verify the set worked
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    81
	if(statusEvent.RequestedEvents() != aReqEventsMask)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    82
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    83
		INFO_PRINTF2(_L("Requested Events don't match. Got0x%x"), statusEvent.RequestedEvents());
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    84
		return FALSE;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    85
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    86
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    87
	CT_LbsAsyncWaiter* waiter = CT_LbsAsyncWaiter::NewL();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    88
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    89
	// Request module status event using supplied module id
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    90
	iServer.NotifyModuleStatusEvent(statusEvent, waiter->iStatus, aModId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    91
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    92
	TPositionModuleStatusEvent::TModuleEvent eventsExpected = 0;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    93
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    94
	// assume we are interested in the agps module since we can't control events from network module
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    95
	ASSERT(aModId == agpsmodId || aModId == KPositionNullModuleId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    96
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    97
	// kick the test agps module to cause the requested status event(s)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    98
	TPckgBuf<TModuleDataIn> modDataInBuf;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    99
	TModuleDataIn& modDataIn = modDataInBuf();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   100
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   101
	modDataIn.iRequestType = TModuleDataIn::EModuleRequestEventKickOff; 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   102
		modDataIn.iKickOffEventType = 0;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   103
	if(aReqEventsMask & TPositionModuleStatusEvent::EEventDeviceStatus)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   104
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   105
		modDataIn.iKickOffEventType |= TModuleDataIn::EKickOffEventTypeDevice;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   106
		eventsExpected |= TPositionModuleStatusEvent::EEventDeviceStatus;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   107
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   108
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   109
	if(aReqEventsMask & TPositionModuleStatusEvent::EEventDataQualityStatus)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   110
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   111
		modDataIn.iKickOffEventType |= TModuleDataIn::EKickOffEventTypeDataQuality;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   112
		eventsExpected |= TPositionModuleStatusEvent::EEventDataQualityStatus;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   113
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   114
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   115
	User::LeaveIfError(RProperty::Set(KUidSystemCategory, ELbsTestAGpsModuleIn, modDataInBuf));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   116
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   117
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   118
	// Wait for event(s)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   119
	while(result && eventsExpected)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   120
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   121
		waiter->StartAndWait();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   122
		User::LeaveIfError(waiter->Result());
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   123
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   124
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   125
		TInt result = waiter->Result();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   126
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   127
		TPositionModuleStatusEvent::TModuleEvent eventsOccurred = statusEvent.OccurredEvents();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   128
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   129
		ASSERT(eventsOccurred);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   130
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   131
		if(result)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   132
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   133
			INFO_PRINTF2(_L("Unexpected error returned %d"), result);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   134
			result = FALSE;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   135
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   136
		// Verify correct event(s) happenned			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   137
		else 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   138
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   139
				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   140
			if(eventsOccurred & ~(eventsExpected))
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   141
				{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   142
				INFO_PRINTF2(_L("Unexpected event received 0x%x"), statusEvent.OccurredEvents());
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   143
				result = FALSE;						
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   144
				}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   145
			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   146
			if(statusEvent.ModuleId() == agpsmodId)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   147
				{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   148
				eventsExpected &= ~eventsOccurred;	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   149
				}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   150
				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   151
			// Request next module status event
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   152
			if (eventsExpected)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   153
				{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   154
				iServer.NotifyModuleStatusEvent(statusEvent, waiter->iStatus/*request*/, aModId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   155
				}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   156
			}	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   157
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   158
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   159
	// TODO - appropriate to do this here?
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   160
	// device status event happened. Read in new status (this will be verified in future test step):
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   161
	statusEvent.GetModuleStatus(aModStatus);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   162
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   163
	delete waiter;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   164
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   165
	return result;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   166
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   167
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   168
/**
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   169
 *	Sets requested event mask as specified for agps module. 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   170
 *  Kicks test module to cause events requested then waits for event(s)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   171
 *  Updates the supplied module status 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   172
 *  returns TRUE if everything went as expected, FALSE otherwise
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   173
 */
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   174
 TBool CT_LbsClientStep_ModStat::DoRequestAndVerifyAGPSModStatusEventsL(TPositionModuleStatusEvent::TModuleEvent aReqEventsMask, TPositionModuleStatus& aModStatus)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   175
 	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   176
	TPositionModuleId modId;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   177
								
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   178
	// we're interested in the agps module id
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   179
	T_LbsUtils utils;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   180
	modId = utils.GetAGpsModuleIdL(iServer);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   181
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   182
	return DoRequestAndVerifyModStatusEventsL(aReqEventsMask, aModStatus, modId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   183
 	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   184
 	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   185
 	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   186
/**
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   187
 * Sets requested event mask as specified for supplied module and asks to be notified of events
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   188
 * (note does not kick test module to cause events; use only if expect error to be returned)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   189
 * Waits for event and returns error
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   190
 */
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   191
TInt CT_LbsClientStep_ModStat::DoRequestModStatusEventsWithError(TPositionModuleStatusEvent::TModuleEvent aReqEventsMask, TPositionModuleId aModId)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   192
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   193
	//TRequestStatus request;					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   194
	TPositionModuleStatusEvent statusEvent;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   195
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   196
	statusEvent.SetRequestedEvents(aReqEventsMask);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   197
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   198
	CT_LbsAsyncWaiter* waiter = CT_LbsAsyncWaiter::NewL();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   199
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   200
	iServer.NotifyModuleStatusEvent(statusEvent, waiter->iStatus, aModId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   201
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   202
	waiter->StartAndWait();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   203
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   204
	TInt result = waiter->Result();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   205
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   206
	//User::WaitForRequest(request);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   207
	delete waiter;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   208
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   209
	return result;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   210
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   211
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   212
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   213
TBool CT_LbsClientStep_ModStat::DoVerifyModStatus(TPositionModuleStatusEvent::TModuleEvent aExpectedModStatus,TPositionModuleId aModId)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   214
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   215
	// Initialise current module status.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   216
	TPositionModuleStatus& currentModStatus = iParent.iSharedData->iCurrentModuleStatus;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   217
	iServer.GetModuleStatus(currentModStatus,aModId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   218
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   219
	if(currentModStatus.DeviceStatus()!=aExpectedModStatus)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   220
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   221
		INFO_PRINTF3(_L("Module in Unexpected State - %d and not %d"),currentModStatus.DeviceStatus(),aExpectedModStatus);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   222
		SetTestStepResult(EFail);	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   223
		return EFalse;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   224
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   225
	else
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   226
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   227
		INFO_PRINTF2(_L("Module in Expected State %d"),aExpectedModStatus);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   228
		return ETrue;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   229
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   230
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   231
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   232
/**
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   233
 * @return - TVerdict code
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   234
 * Override of base class pure virtual
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   235
 * Our implementation only gets called if the base class doTestStepPreambleL() did
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   236
 * not leave. That being the case, the current test result value will be EPass.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   237
 */
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   238
TVerdict CT_LbsClientStep_ModStat::doTestStepL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   239
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   240
	// Generic test step used to test the LBS Client Notify position update API.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   241
	INFO_PRINTF1(_L("&gt;&gt;CT_LbsClientStep_ModStat::doTestStepL()"));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   242
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   243
	if (TestStepResult() == EPass)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   244
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   245
		TInt err = KErrNone;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   246
			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   247
		// Connect to self locate server.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   248
		User::LeaveIfError(iServer.Connect());
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   249
		CleanupClosePushL(iServer);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   250
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   251
		// Carryout unique test actions.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   252
		TInt testCaseId;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   253
		if (GetIntFromConfig(ConfigSection(), KTestCaseId, testCaseId))
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   254
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   255
			switch (testCaseId)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   256
				{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   257
				// Test case LBS-ModStatus-0001 to 0004
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   258
				case 01:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   259
				case 02:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   260
				case 03:				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   261
				case 04:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   262
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   263
					TPositionModuleId testmodId;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   264
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   265
					T_LbsUtils utils;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   266
					testmodId = utils.GetAGpsModuleIdL(iServer);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   267
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   268
					// Get the module device status.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   269
					TPositionModuleStatus& modStatus = iParent.iSharedData->iCurrentModuleStatus;					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   270
					err = iServer.GetModuleStatus(modStatus, testmodId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   271
					if(KErrNone != err)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   272
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   273
						INFO_PRINTF2(_L("Failed with err %d"), err);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   274
						SetTestStepResult(EFail);	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   275
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   276
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   277
					break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   278
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   279
				// Test case LBS-ModStatus-0005
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   280
				case 05:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   281
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   282
					TPositionModuleId badmodId;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   283
					T_LbsUtils utils;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   284
					badmodId = utils.GetBadModuleId();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   285
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   286
					// Get the module device status.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   287
					TPositionModuleStatus moduleStatus;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   288
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   289
					err = iServer.GetModuleStatus(moduleStatus, badmodId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   290
					if(KErrNotFound != err)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   291
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   292
						INFO_PRINTF2(_L("Failed with err %d. Should have been KErrNotFound(-1)"), err);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   293
						SetTestStepResult(EFail);	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   294
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   295
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   296
					break;					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   297
										
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   298
				// LBS-Mod-Status-Event-0002
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   299
				case 22:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   300
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   301
					TPositionModuleStatus& testmodStatus = iParent.iSharedData->iCurrentModuleStatus;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   302
												
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   303
					// Get device status events for any module:										
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   304
					if(!DoRequestAndVerifyModStatusEventsL(TPositionModuleStatusEvent::EEventDeviceStatus, testmodStatus))
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   305
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   306
						SetTestStepResult(EFail);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   307
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   308
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   309
					break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   310
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   311
				// LBS-Mod-Status-Event-0003
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   312
				case 23:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   313
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   314
					TPositionModuleStatus& testmodStatus = iParent.iSharedData->iCurrentModuleStatus;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   315
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   316
					// Get device status events	for (test) agps module		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   317
					if(!DoRequestAndVerifyAGPSModStatusEventsL(TPositionModuleStatusEvent::EEventDeviceStatus, testmodStatus))
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   318
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   319
						SetTestStepResult(EFail);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   320
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   321
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   322
					// Get device status events again				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   323
					if(!DoRequestAndVerifyModStatusEventsL(TPositionModuleStatusEvent::EEventDeviceStatus, testmodStatus))
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   324
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   325
						SetTestStepResult(EFail);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   326
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   327
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   328
					break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   329
				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   330
				// LBS-Mod-Status-Event-0004
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   331
				case 24:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   332
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   333
					TPositionModuleStatus& testmodStatus = iParent.iSharedData->iCurrentModuleStatus;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   334
						
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   335
					// Get device status events				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   336
					if(!DoRequestAndVerifyAGPSModStatusEventsL(TPositionModuleStatusEvent::EEventDeviceStatus, testmodStatus))
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   337
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   338
						SetTestStepResult(EFail);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   339
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   340
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   341
					break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   342
				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   343
				// LBS-Mod-Status-Event-0005
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   344
				case 25:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   345
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   346
					TPositionModuleStatus& testmodStatus = iParent.iSharedData->iCurrentModuleStatus;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   347
					// Get device status events				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   348
					if(!DoRequestAndVerifyAGPSModStatusEventsL(TPositionModuleStatusEvent::EEventDataQualityStatus, testmodStatus))
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   349
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   350
						SetTestStepResult(EFail);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   351
						}					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   352
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   353
					break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   354
										
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   355
				// LBS-Mod-Status-Event-0009
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   356
				case 29:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   357
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   358
					TPositionModuleStatus& testmodStatus = iParent.iSharedData->iCurrentModuleStatus;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   359
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   360
					//In feature when system events support, change TPositionModuleStatusEvent::EEventAll 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   361
					// Get device status events				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   362
					if(!DoRequestAndVerifyAGPSModStatusEventsL(((TPositionModuleStatusEvent::EEventDeviceStatus)|(TPositionModuleStatusEvent::EEventDataQualityStatus)), testmodStatus))
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   363
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   364
						SetTestStepResult(EFail);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   365
						}					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   366
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   367
					break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   368
															
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   369
				// LBS-Mod-Status-Event-0010
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   370
				case 30:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   371
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   372
					TPositionModuleId modId;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   373
					TInt err;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   374
						
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   375
					// use bad module id
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   376
					T_LbsUtils utils;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   377
					modId = utils.GetBadModuleId();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   378
								
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   379
					err = DoRequestModStatusEventsWithError(TPositionModuleStatusEvent::EEventDataQualityStatus, modId);								
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   380
					if(KErrNotFound != err)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   381
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   382
						SetTestStepResult(EFail);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   383
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   384
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   385
					break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   386
															
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   387
				// LBS-Mod-Status-Event-0011
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   388
				case 31:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   389
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   390
					TPositionModuleId modId;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   391
					TInt err;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   392
						
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   393
					// use agps module id
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   394
					T_LbsUtils utils;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   395
					modId = utils.GetAGpsModuleIdL(iServer);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   396
								
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   397
					err = DoRequestModStatusEventsWithError(0, modId);								
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   398
					if(KErrArgument != err)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   399
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   400
						SetTestStepResult(EFail);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   401
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   402
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   403
					break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   404
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   405
				// LBS-Mod-Status-Event-0012
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   406
				case 32:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   407
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   408
					TPositionModuleId modId;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   409
					TRequestStatus request;					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   410
					TPositionModuleStatusEvent statusEvent;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   411
						
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   412
					// use agps module id
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   413
					T_LbsUtils utils;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   414
					modId = utils.GetAGpsModuleIdL(iServer);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   415
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   416
					statusEvent.SetRequestedEvents(TPositionModuleStatusEvent::EEventDeviceStatus);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   417
										
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   418
					iServer.NotifyModuleStatusEvent(statusEvent, request, modId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   419
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   420
					TInt err = iServer.CancelRequest(EPositionServerNotifyModuleStatusEvent);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   421
					if(KErrNone == err)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   422
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   423
						User::WaitForRequest(request);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   424
						if(KErrCancel != request.Int())
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   425
							{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   426
							INFO_PRINTF2(_L("Failed: KErrCancel not returned, Got %d"), request.Int());
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   427
							SetTestStepResult(EFail);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   428
							}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   429
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   430
					else
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   431
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   432
						INFO_PRINTF2(_L("Failed: CancelRequest returned error %d"), err);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   433
						SetTestStepResult(EFail);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   434
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   435
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   436
					break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   437
				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   438
				// LBS-Mod-Status-Event-0013
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   439
				case 33:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   440
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   441
					TInt err = iServer.CancelRequest(EPositionServerNotifyModuleStatusEvent);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   442
					if(KErrNotFound != err)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   443
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   444
						INFO_PRINTF2(_L("Failed: CancelRequest returned error %d, expecting KErrNotFound"), err);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   445
						SetTestStepResult(EFail);						
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   446
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   447
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   448
					break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   449
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   450
				// LBS-Mod-Status-Event-0014
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   451
				case 34:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   452
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   453
					// close server since we don't want to be connected for this test
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   454
					iServer.Close();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   455
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   456
					TInt err = iServer.CancelRequest(EPositionServerNotifyModuleStatusEvent);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   457
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   458
					// if we get here, something went wrong, so panic
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   459
					SetTestStepResult(EFail);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   460
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   461
					User::Panic(KLbsClientStep_ModStatus, KErrGeneral);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   462
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   463
					break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   464
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   465
				// LBS-Mod-Status-Event-0015
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   466
				case 35:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   467
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   468
					TPositionModuleId modId;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   469
					TRequestStatus request;					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   470
					TPositionModuleStatusEvent statusEvent;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   471
						
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   472
					// use agps module id
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   473
					T_LbsUtils utils;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   474
					modId = utils.GetAGpsModuleIdL(iServer);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   475
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   476
					// set requested events mask
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   477
					statusEvent.SetRequestedEvents(TPositionModuleStatusEvent::EEventDeviceStatus);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   478
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   479
					// ask to be notified of requested events					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   480
					iServer.NotifyModuleStatusEvent(statusEvent, request, modId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   481
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   482
					// ask to be notified of requested events a second time (panics)					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   483
					iServer.NotifyModuleStatusEvent(statusEvent, request, modId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   484
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   485
					// if we get here, something went wrong, so panic
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   486
					SetTestStepResult(EFail);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   487
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   488
					User::Panic(KLbsClientStep_ModStatus, KErrGeneral);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   489
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   490
					break;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   491
				case 101:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   492
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   493
					// This test requires net sim to be open.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   494
					OpenNetSim();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   495
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   496
					// Select the network module.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   497
					T_LbsUtils utils;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   498
					TPositionModuleId modId;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   499
					modId = utils.GetNetworkModuleIdL(iServer);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   500
					User::LeaveIfError(iPositioner.Open(iServer, modId));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   501
					CleanupClosePushL(iPositioner);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   502
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   503
					// Initialise the position info variable.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   504
					TPositionInfo* posInfo = new(ELeave) TPositionInfo();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   505
					CleanupStack::PushL(posInfo);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   506
						
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   507
					// set requested events mask so we get notified on EEventDeviceStatus (any status change)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   508
					TPositionModuleStatusEvent statusEvent;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   509
					statusEvent.SetRequestedEvents(TPositionModuleStatusEvent::EEventDeviceStatus);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   510
					CT_LbsAsyncWaiter* waiter = CT_LbsAsyncWaiter::NewL();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   511
					iServer.NotifyModuleStatusEvent(statusEvent, waiter->iStatus, modId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   512
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   513
					// Verify that the module status is ready before we make any requests.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   514
					DoVerifyModStatus(TPositionModuleStatus::EDeviceReady,modId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   515
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   516
					// Request a position update, we should then see a state change to EDeviceActive
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   517
					TRequestStatus status;		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   518
					INFO_PRINTF1(_L("Performing NotifyPositionUpdate()"));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   519
					iPositioner.NotifyPositionUpdate(*posInfo,status);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   520
					// Use the waiter object so that we can get the device status change.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   521
					waiter->StartAndWait();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   522
					waiter->Result();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   523
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   524
					// Check that the change that happened was the correct thing.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   525
					TPositionModuleStatusEvent::TModuleEvent eventsExpected = TPositionModuleStatusEvent::EEventDeviceStatus;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   526
					TPositionModuleStatusEvent::TModuleEvent eventsOccurred = statusEvent.OccurredEvents();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   527
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   528
					if(eventsOccurred!=eventsExpected)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   529
						{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   530
						INFO_PRINTF1(_L("No Module Status Event have Occured"));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   531
						SetTestStepResult(EFail);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   532
						}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   533
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   534
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   535
					// Verify the device is now active
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   536
					DoVerifyModStatus(TPositionModuleStatus::EDeviceActive,modId);	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   537
					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   538
					INFO_PRINTF1(_L("Position Received"));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   539
					User::WaitForRequest(status);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   540
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   541
					//Verify that the position is EDeviceReady again
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   542
					DoVerifyModStatus(TPositionModuleStatus::EDeviceReady,modId);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   543
				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   544
					// Tidy up everything
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   545
					CloseNetSim();					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   546
					delete waiter;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   547
					CleanupStack::PopAndDestroy(posInfo);	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   548
					CleanupStack::PopAndDestroy(&iPositioner);	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   549
					}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   550
					break;					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   551
				default:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   552
					{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   553
					User::Panic(KLbsClientStep_ModStatus, KErrUnknown);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   554
					}					
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   555
				}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   556
				
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   557
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   558
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   559
			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   560
		// All done, clean up.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   561
		CleanupStack::PopAndDestroy(&iServer);		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   562
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   563
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   564
	INFO_PRINTF1(_L("&lt;&lt;CT_LbsClientStep_ModStat::doTestStepL()"));
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   565
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   566
	return TestStepResult();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   567
	}