common/tools/ats/smoketest/lbs/common/src/ctlbsstepconfighybridmodule.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) 2007-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
// This is the class implementation for the configuration of the AGPS Hybrid Module
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    15
// The main purpose of this test step is to allow flexible configurability of the AGps Hybrid Module
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    16
// from the Test Harness.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    17
// Various configuration options are read from the ini files and sent to the AGps Hybrid Module through the TH channel.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    18
// The AGps Hybrid Module always acknowledges each configuration message (see ProcessAGpsResponseMessage() method below).
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    19
// This test step has been written to understand '.ini' files containing sections such as [Config2] below:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    20
// [Config2]
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    21
// agps_module_update_file = c:\testdata\configs\lbs_molr.ini
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    22
// agps_module_multi_updates_opt = on
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    23
// agps_module_assistance_data_opt= on
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    24
// $update,1,2,49.2,NAN,NAN,2,3*
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    25
// $update,1,2,49.2,NAN,NAN,2,3*
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    26
// $update,1,2,49.2,3.5,50,2,3*
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    27
// => Current module possible options are:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    28
// agps_module_multi_updates_opt = [ on | off ]
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    29
// It sets the module to send multiple updates after Target Time.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    30
// - When this mode is "off" only one update is sent just after 'Target time' (that is, the next update item available 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    31
// from the module's update array).
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    32
// - When this mode is "on", the module sends N + 1 updates between 'Target time' and 'Max fix time'
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    33
// (currently hardcoded -> N = 2).
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    34
// The final update is the next update item available from the module's update array.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    35
// The module calculates the first N updates from the final update, these updates contain incomplete
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    36
// positions (NAN longitude and latitude, ...). 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    37
// Note:'Target time' specifies the time when the location update should be provided by the AGPS module.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    38
// 'Max fix time' specifies the time maximum time the module should spend calculating the current location.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    39
// agps_module_assistance_data_opt = [ on | off ]
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    40
// Only applicable when in Preferred Terminal Mode. 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    41
// - When this mode is "on", for each new location request the AGps Module may Request new Assistance Data
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    42
// (if it has not been delivered already, sometimes assistance data is delivered to the module before it is requested).
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    43
// - When this mode is off, the default RequestAssistanceData(EAssistanceDataNone) call will always be made.		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    44
// agps_module_dynamic_ass_data_opt = [ on | off ] (off by default)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    45
// Switches between different assistance data delivery methods:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    46
// -> OFF - On the first RequestAssistanceData requests the assistance data aDataMask is always set to
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    47
// the assistance data that it needs.  However for all subsequent assistance data requests the
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    48
// aDataMask will always be set to 0.  This is the method used in all the hybrid tests.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    49
// -> ON - Here the module will always request any assistance data that it has not yet received. So on
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    50
// the first assistanceData request the aDataMask is set to the assistance data it requires.  On
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    51
// subsequent assistance data requests it will re-request the assistance data that has not yet
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    52
// been delivered.  This is the method that should be used in SUPL tests.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    53
// agps_module_clear_all_opt = [ on | off ]
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    54
// Sets all the possible module options to on.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    55
// agps_module_set_all_opt = [ on | off ]
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    56
// Sets all the possible module options to off.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    57
// => $update command: 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    58
// The $update entries in the ini files are used to populate the AGps Hybrid Module update array.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    59
// Note: The Module's update array contains the update items used to generate the updates sent to the AGps Manager.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    60
// The $update command syntax should be as follows:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    61
// $update,num_of_updates,[num_of_measurements],[latitude],[longitude],[altitude],[horz_accuracy],[vert_accuracy],[update_err]*
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    62
// - where num_of_updates is the number of updates to add to the update array. For values greater than 1, each update
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    63
// will contain the same data position and measurement data as defined by the reminder of the sentence.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    64
// - where num_of_measurements is the number of satellite measurements to define (see TPositionGpsMeasurementData). 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    65
// If this value is 0 no measurement data is defined and only the position data is defined. 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    66
// Values for the actual measurement data will be generated automatically.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    67
// - where latitude, longitude, altitude, horz_accuracy, vert_accuracy are used to define the values for the 
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    68
// TPositionInfo part of the TPositionSatelliteInfo.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    69
// - where update_err, is the error code to return to the manager for the update. If NOT defined the value will be KErrNone.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    70
// => Possible Enhancements: This test step might be enhanced later on to also additional functionality such as:
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    71
// agps_module_update_error = -1
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    72
// agps_module_update_timeout = 5000000
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    73
// agps_module_multi_updates_opt = 2	// where 2 is the number of multi updates sent before  
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    74
// // the final update is sent prior to 'Max fix time'
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    75
// 
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
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    78
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
#include "ctlbsstepconfighybridmodule.h"
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    81
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    82
#include "tlbsutils.h"
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    83
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    84
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    85
_LIT(KUpdateFile, "agps_module_update_file");
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    86
_LIT(KClearAllOpt, "agps_module_clear_all_opt");
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    87
_LIT(KAssistanceDataOpt, "agps_module_assistance_data_opt");
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    88
_LIT(KMultiUpdateOpt, "agps_module_multi_updates_opt");
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    89
_LIT(KReqAssDatReqOpt, "agps_module_req_ass_data_req_opt");
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    90
_LIT(KSetAllOpt, "agps_module_set_all_opt");
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    91
_LIT(KSuplAssDataOpt, "agps_module_dynamic_ass_data_opt");
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    92
_LIT(KUpdateTimeout, "agps_module_update_timeout");
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    93
_LIT(KOption_OFF, "off");
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    94
_LIT(KOption_ON, "on");
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    95
_LIT(KNoFileName, "");
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
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    98
/**
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    99
 * Constructor
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
CT_LbsStep_ConfigHybridModule::CT_LbsStep_ConfigHybridModule(CT_LbsServer& aParent) : CT_LbsStep(aParent)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   102
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   103
	SetTestStepName(KLbsStep_ConfigHybridModule);
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
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   106
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
Static Constructor
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   109
*/
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   110
CT_LbsStep_ConfigHybridModule* CT_LbsStep_ConfigHybridModule::New(CT_LbsServer& aParent)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   111
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   112
	return new CT_LbsStep_ConfigHybridModule(aParent);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   113
	// Note the lack of ELeave.
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   114
	// This means that having insufficient memory will return NULL;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   115
	}
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
 * @return - TVerdict code
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   119
 * Override of base class virtual
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
TVerdict CT_LbsStep_ConfigHybridModule::doTestStepPreambleL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   122
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   123
	INFO_PRINTF1(_L("Test Preamble. CT_LbsStep_ConfigHybridModule"));
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
	// create the test channel handler
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   126
	iAGpsHandler = CT_LbsAGpsHandler::NewL(this);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   127
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   128
	SetTestStepResult(EPass);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   129
	return TestStepResult();
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
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
 * @return - TVerdict code
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   134
 * Override of base class virtual
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
TVerdict CT_LbsStep_ConfigHybridModule::doTestStepPostambleL()
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   137
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   138
	INFO_PRINTF1(_L("Test Postamble. CT_LbsStep_ConfigHybridModule"));
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
	delete iAGpsHandler;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   141
	iAGpsHandler = NULL;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   142
		
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   143
	return TestStepResult();
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
/**
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   147
 * @return - TVerdict code
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   148
 * Override of base class pure virtual
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   149
 * Our implementation only gets called if the base class doTestStepPreambleL() did
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   150
 * 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
   151
 */
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   152
TVerdict CT_LbsStep_ConfigHybridModule::doTestStepL()
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
	INFO_PRINTF1(_L("&gt;&gt;CT_LbsStep_ConfigHybridModule::doTestStepL()")); // ??
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
	if (TestStepResult() == EPass)
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
		TPtrC configFileName;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   159
		GetStringFromConfig(ConfigSection(), KUpdateFile, configFileName);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   160
		if (configFileName != KNoFileName)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   161
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   162
			iConfigCtr++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   163
			iAGpsHandler->SendRequestUpdateInitMsg(configFileName, ConfigSection());		
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
						
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   166
		TPtrC clearAllOpt;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   167
		GetStringFromConfig(ConfigSection(), KClearAllOpt, clearAllOpt);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   168
		if (clearAllOpt == KOption_ON)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   169
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   170
			iConfigCtr++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   171
			iAGpsHandler->SendRequestClearAllModuleOptions();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   172
			}
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
		TPtrC updateOpt;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   175
		GetStringFromConfig(ConfigSection(), KMultiUpdateOpt, updateOpt);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   176
		if (updateOpt == KOption_OFF)
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
			iConfigCtr++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   179
			iAGpsHandler->SendRequestModuleOption(ELbsHybridModuleOptions_MultiUpdatesOn, EFalse);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   180
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   181
		else if (updateOpt == KOption_ON)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   182
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   183
			iConfigCtr++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   184
			iAGpsHandler->SendRequestModuleOption(ELbsHybridModuleOptions_MultiUpdatesOn, ETrue);
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
		TPtrC assDataOpt;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   188
		GetStringFromConfig(ConfigSection(), KAssistanceDataOpt, assDataOpt);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   189
		if (assDataOpt == KOption_OFF)
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
			iConfigCtr++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   192
			iAGpsHandler->SendRequestModuleOption(ELbsHybridModuleOptions_AssistanceDataOn, EFalse);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   193
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   194
		else if (assDataOpt == KOption_ON)
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
			iConfigCtr++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   197
			iAGpsHandler->SendRequestModuleOption(ELbsHybridModuleOptions_AssistanceDataOn, ETrue);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   198
			}
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
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   201
		TPtrC reqAssDataOpt;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   202
		GetStringFromConfig(ConfigSection(), KReqAssDatReqOpt, reqAssDataOpt);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   203
		if (reqAssDataOpt == KOption_OFF)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   204
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   205
			iConfigCtr++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   206
			iAGpsHandler->SendRequestModuleOption(ELbsHybridModuleOptions_DisableReqAssistData, EFalse);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   207
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   208
		else if (reqAssDataOpt == KOption_ON)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   209
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   210
			iConfigCtr++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   211
			iAGpsHandler->SendRequestModuleOption(ELbsHybridModuleOptions_DisableReqAssistData, ETrue);
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
		
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
		TPtrC suplAssDataOpt;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   216
		GetStringFromConfig(ConfigSection(), KSuplAssDataOpt, suplAssDataOpt);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   217
		if (suplAssDataOpt == KOption_OFF)
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
			iConfigCtr++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   220
			iAGpsHandler->SendRequestModuleOption(ELbsHybridModuleOptions_DynamicAssistanceData, EFalse);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   221
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   222
		else if (suplAssDataOpt == KOption_ON)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   223
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   224
			iConfigCtr++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   225
			iAGpsHandler->SendRequestModuleOption(ELbsHybridModuleOptions_DynamicAssistanceData, ETrue);
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
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   228
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
		TPtrC setAllOpt;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   231
		GetStringFromConfig(ConfigSection(), KSetAllOpt, setAllOpt);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   232
		if (setAllOpt == KOption_ON)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   233
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   234
			iConfigCtr++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   235
			iAGpsHandler->SendRequestSetAllModuleOptions();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   236
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   237
		TInt updateTimeout;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   238
		if (GetIntFromConfig(ConfigSection(), KUpdateTimeout, updateTimeout))
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
			TTimeIntervalMicroSeconds timeoutVal(updateTimeout);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   241
			
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   242
			iConfigCtr++;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   243
			iAGpsHandler->SendRequestTimeOutMsg(timeoutVal); 
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
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   246
		// All the configuration requests sent, now start the active scheduler
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   247
		if (iConfigCtr)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   248
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   249
			CActiveScheduler::Start();
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
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   252
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   253
	
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   254
	INFO_PRINTF1(_L("&lt;&lt;CT_LbsStep_ConfigHybridModule::doTestStepL()"));	//??
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   255
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   256
	return TestStepResult();
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   257
	}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   258
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   259
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   260
void CT_LbsStep_ConfigHybridModule::ProcessAGpsResponseMessage(const TT_LbsAGpsResponseMsg::TModuleResponseType aResponse)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   261
	{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   262
	iConfigCtr--;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   263
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   264
	if (TT_LbsAGpsResponseMsg::EModuleResponseOk == aResponse)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   265
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   266
		// If any of the previous responses has failed do not override the verdict
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   267
		if (iVerdict != EFail)
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   268
			{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   269
			iVerdict = EPass;
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   270
			}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   271
		}
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   272
	else
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   273
		{
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   274
		iVerdict = 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
	if (!iConfigCtr)
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
		SetTestStepResult(iVerdict);
e13acd883fbe Added new smoketest
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   280
		CActiveScheduler::Stop();
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
	}